com.liferay.portal.kernel.mobile.device.DeviceDetectionUtil.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.portal.kernel.mobile.device.DeviceDetectionUtil.java

Source

/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.portal.kernel.mobile.device;

import com.liferay.portal.kernel.util.ServiceProxyFactory;

import java.util.Set;

import javax.servlet.http.HttpServletRequest;

/**
 * @author Milen Dyankov
 * @author Raymond Aug
 */
public class DeviceDetectionUtil {

    public static Device detectDevice(HttpServletRequest httpServletRequest) {
        DeviceRecognitionProvider deviceRecognitionProvider = _deviceRecognitionProvider;

        if (deviceRecognitionProvider == null) {
            return UnknownDevice.getInstance();
        }

        return deviceRecognitionProvider.detectDevice(httpServletRequest);
    }

    public static DeviceRecognitionProvider getDeviceRecognitionProvider() {
        return _deviceRecognitionProvider;
    }

    public static Set<VersionableName> getKnownBrands() {
        KnownDevices knownDevices = getKnownDevices();

        return knownDevices.getBrands();
    }

    public static Set<VersionableName> getKnownBrowsers() {
        KnownDevices knownDevices = getKnownDevices();

        return knownDevices.getBrowsers();
    }

    public static Set<VersionableName> getKnownOperatingSystems() {
        KnownDevices knownDevices = getKnownDevices();

        return knownDevices.getOperatingSystems();
    }

    public static Set<String> getKnownPointingMethods() {
        KnownDevices knownDevices = getKnownDevices();

        return knownDevices.getPointingMethods();
    }

    protected static KnownDevices getKnownDevices() {
        DeviceRecognitionProvider deviceRecognitionProvider = _deviceRecognitionProvider;

        if (deviceRecognitionProvider == null) {
            return NoKnownDevices.getInstance();
        }

        return deviceRecognitionProvider.getKnownDevices();
    }

    private static volatile DeviceRecognitionProvider _deviceRecognitionProvider = ServiceProxyFactory
            .newServiceTrackedInstance(DeviceRecognitionProvider.class, DeviceDetectionUtil.class,
                    "_deviceRecognitionProvider", false, true);

}