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

Commit f1d034fe authored by Tiger's avatar Tiger Committed by Tiger Huang
Browse files

Make nav bar color transparent by default if targetSdk >= 35

Apps can still control the navigation bar color. The default color would
only be applied if the color is not set.

Bug: 232195501
Test: Open Pixel Logger and see if navigation bar is transparent.
Change-Id: Iea3cb39bea1a8595bad903266ebd7ebffe48d1c6
parent 520c9b33
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -40,6 +40,9 @@ import android.annotation.UiContext;
import android.app.ActivityManager;
import android.app.KeyguardManager;
import android.app.SearchManager;
import android.app.compat.CompatChanges;
import android.compat.annotation.ChangeId;
import android.compat.annotation.EnabledSince;
import android.compat.annotation.UnsupportedAppUsage;
import android.content.Context;
import android.content.Intent;
@@ -123,6 +126,7 @@ import com.android.internal.view.menu.MenuHelper;
import com.android.internal.view.menu.MenuPresenter;
import com.android.internal.view.menu.MenuView;
import com.android.internal.widget.DecorContentParent;
import com.android.window.flags.Flags;

import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -162,6 +166,14 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {

    private final static int DEFAULT_BACKGROUND_FADE_DURATION_MS = 300;

    /**
     * Makes navigation bar color transparent by default if the target SDK is
     * {@link Build.VERSION_CODES#VANILLA_ICE_CREAM} or above.
     */
    @ChangeId
    @EnabledSince(targetSdkVersion = Build.VERSION_CODES.VANILLA_ICE_CREAM)
    private static final long NAV_BAR_COLOR_DEFAULT_TRANSPARENT = 232195501L;

    private static final int CUSTOM_TITLE_COMPATIBLE_FEATURES = DEFAULT_FEATURES |
            (1 << FEATURE_CUSTOM_TITLE) |
            (1 << FEATURE_CONTENT_TRANSITIONS) |
@@ -2525,6 +2537,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {

            mNavigationBarColor =
                    navBarColor == navBarDefaultColor
                            && !(CompatChanges.isChangeEnabled(NAV_BAR_COLOR_DEFAULT_TRANSPARENT)
                                    && Flags.navBarTransparentByDefault())
                            && !context.getResources().getBoolean(
                                    R.bool.config_navBarDefaultTransparent)
                    ? navBarCompatibleColor