Add support for FalsingPlugin to supply a replacement FalsingManager.

Bug: 130256776
Test: Manual
Change-Id: Icdf150e6e23d216f04a9243fe57919aa622706d5
diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java
index 48a7495..7a82402 100644
--- a/packages/SystemUI/src/com/android/systemui/Dependency.java
+++ b/packages/SystemUI/src/com/android/systemui/Dependency.java
@@ -42,6 +42,7 @@
 import com.android.systemui.keyguard.WakefulnessLifecycle;
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.DarkIconDispatcher;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.PluginDependencyProvider;
 import com.android.systemui.plugins.VolumeDialogController;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -302,6 +303,7 @@
     @Inject Lazy<DockManager> mDockManager;
     @Inject Lazy<ChannelEditorDialogController> mChannelEditorDialogController;
     @Inject Lazy<INotificationManager> mINotificationManager;
+    @Inject Lazy<FalsingManager> mFalsingManager;
 
     @Inject
     public Dependency() {
@@ -479,6 +481,7 @@
         mProviders.put(DockManager.class, mDockManager::get);
         mProviders.put(ChannelEditorDialogController.class, mChannelEditorDialogController::get);
         mProviders.put(INotificationManager.class, mINotificationManager::get);
+        mProviders.put(FalsingManager.class, mFalsingManager::get);
 
         // TODO(b/118592525): to support multi-display , we start to add something which is
         //                    per-display, while others may be global. I think it's time to add
diff --git a/packages/SystemUI/src/com/android/systemui/DependencyBinder.java b/packages/SystemUI/src/com/android/systemui/DependencyBinder.java
index 53050bf..057d70c 100644
--- a/packages/SystemUI/src/com/android/systemui/DependencyBinder.java
+++ b/packages/SystemUI/src/com/android/systemui/DependencyBinder.java
@@ -18,8 +18,10 @@
 
 import com.android.systemui.appops.AppOpsController;
 import com.android.systemui.appops.AppOpsControllerImpl;
+import com.android.systemui.classifier.FalsingManagerProxy;
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.DarkIconDispatcher;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.VolumeDialogController;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.power.PowerNotificationWarnings;
@@ -234,4 +236,9 @@
      */
     @Binds
     public abstract QSHost provideQsHost(QSTileHost controllerImpl);
+
+    /**
+     */
+    @Binds
+    public abstract FalsingManager provideFalsingmanager(FalsingManagerProxy falsingManagerImpl);
 }
diff --git a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
index de49b92..84e0238 100644
--- a/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/SwipeHelper.java
@@ -35,7 +35,7 @@
 import android.view.accessibility.AccessibilityEvent;
 
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
 import com.android.systemui.statusbar.FlingAnimationUtils;
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java
index 0e7c65a..01921f0 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerFactory.java
@@ -17,16 +17,17 @@
 package com.android.systemui.classifier;
 
 import android.content.Context;
-import android.net.Uri;
-import android.view.MotionEvent;
 
