Move ContextualSearchHapticManager to MainThreadInitialiedObject
It depends on VibratorWrapper, ContextualSearchStateManager and LockedUserState
which needs to be migrated first
Bug: 373557167
Test: Manual (will merge automated tests once all culprits are resolved)
Flag: EXEMPT dagger
Change-Id: Ib078b89a541c179d105ddf8706edc94bcaf6066b
diff --git a/quickstep/src/com/android/quickstep/dagger/QuickstepBaseAppComponent.java b/quickstep/src/com/android/quickstep/dagger/QuickstepBaseAppComponent.java
index e82d9fc..977c036 100644
--- a/quickstep/src/com/android/quickstep/dagger/QuickstepBaseAppComponent.java
+++ b/quickstep/src/com/android/quickstep/dagger/QuickstepBaseAppComponent.java
@@ -20,7 +20,6 @@
import com.android.launcher3.dagger.LauncherBaseAppComponent;
import com.android.launcher3.model.WellbeingModel;
import com.android.quickstep.util.AsyncClockEventDelegate;
-import com.android.quickstep.util.ContextualSearchHapticManager;
/**
* Launcher Quickstep base component for Dagger injection.
@@ -35,6 +34,4 @@
WellbeingModel getWellbeingModel();
AsyncClockEventDelegate getAsyncClockEventDelegate();
-
- ContextualSearchHapticManager getContextualSearchHapticManager();
}
diff --git a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java
index 1a825a4..155d095 100644
--- a/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java
+++ b/quickstep/src/com/android/quickstep/inputconsumers/NavHandleLongPressHandler.java
@@ -30,7 +30,6 @@
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
-import com.android.launcher3.LauncherApplication;
import com.android.launcher3.R;
import com.android.launcher3.logging.InstanceId;
import com.android.launcher3.logging.InstanceIdSequence;
@@ -62,8 +61,7 @@
mContext = context;
mStatsLogManager = StatsLogManager.newInstance(context);
mVibratorWrapper = VibratorWrapper.INSTANCE.get(mContext);
- mContextualSearchHapticManager = ((LauncherApplication) context.getApplicationContext())
- .getAppComponent().getContextualSearchHapticManager();
+ mContextualSearchHapticManager = ContextualSearchHapticManager.INSTANCE.get(context);
mContextualSearchInvoker = ContextualSearchInvoker.newInstance(mContext);
}
diff --git a/quickstep/src/com/android/quickstep/util/ContextualSearchHapticManager.kt b/quickstep/src/com/android/quickstep/util/ContextualSearchHapticManager.kt
index 8c246a5..286b77a 100644
--- a/quickstep/src/com/android/quickstep/util/ContextualSearchHapticManager.kt
+++ b/quickstep/src/com/android/quickstep/util/ContextualSearchHapticManager.kt
@@ -21,17 +21,15 @@
import android.os.VibrationEffect.Composition
import android.os.Vibrator
import com.android.launcher3.dagger.ApplicationContext
-import com.android.launcher3.dagger.LauncherAppSingleton
+import com.android.launcher3.util.MainThreadInitializedObject
+import com.android.launcher3.util.SafeCloseable
import com.android.launcher3.util.VibratorWrapper
import com.android.quickstep.DeviceConfigWrapper.Companion.get
-import javax.inject.Inject
import kotlin.math.pow
/** Manages haptics relating to Contextual Search invocations. */
-@LauncherAppSingleton
class ContextualSearchHapticManager
-@Inject
-internal constructor(@ApplicationContext private val context: Context) {
+internal constructor(@ApplicationContext private val context: Context) : SafeCloseable {
private var searchEffect = createSearchEffect()
private var contextualSearchStateManager = ContextualSearchStateManager.INSTANCE[context]
@@ -98,4 +96,10 @@
VibratorWrapper.INSTANCE[context].vibrate(composition.compose())
}
}
+
+ override fun close() {}
+
+ companion object {
+ @JvmField val INSTANCE = MainThreadInitializedObject { ContextualSearchHapticManager(it) }
+ }
}
diff --git a/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt b/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt
index dcb72aa..bd454c0 100644
--- a/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt
+++ b/quickstep/src/com/android/quickstep/util/ContextualSearchInvoker.kt
@@ -22,7 +22,6 @@
import android.content.Context
import android.util.Log
import com.android.internal.app.AssistUtils
-import com.android.launcher3.LauncherApplication
import com.android.launcher3.R
import com.android.launcher3.logging.StatsLogManager
import com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_LAUNCH_ASSISTANT_FAILED_SERVICE_ERROR
@@ -57,9 +56,7 @@
TopTaskTracker.INSTANCE[context],
SystemUiProxy.INSTANCE[context],
StatsLogManager.newInstance(context),
- (context.applicationContext as LauncherApplication)
- .appComponent
- .contextualSearchHapticManager,
+ ContextualSearchHapticManager.INSTANCE[context],
context.getSystemService(ContextualSearchManager::class.java),
)