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

Commit b4961c6a authored by Tracy Zhou's avatar Tracy Zhou Committed by Android (Google) Code Review
Browse files

Merge "Pipe nav bar transitions logic into task bar" into main

parents b6cc1f15 3b4d8934
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ import android.os.Bundle;
import android.view.MotionEvent;
import com.android.systemui.shared.recents.ISystemUiProxy;

// Next ID: 29
// Next ID: 34
oneway interface IOverviewProxy {

    void onActiveNavBarRegionChanges(in Region activeRegion) = 11;
@@ -82,6 +82,11 @@ oneway interface IOverviewProxy {
     */
    void onSystemBarAttributesChanged(int displayId, int behavior) = 20;

    /**
     * Sent when {@link TaskbarDelegate#onTransitionModeUpdated} is called.
     */
    void onTransitionModeUpdated(int barMode, boolean checkBarModes) = 21;

    /**
     * Sent when the desired dark intensity of the nav buttons has changed
     */
@@ -101,4 +106,30 @@ oneway interface IOverviewProxy {
     * Sent when the task bar stash state is toggled.
     */
    void onTaskbarToggled() = 27;

    /**
     * Sent when the wallpaper visibility is updated.
     */
    void updateWallpaperVisibility(int displayId, boolean visible) = 29;

    /**
     * Sent when {@link TaskbarDelegate#checkNavBarModes} is called.
     */
    void checkNavBarModes() = 30;

    /**
     * Sent when {@link TaskbarDelegate#finishBarAnimations} is called.
     */
    void finishBarAnimations() = 31;

    /**
     * Sent when {@link TaskbarDelegate#touchAutoDim} is called. {@param reset} is true, when auto
     * dim is reset after a timeout.
     */
    void touchAutoDim(boolean reset) = 32;

    /**
     * Sent when {@link TaskbarDelegate#transitionTo} is called.
     */
    void transitionTo(int barMode, boolean animate) = 33;
}
+29 −12
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013 The Android Open Source Project
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
@@ -14,11 +14,13 @@
 * limitations under the License.
 */

package com.android.systemui.statusbar.phone;
package com.android.systemui.shared.statusbar.phone;

import android.annotation.ColorInt;
import android.annotation.IntDef;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
@@ -34,8 +36,6 @@ import android.util.Log;
import android.view.View;

import com.android.app.animation.Interpolators;
import com.android.settingslib.Utils;
import com.android.systemui.res.R;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -44,6 +44,11 @@ public class BarTransitions {
    private static final boolean DEBUG = false;
    private static final boolean DEBUG_COLORS = false;

    @ColorInt
    private static final int SYSTEM_BAR_BACKGROUND_OPAQUE = Color.BLACK;
    @ColorInt
    private static final int SYSTEM_BAR_BACKGROUND_TRANSPARENT = Color.TRANSPARENT;

    public static final int MODE_TRANSPARENT = 0;
    public static final int MODE_SEMI_TRANSPARENT = 1;
    public static final int MODE_TRANSLUCENT = 2;
@@ -183,11 +188,11 @@ public class BarTransitions {
                mTransparent = 0x2f0000ff;
                mWarning = 0xffff0000;
            } else {
                mOpaque = context.getColor(R.color.system_bar_background_opaque);
                mOpaque = SYSTEM_BAR_BACKGROUND_OPAQUE;
                mSemiTransparent = context.getColor(
                        com.android.internal.R.color.system_bar_background_semi_transparent);
                mTransparent = context.getColor(R.color.system_bar_background_transparent);
                mWarning = Utils.getColorAttrDefaultColor(context, android.R.attr.colorError);
                mTransparent = SYSTEM_BAR_BACKGROUND_TRANSPARENT;
                mWarning = getColorAttrDefaultColor(context, android.R.attr.colorError, 0);
            }
            mGradient = context.getDrawable(gradientResourceId);
        }
@@ -304,10 +309,13 @@ public class BarTransitions {
                            Interpolators.LINEAR.getInterpolation(t), 1));
                    mGradientAlpha = (int)(v * targetGradientAlpha + mGradientAlphaStart * (1 - v));
                    mColor = Color.argb(
                          (int)(v * Color.alpha(targetColor) + Color.alpha(mColorStart) * (1 - v)),
                            (int) (v * Color.alpha(targetColor) + Color.alpha(mColorStart) * (1
                                    - v)),
                            (int) (v * Color.red(targetColor) + Color.red(mColorStart) * (1 - v)),
                          (int)(v * Color.green(targetColor) + Color.green(mColorStart) * (1 - v)),
                          (int)(v * Color.blue(targetColor) + Color.blue(mColorStart) * (1 - v)));
                            (int) (v * Color.green(targetColor) + Color.green(mColorStart) * (1
                                    - v)),
                            (int) (v * Color.blue(targetColor) + Color.blue(mColorStart) * (1
                                    - v)));
                }
            }
            if (mGradientAlpha > 0) {
@@ -332,4 +340,13 @@ public class BarTransitions {
            }
        }
    }

    /** Get color styled attribute {@code attr}, default to {@code defValue} if not found. */
    @ColorInt
    public static int getColorAttrDefaultColor(Context context, int attr, @ColorInt int defValue) {
        TypedArray ta = context.obtainStyledAttributes(new int[] {attr});
        @ColorInt int colorAccent = ta.getColor(0, defValue);
        ta.recycle();
        return colorAccent;
    }
}
+6 −6
Original line number Diff line number Diff line
@@ -27,11 +27,11 @@ import static com.android.systemui.accessibility.SystemActions.SYSTEM_ACTION_ID_
import static com.android.systemui.accessibility.SystemActions.SYSTEM_ACTION_ID_ACCESSIBILITY_BUTTON_CHOOSER;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_CLICKABLE;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_A11Y_BUTTON_LONG_CLICKABLE;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_OPAQUE;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_TRANSPARENT;

