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

Commit f50b1540 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Just use dagger to inject dependencies."

parents 16fa702d a9f28aff
Loading
Loading
Loading
Loading
+13 −32
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ import static android.hardware.biometrics.BiometricManager.Authenticators;

import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.ActivityTaskManager;
import android.app.IActivityTaskManager;
import android.app.TaskStackListener;
import android.content.BroadcastReceiver;
@@ -72,7 +71,8 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,

    private final CommandQueue mCommandQueue;
    private final StatusBarStateController mStatusBarStateController;
    private final Injector mInjector;
    private final IActivityTaskManager mActivityTaskManager;
    @Nullable private final FingerprintManager mFingerprintManager;
    private final Provider<UdfpsController> mUdfpsControllerFactory;

    // TODO: These should just be saved from onSaveState
@@ -85,16 +85,14 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
    @Nullable
    private UdfpsController mUdfpsController;
    @VisibleForTesting
    IActivityTaskManager mActivityTaskManager;
    @VisibleForTesting
    BiometricTaskStackListener mTaskStackListener;
    TaskStackListener mTaskStackListener;
    @VisibleForTesting
    IBiometricSysuiReceiver mReceiver;

    public class BiometricTaskStackListener extends TaskStackListener {
    private class BiometricTaskStackListener extends TaskStackListener {
        @Override
        public void onTaskStackChanged() {
            mHandler.post(mTaskStackChangedRunnable);
            mHandler.post(AuthController.this::handleTaskStackChanged);
        }
    }

@@ -121,7 +119,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
        }
    };

    private final Runnable mTaskStackChangedRunnable = () -> {
    private void handleTaskStackChanged() {
        if (mCurrentDialog != null) {
            try {
                final String clientPackage = mCurrentDialog.getOpPackageName();
@@ -146,7 +144,7 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
                Log.e(TAG, "Remote exception", e);
            }
        }
    };
    }

    @Override
    public void dozeTimeTick() {
@@ -281,32 +279,17 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
        onDialogDismissed(reason);
    }

    public static class Injector {
        IActivityTaskManager getActivityTaskManager() {
            return ActivityTaskManager.getService();
        }

        FingerprintManager getFingerprintManager(Context context) {
            return context.getSystemService(FingerprintManager.class);
        }
    }

    @Inject
    public AuthController(Context context, CommandQueue commandQueue,
            StatusBarStateController statusBarStateController,
            Provider<UdfpsController> udfpsControllerFactory) {
        this(context, commandQueue, statusBarStateController, new Injector(),
                udfpsControllerFactory);
    }

    @VisibleForTesting
    AuthController(Context context, CommandQueue commandQueue,
            StatusBarStateController statusBarStateController, Injector injector,
            IActivityTaskManager activityTaskManager,
            @Nullable FingerprintManager fingerprintManager,
            Provider<UdfpsController> udfpsControllerFactory) {
        super(context);
        mCommandQueue = commandQueue;
        mStatusBarStateController = statusBarStateController;
        mInjector = injector;
        mActivityTaskManager = activityTaskManager;
        mFingerprintManager = fingerprintManager;
        mUdfpsControllerFactory = udfpsControllerFactory;

        IntentFilter filter = new IntentFilter();
@@ -320,12 +303,10 @@ public class AuthController extends SystemUI implements CommandQueue.Callbacks,
    public void start() {
        mCommandQueue.addCallback(this);
        mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
        mActivityTaskManager = mInjector.getActivityTaskManager();

        final FingerprintManager fpm = mInjector.getFingerprintManager(mContext);
        if (fpm != null && fpm.isHardwareDetected()) {
        if (mFingerprintManager != null && mFingerprintManager.isHardwareDetected()) {
            final List<FingerprintSensorProperties> fingerprintSensorProperties =
                    fpm.getSensorProperties();
                    mFingerprintManager.getSensorProperties();
            for (FingerprintSensorProperties props : fingerprintSensorProperties) {
                if (props.sensorType == FingerprintSensorProperties.TYPE_UDFPS) {
                    mUdfpsController = mUdfpsControllerFactory.get();
+8 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import android.hardware.SensorPrivacyManager;
import android.hardware.display.ColorDisplayManager;
import android.hardware.display.DisplayManager;
import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager;
import android.media.AudioManager;
import android.media.MediaRouter2Manager;
import android.media.session.MediaSessionManager;
@@ -173,6 +174,13 @@ public class FrameworkServicesModule {

    }

    @Provides
    @Singleton
    @Nullable
    static FingerprintManager providesFingerprintManager(Context context) {
        return context.getSystemService(FingerprintManager.class);
    }

    @Provides
    @Singleton
    static IPackageManager provideIPackageManager() {
+9 −17
Original line number Diff line number Diff line
@@ -90,6 +90,8 @@ public class AuthControllerTest extends SysuiTestCase {
    @Mock
    private StatusBarStateController mStatusBarStateController;
    @Mock
    private IActivityTaskManager mActivityTaskManager;
    @Mock
    private FingerprintManager mFingerprintManager;
    @Mock
    private UdfpsController mUdfpsController;
@@ -123,7 +125,7 @@ public class AuthControllerTest extends SysuiTestCase {
        when(mFingerprintManager.getSensorProperties()).thenReturn(props);

        mAuthController = new TestableAuthController(context, mCommandQueue,
                mStatusBarStateController, new MockInjector(),
                mStatusBarStateController, mActivityTaskManager, mFingerprintManager,
                () -> mUdfpsController);

        mAuthController.start();
@@ -438,7 +440,7 @@ public class AuthControllerTest extends SysuiTestCase {
        taskInfo.topActivity = mock(ComponentName.class);
        when(taskInfo.topActivity.getPackageName()).thenReturn("other_package");
        tasks.add(taskInfo);
        when(mAuthController.mActivityTaskManager.getTasks(anyInt())).thenReturn(tasks);
        when(mActivityTaskManager.getTasks(anyInt())).thenReturn(tasks);

        mAuthController.mTaskStackListener.onTaskStackChanged();
        waitForIdleSync();
@@ -544,10 +546,12 @@ public class AuthControllerTest extends SysuiTestCase {
        private PromptInfo mLastBiometricPromptInfo;

        TestableAuthController(Context context, CommandQueue commandQueue,
                StatusBarStateController statusBarStateController, Injector injector,
                StatusBarStateController statusBarStateController,
                IActivityTaskManager activityTaskManager,
                FingerprintManager fingerprintManager,
                Provider<UdfpsController> udfpsControllerFactory) {
            super(context, commandQueue, statusBarStateController, injector,
                    udfpsControllerFactory);
            super(context, commandQueue, statusBarStateController, activityTaskManager,
                    fingerprintManager, udfpsControllerFactory);
        }

        @Override
@@ -569,17 +573,5 @@ public class AuthControllerTest extends SysuiTestCase {
            return dialog;
        }
    }

    private final class MockInjector extends AuthController.Injector {
        @Override
        IActivityTaskManager getActivityTaskManager() {
            return mock(IActivityTaskManager.class);
        }

        @Override
        FingerprintManager getFingerprintManager(Context context) {
            return mFingerprintManager;
        }
    }
}