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

Commit 660d0a7c authored by Beverly's avatar Beverly
Browse files

Inject DeviceConfig into SystemUI classes

So the tests don't actually register listeners to the DeviceConfig, but
can still test with a fake device config. Previously, tests were
registering and never unregistering a listener to the DeviceConfig.

Test: atest SystemUITests
Fixes: 150226783
Change-Id: I59aa77f337a95aa1890570f5a7e30fe9cd58036a
parent 969e1e27
Loading
Loading
Loading
Loading
+22 −12
Original line number Original line Diff line number Diff line
@@ -96,6 +96,7 @@ import com.android.systemui.statusbar.phone.NotificationPanelViewController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.InjectionInflationController;
import com.android.systemui.util.InjectionInflationController;


import java.io.FileDescriptor;
import java.io.FileDescriptor;
@@ -378,6 +379,17 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {
    private IKeyguardDrawnCallback mDrawnCallback;
    private IKeyguardDrawnCallback mDrawnCallback;
    private CharSequence mCustomMessage;
    private CharSequence mCustomMessage;


    private final DeviceConfig.OnPropertiesChangedListener mOnPropertiesChangedListener =
            new DeviceConfig.OnPropertiesChangedListener() {
            @Override
            public void onPropertiesChanged(DeviceConfig.Properties properties) {
                if (properties.getKeyset().contains(NAV_BAR_HANDLE_SHOW_OVER_LOCKSCREEN)) {
                    mShowHomeOverLockscreen = properties.getBoolean(
                            NAV_BAR_HANDLE_SHOW_OVER_LOCKSCREEN, true /* defaultValue */);
                }
            }
    };

    KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() {
    KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() {


        @Override
        @Override
@@ -692,6 +704,8 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {
        }
        }
    };
    };


    private DeviceConfigProxy mDeviceConfig;

    /**
    /**
     * Injected constructor. See {@link KeyguardModule}.
     * Injected constructor. See {@link KeyguardModule}.
     */
     */
