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

Commit c0fc9255 authored by Weng Su's avatar Weng Su
Browse files

Update Internet Settings layout

- Add catagory names
  - Mobile data
  - Wi-Fi
  - Networks

- Move the Wi-Fi switch and the connected Wi-Fi network to Wi-Fi catagory

Bug: 405256017
Bug: 406549814
Flag: EXEMPT bugfix
Test: Manual testing
  atest NetworkProviderSettingsTest
  atest InternetResetHelperTest \
        WifiSwitchPreferenceTest \
        WifiCategoryTest

NO_IFTTT=Wi-Fi switch title string updated

Change-Id: Ia5446d3071f798e67c3b89b8147a95a027918c7a
parent 756108fe
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2309,6 +2309,8 @@
    <!-- Used in the Wi-Fi settings screen to control turning on/off Wi-Fi entirely [CHAR LIMIT=30]-->
    <string name="wifi_settings_primary_switch_title">Use Wi\u2011Fi</string>
    <!-- Category name of Wi-fi networks [CHAR LIMIT=60] -->
    <string name="wifi_networks_category">Networks</string>
    <!-- Title of the Wi-fi settings screen -->
    <string name="wifi_settings_category">Wi\u2011Fi settings</string>
    <!-- Used by Account creation for turning on Wi-Fi  [CHAR LIMIT=60] -->
+10 −17
Original line number Diff line number Diff line
@@ -54,30 +54,23 @@

    <PreferenceCategory
        android:key="provider_model_mobile_network"
        android:title="@string/summary_placeholder"
        android:layout="@layout/preference_category_no_label"
        android:title="@string/mobile_data_settings_title"
        settings:isPreferenceVisible="@bool/config_show_sim_info"
        settings:controller="com.android.settings.network.NetworkMobileProviderController"/>

    <PreferenceCategory
        android:key="wifi_category"
        android:title="@string/wifi_settings">
        <com.android.settingslib.RestrictedSwitchPreference
            android:key="main_toggle_wifi"
        android:title="@string/wifi"
            android:title="@string/wifi_settings_primary_switch_title"
            settings:keywords="@string/keywords_wifi"
        settings:restrictedSwitchSummary="@string/not_allowed_by_ent"
        settings:allowDividerAbove="true"/>

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

    <PreferenceCategory
        android:key="first_access_points"
        android:layout="@layout/preference_category_no_label"/>
            settings:restrictedSwitchSummary="@string/not_allowed_by_ent"/>
    </PreferenceCategory>

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

        android:title="@string/wifi_networks_category">
        <com.android.settings.wifi.AddWifiNetworkPreference
            android:key="add_wifi_network"
            android:title="@string/wifi_add_network"
