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

Commit ca1b2ee2 authored by Jason Monk's avatar Jason Monk Committed by android-build-merger
Browse files

Merge "Auto-dim refinements" into oc-mr1-dev am: 2806975b

am: a739d220

Change-Id: I4c0fb646b7f2593cf579b0958fa1222dd1c55864
parents 0751b724 a739d220
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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);
    }
+25 −2
Original line number Diff line number Diff line
@@ -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);
+2 −0
Original line number Diff line number Diff line
@@ -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);