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

Commit 69d49427 authored by Zhen Zhang's avatar Zhen Zhang Committed by Automerger Merge Worker
Browse files

Fix advanced preferences behavior in AllInOneTetherSettings am: b1d19a8b am:...

Fix advanced preferences behavior in AllInOneTetherSettings am: b1d19a8b am: 0ea7803c am: 79ce7a08

Change-Id: I65580dd2e5d4665df0adf63fb1747261e001ffe2
parents 44874aeb 79ce7a08
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -91,8 +91,12 @@ public class AllInOneTetherSettings extends RestrictedDashboardFragment

    private static final String KEY_DATA_SAVER_FOOTER = "disabled_on_data_saver" + DEDUP_POSTFIX;
    private static final String KEY_WIFI_TETHER_GROUP = "wifi_tether_settings_group";
    private static final int EXPANDED_CHILD_COUNT_WITH_SECURITY_NON = 2;
    private static final int EXPANDED_CHILD_COUNT_DEFAULT = 3;
    @VisibleForTesting
    static final int EXPANDED_CHILD_COUNT_DEFAULT = 3;
    @VisibleForTesting
    static final int EXPANDED_CHILD_COUNT_WITH_SECURITY_NON = 2;
    @VisibleForTesting
    static final int EXPANDED_CHILD_COUNT_WITHOUT_WIFI_CONFIG = 3;
    private static final String TAG = "AllInOneTetherSettings";

    private boolean mUnavailable;
@@ -120,7 +124,6 @@ public class AllInOneTetherSettings extends RestrictedDashboardFragment
                mUsbTethering = TetherEnabler.isUsbTethering(state);
                mWifiTethering = TetherEnabler.isWifiTethering(state);
                mWifiTetherGroup.setVisible(shouldShowWifiConfig());
                reConfigInitialExpandedChildCount();
            };

    private final BroadcastReceiver mTetherChangeReceiver = new BroadcastReceiver() {
@@ -354,10 +357,6 @@ public class AllInOneTetherSettings extends RestrictedDashboardFragment
            mRestartWifiApAfterConfigChange = true;
            mTetherEnabler.stopTethering(TETHERING_WIFI);
        }

        if (controller instanceof WifiTetherSecurityPreferenceController) {
            reConfigInitialExpandedChildCount();
        }
    }

    private SoftApConfiguration buildNewConfig() {
@@ -384,15 +383,10 @@ public class AllInOneTetherSettings extends RestrictedDashboardFragment
        return mWifiTethering || (!mBluetoothTethering && !mUsbTethering);
    }

    private void reConfigInitialExpandedChildCount() {
        getPreferenceScreen().setInitialExpandedChildrenCount(getInitialExpandedChildCount());
    }

    @Override
    public int getInitialExpandedChildCount() {
        if (!shouldShowWifiConfig()) {
            // Expand all preferences in the screen.
            return getPreferenceScreen().getPreferenceCount();
            return EXPANDED_CHILD_COUNT_WITHOUT_WIFI_CONFIG;
        }

        if (mSecurityPreferenceController == null) {
+35 −0
Original line number Diff line number Diff line
@@ -16,6 +16,9 @@

package com.android.settings;

import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_DEFAULT;
import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_WITHOUT_WIFI_CONFIG;
import static com.android.settings.AllInOneTetherSettings.EXPANDED_CHILD_COUNT_WITH_SECURITY_NON;
import static com.android.settings.network.TetherEnabler.BLUETOOTH_TETHER_KEY;
import static com.android.settings.network.TetherEnabler.USB_TETHER_KEY;
import static com.android.settings.network.TetherEnabler.WIFI_TETHER_DISABLE_KEY;
@@ -29,6 +32,7 @@ import static org.mockito.Mockito.when;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.SoftApConfiguration;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.FeatureFlagUtils;
@@ -36,6 +40,7 @@ import android.util.FeatureFlagUtils;
import com.android.settings.core.FeatureFlags;
import com.android.settings.testutils.shadow.ShadowWifiManager;
import com.android.settings.wifi.tether.WifiTetherAutoOffPreferenceController;
import com.android.settings.wifi.tether.WifiTetherSecurityPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;

import org.junit.Before;
@@ -65,6 +70,8 @@ public class AllInOneTetherSettingsTest {
    private ConnectivityManager mConnectivityManager;
    @Mock
    private UserManager mUserManager;
    @Mock
    private WifiTetherSecurityPreferenceController mSecurityPreferenceController;

    @Before
    public void setUp() {
@@ -82,6 +89,8 @@ public class AllInOneTetherSettingsTest {

        mAllInOneTetherSettings = new AllInOneTetherSettings();
        ReflectionHelpers.setField(mAllInOneTetherSettings, "mLifecycle", mock(Lifecycle.class));
        ReflectionHelpers.setField(mAllInOneTetherSettings, "mSecurityPreferenceController",
                mSecurityPreferenceController);
    }

    @Test
@@ -157,6 +166,32 @@ public class AllInOneTetherSettingsTest {
                .isEqualTo(1);
    }

    @Test
    public void getInitialExpandedChildCount_shouldShowWifiConfigWithSecurity() {
        ReflectionHelpers.setField(mAllInOneTetherSettings, "mWifiTethering", true);
        when(mSecurityPreferenceController.getSecurityType())
                .thenReturn(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
                .isEqualTo(EXPANDED_CHILD_COUNT_DEFAULT);
    }

    @Test
    public void getInitialExpandedChildCount_shouldShowWifiConfigWithoutSecurity() {
        ReflectionHelpers.setField(mAllInOneTetherSettings, "mWifiTethering", true);
        when(mSecurityPreferenceController.getSecurityType())
                .thenReturn(SoftApConfiguration.SECURITY_TYPE_OPEN);
        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
                .isEqualTo(EXPANDED_CHILD_COUNT_WITH_SECURITY_NON);
    }

    @Test
    public void getInitialExpandedChildCount_shouldNotShowWifiConfig() {
        ReflectionHelpers.setField(mAllInOneTetherSettings, "mWifiTethering", false);
        ReflectionHelpers.setField(mAllInOneTetherSettings, "mBluetoothTethering", true);
        assertThat(mAllInOneTetherSettings.getInitialExpandedChildCount())
                .isEqualTo(EXPANDED_CHILD_COUNT_WITHOUT_WIFI_CONFIG);
    }

    private void setupIsTetherAvailable(boolean returnValue) {
        when(mConnectivityManager.isTetheringSupported()).thenReturn(true);