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

Commit 4a399c93 authored by Jacky Wang's avatar Jacky Wang
Browse files

[Catalyst] Use PreferenceScreenMixin for apps screens

Bug: 409940414
Flag: EXEMPT refactor
Test: atest
Change-Id: I1c2d49333369f72e117ccb86138a28223ec507fb
parent 6f402db6
Loading
Loading
Loading
Loading
+10 −10
Original line number Diff line number Diff line
@@ -16,21 +16,18 @@

package com.android.settings.spa.app.catalyst

import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.os.Bundle
import com.android.settings.R
import com.android.settings.core.PreferenceScreenMixin
import com.android.settings.flags.Flags
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceFragment
import com.android.settingslib.preference.PreferenceScreenCreator
import com.android.settingslib.metadata.PreferenceMetadata
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOf

@ProvidePreferenceScreen(AllAppsScreen.KEY)
class AllAppsScreen : PreferenceScreenCreator {
open class AllAppsScreen : PreferenceScreenMixin {

    override val key: String
        get() = KEY
@@ -38,12 +35,15 @@ class AllAppsScreen : PreferenceScreenCreator {
    override val title: Int
        get() = R.string.all_apps

    override val highlightMenuKey: Int
        get() = R.string.menu_key_apps

    override fun getMetricsCategory() = SettingsEnums.PAGE_UNKNOWN // TODO: correct page id

    override fun isFlagEnabled(context: Context) = Flags.catalystAppList() || Flags.deviceState()

    override fun hasCompleteHierarchy() = false

    override fun fragmentClass() = PreferenceFragment::class.java

    override fun getLaunchIntent(context: Context, metadata: PreferenceMetadata?): Intent? {
        return Intent("android.settings.MANAGE_ALL_APPLICATIONS_SETTINGS")
            .setPackage(context.packageName)
+9 −6
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.spa.app.catalyst

import android.Manifest.permission.MANAGE_EXTERNAL_STORAGE
import android.app.Application
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
@@ -29,6 +30,7 @@ import com.android.settings.R
import com.android.settings.applications.AppStateManageExternalStorageBridge
import com.android.settings.contract.TAG_DEVICE_STATE_PREFERENCE
import com.android.settings.contract.TAG_DEVICE_STATE_SCREEN
import com.android.settings.core.PreferenceScreenMixin
import com.android.settings.flags.Flags
import com.android.settingslib.applications.ApplicationsState
import com.android.settingslib.datastore.KeyValueStore
@@ -39,8 +41,6 @@ import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.PreferenceTitleProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceFragment
import com.android.settingslib.preference.PreferenceScreenCreator
import com.android.settingslib.spaprivileged.model.app.AppListRepositoryImpl
import com.android.settingslib.widget.MainSwitchPreferenceBinding
import kotlinx.coroutines.flow.Flow
@@ -48,8 +48,8 @@ import kotlinx.coroutines.flow.flow

// Note: This page is for DeviceState usages.
@ProvidePreferenceScreen(AppInfoAllFilesAccessScreen.KEY, parameterized = true)
class AppInfoAllFilesAccessScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenCreator, PreferenceSummaryProvider, PreferenceTitleProvider {
open class AppInfoAllFilesAccessScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenMixin, PreferenceSummaryProvider, PreferenceTitleProvider {

    private val packageName = arguments.getString("app")!!

@@ -63,6 +63,11 @@ class AppInfoAllFilesAccessScreen(context: Context, override val arguments: Bund
    override val screenTitle: Int
        get() = R.string.manage_external_storage_title

    override val highlightMenuKey: Int
        get() = R.string.menu_key_apps

    override fun getMetricsCategory() = SettingsEnums.PAGE_UNKNOWN // TODO: correct page id

    override fun tags(context: Context) =
        arrayOf(TAG_DEVICE_STATE_SCREEN, TAG_DEVICE_STATE_PREFERENCE)

@@ -86,8 +91,6 @@ class AppInfoAllFilesAccessScreen(context: Context, override val arguments: Bund

    override fun hasCompleteHierarchy() = false

    override fun fragmentClass() = PreferenceFragment::class.java

    override fun getPreferenceHierarchy(context: Context) =
        preferenceHierarchy(context, this) { +AllFilesAccessMainSwitch(storage) }

+9 −6
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.spa.app.catalyst

import android.Manifest.permission.SYSTEM_ALERT_WINDOW
import android.app.Application
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
@@ -29,6 +30,7 @@ import com.android.settings.R
import com.android.settings.applications.AppStateOverlayBridge
import com.android.settings.contract.TAG_DEVICE_STATE_PREFERENCE
import com.android.settings.contract.TAG_DEVICE_STATE_SCREEN
import com.android.settings.core.PreferenceScreenMixin
import com.android.settings.flags.Flags
import com.android.settingslib.applications.ApplicationsState
import com.android.settingslib.datastore.KeyValueStore
@@ -39,8 +41,6 @@ import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.PreferenceTitleProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceFragment
import com.android.settingslib.preference.PreferenceScreenCreator
import com.android.settingslib.spaprivileged.model.app.AppListRepositoryImpl
import com.android.settingslib.widget.MainSwitchPreferenceBinding
import kotlinx.coroutines.flow.Flow
@@ -48,8 +48,8 @@ import kotlinx.coroutines.flow.flow

// Note: This page is for DeviceState usages.
@ProvidePreferenceScreen(AppInfoDisplayOverOtherAppsScreen.KEY, parameterized = true)
class AppInfoDisplayOverOtherAppsScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenCreator, PreferenceSummaryProvider, PreferenceTitleProvider {
open class AppInfoDisplayOverOtherAppsScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenMixin, PreferenceSummaryProvider, PreferenceTitleProvider {

    private val packageName = arguments.getString("app")!!

@@ -63,6 +63,11 @@ class AppInfoDisplayOverOtherAppsScreen(context: Context, override val arguments
    override val screenTitle: Int
        get() = R.string.draw_overlay

    override val highlightMenuKey: Int
        get() = R.string.menu_key_apps

    override fun getMetricsCategory() = SettingsEnums.PAGE_UNKNOWN // TODO: correct page id

    override fun tags(context: Context) =
        arrayOf(TAG_DEVICE_STATE_SCREEN, TAG_DEVICE_STATE_PREFERENCE)

@@ -86,8 +91,6 @@ class AppInfoDisplayOverOtherAppsScreen(context: Context, override val arguments

    override fun hasCompleteHierarchy() = false

    override fun fragmentClass() = PreferenceFragment::class.java

    override fun getPreferenceHierarchy(context: Context) =
        preferenceHierarchy(context, this) { +DisplayOverOtherAppsMainSwitch(storage) }

+9 −6
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.spa.app.catalyst

import android.Manifest.permission.USE_FULL_SCREEN_INTENT
import android.app.AppOpsManager
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
@@ -28,6 +29,7 @@ import androidx.core.net.toUri
import com.android.settings.R
import com.android.settings.contract.TAG_DEVICE_STATE_PREFERENCE
import com.android.settings.contract.TAG_DEVICE_STATE_SCREEN
import com.android.settings.core.PreferenceScreenMixin
import com.android.settings.flags.Flags
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.NoOpKeyedObservable
@@ -37,8 +39,6 @@ import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.PreferenceTitleProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceFragment
import com.android.settingslib.preference.PreferenceScreenCreator
import com.android.settingslib.spaprivileged.model.app.AppListRepositoryImpl
import com.android.settingslib.widget.MainSwitchPreferenceBinding
import kotlinx.coroutines.flow.Flow
@@ -46,8 +46,8 @@ import kotlinx.coroutines.flow.flow

// Note: This page is for DeviceState usages.
@ProvidePreferenceScreen(AppInfoFullScreenIntentScreen.KEY, parameterized = true)
class AppInfoFullScreenIntentScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenCreator, PreferenceSummaryProvider, PreferenceTitleProvider {
open class AppInfoFullScreenIntentScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenMixin, PreferenceSummaryProvider, PreferenceTitleProvider {

    private val packageName = arguments.getString("app")!!

@@ -61,6 +61,11 @@ class AppInfoFullScreenIntentScreen(context: Context, override val arguments: Bu
    override val screenTitle: Int
        get() = R.string.full_screen_intent_title

    override val highlightMenuKey: Int
        get() = R.string.menu_key_apps

    override fun getMetricsCategory() = SettingsEnums.PAGE_UNKNOWN // TODO: correct page id

    override fun tags(context: Context) =
        arrayOf(TAG_DEVICE_STATE_SCREEN, TAG_DEVICE_STATE_PREFERENCE)

@@ -84,8 +89,6 @@ class AppInfoFullScreenIntentScreen(context: Context, override val arguments: Bu

    override fun hasCompleteHierarchy() = false

    override fun fragmentClass() = PreferenceFragment::class.java

    override fun getPreferenceHierarchy(context: Context) =
        preferenceHierarchy(context, this) { +FullScreenIntentMainSwitch(storage) }

+9 −6
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.settings.spa.app.catalyst

import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo
@@ -29,6 +30,7 @@ import com.android.settings.applications.specialaccess.interactacrossprofiles.In
import com.android.settings.applications.specialaccess.interactacrossprofiles.InteractAcrossProfilesSettings
import com.android.settings.contract.TAG_DEVICE_STATE_PREFERENCE
import com.android.settings.contract.TAG_DEVICE_STATE_SCREEN
import com.android.settings.core.PreferenceScreenMixin
import com.android.settings.flags.Flags
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.NoOpKeyedObservable
@@ -38,16 +40,14 @@ import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.PreferenceTitleProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceFragment
import com.android.settingslib.preference.PreferenceScreenCreator
import com.android.settingslib.widget.MainSwitchPreferenceBinding
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow

// Note: This page is for DeviceState usages.
@ProvidePreferenceScreen(AppInfoInteractAcrossProfilesScreen.KEY, parameterized = true)
class AppInfoInteractAcrossProfilesScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenCreator, PreferenceSummaryProvider, PreferenceTitleProvider {
open class AppInfoInteractAcrossProfilesScreen(context: Context, override val arguments: Bundle) :
    PreferenceScreenMixin, PreferenceSummaryProvider, PreferenceTitleProvider {

    private val packageName = arguments.getString("app")!!

@@ -62,6 +62,11 @@ class AppInfoInteractAcrossProfilesScreen(context: Context, override val argumen
    override val screenTitle: Int
        get() = R.string.interact_across_profiles_title

    override val highlightMenuKey: Int
        get() = R.string.menu_key_apps

    override fun getMetricsCategory() = SettingsEnums.PAGE_UNKNOWN // TODO: correct page id

    override fun tags(context: Context) =
        arrayOf(TAG_DEVICE_STATE_SCREEN, TAG_DEVICE_STATE_PREFERENCE)

@@ -89,8 +94,6 @@ class AppInfoInteractAcrossProfilesScreen(context: Context, override val argumen

    override fun hasCompleteHierarchy() = false

    override fun fragmentClass() = PreferenceFragment::class.java

    override fun getPreferenceHierarchy(context: Context) =
        preferenceHierarchy(context, this) { +InteractAcrossProfilesMainSwitch(storage) }

Loading