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

Commit 5d102d1d authored by Xingli Fang's avatar Xingli Fang Committed by Sonny Zylstra
Browse files

Hide the icon on the Footer, and change the learn more text.

Bug: 419102354
Test: atest SupervisionAocFooterPreferenceTest
Flag: android.app.supervision.flags.enable_supervision_settings_screen
Change-Id: I3b381d95824a94380f733696053d37096ae9c3c7
parent e5277afa
Loading
Loading
Loading
Loading
+6 −23
Original line number Diff line number Diff line
@@ -15,16 +15,15 @@
 */
package com.android.settings.supervision

import android.util.Log
import android.text.Html
import android.view.View
import androidx.preference.Preference
import com.android.settings.supervision.ipc.PreferenceData
import com.android.settings.widget.FooterPreferenceBinding
import com.android.settings.widget.FooterPreferenceMetadata
import com.android.settingslib.HelpUtils
import com.android.settingslib.metadata.PreferenceLifecycleContext
import com.android.settingslib.metadata.PreferenceLifecycleProvider
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.supervision.SupervisionLog
import com.android.settingslib.widget.FooterPreference
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
@@ -46,26 +45,10 @@ class SupervisionAocFooterPreference(
        val footerPreference = preference as FooterPreference
        val context = preference.context

        preference.isVisible =
            (preferenceData?.isVisible ?: false) &&
                preferenceData?.title != null &&
                preferenceData?.learnMoreLink != null
        preference.title = preferenceData?.title

        footerPreference.setLearnMoreAction {
            val intent =
                HelpUtils.getHelpIntent(
                    context,
                    preferenceData?.learnMoreLink,
                    context::class.java.name,
                )

            if (intent != null) {
                context.startActivity(intent)
            } else {
                Log.w(SupervisionLog.TAG, "HelpIntent is null")
            }
        }
        preference.isVisible = (preferenceData?.isVisible ?: false) && preferenceData?.title != null
        preference.title =
            Html.fromHtml(preferenceData?.title.toString(), Html.FROM_HTML_MODE_COMPACT)
        footerPreference.setIconVisibility(View.GONE)
    }

    override fun onResume(context: PreferenceLifecycleContext) {
+9 −29
Original line number Diff line number Diff line
@@ -70,10 +70,7 @@ class SupervisionAocFooterPreferenceTest {
    @Test
    fun onResume_allGood_titleIsSet_preferenceIsVisible() =
        testScope.runTest {
            val title = "test title"
            val learnMoreLink = "https://google.com/learnMore"
            preferenceData =
                PreferenceData(title = title, learnMoreLink = learnMoreLink, isVisible = true)
            preferenceData = PreferenceData(title = PREFERENCE_TITLE, isVisible = true)

            val aosFooterPreference =
                SupervisionAocFooterPreference(preferenceDataProvider, testDispatcher)
@@ -83,16 +80,13 @@ class SupervisionAocFooterPreferenceTest {
            aosFooterPreference.bind(preference, mock())

            assertThat(preference.isVisible).isTrue()
            assertThat(preference.title).isEqualTo(title)
            assertThat(preference.title.toString()).isEqualTo(PREFERENCE_TITLE)
        }

    @Test
    fun onResume_notVisible_preferenceIsHidden() =
        testScope.runTest {
            val title = "test title"
            val learnMoreLink = "https://google.com/learnMore"
            preferenceData =
                PreferenceData(title = title, learnMoreLink = learnMoreLink, isVisible = false)
            preferenceData = PreferenceData(title = PREFERENCE_TITLE, isVisible = false)

            val aosFooterPreference =
                SupervisionAocFooterPreference(preferenceDataProvider, testDispatcher)
@@ -102,14 +96,13 @@ class SupervisionAocFooterPreferenceTest {
            aosFooterPreference.bind(preference, mock())

            assertThat(preference.isVisible).isFalse()
            assertThat(preference.title).isEqualTo(title)
            assertThat(preference.title.toString()).isEqualTo(PREFERENCE_TITLE)
        }

    @Test
    fun onResume_noLearnMoreLink_preferenceIsHidden() =
    fun onResume_noTitle_preferenceIsHidden() =
        testScope.runTest {
            val title = "test title"
            preferenceData = PreferenceData(title = title, isVisible = false)
            preferenceData = PreferenceData(isVisible = false)

            val aosFooterPreference =
                SupervisionAocFooterPreference(preferenceDataProvider, testDispatcher)
@@ -119,22 +112,9 @@ class SupervisionAocFooterPreferenceTest {
            aosFooterPreference.bind(preference, mock())

            assertThat(preference.isVisible).isFalse()
            assertThat(preference.title).isEqualTo(title)
        }

    @Test
    fun onResume_noTitle_preferenceIsHidden() =
        testScope.runTest {
            val learnMoreLink = "https://google.com/learnMore"
            preferenceData = PreferenceData(learnMoreLink = learnMoreLink, isVisible = false)

            val aosFooterPreference =
                SupervisionAocFooterPreference(preferenceDataProvider, testDispatcher)

            aosFooterPreference.onResume(preferenceLifecycleContext)
            verify(preferenceLifecycleContext).notifyPreferenceChange(KEY)
            aosFooterPreference.bind(preference, mock())

            assertThat(preference.isVisible).isFalse()
    private companion object {
        const val PREFERENCE_TITLE = "test title"
    }
}