Loading packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java +7 −1 Original line number Diff line number Diff line Loading @@ -32,9 +32,11 @@ import android.view.View; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.navigationbar.buttons.ButtonDispatcher; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.LightBarTransitionsController; import com.android.systemui.statusbar.policy.KeyguardStateController; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -83,7 +85,11 @@ public final class NavigationBarTransitions extends BarTransitions implements super(view, R.drawable.nav_background); mView = view; mLightTransitionsController = new LightBarTransitionsController( view.getContext(), this, commandQueue); view.getContext(), this, commandQueue, Dependency.get(KeyguardStateController.class), Dependency.get(StatusBarStateController.class)); mAllowAutoDimWallpaperNotVisible = view.getContext().getResources() .getBoolean(R.bool.config_navigation_bar_enable_auto_dim_no_visible_wallpaper); mDarkIntensityListeners = new ArrayList(); Loading packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +20 −16 Original line number Diff line number Diff line Loading @@ -55,8 +55,8 @@ import android.view.WindowInsetsController.Behavior; import androidx.annotation.NonNull; import com.android.internal.view.AppearanceRegion; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; Loading @@ -78,9 +78,9 @@ import java.util.Optional; import java.util.function.Consumer; import javax.inject.Inject; import javax.inject.Singleton; @Singleton /** */ @SysUISingleton public class TaskbarDelegate implements CommandQueue.Callbacks, OverviewProxyService.OverviewProxyListener, NavigationModeController.ModeChangedListener, ComponentCallbacks, Dumpable { Loading @@ -88,6 +88,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private final EdgeBackGestureHandler mEdgeBackGestureHandler; private final NavigationBarOverlayController mNavBarOverlayController; private final LightBarTransitionsController.Factory mLightBarTransitionsControllerFactory; private boolean mInitialized; private CommandQueue mCommandQueue; private OverviewProxyService mOverviewProxyService; Loading Loading @@ -154,10 +155,15 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private BackAnimation mBackAnimation; @Inject public TaskbarDelegate(Context context) { mEdgeBackGestureHandler = Dependency.get(EdgeBackGestureHandler.Factory.class) .create(context); mNavBarOverlayController = Dependency.get(NavigationBarOverlayController.class); public TaskbarDelegate( Context context, EdgeBackGestureHandler.Factory edgeBackGestureHandlerFactory, NavigationBarOverlayController navigationBarOverlayController, LightBarTransitionsController.Factory lightBarTransitionsControllerFactory ) { mLightBarTransitionsControllerFactory = lightBarTransitionsControllerFactory; mEdgeBackGestureHandler = edgeBackGestureHandlerFactory.create(context); mNavBarOverlayController = navigationBarOverlayController; if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.init(mNavbarOverlayVisibilityChangeCallback, mEdgeBackGestureHandler::updateNavigationBarOverlayExcludeRegion); Loading Loading @@ -185,14 +191,15 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, dumpManager.registerDumpable(this); mAutoHideController = autoHideController; mLightBarController = lightBarController; mLightBarTransitionsController = createLightBarTransitionsController(); mPipOptional = pipOptional; mBackAnimation = backAnimation; mLightBarTransitionsController = createLightBarTransitionsController(); } // Separated into a method to keep setDependencies() clean/readable. private LightBarTransitionsController createLightBarTransitionsController() { return new LightBarTransitionsController(mContext, LightBarTransitionsController controller = mLightBarTransitionsControllerFactory.create( new LightBarTransitionsController.DarkIntensityApplier() { @Override public void applyDarkIntensity(float darkIntensity) { Loading @@ -203,13 +210,10 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, public int getTintAnimationDuration() { return LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION; } }, mCommandQueue) { @Override public boolean supportsIconTintForNavMode(int navigationMode) { // Always tint taskbar nav buttons (region sampling handles gesture bar separately). return true; } }; }); controller.overrideIconTintForNavMode(true); return controller; } public void init(int displayId) { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java +2 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.widget.ImageView; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.statusbar.CommandQueue; import java.io.PrintWriter; import java.util.ArrayList; Loading @@ -53,12 +52,12 @@ public class DarkIconDispatcherImpl implements SysuiDarkIconDispatcher, @Inject public DarkIconDispatcherImpl( Context context, CommandQueue commandQueue, LightBarTransitionsController.Factory lightBarTransitionsControllerFactory, DumpManager dumpManager) { mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone); mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone); mTransitionsController = new LightBarTransitionsController(context, this, commandQueue); mTransitionsController = lightBarTransitionsControllerFactory.create(this); dumpManager.registerDumpable(getClass().getSimpleName(), this); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java +30 −6 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.os.SystemClock; import android.util.MathUtils; import android.util.TimeUtils; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.animation.Interpolators; import com.android.systemui.plugins.statusbar.StatusBarStateController; Loading @@ -35,6 +34,10 @@ import com.android.systemui.statusbar.policy.KeyguardStateController; import java.io.PrintWriter; import dagger.assisted.Assisted; import dagger.assisted.AssistedFactory; import dagger.assisted.AssistedInject; /** * Class to control all aspects about light bar changes. */ Loading Loading @@ -69,13 +72,19 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, }; private final Context mContext; private Boolean mOverrideIconTintForNavMode; public LightBarTransitionsController(Context context, DarkIntensityApplier applier, CommandQueue commandQueue) { @AssistedInject public LightBarTransitionsController( Context context, @Assisted DarkIntensityApplier applier, CommandQueue commandQueue, KeyguardStateController keyguardStateController, StatusBarStateController statusBarStateController) { mApplier = applier; mHandler = new Handler(); mKeyguardStateController = Dependency.get(KeyguardStateController.class); mStatusBarStateController = Dependency.get(StatusBarStateController.class); mKeyguardStateController = keyguardStateController; mStatusBarStateController = statusBarStateController; mCommandQueue = commandQueue; mCommandQueue.addCallback(this); mStatusBarStateController.addCallback(this); Loading Loading @@ -229,12 +238,20 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, dispatchDark(); } /** * Specify an override value to return for {@link #overrideIconTintForNavMode(boolean)}. */ public void overrideIconTintForNavMode(boolean overrideValue) { mOverrideIconTintForNavMode = overrideValue; } /** * Return whether to use the tint calculated in this class for nav icons. */ public boolean supportsIconTintForNavMode(int navigationMode) { // In gesture mode, we already do region sampling to update tint based on content beneath. return !QuickStepContract.isGesturalMode(navigationMode); return mOverrideIconTintForNavMode != null ? mOverrideIconTintForNavMode : !QuickStepContract.isGesturalMode(navigationMode); } /** Loading @@ -244,4 +261,11 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, void applyDarkIntensity(float darkIntensity); int getTintAnimationDuration(); } /** Injectable factory for construction a LightBarTransitionsController. */ @AssistedFactory public interface Factory { /** */ LightBarTransitionsController create(DarkIntensityApplier darkIntensityApplier); } } packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarTransitionsControllerTest.java +6 −3 Original line number Diff line number Diff line Loading @@ -45,15 +45,18 @@ public class LightBarTransitionsControllerTest extends SysuiTestCase { @Mock private DarkIntensityApplier mApplier; @Mock private KeyguardStateController mKeyguardStateController; @Mock private StatusBarStateController mStatusBarStateController; private LightBarTransitionsController mLightBarTransitionsController; @Before public void setup() { MockitoAnnotations.initMocks(this); mDependency.injectMockDependency(KeyguardStateController.class); mDependency.injectMockDependency(StatusBarStateController.class); mLightBarTransitionsController = new LightBarTransitionsController(mContext, mApplier, new CommandQueue(mContext)); new CommandQueue(mContext), mKeyguardStateController, mStatusBarStateController); } @Test Loading Loading
packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarTransitions.java +7 −1 Original line number Diff line number Diff line Loading @@ -32,9 +32,11 @@ import android.view.View; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.navigationbar.buttons.ButtonDispatcher; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.LightBarTransitionsController; import com.android.systemui.statusbar.policy.KeyguardStateController; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -83,7 +85,11 @@ public final class NavigationBarTransitions extends BarTransitions implements super(view, R.drawable.nav_background); mView = view; mLightTransitionsController = new LightBarTransitionsController( view.getContext(), this, commandQueue); view.getContext(), this, commandQueue, Dependency.get(KeyguardStateController.class), Dependency.get(StatusBarStateController.class)); mAllowAutoDimWallpaperNotVisible = view.getContext().getResources() .getBoolean(R.bool.config_navigation_bar_enable_auto_dim_no_visible_wallpaper); mDarkIntensityListeners = new ArrayList(); Loading
packages/SystemUI/src/com/android/systemui/navigationbar/TaskbarDelegate.java +20 −16 Original line number Diff line number Diff line Loading @@ -55,8 +55,8 @@ import android.view.WindowInsetsController.Behavior; import androidx.annotation.NonNull; import com.android.internal.view.AppearanceRegion; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler; Loading @@ -78,9 +78,9 @@ import java.util.Optional; import java.util.function.Consumer; import javax.inject.Inject; import javax.inject.Singleton; @Singleton /** */ @SysUISingleton public class TaskbarDelegate implements CommandQueue.Callbacks, OverviewProxyService.OverviewProxyListener, NavigationModeController.ModeChangedListener, ComponentCallbacks, Dumpable { Loading @@ -88,6 +88,7 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private final EdgeBackGestureHandler mEdgeBackGestureHandler; private final NavigationBarOverlayController mNavBarOverlayController; private final LightBarTransitionsController.Factory mLightBarTransitionsControllerFactory; private boolean mInitialized; private CommandQueue mCommandQueue; private OverviewProxyService mOverviewProxyService; Loading Loading @@ -154,10 +155,15 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, private BackAnimation mBackAnimation; @Inject public TaskbarDelegate(Context context) { mEdgeBackGestureHandler = Dependency.get(EdgeBackGestureHandler.Factory.class) .create(context); mNavBarOverlayController = Dependency.get(NavigationBarOverlayController.class); public TaskbarDelegate( Context context, EdgeBackGestureHandler.Factory edgeBackGestureHandlerFactory, NavigationBarOverlayController navigationBarOverlayController, LightBarTransitionsController.Factory lightBarTransitionsControllerFactory ) { mLightBarTransitionsControllerFactory = lightBarTransitionsControllerFactory; mEdgeBackGestureHandler = edgeBackGestureHandlerFactory.create(context); mNavBarOverlayController = navigationBarOverlayController; if (mNavBarOverlayController.isNavigationBarOverlayEnabled()) { mNavBarOverlayController.init(mNavbarOverlayVisibilityChangeCallback, mEdgeBackGestureHandler::updateNavigationBarOverlayExcludeRegion); Loading Loading @@ -185,14 +191,15 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, dumpManager.registerDumpable(this); mAutoHideController = autoHideController; mLightBarController = lightBarController; mLightBarTransitionsController = createLightBarTransitionsController(); mPipOptional = pipOptional; mBackAnimation = backAnimation; mLightBarTransitionsController = createLightBarTransitionsController(); } // Separated into a method to keep setDependencies() clean/readable. private LightBarTransitionsController createLightBarTransitionsController() { return new LightBarTransitionsController(mContext, LightBarTransitionsController controller = mLightBarTransitionsControllerFactory.create( new LightBarTransitionsController.DarkIntensityApplier() { @Override public void applyDarkIntensity(float darkIntensity) { Loading @@ -203,13 +210,10 @@ public class TaskbarDelegate implements CommandQueue.Callbacks, public int getTintAnimationDuration() { return LightBarTransitionsController.DEFAULT_TINT_ANIMATION_DURATION; } }, mCommandQueue) { @Override public boolean supportsIconTintForNavMode(int navigationMode) { // Always tint taskbar nav buttons (region sampling handles gesture bar separately). return true; } }; }); controller.overrideIconTintForNavMode(true); return controller; } public void init(int displayId) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/DarkIconDispatcherImpl.java +2 −3 Original line number Diff line number Diff line Loading @@ -26,7 +26,6 @@ import android.widget.ImageView; import com.android.systemui.R; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dump.DumpManager; import com.android.systemui.statusbar.CommandQueue; import java.io.PrintWriter; import java.util.ArrayList; Loading @@ -53,12 +52,12 @@ public class DarkIconDispatcherImpl implements SysuiDarkIconDispatcher, @Inject public DarkIconDispatcherImpl( Context context, CommandQueue commandQueue, LightBarTransitionsController.Factory lightBarTransitionsControllerFactory, DumpManager dumpManager) { mDarkModeIconColorSingleTone = context.getColor(R.color.dark_mode_icon_color_single_tone); mLightModeIconColorSingleTone = context.getColor(R.color.light_mode_icon_color_single_tone); mTransitionsController = new LightBarTransitionsController(context, this, commandQueue); mTransitionsController = lightBarTransitionsControllerFactory.create(this); dumpManager.registerDumpable(getClass().getSimpleName(), this); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarTransitionsController.java +30 −6 Original line number Diff line number Diff line Loading @@ -24,7 +24,6 @@ import android.os.SystemClock; import android.util.MathUtils; import android.util.TimeUtils; import com.android.systemui.Dependency; import com.android.systemui.Dumpable; import com.android.systemui.animation.Interpolators; import com.android.systemui.plugins.statusbar.StatusBarStateController; Loading @@ -35,6 +34,10 @@ import com.android.systemui.statusbar.policy.KeyguardStateController; import java.io.PrintWriter; import dagger.assisted.Assisted; import dagger.assisted.AssistedFactory; import dagger.assisted.AssistedInject; /** * Class to control all aspects about light bar changes. */ Loading Loading @@ -69,13 +72,19 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, }; private final Context mContext; private Boolean mOverrideIconTintForNavMode; public LightBarTransitionsController(Context context, DarkIntensityApplier applier, CommandQueue commandQueue) { @AssistedInject public LightBarTransitionsController( Context context, @Assisted DarkIntensityApplier applier, CommandQueue commandQueue, KeyguardStateController keyguardStateController, StatusBarStateController statusBarStateController) { mApplier = applier; mHandler = new Handler(); mKeyguardStateController = Dependency.get(KeyguardStateController.class); mStatusBarStateController = Dependency.get(StatusBarStateController.class); mKeyguardStateController = keyguardStateController; mStatusBarStateController = statusBarStateController; mCommandQueue = commandQueue; mCommandQueue.addCallback(this); mStatusBarStateController.addCallback(this); Loading Loading @@ -229,12 +238,20 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, dispatchDark(); } /** * Specify an override value to return for {@link #overrideIconTintForNavMode(boolean)}. */ public void overrideIconTintForNavMode(boolean overrideValue) { mOverrideIconTintForNavMode = overrideValue; } /** * Return whether to use the tint calculated in this class for nav icons. */ public boolean supportsIconTintForNavMode(int navigationMode) { // In gesture mode, we already do region sampling to update tint based on content beneath. return !QuickStepContract.isGesturalMode(navigationMode); return mOverrideIconTintForNavMode != null ? mOverrideIconTintForNavMode : !QuickStepContract.isGesturalMode(navigationMode); } /** Loading @@ -244,4 +261,11 @@ public class LightBarTransitionsController implements Dumpable, Callbacks, void applyDarkIntensity(float darkIntensity); int getTintAnimationDuration(); } /** Injectable factory for construction a LightBarTransitionsController. */ @AssistedFactory public interface Factory { /** */ LightBarTransitionsController create(DarkIntensityApplier darkIntensityApplier); } }
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/LightBarTransitionsControllerTest.java +6 −3 Original line number Diff line number Diff line Loading @@ -45,15 +45,18 @@ public class LightBarTransitionsControllerTest extends SysuiTestCase { @Mock private DarkIntensityApplier mApplier; @Mock private KeyguardStateController mKeyguardStateController; @Mock private StatusBarStateController mStatusBarStateController; private LightBarTransitionsController mLightBarTransitionsController; @Before public void setup() { MockitoAnnotations.initMocks(this); mDependency.injectMockDependency(KeyguardStateController.class); mDependency.injectMockDependency(StatusBarStateController.class); mLightBarTransitionsController = new LightBarTransitionsController(mContext, mApplier, new CommandQueue(mContext)); new CommandQueue(mContext), mKeyguardStateController, mStatusBarStateController); } @Test Loading