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

Commit c06c74af authored by Kohsuke Yatoh's avatar Kohsuke Yatoh Committed by Android (Google) Code Review
Browse files

Merge "Define "Add network" preference in XML." into main

parents 4cb0ecc0 bdfab1de
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -65,7 +65,13 @@

    <PreferenceCategory
        android:key="access_points"
        android:layout="@layout/preference_category_no_label"/>
        android:layout="@layout/preference_category_no_label">

        <com.android.settings.wifi.AddWifiNetworkPreference
            android:key="add_wifi_network"
            android:title="@string/wifi_add_network"
            android:icon="@drawable/ic_add_24dp"/>
    </PreferenceCategory>

    <Preference
        android:key="configure_network_settings"
+9 −1
Original line number Diff line number Diff line
@@ -137,6 +137,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    @VisibleForTesting
    static final String PREF_KEY_FIRST_ACCESS_POINTS = "first_access_points";
    private static final String PREF_KEY_ACCESS_POINTS = "access_points";
    @VisibleForTesting
    static final String PREF_KEY_ADD_WIFI_NETWORK = "add_wifi_network";
    private static final String PREF_KEY_CONFIGURE_NETWORK_SETTINGS = "configure_network_settings";
    private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
    @VisibleForTesting
@@ -322,7 +324,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        mWifiEntryPreferenceCategory = findPreference(PREF_KEY_ACCESS_POINTS);
        mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_NETWORK_SETTINGS);
        mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS);
        mAddWifiNetworkPreference = new AddWifiNetworkPreference(getPrefContext());
        mAddWifiNetworkPreference = findPreference(PREF_KEY_ADD_WIFI_NETWORK);
        // Hide mAddWifiNetworkPreference by default. updateWifiEntryPreferences() will add it back
        // later when appropriate.
        mWifiEntryPreferenceCategory.removePreference(mAddWifiNetworkPreference);
        mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
        mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
        mDataUsagePreference.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI)
@@ -1291,6 +1296,9 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
            if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) {
                keys.add(PREF_KEY_SAVED_NETWORKS);
            }
            if (wifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
                keys.add(PREF_KEY_ADD_WIFI_NETWORK);
            }

            if (!DataUsageUtils.hasWifiRadio(context)) {
                keys.add(PREF_KEY_DATA_USAGE);
+6 −1
Original line number Diff line number Diff line
@@ -20,10 +20,12 @@ import android.content.Context;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.UserManager;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.ImageButton;

import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import androidx.preference.PreferenceViewHolder;

import com.android.settings.R;
@@ -40,8 +42,11 @@ public class AddWifiNetworkPreference extends RestrictedPreference {
    private final Drawable mScanIconDrawable;

    public AddWifiNetworkPreference(Context context) {
        super(context);
        this(context, null);
    }

    public AddWifiNetworkPreference(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
        setLayoutResource(com.android.settingslib.R.layout.preference_access_point);
        setWidgetLayoutResource(R.layout.wifi_button_preference_widget);
        setIcon(R.drawable.ic_add_24dp);
+22 −0
Original line number Diff line number Diff line
@@ -796,6 +796,28 @@ public class NetworkProviderSettingsTest {
        assertThat(keys).contains(NetworkProviderSettings.PREF_KEY_WIFI_TOGGLE);
    }

    @Test
    public void getNonIndexableKeys_wifiStateEnabled_addWifiNetworkKeyNotReturned() {
        when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_ENABLED);
        NetworkProviderSettings.SearchIndexProvider searchIndexProvider =
                new NetworkProviderSettings.SearchIndexProvider(XML_RES, mWifiRestriction);

        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);

        assertThat(keys).doesNotContain(NetworkProviderSettings.PREF_KEY_ADD_WIFI_NETWORK);
    }

    @Test
    public void getNonIndexableKeys_wifiStateDisabled_addWifiNetworkKeyReturned() {
        when(mWifiManager.getWifiState()).thenReturn(WifiManager.WIFI_STATE_DISABLED);
        NetworkProviderSettings.SearchIndexProvider searchIndexProvider =
                new NetworkProviderSettings.SearchIndexProvider(XML_RES, mWifiRestriction);

        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);

        assertThat(keys).contains(NetworkProviderSettings.PREF_KEY_ADD_WIFI_NETWORK);
    }

    @Test
    public void launchConfigNewNetworkFragment_fragmentIsRestricted_ignoreWifiEntry() {
        mNetworkProviderSettings.mIsRestricted = true;