summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/util
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-10-24 14:05:52 -0700
committerEric Erfanian <erfanian@google.com>2017-10-24 14:05:52 -0700
commit938468da6f5c225ebb161a68bd949c9cf3261892 (patch)
tree232533fa35dc9d140fdfe0dac82b2bd21ad1b5c4 /java/com/android/dialer/util
parent958b292fc04ad15879fff47df929d6d1a826615c (diff)
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
Diffstat (limited to 'java/com/android/dialer/util')
-rw-r--r--java/com/android/dialer/util/PermissionsUtil.java4
-rw-r--r--java/com/android/dialer/util/ViewUtil.java44
2 files changed, 48 insertions, 0 deletions
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;
+ }
}