Loading packages/SettingsLib/Spa/gallery/AndroidManifest.xml +14 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,20 @@ android:exported="false"> </provider> <provider android:name="com.android.settingslib.spa.framework.SpaSliceProvider" android:authorities="com.android.spa.gallery.slice.provider" android:exported="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.app.slice.category.SLICE" /> </intent-filter> </provider> <receiver android:name="com.android.settingslib.spa.framework.SpaSliceBroadcastReceiver" android:exported="false"> </receiver> <activity android:name="com.android.settingslib.spa.framework.debug.BlankActivity" android:exported="true"> Loading packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GallerySpaEnvironment.kt +3 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settingslib.spa.gallery import android.content.Context import com.android.settingslib.spa.framework.SpaSliceBroadcastReceiver import com.android.settingslib.spa.framework.common.LocalLogger import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository import com.android.settingslib.spa.framework.common.SpaEnvironment Loading Loading @@ -79,8 +80,8 @@ class GallerySpaEnvironment(context: Context) : SpaEnvironment(context) { } override val browseActivityClass = GalleryMainActivity::class.java override val sliceBroadcastReceiverClass = SpaSliceBroadcastReceiver::class.java override val searchProviderAuthorities = "com.android.spa.gallery.search.provider" override val sliceProviderAuthorities = "com.android.spa.gallery.slice.provider" override val logger = LocalLogger() } packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePage.kt +91 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.compose.runtime.remember import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.android.settingslib.spa.framework.common.EntrySearchData import com.android.settingslib.spa.framework.common.EntrySliceData import com.android.settingslib.spa.framework.common.EntryStatusData import com.android.settingslib.spa.framework.common.SettingsEntry import com.android.settingslib.spa.framework.common.SettingsEntryBuilder Loading @@ -37,6 +38,7 @@ import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.framework.theme.SettingsTheme import com.android.settingslib.spa.gallery.R import com.android.settingslib.spa.gallery.SettingsPageProviderEnum import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.ASYNC_PREFERENCE_SUMMARY import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.ASYNC_PREFERENCE_TITLE import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.AUTO_UPDATE_PREFERENCE_TITLE import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.DISABLE_PREFERENCE_SUMMARY Loading @@ -46,10 +48,15 @@ import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Compan import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.SIMPLE_PREFERENCE_KEYWORDS import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.SIMPLE_PREFERENCE_SUMMARY import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.SIMPLE_PREFERENCE_TITLE import com.android.settingslib.spa.slice.createBrowsePendingIntent import com.android.settingslib.spa.slice.provider.createDemoActionSlice import com.android.settingslib.spa.slice.provider.createDemoBrowseSlice import com.android.settingslib.spa.slice.provider.createDemoSlice import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.SimplePreferenceMacro import com.android.settingslib.spa.widget.ui.SettingsIcon import kotlinx.coroutines.delay private const val TAG = "PreferencePage" Loading Loading @@ -134,6 +141,26 @@ object PreferencePageProvider : SettingsPageProvider { override val enabled = model.asyncEnable } ) } .setSliceDataFn { sliceUri, _ -> val createSliceImpl = { s: String -> createDemoBrowseSlice( sliceUri = sliceUri, title = ASYNC_PREFERENCE_TITLE, summary = s, ) } return@setSliceDataFn object : EntrySliceData() { init { postValue(createSliceImpl("(loading)")) } override suspend fun asyncRunner() { spaLogger.message(TAG, "Async entry loading") delay(2000L) postValue(createSliceImpl(ASYNC_PREFERENCE_SUMMARY)) } } }.build() ) entryList.add( Loading @@ -152,6 +179,27 @@ object PreferencePageProvider : SettingsPageProvider { } } ) }.setSliceDataFn { sliceUri, args -> val createSliceImpl = { v: Int -> createDemoActionSlice( sliceUri = sliceUri, title = MANUAL_UPDATE_PREFERENCE_TITLE, summary = "manual update value $v", ) } return@setSliceDataFn object : EntrySliceData() { private var tick = args?.getString("init")?.toInt() ?: 0 init { postValue(createSliceImpl(tick)) } override suspend fun asyncAction() { tick++ postValue(createSliceImpl(tick)) } } }.build() ) entryList.add( Loading @@ -170,7 +218,33 @@ object PreferencePageProvider : SettingsPageProvider { } ) } .build() .setSliceDataFn { sliceUri, args -> val createSliceImpl = { v: Int -> createDemoBrowseSlice( sliceUri = sliceUri, title = AUTO_UPDATE_PREFERENCE_TITLE, summary = "auto update value $v", ) } return@setSliceDataFn object : EntrySliceData() { private var tick = args?.getString("init")?.toInt() ?: 0 init { postValue(createSliceImpl(tick)) } override suspend fun asyncRunner() { spaLogger.message(TAG, "autoUpdater.active") while (true) { delay(1000L) tick++ spaLogger.message(TAG, "autoUpdater.value $tick") postValue(createSliceImpl(tick)) } } } }.build() ) return entryList Loading Loading @@ -201,6 +275,22 @@ object PreferencePageProvider : SettingsPageProvider { clickRoute = SettingsPageProviderEnum.PREFERENCE.name ) } .setSliceDataFn { sliceUri, _ -> val intent = owner.createBrowseIntent()?.createBrowsePendingIntent() ?: return@setSliceDataFn null return@setSliceDataFn object : EntrySliceData() { init { postValue( createDemoSlice( sliceUri = sliceUri, title = PAGE_TITLE, summary = "Injected Entry", intent = intent, ) ) } } } } override fun getTitle(arguments: Bundle?): String { Loading packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePageModel.kt +1 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ class PreferencePageModel : PageModel() { const val DISABLE_PREFERENCE_TITLE = "Disabled" const val DISABLE_PREFERENCE_SUMMARY = "Disabled summary" const val ASYNC_PREFERENCE_TITLE = "Async Preference" private const val ASYNC_PREFERENCE_SUMMARY = "Async summary" const val ASYNC_PREFERENCE_SUMMARY = "Async summary" const val MANUAL_UPDATE_PREFERENCE_TITLE = "Manual Updater" const val AUTO_UPDATE_PREFERENCE_TITLE = "Auto Updater" val SIMPLE_PREFERENCE_KEYWORDS = listOf("simple keyword1", "simple keyword2") Loading Loading
packages/SettingsLib/Spa/gallery/AndroidManifest.xml +14 −0 Original line number Diff line number Diff line Loading @@ -41,6 +41,20 @@ android:exported="false"> </provider> <provider android:name="com.android.settingslib.spa.framework.SpaSliceProvider" android:authorities="com.android.spa.gallery.slice.provider" android:exported="true" > <intent-filter> <action android:name="android.intent.action.VIEW" /> <category android:name="android.app.slice.category.SLICE" /> </intent-filter> </provider> <receiver android:name="com.android.settingslib.spa.framework.SpaSliceBroadcastReceiver" android:exported="false"> </receiver> <activity android:name="com.android.settingslib.spa.framework.debug.BlankActivity" android:exported="true"> Loading
packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/GallerySpaEnvironment.kt +3 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.settingslib.spa.gallery import android.content.Context import com.android.settingslib.spa.framework.SpaSliceBroadcastReceiver import com.android.settingslib.spa.framework.common.LocalLogger import com.android.settingslib.spa.framework.common.SettingsPageProviderRepository import com.android.settingslib.spa.framework.common.SpaEnvironment Loading Loading @@ -79,8 +80,8 @@ class GallerySpaEnvironment(context: Context) : SpaEnvironment(context) { } override val browseActivityClass = GalleryMainActivity::class.java override val sliceBroadcastReceiverClass = SpaSliceBroadcastReceiver::class.java override val searchProviderAuthorities = "com.android.spa.gallery.search.provider" override val sliceProviderAuthorities = "com.android.spa.gallery.slice.provider" override val logger = LocalLogger() }
packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePage.kt +91 −1 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import androidx.compose.runtime.remember import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.android.settingslib.spa.framework.common.EntrySearchData import com.android.settingslib.spa.framework.common.EntrySliceData import com.android.settingslib.spa.framework.common.EntryStatusData import com.android.settingslib.spa.framework.common.SettingsEntry import com.android.settingslib.spa.framework.common.SettingsEntryBuilder Loading @@ -37,6 +38,7 @@ import com.android.settingslib.spa.framework.compose.toState import com.android.settingslib.spa.framework.theme.SettingsTheme import com.android.settingslib.spa.gallery.R import com.android.settingslib.spa.gallery.SettingsPageProviderEnum import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.ASYNC_PREFERENCE_SUMMARY import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.ASYNC_PREFERENCE_TITLE import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.AUTO_UPDATE_PREFERENCE_TITLE import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.DISABLE_PREFERENCE_SUMMARY Loading @@ -46,10 +48,15 @@ import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Compan import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.SIMPLE_PREFERENCE_KEYWORDS import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.SIMPLE_PREFERENCE_SUMMARY import com.android.settingslib.spa.gallery.preference.PreferencePageModel.Companion.SIMPLE_PREFERENCE_TITLE import com.android.settingslib.spa.slice.createBrowsePendingIntent import com.android.settingslib.spa.slice.provider.createDemoActionSlice import com.android.settingslib.spa.slice.provider.createDemoBrowseSlice import com.android.settingslib.spa.slice.provider.createDemoSlice import com.android.settingslib.spa.widget.preference.Preference import com.android.settingslib.spa.widget.preference.PreferenceModel import com.android.settingslib.spa.widget.preference.SimplePreferenceMacro import com.android.settingslib.spa.widget.ui.SettingsIcon import kotlinx.coroutines.delay private const val TAG = "PreferencePage" Loading Loading @@ -134,6 +141,26 @@ object PreferencePageProvider : SettingsPageProvider { override val enabled = model.asyncEnable } ) } .setSliceDataFn { sliceUri, _ -> val createSliceImpl = { s: String -> createDemoBrowseSlice( sliceUri = sliceUri, title = ASYNC_PREFERENCE_TITLE, summary = s, ) } return@setSliceDataFn object : EntrySliceData() { init { postValue(createSliceImpl("(loading)")) } override suspend fun asyncRunner() { spaLogger.message(TAG, "Async entry loading") delay(2000L) postValue(createSliceImpl(ASYNC_PREFERENCE_SUMMARY)) } } }.build() ) entryList.add( Loading @@ -152,6 +179,27 @@ object PreferencePageProvider : SettingsPageProvider { } } ) }.setSliceDataFn { sliceUri, args -> val createSliceImpl = { v: Int -> createDemoActionSlice( sliceUri = sliceUri, title = MANUAL_UPDATE_PREFERENCE_TITLE, summary = "manual update value $v", ) } return@setSliceDataFn object : EntrySliceData() { private var tick = args?.getString("init")?.toInt() ?: 0 init { postValue(createSliceImpl(tick)) } override suspend fun asyncAction() { tick++ postValue(createSliceImpl(tick)) } } }.build() ) entryList.add( Loading @@ -170,7 +218,33 @@ object PreferencePageProvider : SettingsPageProvider { } ) } .build() .setSliceDataFn { sliceUri, args -> val createSliceImpl = { v: Int -> createDemoBrowseSlice( sliceUri = sliceUri, title = AUTO_UPDATE_PREFERENCE_TITLE, summary = "auto update value $v", ) } return@setSliceDataFn object : EntrySliceData() { private var tick = args?.getString("init")?.toInt() ?: 0 init { postValue(createSliceImpl(tick)) } override suspend fun asyncRunner() { spaLogger.message(TAG, "autoUpdater.active") while (true) { delay(1000L) tick++ spaLogger.message(TAG, "autoUpdater.value $tick") postValue(createSliceImpl(tick)) } } } }.build() ) return entryList Loading Loading @@ -201,6 +275,22 @@ object PreferencePageProvider : SettingsPageProvider { clickRoute = SettingsPageProviderEnum.PREFERENCE.name ) } .setSliceDataFn { sliceUri, _ -> val intent = owner.createBrowseIntent()?.createBrowsePendingIntent() ?: return@setSliceDataFn null return@setSliceDataFn object : EntrySliceData() { init { postValue( createDemoSlice( sliceUri = sliceUri, title = PAGE_TITLE, summary = "Injected Entry", intent = intent, ) ) } } } } override fun getTitle(arguments: Bundle?): String { Loading
packages/SettingsLib/Spa/gallery/src/com/android/settingslib/spa/gallery/preference/PreferencePageModel.kt +1 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ class PreferencePageModel : PageModel() { const val DISABLE_PREFERENCE_TITLE = "Disabled" const val DISABLE_PREFERENCE_SUMMARY = "Disabled summary" const val ASYNC_PREFERENCE_TITLE = "Async Preference" private const val ASYNC_PREFERENCE_SUMMARY = "Async summary" const val ASYNC_PREFERENCE_SUMMARY = "Async summary" const val MANUAL_UPDATE_PREFERENCE_TITLE = "Manual Updater" const val AUTO_UPDATE_PREFERENCE_TITLE = "Auto Updater" val SIMPLE_PREFERENCE_KEYWORDS = listOf("simple keyword1", "simple keyword2") Loading