Loading core/java/com/android/internal/util/cm/ScreenType.java 0 → 100644 +66 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The CyanogenMod Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.util.cm; import android.content.Context; import android.util.DisplayMetrics; import android.view.DisplayInfo; import android.view.WindowManager; public class ScreenType { // Device type reference private static int sDeviceType = -1; // Device types private static final int DEVICE_PHONE = 0; private static final int DEVICE_HYBRID = 1; private static final int DEVICE_TABLET = 2; private static int getScreenType(Context context) { if (sDeviceType == -1) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayInfo outDisplayInfo = new DisplayInfo(); wm.getDefaultDisplay().getDisplayInfo(outDisplayInfo); int shortSize = Math.min(outDisplayInfo.logicalHeight, outDisplayInfo.logicalWidth); int shortSizeDp = shortSize * DisplayMetrics.DENSITY_DEFAULT / outDisplayInfo.logicalDensityDpi; if (shortSizeDp < 600) { // 0-599dp: "phone" UI with a separate status & navigation bar sDeviceType = DEVICE_PHONE; } else if (shortSizeDp < 720) { // 600-719dp: "phone" UI with modifications for larger screens sDeviceType = DEVICE_HYBRID; } else { // 720dp: "tablet" UI with a single combined status & navigation bar sDeviceType = DEVICE_TABLET; } } return sDeviceType; } public static boolean isPhone(Context context) { return getScreenType(context) == DEVICE_PHONE; } public static boolean isHybrid(Context context) { return getScreenType(context) == DEVICE_HYBRID; } public static boolean isTablet(Context context) { return getScreenType(context) == DEVICE_TABLET; } } Loading
core/java/com/android/internal/util/cm/ScreenType.java 0 → 100644 +66 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 The CyanogenMod Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.internal.util.cm; import android.content.Context; import android.util.DisplayMetrics; import android.view.DisplayInfo; import android.view.WindowManager; public class ScreenType { // Device type reference private static int sDeviceType = -1; // Device types private static final int DEVICE_PHONE = 0; private static final int DEVICE_HYBRID = 1; private static final int DEVICE_TABLET = 2; private static int getScreenType(Context context) { if (sDeviceType == -1) { WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); DisplayInfo outDisplayInfo = new DisplayInfo(); wm.getDefaultDisplay().getDisplayInfo(outDisplayInfo); int shortSize = Math.min(outDisplayInfo.logicalHeight, outDisplayInfo.logicalWidth); int shortSizeDp = shortSize * DisplayMetrics.DENSITY_DEFAULT / outDisplayInfo.logicalDensityDpi; if (shortSizeDp < 600) { // 0-599dp: "phone" UI with a separate status & navigation bar sDeviceType = DEVICE_PHONE; } else if (shortSizeDp < 720) { // 600-719dp: "phone" UI with modifications for larger screens sDeviceType = DEVICE_HYBRID; } else { // 720dp: "tablet" UI with a single combined status & navigation bar sDeviceType = DEVICE_TABLET; } } return sDeviceType; } public static boolean isPhone(Context context) { return getScreenType(context) == DEVICE_PHONE; } public static boolean isHybrid(Context context) { return getScreenType(context) == DEVICE_HYBRID; } public static boolean isTablet(Context context) { return getScreenType(context) == DEVICE_TABLET; } }