001
014
015 package com.liferay.portal.mobile.device.messaging;
016
017 import com.liferay.portal.kernel.messaging.BaseDestinationEventListener;
018 import com.liferay.portal.kernel.messaging.DestinationNames;
019 import com.liferay.portal.kernel.messaging.MessageListener;
020 import com.liferay.portal.kernel.messaging.proxy.ProxyMessageListener;
021 import com.liferay.portal.kernel.mobile.device.DeviceDetectionUtil;
022 import com.liferay.portal.kernel.mobile.device.DeviceRecognitionProvider;
023
024
029 public class DeviceRecognitionProviderDestinationEventListener
030 extends BaseDestinationEventListener {
031
032 @Override
033 public void messageListenerRegistered(
034 String destinationName, MessageListener messageListener) {
035
036 if (!isProceed(destinationName, messageListener)) {
037 return;
038 }
039
040 DeviceDetectionUtil deviceDetectionUtil = new DeviceDetectionUtil();
041
042 deviceDetectionUtil.setDeviceRecognitionProvider(
043 _proxyDeviceRecognitionProvider);
044 }
045
046 @Override
047 public void messageListenerUnregistered(
048 String destinationName, MessageListener messageListener) {
049
050 if (!isProceed(destinationName, messageListener)) {
051 return;
052 }
053
054 DeviceDetectionUtil deviceDetectionUtil = new DeviceDetectionUtil();
055
056 deviceDetectionUtil.setDeviceRecognitionProvider(
057 _directDeviceRecognitionProvider);
058 }
059
060 public void setDirectDeviceRecognitionProvider(
061 DeviceRecognitionProvider directDeviceRecognitionProvider) {
062
063 _directDeviceRecognitionProvider = directDeviceRecognitionProvider;
064 }
065
066 public void setProxyDeviceRecognitionProvider(
067 DeviceRecognitionProvider proxyDeviceRecognitionProvider) {
068
069 _proxyDeviceRecognitionProvider = proxyDeviceRecognitionProvider;
070 }
071
072 protected boolean isProceed(
073 String destinationName, MessageListener messageListener) {
074
075 if (!destinationName.equals(
076 DestinationNames.DEVICE_RECOGNITION_PROVIDER) ||
077 !(messageListener instanceof ProxyMessageListener)) {
078
079 return false;
080 }
081 else {
082 return true;
083 }
084 }
085
086 private DeviceRecognitionProvider _directDeviceRecognitionProvider;
087 private DeviceRecognitionProvider _proxyDeviceRecognitionProvider;
088
089 }