Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 029d5877 authored by Daniel Sandler's avatar Daniel Sandler
Browse files

Hide navigation buttons when they are DISABLEd.

Back is hidden by DISABLE_BACK; Home, Recents, and Menu are
hidden by DISABLE_NAVIGATION.

Bug: 5261576
Bug: 5284740 (confusion about visible inactive icons)
Change-Id: I410c133b737cc11d61bac0318dc24458353ee7b3
parent f4b783f8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@
            android:clipChildren="false"
            android:clipToPadding="false"
            android:id="@+id/nav_buttons"
            android:animateLayoutChanges="true"
            >

            <!-- navigation controls -->
@@ -165,6 +166,7 @@
            android:clipChildren="false"
            android:clipToPadding="false"
            android:id="@+id/nav_buttons"
            android:animateLayoutChanges="true"
            >
            
            <!-- navigation controls -->
+10 −6
Original line number Diff line number Diff line
@@ -60,7 +60,6 @@ public class NavigationBarView extends LinearLayout {
    boolean mVertical;

    boolean mHidden, mLowProfile;
    boolean mEnabled = true;

    public View getRecentsButton() {
        return mCurrentView.findViewById(R.id.recent_apps);
@@ -93,11 +92,6 @@ public class NavigationBarView extends LinearLayout {
        mVertical = false;
    }

    public void setEnabled(final boolean enable) {
        mEnabled = enable;
        mCurrentView.setVisibility(enable ? View.VISIBLE : View.INVISIBLE);
    }

    View.OnTouchListener mLightsOutListener = new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent ev) {
@@ -116,6 +110,16 @@ public class NavigationBarView extends LinearLayout {
        }
    };

    public void setNavigationVisibility(int disabledFlags) {
        boolean disableNavigation = ((disabledFlags & View.STATUS_BAR_DISABLE_NAVIGATION) != 0);
        boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0);

        getBackButton()   .setVisibility(disableBack       ? View.INVISIBLE : View.VISIBLE);
        getHomeButton()   .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
        getRecentsButton().setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
        getMenuButton()   .setVisibility(disableNavigation ? View.INVISIBLE : View.VISIBLE);
    }

    public void setLowProfile(final boolean lightsOut) {
        setLowProfile(lightsOut, true);
    }
+2 −10
Original line number Diff line number Diff line
@@ -297,7 +297,7 @@ public class PhoneStatusBar extends StatusBar {
                mNavigationBarView = 
                    (NavigationBarView) View.inflate(context, R.layout.navigation_bar, null);

                mNavigationBarView.setEnabled((mDisabled & StatusBarManager.DISABLE_NAVIGATION) == 0);
                setNavigationVisibility(mDisabled);

                sb.setOnSystemUiVisibilityChangeListener(
                    new View.OnSystemUiVisibilityChangeListener() {
@@ -1129,15 +1129,7 @@ public class PhoneStatusBar extends StatusBar {
        Slog.i(TAG, "DISABLE_NAVIGATION: " + (disableNavigation ? "yes" : "no"));

        if (mNavigationBarView != null) {
            if (disableNavigation && disableBack) {
                mNavigationBarView.setEnabled(false);
            } else {
                mNavigationBarView.getBackButton().setEnabled(!disableBack);
                mNavigationBarView.getHomeButton().setEnabled(!disableNavigation);
                mNavigationBarView.getRecentsButton().setEnabled(!disableNavigation);

                mNavigationBarView.setEnabled(true);
            }
            mNavigationBarView.setNavigationVisibility(visibility);
        }

        if (disableNavigation) {
+6 −1
Original line number Diff line number Diff line
@@ -114,7 +114,7 @@ public class StatusBarTest extends TestActivity
//                v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
//            }
//        },
        new Test("DISABLE_NAVIGATION") {
        new Test("systemUiVisibility: STATUS_BAR_DISABLE_NAVIGATION") {
            public void run() {
                mListView.setSystemUiVisibility(View.STATUS_BAR_DISABLE_NAVIGATION);
            }
@@ -232,6 +232,11 @@ public class StatusBarTest extends TestActivity
                mStatusBarManager.disable(StatusBarManager.DISABLE_NAVIGATION);
            }
        },
        new Test("Disable Back") {
            public void run() {
                mStatusBarManager.disable(StatusBarManager.DISABLE_BACK);
            }
        },
        new Test("Disable Clock") {
            public void run() {
                mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK);