Loading packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt +15 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,9 @@ import android.content.Context import android.content.ContextWrapper import android.content.Intent import android.os.Bundle import androidx.activity.result.ActivityResultCallback import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContract import androidx.lifecycle.LifecycleCoroutineScope import com.android.settingslib.datastore.KeyValueStore import kotlinx.coroutines.CoroutineScope Loading Loading @@ -171,4 +174,16 @@ abstract class PreferenceLifecycleContext(context: Context) : ContextWrapper(con * on the preference screen. */ abstract fun startActivityForResult(intent: Intent, requestCode: Int, options: Bundle?) /** * Register a request to start an activity, see [androidx.activity.result.ActivityResultCaller]. * * Because this must be called unconditionally as part of the initialization path of the * Fragment, this API can only be invoked by a preference during * [PreferenceLifecycleProvider.onCreate]. */ abstract fun <I, O> registerForActivityResult( contract: ActivityResultContract<I, O>, callback: ActivityResultCallback<O> ): ActivityResultLauncher<I> } packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt +7 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.settingslib.preference import android.content.Context import android.content.Intent import android.os.Bundle import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContract import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.lifecycleScope import androidx.preference.Preference Loading Loading @@ -81,6 +83,11 @@ class PreferenceScreenBindingHelper( requestCode: Int, options: Bundle?, ) = fragment.startActivityForResult(intent, requestCode, options) override fun <I, O> registerForActivityResult( contract: ActivityResultContract<I, O>, callback: ActivityResultCallback<O> ) = fragment.registerForActivityResult(contract, callback) } private val preferences: ImmutableMap<String, PreferenceHierarchyNode> Loading Loading
packages/SettingsLib/Metadata/src/com/android/settingslib/metadata/PreferenceStateProviders.kt +15 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,9 @@ import android.content.Context import android.content.ContextWrapper import android.content.Intent import android.os.Bundle import androidx.activity.result.ActivityResultCallback import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContract import androidx.lifecycle.LifecycleCoroutineScope import com.android.settingslib.datastore.KeyValueStore import kotlinx.coroutines.CoroutineScope Loading Loading @@ -171,4 +174,16 @@ abstract class PreferenceLifecycleContext(context: Context) : ContextWrapper(con * on the preference screen. */ abstract fun startActivityForResult(intent: Intent, requestCode: Int, options: Bundle?) /** * Register a request to start an activity, see [androidx.activity.result.ActivityResultCaller]. * * Because this must be called unconditionally as part of the initialization path of the * Fragment, this API can only be invoked by a preference during * [PreferenceLifecycleProvider.onCreate]. */ abstract fun <I, O> registerForActivityResult( contract: ActivityResultContract<I, O>, callback: ActivityResultCallback<O> ): ActivityResultLauncher<I> }
packages/SettingsLib/Preference/src/com/android/settingslib/preference/PreferenceScreenBindingHelper.kt +7 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.settingslib.preference import android.content.Context import android.content.Intent import android.os.Bundle import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContract import androidx.lifecycle.LifecycleCoroutineScope import androidx.lifecycle.lifecycleScope import androidx.preference.Preference Loading Loading @@ -81,6 +83,11 @@ class PreferenceScreenBindingHelper( requestCode: Int, options: Bundle?, ) = fragment.startActivityForResult(intent, requestCode, options) override fun <I, O> registerForActivityResult( contract: ActivityResultContract<I, O>, callback: ActivityResultCallback<O> ) = fragment.registerForActivityResult(contract, callback) } private val preferences: ImmutableMap<String, PreferenceHierarchyNode> Loading