diff options
author | Danny Baumann <dannybaumann@web.de> | 2014-11-12 17:14:27 -0800 |
---|---|---|
committer | Adnan Begovic <adnan@cyngn.com> | 2015-10-26 16:11:13 -0700 |
commit | d40cd5728a415efd72ee192fa6f67727411ed959 (patch) | |
tree | ae0afabb0d80930130005dd09c6c864e9177cfb1 /src/com/android/settings/Utils.java | |
parent | cf65d3f14dce8dae3590daac56bdd59be28e1779 (diff) | |
download | packages_apps_Settings-d40cd5728a415efd72ee192fa6f67727411ed959.zip packages_apps_Settings-d40cd5728a415efd72ee192fa6f67727411ed959.tar.gz packages_apps_Settings-d40cd5728a415efd72ee192fa6f67727411ed959.tar.bz2 |
Profiles : Settings
Change-Id: I072758a1c5ec04ef34077551220b6611068fe71d
Diffstat (limited to 'src/com/android/settings/Utils.java')
-rw-r--r-- | src/com/android/settings/Utils.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index b6d9414..0a09b15 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -84,6 +84,9 @@ import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.Animation.AnimationListener; import android.view.animation.AnimationUtils; +import android.util.DisplayMetrics; +import android.view.DisplayInfo; +import android.view.WindowManager; import android.widget.ListView; import android.widget.TabWidget; @@ -155,6 +158,14 @@ public final class Utils { private static SparseArray<Bitmap> sDarkDefaultUserBitmapCache = new SparseArray<Bitmap>(); + // Device types + private static final int DEVICE_PHONE = 0; + private static final int DEVICE_HYBRID = 1; + private static final int DEVICE_TABLET = 2; + + // Device type reference + private static int sDeviceType = -1; + /** * Finds a matching activity for a preference's intent. If a matching * activity is not found, it will remove the preference. @@ -609,6 +620,40 @@ public final class Utils { .getUsers().size() > 1; } + 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; + } + /** * Start a new instance of the activity, showing only the given fragment. * When launched in this mode, the given preference fragment will be instantiated and fill the |