import android.content.ContentResolver;
import android.content.Context;
@@ -74,10 +74,10 @@ import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.shared.rotation.RotationPolicyUtil;
import com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.policy.ConfigurationController;
import com.android.systemui.statusbar.policy.KeyguardStateController;
+3 −3
Original line number Diff line number Diff line
@@ -48,8 +48,8 @@ import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_I
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NAV_BAR_HIDDEN;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_SCREEN_PINNING;
import static com.android.systemui.shared.system.QuickStepContract.isGesturalMode;
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.MODE_OPAQUE;
import static com.android.systemui.shared.statusbar.phone.BarTransitions.TransitionMode;
import static com.android.systemui.statusbar.phone.CentralSurfaces.DEBUG_WINDOW_STATE;
import static com.android.systemui.statusbar.phone.CentralSurfaces.dumpBarTransitions;
import static com.android.systemui.util.Utils.isGesturalModeOnDefaultDisplay;
@@ -137,6 +137,7 @@ import com.android.systemui.shared.navigationbar.RegionSamplingHelper;
import com.android.systemui.shared.recents.utilities.Utilities;
import com.android.systemui.shared.rotation.RotationButtonController;
import com.android.systemui.shared.rotation.RotationPolicyUtil;
import com.android.systemui.shared.statusbar.phone.BarTransitions;
import com.android.systemui.shared.system.QuickStepContract;
import com.android.systemui.shared.system.SysUiStatsLog;
import com.android.systemui.shared.system.TaskStackChangeListener;
@@ -149,7 +150,6 @@ import com.android.systemui.statusbar.NotificationShadeDepthController;
import com.android.systemui.statusbar.StatusBarState;
import com.android.systemui.statusbar.notification.stack.StackStateAnimator;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.BarTransitions;
import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
+1 −1
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@ package com.android.systemui.navigationbar;
import androidx.annotation.Nullable;

import com.android.internal.statusbar.RegisterStatusBarResult;
import com.android.systemui.statusbar.phone.BarTransitions;
import com.android.systemui.shared.statusbar.phone.BarTransitions;

/** A controller to handle navigation bars. */
public interface NavigationBarController {
Loading