@@ -705,7 +719,8 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {
            DismissCallbackRegistry dismissCallbackRegistry,
            DismissCallbackRegistry dismissCallbackRegistry,
            KeyguardUpdateMonitor keyguardUpdateMonitor, DumpManager dumpManager,
            KeyguardUpdateMonitor keyguardUpdateMonitor, DumpManager dumpManager,
            @UiBackground Executor uiBgExecutor, PowerManager powerManager,
            @UiBackground Executor uiBgExecutor, PowerManager powerManager,
            TrustManager trustManager) {
            TrustManager trustManager,
            DeviceConfigProxy deviceConfig) {
        super(context);
        super(context);
        mFalsingManager = falsingManager;
        mFalsingManager = falsingManager;
        mLockPatternUtils = lockPatternUtils;
        mLockPatternUtils = lockPatternUtils;
@@ -718,20 +733,15 @@ public class KeyguardViewMediator extends SystemUI implements Dumpable {
        mPM = powerManager;
        mPM = powerManager;
        mTrustManager = trustManager;
        mTrustManager = trustManager;
        dumpManager.registerDumpable(getClass().getName(), this);
        dumpManager.registerDumpable(getClass().getName(), this);
        mShowHomeOverLockscreen = DeviceConfig.getBoolean(
        mDeviceConfig = deviceConfig;
        mShowHomeOverLockscreen = mDeviceConfig.getBoolean(
                DeviceConfig.NAMESPACE_SYSTEMUI,
                DeviceConfig.NAMESPACE_SYSTEMUI,
                NAV_BAR_HANDLE_SHOW_OVER_LOCKSCREEN,
                NAV_BAR_HANDLE_SHOW_OVER_LOCKSCREEN,
                /* defaultValue = */ true);
                /* defaultValue = */ true);
        DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI, mHandler::post,
        mDeviceConfig.addOnPropertiesChangedListener(
                new DeviceConfig.OnPropertiesChangedListener() {
                DeviceConfig.NAMESPACE_SYSTEMUI,
                    @Override
                mHandler::post,
                    public void onPropertiesChanged(DeviceConfig.Properties properties) {
                mOnPropertiesChangedListener);
                        if (properties.getKeyset().contains(NAV_BAR_HANDLE_SHOW_OVER_LOCKSCREEN)) {
                            mShowHomeOverLockscreen = properties.getBoolean(
                                    NAV_BAR_HANDLE_SHOW_OVER_LOCKSCREEN, true /* defaultValue */);
                        }
                    }
                });
    }
    }


    public void userActivity() {
    public void userActivity() {
+5 −2
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.NotificationShadeWindowController;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBar;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager;
import com.android.systemui.util.DeviceConfigProxy;


import java.util.concurrent.Executor;
import java.util.concurrent.Executor;


@@ -62,7 +63,8 @@ public class KeyguardModule {
            DumpManager dumpManager,
            DumpManager dumpManager,
            PowerManager powerManager,
            PowerManager powerManager,
            TrustManager trustManager,
            TrustManager trustManager,
            @UiBackground Executor uiBgExecutor) {
            @UiBackground Executor uiBgExecutor,
            DeviceConfigProxy deviceConfig) {
        return new KeyguardViewMediator(
        return new KeyguardViewMediator(
                context,
                context,
                falsingManager,
                falsingManager,
@@ -75,6 +77,7 @@ public class KeyguardModule {
                dumpManager,
                dumpManager,
                uiBgExecutor,
                uiBgExecutor,
                powerManager,
                powerManager,
                trustManager);
                trustManager,
                deviceConfig);
    }
    }
}
}
+4 −2
Original line number Original line Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.systemui.shared.system.InputConsumerController;
import com.android.systemui.shared.system.PinnedStackListenerForwarder.PinnedStackListener;
import com.android.systemui.shared.system.PinnedStackListenerForwarder.PinnedStackListener;
import com.android.systemui.shared.system.TaskStackChangeListener;
import com.android.systemui.shared.system.TaskStackChangeListener;
import com.android.systemui.shared.system.WindowManagerWrapper;
import com.android.systemui.shared.system.WindowManagerWrapper;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.FloatingContentCoordinator;
import com.android.systemui.util.FloatingContentCoordinator;
import com.android.systemui.wm.DisplayChangeController;
import com.android.systemui.wm.DisplayChangeController;
import com.android.systemui.wm.DisplayController;
import com.android.systemui.wm.DisplayController;
@@ -204,7 +205,8 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
    @Inject
    @Inject
    public PipManager(Context context, BroadcastDispatcher broadcastDispatcher,
    public PipManager(Context context, BroadcastDispatcher broadcastDispatcher,
            DisplayController displayController,
            DisplayController displayController,
            FloatingContentCoordinator floatingContentCoordinator) {
            FloatingContentCoordinator floatingContentCoordinator,
            DeviceConfigProxy deviceConfig) {
        mContext = context;
        mContext = context;
        mActivityManager = ActivityManager.getService();
        mActivityManager = ActivityManager.getService();


@@ -225,7 +227,7 @@ public class PipManager implements BasePipManager, PipTaskOrganizer.PipTransitio
                mInputConsumerController);
                mInputConsumerController);
        mTouchHandler = new PipTouchHandler(context, mActivityManager, activityTaskManager,
        mTouchHandler = new PipTouchHandler(context, mActivityManager, activityTaskManager,
                mMenuController, mInputConsumerController, mPipBoundsHandler, mPipTaskOrganizer,
                mMenuController, mInputConsumerController, mPipBoundsHandler, mPipTaskOrganizer,
                floatingContentCoordinator);
                floatingContentCoordinator, deviceConfig);
        mAppOpsListener = new PipAppOpsListener(context, mActivityManager,
        mAppOpsListener = new PipAppOpsListener(context, mActivityManager,
                mTouchHandler.getMotionHelper());
                mTouchHandler.getMotionHelper());
        displayController.addDisplayChangingController(mRotationController);
        displayController.addDisplayChangingController(mRotationController);
+4 −2
Original line number Original line Diff line number Diff line
@@ -41,6 +41,7 @@ import android.view.MotionEvent;
import com.android.internal.policy.TaskResizingAlgorithm;
import com.android.internal.policy.TaskResizingAlgorithm;
import com.android.systemui.R;
import com.android.systemui.R;
import com.android.systemui.pip.PipBoundsHandler;
import com.android.systemui.pip.PipBoundsHandler;
import com.android.systemui.util.DeviceConfigProxy;


import java.util.concurrent.Executor;
import java.util.concurrent.Executor;


