Merge "Auto-dim refinements" into oc-mr1-dev
am: 2806975bfb
Change-Id: Ica3ebd5b227fbe9e4bd4b3699f54176d166f6dda
This commit is contained in:
@@ -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;
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
@@ -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;
|
||||
@@ -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() {
|
||||
@@ -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() {
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user