From 938468da6f5c225ebb161a68bd949c9cf3261892 Mon Sep 17 00:00:00 2001 From: Eric Erfanian Date: Tue, 24 Oct 2017 14:05:52 -0700 Subject: Rename the new bubble package name from "bubble" to "newbubble". It fixes AOSP for package name conflict. Test: manual PiperOrigin-RevId: 173298696 Change-Id: Id10ebe0bcf029e61f65cf6580c7198abd8395081 --- java/com/android/dialer/util/PermissionsUtil.java | 4 +++ java/com/android/dialer/util/ViewUtil.java | 44 +++++++++++++++++++++++ 2 files changed, 48 insertions(+) (limited to 'java/com/android/dialer/util') diff --git a/java/com/android/dialer/util/PermissionsUtil.java b/java/com/android/dialer/util/PermissionsUtil.java index cb973680d..02ea91093 100644 --- a/java/com/android/dialer/util/PermissionsUtil.java +++ b/java/com/android/dialer/util/PermissionsUtil.java @@ -77,6 +77,10 @@ public class PermissionsUtil { return hasPermission(context, permission.CALL_PHONE); } + public static boolean hasReadPhoneStatePermissions(Context context) { + return hasPermission(context, permission.READ_PHONE_STATE); + } + public static boolean hasContactsReadPermissions(Context context) { return hasPermission(context, permission.READ_CONTACTS); } diff --git a/java/com/android/dialer/util/ViewUtil.java b/java/com/android/dialer/util/ViewUtil.java index 81a32f985..211b3ed12 100644 --- a/java/com/android/dialer/util/ViewUtil.java +++ b/java/com/android/dialer/util/ViewUtil.java @@ -19,16 +19,19 @@ package com.android.dialer.util; import android.content.ContentResolver; import android.content.Context; import android.graphics.Paint; +import android.graphics.Point; import android.os.PowerManager; import android.provider.Settings; import android.provider.Settings.Global; import android.support.annotation.NonNull; import android.text.TextUtils; import android.util.TypedValue; +import android.view.Display; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver.OnGlobalLayoutListener; import android.view.ViewTreeObserver.OnPreDrawListener; +import android.view.WindowManager; import android.widget.TextView; import java.util.Locale; @@ -139,4 +142,45 @@ public class ViewUtil { return Settings.Global.getFloat(contentResolver, Global.ANIMATOR_DURATION_SCALE, 1.0f) == 0 || powerManager.isPowerSaveMode(); } + + /** + * Get navigation bar height by calculating difference between app usable size and real screen + * size. Note that this won't work in multi-window mode so it's caller's responsibility to check + * if the app is in multi-window mode before using this. + * + * @param context Context + * @return Navigation bar height + */ + public static int getNavigationBarHeight(Context context) { + WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); + Display display = windowManager.getDefaultDisplay(); + Point appUsableSize = getAppUsableScreenSize(display); + Point realScreenSize = getRealScreenSize(display); + + // Navigation bar on the right. + if (appUsableSize.x < realScreenSize.x) { + return appUsableSize.y; + } + + // Navigation bar at the bottom. + if (appUsableSize.y < realScreenSize.y) { + return realScreenSize.y - appUsableSize.y; + } + + // Navigation bar is not present. + return 0; + } + + private static Point getAppUsableScreenSize(Display display) { + Point size = new Point(); + display.getSize(size); + return size; + } + + private static Point getRealScreenSize(Display display) { + Point size = new Point(); + display.getRealSize(size); + + return size; + } } -- cgit v1.2.3