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

Commit d1af60be authored by Sunny Shao's avatar Sunny Shao
Browse files

[Catalyst] Add highlight and metric key for Modes screenes

NO_IFTTT=Catalyst only

Bug: 418723105
Test: atest
Flag: EXEMPT refactor
Change-Id: Ia39bed0bb6e7ca57d67e9cb54566a0713c71c684
parent eba6276a
Loading
Loading
Loading
Loading
+17 −11
Original line number Diff line number Diff line
@@ -16,12 +16,15 @@

package com.android.settings.notification.modes.devicestate

import android.app.Flags as AppFlags
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID
import com.android.settings.CatalystFragment
import com.android.settings.R
import com.android.settings.Settings.ModeSettingsActivity
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.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceMetadata
@@ -29,8 +32,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

/**
 * This Bedtime mode screen is dedicated for device state. It functions via a virtual key and is
@@ -39,8 +40,8 @@ import com.android.settingslib.preference.PreferenceScreenCreator
 */
// LINT.IfChange
@ProvidePreferenceScreen(ZenModeBedtimeScreen.KEY)
class ZenModeBedtimeScreen :
    PreferenceScreenCreator,
open class ZenModeBedtimeScreen :
    PreferenceScreenMixin,
    PreferenceAvailabilityProvider,
    PreferenceTitleProvider,
    PreferenceSummaryProvider {
@@ -48,11 +49,17 @@ class ZenModeBedtimeScreen :
    override val key: String
        get() = KEY

    override fun getMetricsCategory() =
        SettingsEnums.PAGE_UNKNOWN // TODO: correct page id in future for non-virtual migration.

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

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

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

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

    override fun isAvailable(context: Context) = context.hasBedtimeMode()

@@ -65,9 +72,8 @@ class ZenModeBedtimeScreen :
        Intent(context, ModeSettingsActivity::class.java)
            .putExtra(EXTRA_AUTOMATIC_ZEN_RULE_ID, context.getBedtimeMode()?.id)

    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(context, this) {
        +ZenModeButtonPreference(context.getBedtimeMode()!!)
    }
    override fun getPreferenceHierarchy(context: Context) =
        preferenceHierarchy(context, this) { +ZenModeButtonPreference(context.getBedtimeMode()!!) }

    companion object {
        const val KEY = "device_state_bedtime_mode_screen" // only for device state.
+14 −8
Original line number Diff line number Diff line
@@ -16,13 +16,15 @@

package com.android.settings.notification.modes.devicestate

import android.app.Flags as AppFlags
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID
import com.android.settings.CatalystFragment
import com.android.settings.R
import com.android.settings.Settings.DndModeDisplaySettingsActivity
import com.android.settings.contract.TAG_DEVICE_STATE_SCREEN
import com.android.settings.core.PreferenceScreenMixin
import com.android.settings.flags.Flags
import com.android.settings.notification.modes.ZenHelperBackend
import com.android.settings.notification.modes.ZenModeSummaryHelper
@@ -31,8 +33,6 @@ import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceFragment
import com.android.settingslib.preference.PreferenceScreenCreator

/**
 * This DND mode Display settings screen is dedicated for device state. It functions via a virtual
@@ -41,8 +41,8 @@ import com.android.settingslib.preference.PreferenceScreenCreator
 */
// LINT.IfChange
@ProvidePreferenceScreen(ZenModeDndDisplayScreen.KEY)
class ZenModeDndDisplayScreen :
    PreferenceScreenCreator, PreferenceAvailabilityProvider, PreferenceSummaryProvider {
open class ZenModeDndDisplayScreen :
    PreferenceScreenMixin, PreferenceAvailabilityProvider, PreferenceSummaryProvider {
    override val key: String
        get() = KEY

@@ -52,11 +52,17 @@ class ZenModeDndDisplayScreen :
    override val icon: Int
        get() = R.drawable.ic_zen_mode_category_display

    override fun getMetricsCategory() =
        SettingsEnums.PAGE_UNKNOWN // TODO: correct page id in future for non-virtual migration.

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

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

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

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

    override fun isAvailable(context: Context) = context.hasDndMode()

+13 −6
Original line number Diff line number Diff line
@@ -16,12 +16,15 @@

package com.android.settings.notification.modes.devicestate

import android.app.Flags as AppFlags
import android.app.settings.SettingsEnums
import android.content.Context
import android.content.Intent
import android.provider.Settings.EXTRA_AUTOMATIC_ZEN_RULE_ID
import com.android.settings.CatalystFragment
import com.android.settings.R
import com.android.settings.Settings.ModeSettingsActivity
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.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceMetadata
@@ -29,8 +32,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

/**
 * This DND mode screen is dedicated for device state. It functions via a virtual key and is
@@ -38,19 +39,25 @@ import com.android.settingslib.preference.PreferenceScreenCreator
 * not fully migrated page.
 */
@ProvidePreferenceScreen(ZenModeDndScreen.KEY)
class ZenModeDndScreen :
    PreferenceScreenCreator,
open class ZenModeDndScreen :
    PreferenceScreenMixin,
    PreferenceAvailabilityProvider,
    PreferenceTitleProvider,
    PreferenceSummaryProvider {
    override val key: String
        get() = KEY

    override fun getMetricsCategory() =
        SettingsEnums.PAGE_UNKNOWN // TODO: correct page id in future for non-virtual migration.

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

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

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

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

    override fun isAvailable(context: Context) = context.hasDndMode()