-import java.io.PrintWriter;
+import com.android.systemui.Dependency;
+import com.android.systemui.plugins.FalsingManager;
 
 /**
  * When the phone is locked, listens to touch, sensor and phone events and sends them to
  * DataCollector and HumanInteractionClassifier.
  *
  * It does not collect touch events when the bouncer shows up.
+ *
+ * TODO: FalsingManager supports dependency injection. Use it.
  */
 public class FalsingManagerFactory {
     private static FalsingManager sInstance = null;
@@ -35,82 +36,9 @@
 
     public static FalsingManager getInstance(Context context) {
         if (sInstance == null) {
-            sInstance = new FalsingManagerImpl(context);
+            sInstance = Dependency.get(FalsingManager.class);
         }
         return sInstance;
     }
 
-    public interface FalsingManager {
-        void onSucccessfulUnlock();
-
-        void onNotificationActive();
-
-        void setShowingAod(boolean showingAod);
-
-        void onNotificatonStartDraggingDown();
-
-        boolean isUnlockingDisabled();
-
-        boolean isFalseTouch();
-
-        void onNotificatonStopDraggingDown();
-
-        void setNotificationExpanded();
-
-        boolean isClassiferEnabled();
-
-        void onQsDown();
-
-        void setQsExpanded(boolean expanded);
-
-        boolean shouldEnforceBouncer();
-
-        void onTrackingStarted(boolean secure);
-
-        void onTrackingStopped();
-
-        void onLeftAffordanceOn();
-
-        void onCameraOn();
-
-        void onAffordanceSwipingStarted(boolean rightCorner);
-
-        void onAffordanceSwipingAborted();
-
-        void onStartExpandingFromPulse();
-
-        void onExpansionFromPulseStopped();
-
-        Uri reportRejectedTouch();
-
-        void onScreenOnFromTouch();
-
-        boolean isReportingEnabled();
-
-        void onUnlockHintStarted();
-
-        void onCameraHintStarted();
-
-        void onLeftAffordanceHintStarted();
-
-        void onScreenTurningOn();
-
-        void onScreenOff();
-
-        void onNotificatonStopDismissing();
-
-        void onNotificationDismissed();
-
-        void onNotificatonStartDismissing();
-
-        void onNotificationDoubleTap(boolean accepted, float dx, float dy);
-
-        void onBouncerShown();
-
-        void onBouncerHidden();
-
-        void onTouchEvent(MotionEvent ev, int width, int height);
-
-        void dump(PrintWriter pw);
-    }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java
index a4bd244..6fb6467 100644
--- a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerImpl.java
@@ -39,6 +39,7 @@
 import com.android.systemui.Dependency;
 import com.android.systemui.UiOffloadThread;
 import com.android.systemui.analytics.DataCollector;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
 import com.android.systemui.statusbar.StatusBarState;
@@ -52,7 +53,7 @@
  *
  * It does not collect touch events when the bouncer shows up.
  */
-public class FalsingManagerImpl implements FalsingManagerFactory.FalsingManager {
+public class FalsingManagerImpl implements FalsingManager {
     private static final String ENFORCE_BOUNCER = "falsing_manager_enforce_bouncer";
 
     private static final int[] CLASSIFIER_SENSORS = new int[] {
diff --git a/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
new file mode 100644
index 0000000..28454b0
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/classifier/FalsingManagerProxy.java
@@ -0,0 +1,239 @@
+/*
+ * Copyright (C) 2019 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.systemui.classifier;
+
+import android.content.Context;
+import android.net.Uri;
+import android.view.MotionEvent;
+
+import com.android.systemui.plugins.FalsingManager;
+import com.android.systemui.plugins.FalsingPlugin;
+import com.android.systemui.plugins.PluginListener;
+import com.android.systemui.shared.plugins.PluginManager;
+
+import java.io.PrintWriter;
+
+import javax.inject.Inject;
+
+/**
+ * Simple passthrough implementation of {@link FalsingManager} allowing plugins to swap in.
+ *
+ * {@link FalsingManagerImpl} is used when a Plugin is not loaded.
+ */
+public class FalsingManagerProxy implements FalsingManager {
+
+    private FalsingManager mInternalFalsingManager;
+
+    @Inject
+    FalsingManagerProxy(Context context, PluginManager pluginManager) {
+        mInternalFalsingManager = new FalsingManagerImpl(context);
+        final PluginListener<FalsingPlugin> mPluginListener = new PluginListener<FalsingPlugin>() {
+            public void onPluginConnected(FalsingPlugin plugin, Context context) {
+                FalsingManager pluginFalsingManager = plugin.getFalsingManager(context);
+                if (pluginFalsingManager != null) {
+                    mInternalFalsingManager = pluginFalsingManager;
+                }
+            }
+
+            public void onPluginDisconnected(FalsingPlugin plugin) {
+                mInternalFalsingManager = new FalsingManagerImpl(context);
+            }
+        };
+
+        pluginManager.addPluginListener(mPluginListener, FalsingPlugin.class);
+    }
+
+    @Override
+    public void onSucccessfulUnlock() {
+        mInternalFalsingManager.onSucccessfulUnlock();
+    }
+
+    @Override
+    public void onNotificationActive() {
+        mInternalFalsingManager.onNotificationActive();
+    }
+
+    @Override
+    public void setShowingAod(boolean showingAod) {
+        mInternalFalsingManager.setShowingAod(showingAod);
+    }
+
+    @Override
+    public void onNotificatonStartDraggingDown() {
+        mInternalFalsingManager.onNotificatonStartDraggingDown();
+    }
+
+    @Override
+    public boolean isUnlockingDisabled() {
+        return mInternalFalsingManager.isUnlockingDisabled();
+    }
+
+    @Override
+    public boolean isFalseTouch() {
+        return mInternalFalsingManager.isFalseTouch();
+    }
+
+    @Override
+    public void onNotificatonStopDraggingDown() {
+        mInternalFalsingManager.onNotificatonStartDraggingDown();
+    }
+
+    @Override
+    public void setNotificationExpanded() {
+        mInternalFalsingManager.setNotificationExpanded();
+    }
+
+    @Override
+    public boolean isClassiferEnabled() {
+        return mInternalFalsingManager.isClassiferEnabled();
+    }
+
+    @Override
+    public void onQsDown() {
+        mInternalFalsingManager.onQsDown();
+    }
+
+    @Override
+    public void setQsExpanded(boolean expanded) {
+        mInternalFalsingManager.setQsExpanded(expanded);
+    }
+
+    @Override
+    public boolean shouldEnforceBouncer() {
+        return mInternalFalsingManager.shouldEnforceBouncer();
+    }
+
+    @Override
+    public void onTrackingStarted(boolean secure) {
+        mInternalFalsingManager.onTrackingStarted(secure);
+    }
+
+    @Override
+    public void onTrackingStopped() {
+        mInternalFalsingManager.onTrackingStopped();
+    }
+
+    @Override
+    public void onLeftAffordanceOn() {
+        mInternalFalsingManager.onLeftAffordanceOn();
+    }
+
+    @Override
+    public void onCameraOn() {
+        mInternalFalsingManager.onCameraOn();
+    }
+
+    @Override
+    public void onAffordanceSwipingStarted(boolean rightCorner) {
+        mInternalFalsingManager.onAffordanceSwipingStarted(rightCorner);
+    }
+
+    @Override
+    public void onAffordanceSwipingAborted() {
+        mInternalFalsingManager.onAffordanceSwipingAborted();
+    }
+
+    @Override
+    public void onStartExpandingFromPulse() {
+        mInternalFalsingManager.onStartExpandingFromPulse();
+    }
+
+    @Override
+    public void onExpansionFromPulseStopped() {
+        mInternalFalsingManager.onExpansionFromPulseStopped();
+    }
+
+    @Override
+    public Uri reportRejectedTouch() {
+        return mInternalFalsingManager.reportRejectedTouch();
+    }
+
+    @Override
+    public void onScreenOnFromTouch() {
+        mInternalFalsingManager.onScreenOnFromTouch();
+    }
+
+    @Override
+    public boolean isReportingEnabled() {
+        return mInternalFalsingManager.isReportingEnabled();
+    }
+
+    @Override
+    public void onUnlockHintStarted() {
+        mInternalFalsingManager.onUnlockHintStarted();
+    }
+
+    @Override
+    public void onCameraHintStarted() {
+        mInternalFalsingManager.onCameraHintStarted();
+    }
+
+    @Override
+    public void onLeftAffordanceHintStarted() {
+        mInternalFalsingManager.onLeftAffordanceHintStarted();
+    }
+
+    @Override
+    public void onScreenTurningOn() {
+        mInternalFalsingManager.onScreenTurningOn();
+    }
+
+    @Override
+    public void onScreenOff() {
+        mInternalFalsingManager.onScreenOff();
+    }
+
+    @Override
+    public void onNotificatonStopDismissing() {
+        mInternalFalsingManager.onNotificatonStopDismissing();
+    }
+
+    @Override
+    public void onNotificationDismissed() {
+        mInternalFalsingManager.onNotificationDismissed();
+    }
+
+    @Override
+    public void onNotificatonStartDismissing() {
+        mInternalFalsingManager.onNotificatonStartDismissing();
+    }
+
+    @Override
+    public void onNotificationDoubleTap(boolean accepted, float dx, float dy) {
+        mInternalFalsingManager.onNotificationDoubleTap(accepted, dx, dy);
+    }
+
+    @Override
+    public void onBouncerShown() {
+        mInternalFalsingManager.onBouncerShown();
+    }
+
+    @Override
+    public void onBouncerHidden() {
+        mInternalFalsingManager.onBouncerHidden();
+    }
+
+    @Override
+    public void onTouchEvent(MotionEvent ev, int width, int height) {
+        mInternalFalsingManager.onTouchEvent(ev, width, height);
+    }
+
+    @Override
+    public void dump(PrintWriter pw) {
+        mInternalFalsingManager.dump(pw);
+    }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFalsingManagerAdapter.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFalsingManagerAdapter.java
index f6df9062..250308d 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeFalsingManagerAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFalsingManagerAdapter.java
@@ -16,7 +16,7 @@
 
 package com.android.systemui.doze;
 
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
+import com.android.systemui.plugins.FalsingManager;
 
 /**
  * Notifies FalsingManager of whether or not AOD is showing.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java
index 0dc80bf..514a2ae 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/DragDownHelper.java
@@ -30,7 +30,7 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.statusbar.notification.row.ExpandableView;
 
 /**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt b/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt
index 952f30f..bf99474 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/PulseExpansionHandler.kt
@@ -31,7 +31,7 @@
 import com.android.systemui.Interpolators
 import com.android.systemui.R
 import com.android.systemui.classifier.FalsingManagerFactory
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager
+import com.android.systemui.plugins.FalsingManager
 import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator
 import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
 import com.android.systemui.statusbar.notification.row.ExpandableView
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
index 53d6efb..4f562a5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ActivatableNotificationView.java
@@ -36,7 +36,7 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.statusbar.NotificationShelf;
 import com.android.systemui.statusbar.notification.FakeShadowView;
 import com.android.systemui.statusbar.notification.NotificationUtils;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
index b3ca88f..368447d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRow.java
@@ -77,7 +77,7 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.PluginListener;
 import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
 import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin.MenuItem;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
index 5bd6cab..de187f1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java
@@ -88,9 +88,9 @@
 import com.android.systemui.R;
 import com.android.systemui.SwipeHelper;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
 import com.android.systemui.colorextraction.SysuiColorExtractor;
 import com.android.systemui.plugins.ActivityStarter;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin;
 import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin.MenuItem;
 import com.android.systemui.plugins.statusbar.NotificationMenuRowPlugin.OnMenuEventListener;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java
index dd70321..4691a31 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardAffordanceHelper.java
@@ -28,7 +28,7 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.statusbar.FlingAnimationUtils;
 import com.android.systemui.statusbar.KeyguardAffordanceView;
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
index 1a43eec..bbae62e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/KeyguardBouncer.java
@@ -43,8 +43,8 @@
 import com.android.keyguard.R;
 import com.android.keyguard.ViewMediatorCallback;
 import com.android.systemui.DejankUtils;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
 import com.android.systemui.keyguard.DismissCallbackRegistry;
+import com.android.systemui.plugins.FalsingManager;
 
 import java.io.PrintWriter;
 
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 168813a..da9f244 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -61,9 +61,9 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
 import com.android.systemui.fragments.FragmentHostManager;
 import com.android.systemui.fragments.FragmentHostManager.FragmentListener;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.qs.QS;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
index 38c5f2e..c6bbf7b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelView.java
@@ -43,8 +43,8 @@
 import com.android.systemui.Interpolators;
 import com.android.systemui.R;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
 import com.android.systemui.doze.DozeLog;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.FlingAnimationUtils;
 import com.android.systemui.statusbar.StatusBarState;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
index 37cfc69..b4b4235 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java
@@ -149,7 +149,6 @@
 import com.android.systemui.charging.WirelessChargingAnimation;
 import com.android.systemui.classifier.FalsingLog;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
 import com.android.systemui.colorextraction.SysuiColorExtractor;
 import com.android.systemui.doze.DozeHost;
 import com.android.systemui.doze.DozeLog;
@@ -162,6 +161,7 @@
 import com.android.systemui.keyguard.WakefulnessLifecycle;
 import com.android.systemui.plugins.ActivityStarter;
 import com.android.systemui.plugins.DarkIconDispatcher;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.PluginDependencyProvider;
 import com.android.systemui.plugins.qs.QS;
 import com.android.systemui.plugins.statusbar.NotificationSwipeActionHelper.SnoozeOption;
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 6185b4c..9f538bb 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -63,7 +63,7 @@
 import com.android.systemui.ExpandHelper;
 import com.android.systemui.R;
 import com.android.systemui.classifier.FalsingManagerFactory;
-import com.android.systemui.classifier.FalsingManagerFactory.FalsingManager;
+import com.android.systemui.plugins.FalsingManager;
 import com.android.systemui.plugins.statusbar.StatusBarStateController;
 import com.android.systemui.statusbar.DragDownHelper;
 import com.android.systemui.statusbar.StatusBarState;