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

Commit 3e8f5a2c authored by Daniel Sandler's avatar Daniel Sandler
Browse files

Hide navigation buttons and clock on lockscreen.

(This introduces a StatusBarManager disable flag to ask the
status bar to hide just the clock, which might be useful in
other situations, such as clock/dock apps.)

Bug: 3130393
Change-Id: Ia08627508518e2ed3713ffbf856e4ec42952b3a8
parent bcdf40b4
Loading
Loading
Loading
Loading
+7 −1
Original line number Original line Diff line number Diff line
@@ -61,10 +61,16 @@ public class StatusBarManager {


    /**
    /**
     * Flag for {@link #disable} to hide only the navigation buttons.  Don't use this
     * Flag for {@link #disable} to hide only the navigation buttons.  Don't use this
     * unless you're the setup wizard.
     * unless you're a special part of the system UI (i.e., setup wizard, keyguard).
     */
     */
    public static final int DISABLE_NAVIGATION = 0x00000020;
    public static final int DISABLE_NAVIGATION = 0x00000020;


    /**
     * Flag for {@link #disable} to hide only the clock.  You might use this if your activity has
     * its own clock making the status bar's clock redundant.
     */
    public static final int DISABLE_CLOCK = 0x00000040;



    /**
    /**
     * Re-enable all of the status bar features that you've disabled.
     * Re-enable all of the status bar features that you've disabled.
+16 −1
Original line number Original line Diff line number Diff line
@@ -76,8 +76,23 @@
                        android:textColor="#2e2e2e" />
                        android:textColor="#2e2e2e" />
                </com.android.systemui.statusbar.tablet.HoloClock>
                </com.android.systemui.statusbar.tablet.HoloClock>


                <TextView
                    android:id="@+id/network_text"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_marginTop="12dp"
                    android:layout_marginRight="6dip"
                    android:layout_marginLeft="6dip"
                    android:gravity="center"
                    android:singleLine="true"
                    android:visibility="gone"
                    android:textSize="14dip"
                    android:textColor="#606060"
                    />

                <LinearLayout
                <LinearLayout
                    android:layout_width="48dip"
                    android:id="@+id/signal_battery_cluster"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="horizontal"
                    android:orientation="horizontal"
                    android:gravity="center"
                    android:gravity="center"
+18 −0
Original line number Original line Diff line number Diff line
@@ -165,6 +165,8 @@ public class TabletStatusBar extends StatusBar {
                (ImageView)mNotificationPanel.findViewById(R.id.network_type));
                (ImageView)mNotificationPanel.findViewById(R.id.network_type));
        mNetworkController.addLabelView(
        mNetworkController.addLabelView(
                (TextView)mNotificationPanel.findViewById(R.id.network_text));
                (TextView)mNotificationPanel.findViewById(R.id.network_text));
        mNetworkController.addLabelView(
                (TextView)mBarContents.findViewById(R.id.network_text));


        mStatusBarView.setIgnoreChildren(0, mNotificationTrigger, mNotificationPanel);
        mStatusBarView.setIgnoreChildren(0, mNotificationTrigger, mNotificationPanel);


@@ -579,12 +581,28 @@ public class TabletStatusBar extends StatusBar {
        setAreThereNotifications();
        setAreThereNotifications();
    }
    }


    public void showClock(boolean show) {
        View clock = mBarContents.findViewById(R.id.clock);
        View network_text = mBarContents.findViewById(R.id.network_text);
        if (clock != null) {
            clock.setVisibility(show ? View.VISIBLE : View.GONE);
        }
        if (network_text != null) {
            network_text.setVisibility((!show) ? View.VISIBLE : View.GONE);
        }
    }

    public void disable(int state) {
    public void disable(int state) {
        int old = mDisabled;
        int old = mDisabled;
        int diff = state ^ old;
        int diff = state ^ old;
        mDisabled = state;
        mDisabled = state;


        // act accordingly
        // act accordingly
        if ((diff & StatusBarManager.DISABLE_CLOCK) != 0) {
            boolean show = (state & StatusBarManager.DISABLE_CLOCK) == 0;
            Slog.d(TAG, "DISABLE_CLOCK: " + (show ? "no" : "yes"));
            showClock(show);
        }
        if ((diff & StatusBarManager.DISABLE_EXPAND) != 0) {
        if ((diff & StatusBarManager.DISABLE_EXPAND) != 0) {
            if ((state & StatusBarManager.DISABLE_EXPAND) != 0) {
            if ((state & StatusBarManager.DISABLE_EXPAND) != 0) {
                Slog.d(TAG, "DISABLE_EXPAND: yes");
                Slog.d(TAG, "DISABLE_EXPAND: yes");
+3 −1
Original line number Original line Diff line number Diff line
@@ -1100,7 +1100,9 @@ public class KeyguardViewMediator implements KeyguardViewCallback,
            boolean enable = !mShowing || (mHidden && !isSecure());
            boolean enable = !mShowing || (mHidden && !isSecure());
            mStatusBarManager.disable(enable ?
            mStatusBarManager.disable(enable ?
                         StatusBarManager.DISABLE_NONE :
                         StatusBarManager.DISABLE_NONE :
                         StatusBarManager.DISABLE_EXPAND);
                         ( StatusBarManager.DISABLE_EXPAND
                         | StatusBarManager.DISABLE_NAVIGATION
                         | StatusBarManager.DISABLE_CLOCK));
        }
        }
    }
    }


+7 −6
Original line number Original line Diff line number Diff line
@@ -173,22 +173,23 @@ public class StatusBarTest extends TestActivity
                mStatusBarManager.disable(StatusBarManager.DISABLE_NAVIGATION);
                mStatusBarManager.disable(StatusBarManager.DISABLE_NAVIGATION);
            }
            }
        },
        },
        new Test("Disable Clock") {
            public void run() {
                mStatusBarManager.disable(StatusBarManager.DISABLE_CLOCK);
            }
        },
        new Test("Disable everything in 3 sec") {
        new Test("Disable everything in 3 sec") {
            public void run() {
            public void run() {
                mHandler.postDelayed(new Runnable() {
                mHandler.postDelayed(new Runnable() {
                        public void run() {
                        public void run() {
                            mStatusBarManager.disable(StatusBarManager.DISABLE_EXPAND
                            mStatusBarManager.disable(~StatusBarManager.DISABLE_NONE);
                                    | StatusBarManager.DISABLE_NOTIFICATION_ICONS
                                    | StatusBarManager.DISABLE_NOTIFICATION_ALERTS
                                    | StatusBarManager.DISABLE_SYSTEM_INFO
                                    | StatusBarManager.DISABLE_NAVIGATION);
                        }
                        }
                    }, 3000);
                    }, 3000);
            }
            }
        },
        },
        new Test("Enable everything") {
        new Test("Enable everything") {
            public void run() {
            public void run() {
                mStatusBarManager.disable(0);
                mStatusBarManager.disable(StatusBarManager.DISABLE_NONE);
            }
            }
        },
        },
        new Test("Enable everything in 3 sec.") {
        new Test("Enable everything in 3 sec.") {