List of usage examples for com.liferay.portal.kernel.theme ThemeDisplay setDevice
public void setDevice(Device device)
From source file:com.liferay.mobile.device.rules.internal.events.MDRServicePreAction.java
License:Open Source License
@Override public void run(HttpServletRequest request, HttpServletResponse response) { ThemeDisplay themeDisplay = (ThemeDisplay) request.getAttribute(WebKeys.THEME_DISPLAY); Device device = null;// w w w . j a v a 2s . c o m if (PropsValues.MOBILE_DEVICE_SESSION_CACHE_ENABLED) { HttpSession session = request.getSession(); TransientValue<Device> transientValue = (TransientValue<Device>) session.getAttribute(WebKeys.DEVICE); if (transientValue != null) { device = transientValue.getValue(); } if (device == null) { device = DeviceDetectionUtil.detectDevice(request); session.setAttribute(WebKeys.DEVICE, new TransientValue<>(device)); } } else { device = DeviceDetectionUtil.detectDevice(request); } themeDisplay.setDevice(device); UnknownDevice unknownDevice = UnknownDevice.getInstance(); if (device.equals(unknownDevice)) { return; } MDRRuleGroupInstance mdrRuleGroupInstance = null; try { mdrRuleGroupInstance = RuleGroupProcessorUtil.evaluateRuleGroups(themeDisplay); if (_log.isDebugEnabled()) { String logMessage = "Rule group evaluation returned rule group instance "; if (mdrRuleGroupInstance != null) { logMessage += mdrRuleGroupInstance.getRuleGroupInstanceId(); } else { logMessage += "null"; } _log.debug(logMessage); } } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn("Unable to retrieve rule group", e); } return; } if (mdrRuleGroupInstance == null) { return; } themeDisplay.setMDRRuleGroupInstance(new MDRRuleGroupInstanceImpl(mdrRuleGroupInstance)); try { List<MDRAction> mdrActions = _mdrActionLocalService .getActions(mdrRuleGroupInstance.getRuleGroupInstanceId()); ActionHandlerManagerUtil.applyActions(mdrActions, request, response); } catch (Exception e) { if (_log.isWarnEnabled()) { _log.warn("Unable to apply device profile", e); } } }