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

Commit d3cd5bb6 authored by Dave Mankoff's avatar Dave Mankoff Committed by Android (Google) Code Review
Browse files

Merge "Don't destroy the FalsingManager in Wallet." into sc-dev

parents b0375bd9 b4935a25
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -105,11 +105,21 @@ android_library {
filegroup {
    name: "SystemUI-tests-utils",
    srcs: [
        "tests/src/com/android/systemui/SysuiTestCase.java",
        "tests/src/com/android/systemui/TestableDependency.java",
        "tests/src/com/android/systemui/classifier/FalsingManagerFake.java",
        "tests/src/com/android/systemui/statusbar/notification/collection/NotificationEntryBuilder.java",
        "tests/src/com/android/systemui/statusbar/RankingBuilder.java",
        "tests/src/com/android/systemui/statusbar/SbnBuilder.java",
        "tests/src/com/android/systemui/util/concurrency/FakeExecutor.java",
        "tests/src/com/android/systemui/util/time/FakeSystemClock.java",
        "tests/src/com/android/systemui/SysuiTestableContext.java",
        "tests/src/com/android/systemui/utils/leaks/BaseLeakChecker.java",
        "tests/src/com/android/systemui/utils/leaks/LeakCheckedTest.java",
        "tests/src/com/android/systemui/**/Fake*.java",
        "tests/src/com/android/systemui/**/Fake*.kt",
    ],
    exclude_srcs: [
        "tests/src/com/android/systemui/**/*Test.java",
        "tests/src/com/android/systemui/**/*Test.kt",
    ],
    path: "tests/src",
}
+9 −2
Original line number Diff line number Diff line
@@ -114,7 +114,12 @@ public interface FalsingManager {
    /** From com.android.systemui.Dumpable. */
    void dump(FileDescriptor fd, PrintWriter pw, String[] args);

    void cleanup();
    /**
     *  Don't call this. It's meant for internal use to allow switching between implementations.
     *
     * Tests may also call it.
     **/
    void cleanupInternal();

    /** Call to report a ProximityEvent to the FalsingManager. */
    void onProximityEvent(ProximityEvent proximityEvent);
@@ -136,7 +141,9 @@ public interface FalsingManager {
        void onFalse();
    }

    /** Listener that is alerted when a double tap is required to confirm a single tap. */
    /**
     * Listener that is alerted when a double tap is required to confirm a single tap.
     **/
    interface FalsingTapListener {
        void onDoubleTapRequired();
    }
+18 −1
Original line number Diff line number Diff line
@@ -82,6 +82,8 @@ public class BrightLineFalsingManager implements FalsingManager {
    private final List<FalsingBeliefListener> mFalsingBeliefListeners = new ArrayList<>();
    private List<FalsingTapListener> mFalsingTapListeners = new ArrayList<>();

    private boolean mDestroyed;

    private final SessionListener mSessionListener = new SessionListener() {
        @Override
        public void onSessionEnded() {
@@ -196,6 +198,8 @@ public class BrightLineFalsingManager implements FalsingManager {

    @Override
    public boolean isFalseTouch(@Classifier.InteractionType int interactionType) {
        checkDestroyed();

        mPriorInteractionType = interactionType;
        if (skipFalsing(interactionType)) {
            mPriorResults = getPassedResult(1);
@@ -221,6 +225,8 @@ public class BrightLineFalsingManager implements FalsingManager {

    @Override
    public boolean isSimpleTap() {
        checkDestroyed();

        FalsingClassifier.Result result = mSingleTapClassifier.isTap(
                mDataProvider.getRecentMotionEvents(), 0);
        mPriorResults = Collections.singleton(result);
@@ -228,8 +234,16 @@ public class BrightLineFalsingManager implements FalsingManager {
        return !result.isFalse();
    }

    private void checkDestroyed() {
        if (mDestroyed) {
            Log.wtf(TAG, "Tried to use FalsingManager after being destroyed!");
        }
    }

    @Override
    public boolean isFalseTap(@Penalty int penalty) {
        checkDestroyed();

        if (skipFalsing(GENERIC)) {
            mPriorResults = getPassedResult(1);
            logDebug("Skipped falsing");
@@ -292,6 +306,8 @@ public class BrightLineFalsingManager implements FalsingManager {

    @Override
    public boolean isFalseDoubleTap() {
        checkDestroyed();

        if (skipFalsing(GENERIC)) {
            mPriorResults = getPassedResult(1);
            logDebug("Skipped falsing");
@@ -406,7 +422,8 @@ public class BrightLineFalsingManager implements FalsingManager {
    }

    @Override
    public void cleanup() {
    public void cleanupInternal() {
        mDestroyed = true;
        mDataProvider.removeSessionListener(mSessionListener);
        mDataProvider.removeGestureCompleteListener(mGestureFinalizedListener);
        mClassifiers.forEach(FalsingClassifier::cleanup);
+4 −4
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
            public void onPluginConnected(FalsingPlugin plugin, Context context) {
                FalsingManager pluginFalsingManager = plugin.getFalsingManager(context);
                if (pluginFalsingManager != null) {
                    mInternalFalsingManager.cleanup();
                    mInternalFalsingManager.cleanupInternal();
                    mInternalFalsingManager = pluginFalsingManager;
                }
            }
@@ -109,7 +109,7 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
     */
    private void setupFalsingManager() {
        if (mInternalFalsingManager != null) {
            mInternalFalsingManager.cleanup();
            mInternalFalsingManager.cleanupInternal();
        }
        mInternalFalsingManager = mBrightLineFalsingManagerProvider.get();
    }
@@ -195,10 +195,10 @@ public class FalsingManagerProxy implements FalsingManager, Dumpable {
    }

    @Override
    public void cleanup() {
    public void cleanupInternal() {
        mDeviceConfig.removeOnPropertiesChangedListener(mDeviceConfigListener);
        mPluginManager.removePluginListener(mPluginListener);
        mDumpManager.unregisterDumpable(DUMPABLE_TAG);
        mInternalFalsingManager.cleanup();
        mInternalFalsingManager.cleanupInternal();
    }
}
+0 −1
Original line number Diff line number Diff line
@@ -260,7 +260,6 @@ public class WalletScreenController implements
        mIsDismissed = true;
        mSelectedCardId = null;
        mHandler.removeCallbacks(mSelectionRunnable);
        mFalsingManager.cleanup();
        mWalletClient.notifyWalletDismissed();
        mWalletClient.removeWalletServiceEventListener(this);
        mWalletView.animateDismissal();
Loading