Loading packages/SystemUI/src/com/android/systemui/Dependency.java +4 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.os.HandlerThread; import android.os.Looper; import android.os.Process; import android.util.ArrayMap; import android.view.IWindowManager; import android.view.WindowManagerGlobal; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.NightDisplayController; Loading Loading @@ -304,6 +306,8 @@ public class Dependency extends SystemUI { mProviders.put(LightBarController.class, () -> new LightBarController(mContext)); mProviders.put(IWindowManager.class, () -> WindowManagerGlobal.getWindowManagerService()); // Put all dependencies above here so the factory can override them if it wants. SystemUIFactory.getInstance().injectDependencies(mProviders, mContext); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java +25 −2 Original line number Diff line number Diff line Loading @@ -17,12 +17,19 @@ package com.android.systemui.statusbar.phone; import android.content.Context; import android.os.Handler; import android.os.RemoteException; import android.os.ServiceManager; import android.util.SparseArray; import android.view.Display; import android.view.IWallpaperVisibilityListener; import android.view.IWindowManager; import android.view.MotionEvent; import android.view.View; import android.view.WindowManagerGlobal; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.Dependency; import com.android.systemui.R; public final class NavigationBarTransitions extends BarTransitions { Loading @@ -30,6 +37,7 @@ public final class NavigationBarTransitions extends BarTransitions { private final NavigationBarView mView; private final IStatusBarService mBarService; private final LightBarTransitionsController mLightTransitionsController; private boolean mWallpaperVisible; private boolean mLightsOut; private boolean mAutoDim; Loading @@ -41,6 +49,21 @@ public final class NavigationBarTransitions extends BarTransitions { ServiceManager.getService(Context.STATUS_BAR_SERVICE)); mLightTransitionsController = new LightBarTransitionsController(view.getContext(), this::applyDarkIntensity); IWindowManager windowManagerService = Dependency.get(IWindowManager.class); Handler handler = Handler.getMain(); try { mWallpaperVisible = windowManagerService.registerWallpaperVisibilityListener( new IWallpaperVisibilityListener.Stub() { @Override public void onWallpaperVisibilityChanged(boolean newVisibility, int displayId) throws RemoteException { mWallpaperVisible = newVisibility; handler.post(() -> applyLightsOut(true, false)); } }, Display.DEFAULT_DISPLAY); } catch (RemoteException e) { } } public void init() { Loading @@ -57,7 +80,7 @@ public final class NavigationBarTransitions extends BarTransitions { @Override protected boolean isLightsOut(int mode) { return super.isLightsOut(mode) || mAutoDim; return super.isLightsOut(mode) || (mAutoDim && !mWallpaperVisible); } public LightBarTransitionsController getLightTransitionsController() { Loading Loading @@ -85,7 +108,7 @@ public final class NavigationBarTransitions extends BarTransitions { // ok, everyone, stop it right there navButtons.animate().cancel(); final float navButtonsAlpha = lightsOut ? 0.5f : 1f; final float navButtonsAlpha = lightsOut ? 0.6f : 1f; if (!animate) { navButtons.setAlpha(navButtonsAlpha); Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static org.mockito.Mockito.when; import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.IWindowManager; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.CommandQueue; Loading @@ -41,6 +42,7 @@ public class NavigationBarTransitionsTest extends SysuiTestCase { @Before public void setup() { mDependency.injectMockDependency(IWindowManager.class); mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); NavigationBarView navBar = spy(new NavigationBarView(mContext, null)); when(navBar.getCurrentView()).thenReturn(navBar); Loading Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +4 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import android.os.HandlerThread; import android.os.Looper; import android.os.Process; import android.util.ArrayMap; import android.view.IWindowManager; import android.view.WindowManagerGlobal; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.NightDisplayController; Loading Loading @@ -304,6 +306,8 @@ public class Dependency extends SystemUI { mProviders.put(LightBarController.class, () -> new LightBarController(mContext)); mProviders.put(IWindowManager.class, () -> WindowManagerGlobal.getWindowManagerService()); // Put all dependencies above here so the factory can override them if it wants. SystemUIFactory.getInstance().injectDependencies(mProviders, mContext); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/NavigationBarTransitions.java +25 −2 Original line number Diff line number Diff line Loading @@ -17,12 +17,19 @@ package com.android.systemui.statusbar.phone; import android.content.Context; import android.os.Handler; import android.os.RemoteException; import android.os.ServiceManager; import android.util.SparseArray; import android.view.Display; import android.view.IWallpaperVisibilityListener; import android.view.IWindowManager; import android.view.MotionEvent; import android.view.View; import android.view.WindowManagerGlobal; import com.android.internal.statusbar.IStatusBarService; import com.android.systemui.Dependency; import com.android.systemui.R; public final class NavigationBarTransitions extends BarTransitions { Loading @@ -30,6 +37,7 @@ public final class NavigationBarTransitions extends BarTransitions { private final NavigationBarView mView; private final IStatusBarService mBarService; private final LightBarTransitionsController mLightTransitionsController; private boolean mWallpaperVisible; private boolean mLightsOut; private boolean mAutoDim; Loading @@ -41,6 +49,21 @@ public final class NavigationBarTransitions extends BarTransitions { ServiceManager.getService(Context.STATUS_BAR_SERVICE)); mLightTransitionsController = new LightBarTransitionsController(view.getContext(), this::applyDarkIntensity); IWindowManager windowManagerService = Dependency.get(IWindowManager.class); Handler handler = Handler.getMain(); try { mWallpaperVisible = windowManagerService.registerWallpaperVisibilityListener( new IWallpaperVisibilityListener.Stub() { @Override public void onWallpaperVisibilityChanged(boolean newVisibility, int displayId) throws RemoteException { mWallpaperVisible = newVisibility; handler.post(() -> applyLightsOut(true, false)); } }, Display.DEFAULT_DISPLAY); } catch (RemoteException e) { } } public void init() { Loading @@ -57,7 +80,7 @@ public final class NavigationBarTransitions extends BarTransitions { @Override protected boolean isLightsOut(int mode) { return super.isLightsOut(mode) || mAutoDim; return super.isLightsOut(mode) || (mAutoDim && !mWallpaperVisible); } public LightBarTransitionsController getLightTransitionsController() { Loading Loading @@ -85,7 +108,7 @@ public final class NavigationBarTransitions extends BarTransitions { // ok, everyone, stop it right there navButtons.animate().cancel(); final float navButtonsAlpha = lightsOut ? 0.5f : 1f; final float navButtonsAlpha = lightsOut ? 0.6f : 1f; if (!animate) { navButtons.setAlpha(navButtonsAlpha); Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NavigationBarTransitionsTest.java +2 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static org.mockito.Mockito.when; import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper.RunWithLooper; import android.view.IWindowManager; import com.android.systemui.SysuiTestCase; import com.android.systemui.statusbar.CommandQueue; Loading @@ -41,6 +42,7 @@ public class NavigationBarTransitionsTest extends SysuiTestCase { @Before public void setup() { mDependency.injectMockDependency(IWindowManager.class); mContext.putComponent(CommandQueue.class, mock(CommandQueue.class)); NavigationBarView navBar = spy(new NavigationBarView(mContext, null)); when(navBar.getCurrentView()).thenReturn(navBar); Loading