Properly generate systemUiVisibilityChanged callbacks.

User activity is supposed to immediately revert
HIDE_NAVIGATION, but we were just showing the navigation bar
directly. By routing through the service we'll generate
callbacks for everyone.

At long last, SYSTEM_UI_FLAG_HIDE_NAVIGATION will work like
lights out (now called SYSTEM_UI_FLAG_LOW_PROFILE) which
worked well enough in Honeycomb.

Bug: 5052456
Change-Id: I677f1295e1208c1aec48a4a9c8a6850916688388
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 8fc8448..da6bcd2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -2031,8 +2031,13 @@
     // The user is not allowed to get stuck without navigation UI. Upon the slightest user
     // interaction we bring the navigation back.
     public void userActivity() {
-        if (mNavigationBarView != null) {
-            mNavigationBarView.setHidden(false);
+        if (0 != (mSystemUiVisibility & View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)) {
+            try {
+                mBarService.setSystemUiVisibility(
+                    mSystemUiVisibility & ~View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
+            } catch (RemoteException ex) {
+                // weep softly
+            }
         }
     }