mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-03 09:26:51 +00:00
Merge "Injrect WindowContext into RecentsWindowManager" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
bb2b582e7f
@@ -31,7 +31,6 @@ import android.view.RemoteAnimationTarget
|
||||
import android.view.SurfaceControl
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY
|
||||
import android.window.RemoteTransition
|
||||
import com.android.app.displaylib.PerDisplayInstanceProviderWithTeardown
|
||||
import com.android.app.displaylib.PerDisplayRepository
|
||||
@@ -42,8 +41,9 @@ import com.android.launcher3.LauncherAnimationRunner.RemoteAnimationFactory
|
||||
import com.android.launcher3.LauncherState.NORMAL
|
||||
import com.android.launcher3.R
|
||||
import com.android.launcher3.compat.AccessibilityManagerCompat
|
||||
import com.android.launcher3.dagger.DisplayContext
|
||||
import com.android.launcher3.dagger.LauncherAppSingleton
|
||||
import com.android.launcher3.dagger.WindowContext
|
||||
import com.android.launcher3.desktop.DesktopRecentsTransitionController
|
||||
import com.android.launcher3.statemanager.StateManager
|
||||
import com.android.launcher3.statemanager.StateManager.AtomicAnimationFactory
|
||||
import com.android.launcher3.statemanager.StatefulContainer
|
||||
@@ -103,8 +103,13 @@ import javax.inject.Inject
|
||||
*/
|
||||
class RecentsWindowManager
|
||||
@AssistedInject
|
||||
constructor(@Assisted context: Context, wallpaperColorHints: WallpaperColorHints) :
|
||||
RecentsWindowContext(context, wallpaperColorHints.hints),
|
||||
constructor(
|
||||
@Assisted windowContext: Context,
|
||||
wallpaperColorHints: WallpaperColorHints,
|
||||
private val systemUiProxy: SystemUiProxy,
|
||||
private val recentsModel: RecentsModel,
|
||||
) :
|
||||
RecentsWindowContext(windowContext, wallpaperColorHints.hints),
|
||||
RecentsViewContainer,
|
||||
StatefulContainer<RecentsState> {
|
||||
|
||||
@@ -131,9 +136,7 @@ constructor(@Assisted context: Context, wallpaperColorHints: WallpaperColorHints
|
||||
}
|
||||
|
||||
protected var recentsView: FallbackRecentsView<RecentsWindowManager>? = null
|
||||
private val windowContext: Context = createWindowContext(TYPE_APPLICATION_OVERLAY, null)
|
||||
private val windowManager: WindowManager =
|
||||
windowContext.getSystemService(WindowManager::class.java)!!
|
||||
private val windowManager: WindowManager = getSystemService(WindowManager::class.java)!!
|
||||
private var layoutInflater: LayoutInflater = LayoutInflater.from(this).cloneInContext(this)
|
||||
private var stateManager: StateManager<RecentsState, RecentsWindowManager> =
|
||||
StateManager<RecentsState, RecentsWindowManager>(this, RecentsState.BG_LAUNCHER)
|
||||
@@ -262,11 +265,16 @@ constructor(@Assisted context: Context, wallpaperColorHints: WallpaperColorHints
|
||||
stateManager,
|
||||
/* depthController= */ null,
|
||||
statsLogManager,
|
||||
SystemUiProxy.INSTANCE[this@RecentsWindowManager],
|
||||
RecentsModel.INSTANCE[this@RecentsWindowManager],
|
||||
systemUiProxy,
|
||||
recentsModel,
|
||||
/* activityBackCallback= */ null,
|
||||
),
|
||||
/* desktopRecentsTransitionController= */ null,
|
||||
DesktopRecentsTransitionController(
|
||||
stateManager,
|
||||
systemUiProxy,
|
||||
iApplicationThread,
|
||||
/* depthController= */ null,
|
||||
),
|
||||
)
|
||||
}
|
||||
actionsView?.apply {
|
||||
@@ -494,7 +502,7 @@ constructor(@Assisted context: Context, wallpaperColorHints: WallpaperColorHints
|
||||
@AssistedFactory
|
||||
interface Factory {
|
||||
/** Creates a new instance of [RecentsWindowManager] for a given [context]. */
|
||||
fun create(@DisplayContext context: Context): RecentsWindowManager
|
||||
fun create(@WindowContext context: Context): RecentsWindowManager
|
||||
}
|
||||
}
|
||||
|
||||
@@ -503,10 +511,10 @@ class RecentsWindowManagerInstanceProvider
|
||||
@Inject
|
||||
constructor(
|
||||
private val factory: RecentsWindowManager.Factory,
|
||||
@DisplayContext private val displayContextRepository: PerDisplayRepository<Context>,
|
||||
@WindowContext private val windowContextRepository: PerDisplayRepository<Context>,
|
||||
) : PerDisplayInstanceProviderWithTeardown<RecentsWindowManager> {
|
||||
override fun createInstance(displayId: Int) =
|
||||
displayContextRepository[displayId]?.let { factory.create(it) }
|
||||
windowContextRepository[displayId]?.let { factory.create(it) }
|
||||
|
||||
override fun destroyInstance(instance: RecentsWindowManager) {
|
||||
instance.destroy()
|
||||
|
||||
Reference in New Issue
Block a user