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

Commit 8c43addd authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[Catalyst] Add PreferenceScreenCreator.launchFragmentScenario" into main

parents ac91e911 4201898c
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -17,9 +17,14 @@
package com.android.settingslib.preference

import android.content.Context
import android.os.Bundle
import androidx.annotation.VisibleForTesting
import androidx.fragment.app.testing.FragmentScenario
import androidx.preference.Preference
import androidx.preference.PreferenceFragmentCompat
import androidx.preference.PreferenceScreen
import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_ARGS
import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY
import com.android.settingslib.metadata.PersistentPreference
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceScreenMetadata
@@ -46,3 +51,14 @@ fun <P : Preference> PreferenceMetadata.createAndBindWidget(
        binding.bind(it, this)
    }
}

/** Launches fragment for given [PreferenceScreenCreator]. */
@Suppress("UNCHECKED_CAST")
fun PreferenceScreenCreator.launchFragmentScenario() =
    FragmentScenario.launchInContainer(
        fragmentClass() as Class<out PreferenceFragmentCompat>,
        Bundle(2).also {
            it.putString(EXTRA_BINDING_SCREEN_KEY, key)
            it.putBundle(EXTRA_BINDING_SCREEN_ARGS, arguments)
        },
    )