+0 −4
Original line number Diff line number Diff line
@@ -74,15 +74,11 @@ public class InternetResetHelper implements LifecycleObserver {
    public InternetResetHelper(Context context, Lifecycle lifecycle,
            NetworkMobileProviderController mobileNetworkController,
            Preference wifiTogglePreferences,
            PreferenceCategory connectedWifiEntryPreferenceCategory,
            PreferenceCategory firstWifiEntryPreferenceCategory,
            PreferenceCategory wifiEntryPreferenceCategory,
            Preference resettingPreference) {
        mContext = context;
        mMobileNetworkController = mobileNetworkController;
        mWifiTogglePreferences = wifiTogglePreferences;
        mWifiNetworkPreferences.add(connectedWifiEntryPreferenceCategory);
        mWifiNetworkPreferences.add(firstWifiEntryPreferenceCategory);
        mWifiNetworkPreferences.add(wifiEntryPreferenceCategory);
        mResettingPreference = resettingPreference;

+9 −37
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ import com.android.settings.wifi.AddWifiNetworkPreference;
import com.android.settings.wifi.ConfigureWifiEntryFragment;
import com.android.settings.wifi.ConnectedWifiEntryPreference;
import com.android.settings.wifi.LongPressWifiEntryPreference;
import com.android.settings.wifi.WifiCategory;
import com.android.settings.wifi.WifiConfigUiBase2;
import com.android.settings.wifi.WifiDialog2;
import com.android.settings.wifi.WifiPickerTrackerHelper;
@@ -232,10 +233,7 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment

    private WifiDialog2 mDialog;

    @VisibleForTesting
    PreferenceCategory mConnectedWifiEntryPreferenceCategory;
    @VisibleForTesting
    PreferenceCategory mFirstWifiEntryPreferenceCategory;
    private WifiCategory mWifiCategory;
    @VisibleForTesting
    PreferenceCategory mWifiEntryPreferenceCategory;
    @VisibleForTesting
@@ -388,8 +386,7 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
    private void addPreferences() {
        mAirplaneModeMsgPreference = findPreference(PREF_KEY_AIRPLANE_MODE_MSG);
        updateAirplaneModeMsgPreference(mAirplaneModeEnabler.isAirplaneModeOn() /* visible */);
        mConnectedWifiEntryPreferenceCategory = findPreference(PREF_KEY_CONNECTED_ACCESS_POINTS);
        mFirstWifiEntryPreferenceCategory = findPreference(PREF_KEY_FIRST_ACCESS_POINTS);
        mWifiCategory = new WifiCategory(this);
        mWifiEntryPreferenceCategory = findPreference(PREF_KEY_ACCESS_POINTS);
        mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_NETWORK_SETTINGS);
        mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS);
@@ -479,8 +476,6 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
        mInternetResetHelper = new InternetResetHelper(getContext(), getLifecycle(),
                mNetworkMobileProviderController,
                findPreference(WifiSwitchPreferenceController.KEY),
                mConnectedWifiEntryPreferenceCategory,
                mFirstWifiEntryPreferenceCategory,
                mWifiEntryPreferenceCategory,
                mResetInternetPreference);
        mInternetResetHelper.checkRecovering();
@@ -917,19 +912,19 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
                break;

            case WifiManager.WIFI_STATE_ENABLING:
                removeConnectedWifiEntryPreference();
                mWifiCategory.removeWifiEntryPreferences();
                removeWifiEntryPreference();
                setProgressBarVisible(true);
                break;

            case WifiManager.WIFI_STATE_DISABLING:
                removeConnectedWifiEntryPreference();
                mWifiCategory.removeWifiEntryPreferences();
                removeWifiEntryPreference();
                break;

            case WifiManager.WIFI_STATE_DISABLED:
                setWifiScanMessage(/* isWifiEnabled */ false);
                removeConnectedWifiEntryPreference();
                mWifiCategory.removeWifiEntryPreferences();
                removeWifiEntryPreference();
                setAdditionalSettingsSummaries();
                setProgressBarVisible(false);
@@ -1031,13 +1026,12 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
        mWifiEntryPreferenceCategory.setVisible(true);

        final WifiEntry connectedEntry = mWifiPickerTracker.getConnectedWifiEntry();
        PreferenceCategory connectedWifiPreferenceCategory = getConnectedWifiPreferenceCategory();
        connectedWifiPreferenceCategory.setVisible(connectedEntry != null);
        PreferenceCategory connectedWifiPreferenceCategory = mWifiCategory.getPreferenceCategory();
        if (connectedEntry != null) {
            final LongPressWifiEntryPreference connectedPref =
                    connectedWifiPreferenceCategory.findPreference(connectedEntry.getKey());
            if (connectedPref == null || connectedPref.getWifiEntry() != connectedEntry) {
                connectedWifiPreferenceCategory.removeAll();
                mWifiCategory.removeWifiEntryPreferences();
                final ConnectedWifiEntryPreference pref =
                        createConnectedWifiEntryPreference(connectedEntry);
                pref.setKey(connectedEntry.getKey());
@@ -1061,7 +1055,7 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
                }
            }
        } else {
            connectedWifiPreferenceCategory.removeAll();
            mWifiCategory.removeWifiEntryPreferences();
        }

        int index = 0;
@@ -1136,19 +1130,6 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
        }
    }

    @VisibleForTesting
    PreferenceCategory getConnectedWifiPreferenceCategory() {
        if (mInternetUpdater.getInternetType() == InternetUpdater.INTERNET_WIFI) {
            mFirstWifiEntryPreferenceCategory.setVisible(false);
            mFirstWifiEntryPreferenceCategory.removeAll();
            return mConnectedWifiEntryPreferenceCategory;
        }

        mConnectedWifiEntryPreferenceCategory.setVisible(false);
        mConnectedWifiEntryPreferenceCategory.removeAll();
        return mFirstWifiEntryPreferenceCategory;
    }

    @VisibleForTesting
    ConnectedWifiEntryPreference createConnectedWifiEntryPreference(WifiEntry wifiEntry) {
        if (mInternetUpdater.getInternetType() == InternetUpdater.INTERNET_WIFI) {
@@ -1205,15 +1186,6 @@ public class NetworkProviderSettings extends RestrictedDashboardFragment
                .launch();
    }

    /** Removes all preferences and hide the {@link #mConnectedWifiEntryPreferenceCategory} and
     *  {@link #mFirstWifiEntryPreferenceCategory}. */
    private void removeConnectedWifiEntryPreference() {
        mConnectedWifiEntryPreferenceCategory.removeAll();
        mConnectedWifiEntryPreferenceCategory.setVisible(false);
        mFirstWifiEntryPreferenceCategory.setVisible(false);
        mFirstWifiEntryPreferenceCategory.removeAll();
    }

    private void removeWifiEntryPreference() {
        mWifiEntryPreferenceCategory.removeAll();
        mWifiEntryPreferenceCategory.setVisible(false);
+45 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 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.wifi

import android.util.Log
import androidx.preference.PreferenceCategory
import com.android.settings.dashboard.RestrictedDashboardFragment

class WifiCategory(
    private val fragment: RestrictedDashboardFragment,
) {

    val preferenceCategory: PreferenceCategory?
        get() = fragment.findPreference(KEY)

    fun removeWifiEntryPreferences() {
        val category = preferenceCategory ?: run {
            Log.w(TAG, "Can't find PreferenceCategory to remove WifiEntryPreference!")
            return
        }
        for (i in category.preferenceCount - 1 downTo 0) {
            val preference = category.getPreference(i)
            if (preference is WifiEntryPreference) category.removePreference(preference)
        }
    }

    companion object {
        const val TAG = "WifiCategory"
        const val KEY = "wifi_category"
    }
}
 No newline at end of file
Loading