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

Commit a9f28aff authored by Robert Snoeberger's avatar Robert Snoeberger
Browse files

Just use dagger to inject dependencies.

Bug: 165267247
Test: atest AuthControllerTest
Change-Id: I1d3fd228023d1c362d3e35d0483d8b01b0254817
parent 96037a46
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;
        }
    }
}