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

Commit 4091ecb7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "SystemUI: Disable alternate nav bar in car mode" into nyc-mr1-dev

parents e4865bcb 01915a1a
Loading
Loading
Loading
Loading
+26 −16
Original line number Diff line number Diff line
@@ -59,6 +59,8 @@ public class NavigationBarView extends LinearLayout {
    // slippery nav bar when everything is disabled, e.g. during setup
    final static boolean SLIPPERY_WHEN_DISABLED = true;

    final static boolean ALTERNATE_CAR_MODE_UI = false;

    final Display mDisplay;
    View mCurrentView = null;
    View[] mRotatedViews = new View[4];
@@ -94,7 +96,8 @@ public class NavigationBarView extends LinearLayout {
    private OnVerticalChangedListener mOnVerticalChangedListener;
    private boolean mLayoutTransitionsEnabled = true;
    private boolean mWakeAndUnlocking;
    private boolean mCarMode = false;
    private boolean mUseCarModeUi = false;
    private boolean mInCarMode = false;
    private boolean mDockedStackExists;

    private final SparseArray<ButtonDispatcher> mButtonDisatchers = new SparseArray<>();
@@ -290,9 +293,11 @@ public class NavigationBarView extends LinearLayout {
            mMenuIcon = ctx.getDrawable(R.drawable.ic_sysbar_menu);
            mImeIcon = ctx.getDrawable(R.drawable.ic_ime_switcher_default);

            if (ALTERNATE_CAR_MODE_UI) {
                updateCarModeIcons(ctx);
            }
        }
    }

    @Override
    public void setLayoutDirection(int layoutDirection) {
@@ -341,14 +346,14 @@ public class NavigationBarView extends LinearLayout {
        // carmode, respectively. Recents are not available in CarMode in nav bar so change
        // to recent icon is not required.
        Drawable backIcon = (backAlt)
                ? getBackIconWithAlt(mCarMode, mVertical)
                : getBackIcon(mCarMode, mVertical);
                ? getBackIconWithAlt(mUseCarModeUi, mVertical)
                : getBackIcon(mUseCarModeUi, mVertical);

        getBackButton().setImageDrawable(backIcon);

        updateRecentsIcon();

        if (mCarMode) {
        if (mUseCarModeUi) {
            getHomeButton().setImageDrawable(mHomeCarModeIcon);
        } else {
            getHomeButton().setImageDrawable(mHomeDefaultIcon);
@@ -376,9 +381,9 @@ public class NavigationBarView extends LinearLayout {

        final boolean disableHome = ((disabledFlags & View.STATUS_BAR_DISABLE_HOME) != 0);

        // Disable recents always in car mode.
        boolean disableRecent = (
                mCarMode || (disabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0);
        // Always disable recents when alternate car mode UI is active.
        boolean disableRecent = mUseCarModeUi
                        || ((disabledFlags & View.STATUS_BAR_DISABLE_RECENT) != 0);
        final boolean disableBack = ((disabledFlags & View.STATUS_BAR_DISABLE_BACK) != 0)
                && ((mNavigationIconHints & StatusBarManager.NAVIGATION_HINT_BACK_ALT) == 0);
        final boolean disableSearch = ((disabledFlags & View.STATUS_BAR_DISABLE_SEARCH) != 0);
@@ -623,14 +628,19 @@ public class NavigationBarView extends LinearLayout {
        boolean uiCarModeChanged = false;
        if (newConfig != null) {
            int uiMode = newConfig.uiMode & Configuration.UI_MODE_TYPE_MASK;
            if (mCarMode && uiMode != Configuration.UI_MODE_TYPE_CAR) {
                mCarMode = false;
                uiCarModeChanged = true;
                getHomeButton().setCarMode(mCarMode);
            } else if (uiMode == Configuration.UI_MODE_TYPE_CAR) {
                mCarMode = true;
            final boolean isCarMode = (uiMode == Configuration.UI_MODE_TYPE_CAR);

            if (isCarMode != mInCarMode) {
                mInCarMode = isCarMode;
                getHomeButton().setCarMode(isCarMode);

                if (ALTERNATE_CAR_MODE_UI) {
                    mUseCarModeUi = isCarMode;
                    uiCarModeChanged = true;
                getHomeButton().setCarMode(mCarMode);
                } else {
                    // Don't use car mode behavior if ALTERNATE_CAR_MODE_UI not set.
                    mUseCarModeUi = false;
                }
            }
        }
        return uiCarModeChanged;
+21 −17
Original line number Diff line number Diff line
@@ -182,6 +182,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    // No longer recommended for desk docks;
    static final boolean ENABLE_DESK_DOCK_HOME_CAPTURE = false;

    static final boolean ALTERNATE_CAR_MODE_NAV_SIZE = false;

    static final int SHORT_PRESS_POWER_NOTHING = 0;
    static final int SHORT_PRESS_POWER_GO_TO_SLEEP = 1;
    static final int SHORT_PRESS_POWER_REALLY_GO_TO_SLEEP = 2;
@@ -2336,6 +2338,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
        mNavigationBarWidthForRotationDefault[mSeascapeRotation] =
                res.getDimensionPixelSize(com.android.internal.R.dimen.navigation_bar_width);

        if (ALTERNATE_CAR_MODE_NAV_SIZE) {
            // Height of the navigation bar when presented horizontally at bottom
            mNavigationBarHeightForRotationInCarMode[mPortraitRotation] =
            mNavigationBarHeightForRotationInCarMode[mUpsideDownRotation] =
@@ -2353,6 +2356,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
                    res.getDimensionPixelSize(
                            com.android.internal.R.dimen.navigation_bar_width_car_mode);
        }
    }

    /** {@inheritDoc} */
    @Override
@@ -2483,7 +2487,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    }

    private int getNavigationBarWidth(int rotation, int uiMode) {
        if ((uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
        if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
            return mNavigationBarWidthForRotationInCarMode[rotation];
        } else {
            return mNavigationBarWidthForRotationDefault[rotation];
@@ -2504,7 +2508,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
    }

    private int getNavigationBarHeight(int rotation, int uiMode) {
        if ((uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
        if (ALTERNATE_CAR_MODE_NAV_SIZE && (uiMode & UI_MODE_TYPE_MASK) == UI_MODE_TYPE_CAR) {
            return mNavigationBarHeightForRotationInCarMode[rotation];
        } else {
            return mNavigationBarHeightForRotationDefault[rotation];