summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java19
1 files changed, 13 insertions, 6 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
index db58e1364b3..339eceeddd0 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarInflaterView.java
@@ -21,10 +21,11 @@ import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;
import android.annotation.Nullable;
import android.app.ActivityManager;
import android.content.Context;
-import android.content.om.OverlayManager;
+import android.content.om.IOverlayManager;
import android.content.res.Configuration;
import android.graphics.drawable.Icon;
-import android.os.UserHandle;
+import android.os.RemoteException;
+import android.os.ServiceManager;
import android.util.AttributeSet;
import android.util.Log;
import android.util.SparseArray;
@@ -264,12 +265,18 @@ public class NavigationBarInflaterView extends FrameLayout
}
private void updateHint() {
+ final IOverlayManager iom = IOverlayManager.Stub.asInterface(
+ ServiceManager.getService(Context.OVERLAY_SERVICE));
final boolean state = mNavBarMode == NAV_BAR_MODE_GESTURAL && !mIsHintEnabled;
- UserHandle userId = UserHandle.of(ActivityManager.getCurrentUser());
+ final int userId = ActivityManager.getCurrentUser();
try {
- mContext.getSystemService(OverlayManager.class).setEnabled(
- OVERLAY_NAVIGATION_HIDE_HINT, state, userId);
- } catch (Exception e) {
+ iom.setEnabled(OVERLAY_NAVIGATION_HIDE_HINT, state, userId);
+ if (state) {
+ // As overlays are also used to apply navigation mode, it is needed to set
+ // our customization overlay to highest priority to ensure it is applied.
+ iom.setHighestPriority(OVERLAY_NAVIGATION_HIDE_HINT, userId);
+ }
+ } catch (RemoteException e) {
Log.e(TAG, "Failed to " + (state ? "enable" : "disable")
+ " overlay " + OVERLAY_NAVIGATION_HIDE_HINT + " for user " + userId);
}