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

Commit d7dec0bf authored by David Liu's avatar David Liu
Browse files

Migrate Data Saver

Add the skeleton of the Data Saver

Bug: 368359883
Test: atest DataSaverScreenTest
Flag: com.android.settings.flags.catalyst_restrict_background_parent_entry
Change-Id: I008c1ff7a1ad4ff1eeb95be730680abe5666f26c
parent a9e8225b
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -35,3 +35,11 @@ flag {
  description: "Flag for Wi-Fi calling screen"
  bug: "323791114"
}

flag {
  name: "catalyst_restrict_background_parent_entry"
  namespace: "android_settings"
  description: "Flag for Data Saver"
  bug: "323791114"
}
+50 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.datausage

import android.content.Context
import com.android.settings.R
import com.android.settings.flags.Flags
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator

@ProvidePreferenceScreen
class DataSaverScreen : PreferenceScreenCreator {
    override val key
        get() = KEY

    override val title
        get() = R.string.data_saver_title

    override val icon: Int
        get() = R.drawable.ic_settings_data_usage

    override fun order(context: Context) = 10

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

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

    override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {}

    override fun hasCompleteHierarchy() = false

    companion object {
        const val KEY = "restrict_background_parent_entry"
    }
}
+2 −0
Original line number Diff line number Diff line
@@ -79,6 +79,8 @@ class DataSaverSummary : DashboardFragment() {
    override fun getHelpResource() = R.string.help_url_data_saver
    override fun getLogTag() = TAG

    override fun getPreferenceScreenBindingKey(context: Context) = DataSaverScreen.KEY

    private val dataSaverBackendListener = object : DataSaverBackend.Listener {
        override fun onDataSaverChanged(isDataSaving: Boolean) {
            synchronized(this) {
+35 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2024 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.settings.datausage

import com.android.settings.flags.Flags
import com.android.settingslib.preference.CatalystScreenTestCase
import com.google.common.truth.Truth.assertThat
import org.junit.Test

class DataSaverScreenTest : CatalystScreenTestCase() {
    override val preferenceScreenCreator = DataSaverScreen()
    override val flagName
        get() = Flags.FLAG_CATALYST_RESTRICT_BACKGROUND_PARENT_ENTRY

    override fun migration() {}

    @Test
    fun key() {
        assertThat(preferenceScreenCreator.key).isEqualTo(DataSaverScreen.KEY)
    }
}