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

Commit 975a12c2 authored by Mir Noshin Jahan's avatar Mir Noshin Jahan Committed by Android (Google) Code Review
Browse files

Merge "Add nested toggle switches under Adaptive connectivity settings UI Bug:...

Merge "Add nested toggle switches under Adaptive connectivity settings UI Bug: 393645580 Flag: com.android.settings.flags.enable_nested_toggle_switches Test: Manual testing atest AdaptiveConnectivityScreenTest hsv: https://hsv.googleplex.com/5165236934934528" into main
parents 29234e59 16e32fae
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
package: "com.android.settings.flags"
container: "system_ext"

flag {
  name: "enable_nested_toggle_switches"
  namespace: "android_settings"
  description: "Enable nested toggle switches in Adaptive connectivity settings UI"
  bug: "393645580"
}
+9 −1
Original line number Diff line number Diff line
@@ -6771,7 +6771,15 @@
    <string name="adaptive_connectivity_switch_off">Off</string>
    <!-- Title for adaptive connectivity main switch preferences. [CHAR LIMIT=50] -->
    <string name="adaptive_connectivity_main_switch_title">Use adaptive connectivity</string>
    <!-- Title for adaptive connectivity wi-fi switch preferences. [CHAR LIMIT=50] -->
    <string name="adaptive_connectivity_wifi_switch_title">Auto\u2011switch Wi\u2011Fi to Cellular</string>
    <!-- Summary for adaptive connectivity wi-fi switch preferences. [CHAR LIMIT=NONE] -->
    <string name="adaptive_connectivity_wifi_switch_summary">Automatically use cellular data when Wi\u2011Fi connection is poor or unavailable.
Data usage charges may apply.</string>
    <!-- Title for adaptive connectivity mobile network switch preferences. [CHAR LIMIT=50] -->
    <string name="adaptive_connectivity_mobile_network_switch_title">Auto\u2011switch mobile network for battery life</string>
    <!-- Summary for adaptive connectivity mobile network switch preferences. [CHAR LIMIT=NONE] -->
    <string name="adaptive_connectivity_mobile_network_switch_summary">Extend battery life by automatically managing network connections</string>
    <!-- Cellular security related strings -->
    <!-- Title of Cellular security tile in Network & Internet settings page. [CHAR LIMIT=60]-->
    <string name="cellular_security_title">Mobile network security</string>
+11 −0
Original line number Diff line number Diff line
@@ -33,4 +33,15 @@
        android:title="@string/adaptive_connectivity_main_switch_title"
        settings:controller="com.android.settings.network.AdaptiveConnectivityTogglePreferenceController"/>

    <SwitchPreferenceCompat
        android:key="adaptive_connectivity_wifi_enabled"
        android:title="@string/adaptive_connectivity_wifi_switch_title"
        android:summary="@string/adaptive_connectivity_wifi_switch_summary"
        settings:isPreferenceVisible="false"/>

    <SwitchPreferenceCompat
        android:key="adaptive_connectivity_mobile_network_enabled"
        android:title="@string/adaptive_connectivity_mobile_network_switch_title"
        android:summary="@string/adaptive_connectivity_mobile_network_switch_summary"
        settings:isPreferenceVisible="false"/>
</PreferenceScreen>
+44 −23
Original line number Diff line number Diff line
@@ -17,22 +17,26 @@ package com.android.settings.network;

import android.app.settings.SettingsEnums;
import android.content.Context;

import android.os.Bundle;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import androidx.preference.SwitchPreferenceCompat;
import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;

/**
 * Adaptive connectivity is a feature which automatically manages network connections.
 */
/** Adaptive connectivity is a feature which automatically manages network connections. */
@SearchIndexable
public class AdaptiveConnectivitySettings extends DashboardFragment {

  private static final String TAG = "AdaptiveConnectivitySettings";
  protected static final String ADAPTIVE_CONNECTIVITY_WIFI_ENABLED =
      "adaptive_connectivity_wifi_enabled";
  protected static final String ADAPTIVE_CONNECTIVITY_MOBILE_NETWORK_ENABLED =
      "adaptive_connectivity_mobile_network_enabled";

  @Override
  public int getMetricsCategory() {
@@ -56,4 +60,21 @@ public class AdaptiveConnectivitySettings extends DashboardFragment {
  public @Nullable String getPreferenceScreenBindingKey(@NonNull Context context) {
    return AdaptiveConnectivityScreen.KEY;
  }

  @Override
  public void onCreatePreferences(@NonNull Bundle savedInstanceState, @NonNull String rootKey) {
    Log.i("Settings", "onCreatePreferences");
    super.onCreatePreferences(savedInstanceState, rootKey);
    if (Flags.enableNestedToggleSwitches()) {
      setSwitchVisibility(ADAPTIVE_CONNECTIVITY_WIFI_ENABLED, true);
      setSwitchVisibility(ADAPTIVE_CONNECTIVITY_MOBILE_NETWORK_ENABLED, true);
    }
  }

  private void setSwitchVisibility(String key, boolean isVisible) {
    SwitchPreferenceCompat switchPreference = findPreference(key);
    if (switchPreference != null) {
      switchPreference.setVisible(isVisible);
    }
  }
}
+23 −0
Original line number Diff line number Diff line
@@ -16,13 +16,17 @@

package com.android.settings.network

import androidx.preference.SwitchPreferenceCompat
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.flags.Flags
import com.android.settings.network.AdaptiveConnectivitySettings.ADAPTIVE_CONNECTIVITY_MOBILE_NETWORK_ENABLED
import com.android.settings.network.AdaptiveConnectivitySettings.ADAPTIVE_CONNECTIVITY_WIFI_ENABLED
import com.android.settingslib.preference.CatalystScreenTestCase
import com.google.common.truth.Truth.assertThat
import org.junit.Test
import org.junit.runner.RunWith

@Suppress("DEPRECATION")
@RunWith(AndroidJUnit4::class)
class AdaptiveConnectivityScreenTest : CatalystScreenTestCase() {
    override val preferenceScreenCreator = AdaptiveConnectivityScreen()
@@ -35,4 +39,23 @@ class AdaptiveConnectivityScreenTest : CatalystScreenTestCase() {
    fun key() {
        assertThat(preferenceScreenCreator.key).isEqualTo(AdaptiveConnectivityScreen.KEY)
    }

    @Test
    fun flagDefaultDisabled_noSwitchPreferenceCompatExists() {
        // create fragment
        val fragment: AdaptiveConnectivitySettings =
            preferenceScreenCreator.fragmentClass().newInstance()
        // check if switch preference exists
        assertSwitchPreferenceCompatIsNull(ADAPTIVE_CONNECTIVITY_WIFI_ENABLED, fragment)
        assertSwitchPreferenceCompatIsNull(ADAPTIVE_CONNECTIVITY_MOBILE_NETWORK_ENABLED, fragment)
    }

    private fun assertSwitchPreferenceCompatIsNull(
        key: String,
        fragment: AdaptiveConnectivitySettings
    ) {
        val switchPreference = fragment.findPreference<SwitchPreferenceCompat>(key)
        assertThat(switchPreference).isNull()
    }

}