summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwangqi <wangqi@google.com>2018-05-21 15:57:36 -0700
committerCopybara-Service <copybara-piper@google.com>2018-05-21 16:25:15 -0700
commit73ed613c802ef866d74d9b1d5bcf273183d6fe00 (patch)
treeb957b06fd99ecd1e9864c2136a8ef9ea00487f46
parent0a41f3c3f1cefcd71cbdd79299fba3482e23a5e2 (diff)
Set navigation bar color when dialpad is visible.
Instead of fake a black bar on voice incall UI, the more reliable way is to set navigation bar color. Bug: 79902234 Test: manual PiperOrigin-RevId: 197475300 Change-Id: I96085700e633570ef385386cdf366d758e50a6e2
-rw-r--r--java/com/android/dialer/util/ViewUtil.java44
-rw-r--r--java/com/android/incallui/InCallActivity.java26
-rw-r--r--java/com/android/incallui/incall/impl/InCallFragment.java10
-rw-r--r--java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml7
4 files changed, 9 insertions, 78 deletions
diff --git a/java/com/android/dialer/util/ViewUtil.java b/java/com/android/dialer/util/ViewUtil.java
index 211b3ed12..81a32f985 100644
--- a/java/com/android/dialer/util/ViewUtil.java
+++ b/java/com/android/dialer/util/ViewUtil.java
@@ -19,19 +19,16 @@ 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;
@@ -142,45 +139,4 @@ 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;
- }
}
diff --git a/java/com/android/incallui/InCallActivity.java b/java/com/android/incallui/InCallActivity.java
index 70ba71ba1..2fe38c0aa 100644
--- a/java/com/android/incallui/InCallActivity.java
+++ b/java/com/android/incallui/InCallActivity.java
@@ -488,7 +488,6 @@ public class InCallActivity extends TransactionSafeFragmentActivity
}
showDialpadRequest = DIALPAD_REQUEST_NONE;
}
- updateNavigationBar(isDialpadVisible());
CallList.getInstance()
.onInCallUiShown(getIntent().getBooleanExtra(IntentExtraNames.FOR_FULL_SCREEN, false));
@@ -807,10 +806,6 @@ public class InCallActivity extends TransactionSafeFragmentActivity
sensor.onDialpadVisible(show);
}
showDialpadRequest = DIALPAD_REQUEST_NONE;
-
- // Note: onInCallScreenDialpadVisibilityChange is called here to ensure that the dialpad FAB
- // repositions itself.
- getInCallOrRttCallScreen().onInCallScreenDialpadVisibilityChange(show);
}
private void showDialpadFragment() {
@@ -835,7 +830,7 @@ public class InCallActivity extends TransactionSafeFragmentActivity
dialpadFragmentManager.executePendingTransactions();
Logger.get(this).logScreenView(ScreenEvent.Type.INCALL_DIALPAD, this);
- updateNavigationBar(true /* isDialpadVisible */);
+ getInCallOrRttCallScreen().onInCallScreenDialpadVisibilityChange(true);
}
private void hideDialpadFragment() {
@@ -851,8 +846,8 @@ public class InCallActivity extends TransactionSafeFragmentActivity
transaction.commitAllowingStateLoss();
dialpadFragmentManager.executePendingTransactions();
dialpadFragment.setUserVisibleHint(false);
+ getInCallOrRttCallScreen().onInCallScreenDialpadVisibilityChange(false);
}
- updateNavigationBar(false /* isDialpadVisible */);
}
public boolean isDialpadVisible() {
@@ -1183,23 +1178,6 @@ public class InCallActivity extends TransactionSafeFragmentActivity
fragment.show(getSupportFragmentManager(), Tags.RTT_REQUEST_DIALOG);
}
- @Override
- public void onMultiWindowModeChanged(boolean isInMultiWindowMode) {
- super.onMultiWindowModeChanged(isInMultiWindowMode);
- updateNavigationBar(isDialpadVisible());
- }
-
- private void updateNavigationBar(boolean isDialpadVisible) {
- if (isInMultiWindowMode()) {
- return;
- }
-
- View navigationBarBackground = getWindow().findViewById(R.id.navigation_bar_background);
- if (navigationBarBackground != null) {
- navigationBarBackground.setVisibility(isDialpadVisible ? View.VISIBLE : View.GONE);
- }
- }
-
public void setAllowOrientationChange(boolean allowOrientationChange) {
if (this.allowOrientationChange == allowOrientationChange) {
return;
diff --git a/java/com/android/incallui/incall/impl/InCallFragment.java b/java/com/android/incallui/incall/impl/InCallFragment.java
index 6f0ba60b8..85ae0bbb6 100644
--- a/java/com/android/incallui/incall/impl/InCallFragment.java
+++ b/java/com/android/incallui/incall/impl/InCallFragment.java
@@ -18,6 +18,7 @@ package com.android.incallui.incall.impl;
import android.Manifest.permission;
import android.annotation.SuppressLint;
+import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Bundle;
@@ -36,6 +37,7 @@ import android.view.View;
import android.view.View.OnAttachStateChangeListener;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.view.Window;
import android.view.accessibility.AccessibilityEvent;
import android.widget.ImageView;
import android.widget.RelativeLayout;
@@ -47,7 +49,6 @@ import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.Logger;
import com.android.dialer.multimedia.MultimediaData;
import com.android.dialer.strictmode.StrictModeUtils;
-import com.android.dialer.util.ViewUtil;
import com.android.dialer.widget.LockableViewPager;
import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment;
import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter;
@@ -179,8 +180,6 @@ public class InCallFragment extends Fragment
}
// TODO(a bug): Change to use corresponding phone type used for current call.
phoneType = getContext().getSystemService(TelephonyManager.class).getPhoneType();
- View space = view.findViewById(R.id.navigation_bar_background);
- space.getLayoutParams().height = ViewUtil.getNavigationBarHeight(getContext());
// Workaround to adjust padding for status bar and navigation bar since fitsSystemWindows
// doesn't work well when switching with other fragments.
@@ -395,6 +394,11 @@ public class InCallFragment extends Fragment
// Update the Android Button's state to isShowing.
inCallButtonGridFragment.onInCallScreenDialpadVisibilityChange(isShowing);
}
+ Activity activity = getActivity();
+ Window window = activity.getWindow();
+ window.setNavigationBarColor(
+ activity.getColor(
+ isShowing ? android.R.color.background_dark : android.R.color.transparent));
}
@Override
diff --git a/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml b/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml
index 7eb924500..9cc599dc7 100644
--- a/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml
+++ b/java/com/android/incallui/incall/impl/res/layout/frag_incall_voice.xml
@@ -125,11 +125,4 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"/>
- <FrameLayout
- android:id="@+id/navigation_bar_background"
- android:layout_width="match_parent"
- android:layout_height="0dp"
- android:layout_gravity="bottom"
- android:background="@android:color/background_dark"
- android:visibility="gone"/>
</FrameLayout>