@@ -77,7 +78,8 @@ public class PipResizeGestureHandler {
    private int mCtrlType;
    private int mCtrlType;


    public PipResizeGestureHandler(Context context, PipBoundsHandler pipBoundsHandler,
    public PipResizeGestureHandler(Context context, PipBoundsHandler pipBoundsHandler,
            PipTouchHandler pipTouchHandler, PipMotionHelper motionHelper) {
            PipTouchHandler pipTouchHandler, PipMotionHelper motionHelper,
            DeviceConfigProxy deviceConfig) {
        final Resources res = context.getResources();
        final Resources res = context.getResources();
        context.getDisplay().getMetrics(mDisplayMetrics);
        context.getDisplay().getMetrics(mDisplayMetrics);
        mDisplayId = context.getDisplayId();
        mDisplayId = context.getDisplayId();
@@ -93,7 +95,7 @@ public class PipResizeGestureHandler {
                DeviceConfig.NAMESPACE_SYSTEMUI,
                DeviceConfig.NAMESPACE_SYSTEMUI,
                PIP_USER_RESIZE,
                PIP_USER_RESIZE,
                /* defaultValue = */ false);
                /* defaultValue = */ false);
        DeviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI, mMainExecutor,
        deviceConfig.addOnPropertiesChangedListener(DeviceConfig.NAMESPACE_SYSTEMUI, mMainExecutor,
                new DeviceConfig.OnPropertiesChangedListener() {
                new DeviceConfig.OnPropertiesChangedListener() {
                    @Override
                    @Override
                    public void onPropertiesChanged(DeviceConfig.Properties properties) {
                    public void onPropertiesChanged(DeviceConfig.Properties properties) {
+5 −2
Original line number Original line Diff line number Diff line
@@ -48,6 +48,7 @@ import com.android.systemui.pip.PipSnapAlgorithm;
import com.android.systemui.pip.PipTaskOrganizer;
import com.android.systemui.pip.PipTaskOrganizer;
import com.android.systemui.shared.system.InputConsumerController;
import com.android.systemui.shared.system.InputConsumerController;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.statusbar.FlingAnimationUtils;
import com.android.systemui.util.DeviceConfigProxy;
import com.android.systemui.util.FloatingContentCoordinator;
import com.android.systemui.util.FloatingContentCoordinator;


import java.io.PrintWriter;
import java.io.PrintWriter;
@@ -162,7 +163,8 @@ public class PipTouchHandler {
            InputConsumerController inputConsumerController,
            InputConsumerController inputConsumerController,
            PipBoundsHandler pipBoundsHandler,
            PipBoundsHandler pipBoundsHandler,
            PipTaskOrganizer pipTaskOrganizer,
            PipTaskOrganizer pipTaskOrganizer,
            FloatingContentCoordinator floatingContentCoordinator) {
            FloatingContentCoordinator floatingContentCoordinator,
            DeviceConfigProxy deviceConfig) {
        // Initialize the Pip input consumer
        // Initialize the Pip input consumer
        mContext = context;
        mContext = context;
        mActivityManager = activityManager;
        mActivityManager = activityManager;
@@ -177,7 +179,8 @@ public class PipTouchHandler {
        mMotionHelper = new PipMotionHelper(mContext, activityTaskManager, pipTaskOrganizer,
        mMotionHelper = new PipMotionHelper(mContext, activityTaskManager, pipTaskOrganizer,
                mMenuController, mSnapAlgorithm, mFlingAnimationUtils, floatingContentCoordinator);
                mMenuController, mSnapAlgorithm, mFlingAnimationUtils, floatingContentCoordinator);
        mPipResizeGestureHandler =
        mPipResizeGestureHandler =
                new PipResizeGestureHandler(context, pipBoundsHandler, this, mMotionHelper);
                new PipResizeGestureHandler(context, pipBoundsHandler, this, mMotionHelper,
                        deviceConfig);
        mTouchState = new PipTouchState(ViewConfiguration.get(context), mHandler,
        mTouchState = new PipTouchState(ViewConfiguration.get(context), mHandler,
                () -> mMenuController.showMenu(MENU_STATE_FULL, mMotionHelper.getBounds(),
                () -> mMenuController.showMenu(MENU_STATE_FULL, mMotionHelper.getBounds(),
                        mMovementBounds, true /* allowMenuTimeout */, willResizeMenu()));
                        mMovementBounds, true /* allowMenuTimeout */, willResizeMenu()));
Loading