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

Commit ec089f54 authored by Sam Cackett's avatar Sam Cackett Committed by Android (Google) Code Review
Browse files

Merge "Fix duplicate dagger binding of MediaProjectionAppSelectorActivity" into main

parents 28e24c90 b1f8e32c
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -91,7 +91,13 @@ class MediaProjectionAppSelectorActivity(

    public override fun onCreate(bundle: Bundle?) {
        lifecycleRegistry.handleLifecycleEvent(Lifecycle.Event.ON_CREATE)
        component = componentFactory.create(activity = this, view = this, resultHandler = this)
        component =
            componentFactory.create(
                hostUserHandle = hostUserHandle,
                callingPackage = callingPackage,
                view = this,
                resultHandler = this
            )
        component.lifecycleObservers.forEach { lifecycle.addObserver(it) }

        // Create a separate configuration controller for this activity as the configuration
@@ -288,6 +294,18 @@ class MediaProjectionAppSelectorActivity(
    override fun createContentPreviewView(parent: ViewGroup): ViewGroup =
        recentsViewController.createView(parent)

    private val hostUserHandle: UserHandle
        get() {
            val extras =
                intent.extras
                    ?: error("MediaProjectionAppSelectorActivity should be launched with extras")
            return extras.getParcelable(EXTRA_HOST_APP_USER_HANDLE)
                ?: error(
                    "MediaProjectionAppSelectorActivity should be provided with " +
                        "$EXTRA_HOST_APP_USER_HANDLE extra"
                )
        }

    companion object {
        const val TAG = "MediaProjectionAppSelectorActivity"

+4 −25
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import androidx.lifecycle.DefaultLifecycleObserver
import com.android.launcher3.icons.IconFactory
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.media.MediaProjectionAppSelectorActivity
import com.android.systemui.media.MediaProjectionAppSelectorActivity.Companion.EXTRA_HOST_APP_USER_HANDLE
import com.android.systemui.media.MediaProjectionPermissionActivity
import com.android.systemui.mediaprojection.appselector.data.ActivityTaskManagerLabelLoader
import com.android.systemui.mediaprojection.appselector.data.ActivityTaskManagerThumbnailLoader
@@ -118,29 +117,8 @@ interface MediaProjectionAppSelectorModule {
        @Provides
        @MediaProjectionAppSelector
        @MediaProjectionAppSelectorScope
        fun provideCallerPackageName(activity: MediaProjectionAppSelectorActivity): String? =
            activity.callingPackage

        @Provides
        @MediaProjectionAppSelector
        @MediaProjectionAppSelectorScope
        fun bindConfigurationController(
            activity: MediaProjectionAppSelectorActivity
        ): ConfigurationController = ConfigurationControllerImpl(activity)

        @Provides
        @HostUserHandle
        @MediaProjectionAppSelectorScope
        fun hostUserHandle(activity: MediaProjectionAppSelectorActivity): UserHandle {
            val extras =
                activity.intent.extras
                    ?: error("MediaProjectionAppSelectorActivity should be launched with extras")
            return extras.getParcelable(EXTRA_HOST_APP_USER_HANDLE)
                ?: error(
                    "MediaProjectionAppSelectorActivity should be provided with " +
                        "$EXTRA_HOST_APP_USER_HANDLE extra"
                )
        }
        fun bindConfigurationController(context: Context): ConfigurationController =
            ConfigurationControllerImpl(context)

        @Provides fun bindIconFactory(context: Context): IconFactory = IconFactory.obtain(context)

@@ -161,7 +139,8 @@ interface MediaProjectionAppSelectorComponent {
    interface Factory {
        /** Create a factory to inject the activity into the graph */
        fun create(
            @BindsInstance activity: MediaProjectionAppSelectorActivity,
            @BindsInstance @HostUserHandle hostUserHandle: UserHandle,
            @BindsInstance @MediaProjectionAppSelector callingPackage: String?,
            @BindsInstance view: MediaProjectionAppSelectorView,
            @BindsInstance resultHandler: MediaProjectionAppSelectorResultHandler,
        ): MediaProjectionAppSelectorComponent