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

Commit 52552ab0 authored by Doris Ling's avatar Doris Ling
Browse files

Remove WifiDetailPreference.

- use the standard Preference instead to display the wifi details, and
enable sumary copying for the preferences under Wifi Network details.

Change-Id: I5371ac667d9239276f6492896123d617f5193871
Fixes: 62493282
Test: make RunSettingsRoboTests
parent 74f7b307
Loading
Loading
Loading
Loading
+23 −17
Original line number Diff line number Diff line
@@ -34,18 +34,18 @@
    <!-- General Details Category -->
    <PreferenceCategory
            android:key="general_details_category" >
        <com.android.settings.wifi.WifiDetailPreference
        <Preference
                android:key="signal_strength"
                android:title="@string/wifi_signal"
                android:selectable="false"/>

        <com.android.settings.wifi.WifiDetailPreference
        <Preference
                android:key="frequency"
                android:icon="@drawable/ic_frequency_antenna"
                android:title="@string/wifi_frequency"
                android:selectable="false"/>

        <com.android.settings.wifi.WifiDetailPreference
        <Preference
                android:key="security"
                android:icon="@drawable/ic_security_lock_24dp"
                android:title="@string/wifi_security"
@@ -69,30 +69,36 @@
    <PreferenceCategory
            android:key="ip_details_category"
            android:title="@string/wifi_setup_detail">
        <com.android.settings.wifi.WifiDetailPreference
        <Preference
                android:key="mac_address"
                android:title="@string/wifi_advanced_mac_address_title"
            android:selectable="false"/>
        <com.android.settings.wifi.WifiDetailPreference
                android:selectable="false"
                settings:enableCopying="true"/>
        <Preference
                android:key="ip_address"
                android:title="@string/wifi_ip_address"
                android:selectable="false"/>
        <com.android.settings.wifi.WifiDetailPreference
                android:selectable="false"
                settings:enableCopying="true"/>
        <Preference
                android:key="gateway"
                android:title="@string/wifi_gateway"
                android:selectable="false"/>
        <com.android.settings.wifi.WifiDetailPreference
                android:selectable="false"
                settings:enableCopying="true"/>
        <Preference
                android:key="subnet_mask"
                android:title="@string/wifi_details_subnet_mask"
                android:selectable="false"/>
        <com.android.settings.wifi.WifiDetailPreference
                android:selectable="false"
                settings:enableCopying="true"/>
        <Preference
                android:key="dns"
                android:title="@string/wifi_details_dns"
                android:selectable="false"/>
        <com.android.settings.wifi.WifiDetailPreference
                android:selectable="false"
                settings:enableCopying="true"/>
        <Preference
                android:key="link_speed"
                android:title="@string/wifi_speed"
                android:selectable="false"/>
                android:selectable="false"
                settings:enableCopying="true"/>
    </PreferenceCategory>

    <!-- IPv6 Details -->
+0 −54
Original line number Diff line number Diff line
/*
 * Copyright (C) 2009 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.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.widget.TextView;

import androidx.preference.Preference;
import androidx.preference.PreferenceViewHolder;

import com.android.settings.R;

/**
 * A Preference to be used with the Wifi Network Detail Fragment that allows a summary text to be
 * set inside the widget resource
 */
public class WifiDetailPreference extends Preference {
    private String mDetailText;

    public WifiDetailPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
        setWidgetLayoutResource(R.layout.preference_widget_summary);
    }

    public void setDetailText(String text) {
        if (TextUtils.equals(mDetailText, text)) return;
        mDetailText = text;
        notifyChanged();
    }

    @Override
    public void onBindViewHolder(PreferenceViewHolder view) {
        super.onBindViewHolder(view);
        TextView textView = ((TextView) view.findViewById(R.id.widget_summary));
        textView.setText(mDetailText);
        textView.setPadding(0, 0, 10, 0);
    }
}
+25 −27
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@ import com.android.settings.Utils;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.widget.ActionButtonPreference;
import com.android.settings.widget.EntityHeaderController;
import com.android.settings.wifi.WifiDetailPreference;
import com.android.settings.wifi.WifiDialog;
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
import com.android.settings.wifi.WifiUtils;
@@ -133,15 +132,15 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
    // UI elements - in order of appearance
    private ActionButtonPreference mButtonsPref;
    private EntityHeaderController mEntityHeaderController;
    private WifiDetailPreference mSignalStrengthPref;
    private WifiDetailPreference mLinkSpeedPref;
    private WifiDetailPreference mFrequencyPref;
    private WifiDetailPreference mSecurityPref;
    private WifiDetailPreference mMacAddressPref;
    private WifiDetailPreference mIpAddressPref;
    private WifiDetailPreference mGatewayPref;
    private WifiDetailPreference mSubnetPref;
    private WifiDetailPreference mDnsPref;
    private Preference mSignalStrengthPref;
    private Preference mLinkSpeedPref;
    private Preference mFrequencyPref;
    private Preference mSecurityPref;
    private Preference mMacAddressPref;
    private Preference mIpAddressPref;
    private Preference mGatewayPref;
    private Preference mSubnetPref;
    private Preference mDnsPref;
    private PreferenceCategory mIpv6Category;
    private Preference mIpv6AddressPref;

@@ -283,22 +282,21 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
                .setButton2Text(R.string.wifi_sign_in_button_text)
                .setButton2OnClickListener(view -> signIntoNetwork());

        mSignalStrengthPref =
                (WifiDetailPreference) screen.findPreference(KEY_SIGNAL_STRENGTH_PREF);
        mLinkSpeedPref = (WifiDetailPreference) screen.findPreference(KEY_LINK_SPEED);
        mFrequencyPref = (WifiDetailPreference) screen.findPreference(KEY_FREQUENCY_PREF);
        mSecurityPref = (WifiDetailPreference) screen.findPreference(KEY_SECURITY_PREF);
        mSignalStrengthPref = screen.findPreference(KEY_SIGNAL_STRENGTH_PREF);
        mLinkSpeedPref = screen.findPreference(KEY_LINK_SPEED);
        mFrequencyPref = screen.findPreference(KEY_FREQUENCY_PREF);
        mSecurityPref = screen.findPreference(KEY_SECURITY_PREF);

        mMacAddressPref = (WifiDetailPreference) screen.findPreference(KEY_MAC_ADDRESS_PREF);
        mIpAddressPref = (WifiDetailPreference) screen.findPreference(KEY_IP_ADDRESS_PREF);
        mGatewayPref = (WifiDetailPreference) screen.findPreference(KEY_GATEWAY_PREF);
        mSubnetPref = (WifiDetailPreference) screen.findPreference(KEY_SUBNET_MASK_PREF);
        mDnsPref = (WifiDetailPreference) screen.findPreference(KEY_DNS_PREF);
        mMacAddressPref = screen.findPreference(KEY_MAC_ADDRESS_PREF);
        mIpAddressPref = screen.findPreference(KEY_IP_ADDRESS_PREF);
        mGatewayPref = screen.findPreference(KEY_GATEWAY_PREF);
        mSubnetPref = screen.findPreference(KEY_SUBNET_MASK_PREF);
        mDnsPref = screen.findPreference(KEY_DNS_PREF);

        mIpv6Category = (PreferenceCategory) screen.findPreference(KEY_IPV6_CATEGORY);
        mIpv6AddressPref = screen.findPreference(KEY_IPV6_ADDRESSES_PREF);

        mSecurityPref.setDetailText(mAccessPoint.getSecurityString(false /* concise */));
        mSecurityPref.setSummary(mAccessPoint.getSecurityString(false /* concise */));
    }

    private void setupEntityHeader(PreferenceScreen screen) {
@@ -359,12 +357,12 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
        refreshRssiViews();

        // MAC Address Pref
        mMacAddressPref.setDetailText(mWifiInfo.getMacAddress());
        mMacAddressPref.setSummary(mWifiInfo.getMacAddress());

        // Link Speed Pref
        int linkSpeedMbps = mWifiInfo.getLinkSpeed();
        mLinkSpeedPref.setVisible(linkSpeedMbps >= 0);
        mLinkSpeedPref.setDetailText(mContext.getString(
        mLinkSpeedPref.setSummary(mContext.getString(
                R.string.link_speed, mWifiInfo.getLinkSpeed()));

        // Frequency Pref
@@ -379,7 +377,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
        } else {
            Log.e(TAG, "Unexpected frequency " + frequency);
        }
        mFrequencyPref.setDetailText(band);
        mFrequencyPref.setSummary(band);

        updateIpLayerInfo();
    }
@@ -414,12 +412,12 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
                R.color.wifi_details_icon_color, mContext.getTheme()));
        mSignalStrengthPref.setIcon(wifiIconDark);

        mSignalStrengthPref.setDetailText(mSignalStr[mRssiSignalLevel]);
        mSignalStrengthPref.setSummary(mSignalStr[mRssiSignalLevel]);
    }

    private void updatePreference(WifiDetailPreference pref, String detailText) {
    private void updatePreference(Preference pref, String detailText) {
        if (!TextUtils.isEmpty(detailText)) {
            pref.setDetailText(detailText);
            pref.setSummary(detailText);
            pref.setVisible(true);
        } else {
            pref.setVisible(false);
+24 −24
Original line number Diff line number Diff line
@@ -57,6 +57,7 @@ import android.widget.ImageView;

import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.LifecycleOwner;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;

@@ -69,7 +70,6 @@ import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
import com.android.settings.widget.ActionButtonPreference;
import com.android.settings.widget.ActionButtonPreferenceTest;
import com.android.settings.widget.EntityHeaderController;
import com.android.settings.wifi.WifiDetailPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.widget.LayoutPreference;
@@ -144,27 +144,27 @@ public class WifiDetailPreferenceControllerTest {
    @Mock
    private ActionButtonPreference mockButtonsPref;
    @Mock
    private WifiDetailPreference mockSignalStrengthPref;
    private Preference mockSignalStrengthPref;
    @Mock
    private WifiDetailPreference mockLinkSpeedPref;
    private Preference mockLinkSpeedPref;
    @Mock
    private WifiDetailPreference mockFrequencyPref;
    private Preference mockFrequencyPref;
    @Mock
    private WifiDetailPreference mockSecurityPref;
    private Preference mockSecurityPref;
    @Mock
    private WifiDetailPreference mockMacAddressPref;
    private Preference mockMacAddressPref;
    @Mock
    private WifiDetailPreference mockIpAddressPref;
    private Preference mockIpAddressPref;
    @Mock
    private WifiDetailPreference mockGatewayPref;
    private Preference mockGatewayPref;
    @Mock
    private WifiDetailPreference mockSubnetPref;
    private Preference mockSubnetPref;
    @Mock
    private WifiDetailPreference mockDnsPref;
    private Preference mockDnsPref;
    @Mock
    private PreferenceCategory mockIpv6Category;
    @Mock
    private WifiDetailPreference mockIpv6AddressesPref;
    private Preference mockIpv6AddressesPref;
    @Mock
    private PackageManager mockPackageManager;

@@ -336,7 +336,7 @@ public class WifiDetailPreferenceControllerTest {
    public void securityPreference_stringShouldBeSet() {
        displayAndResume();

        verify(mockSecurityPref).setDetailText(SECURITY);
        verify(mockSecurityPref).setSummary(SECURITY);
    }

    @Test
@@ -413,7 +413,7 @@ public class WifiDetailPreferenceControllerTest {

        displayAndResume();

        verify(mockSignalStrengthPref).setDetailText(expectedStrength);
        verify(mockSignalStrengthPref).setSummary(expectedStrength);
    }

    @Test
@@ -422,7 +422,7 @@ public class WifiDetailPreferenceControllerTest {

        displayAndResume();

        verify(mockLinkSpeedPref).setDetailText(expectedLinkSpeed);
        verify(mockLinkSpeedPref).setSummary(expectedLinkSpeed);
    }

    @Test
@@ -438,7 +438,7 @@ public class WifiDetailPreferenceControllerTest {
    public void macAddressPref_shouldHaveDetailTextSet() {
        displayAndResume();

        verify(mockMacAddressPref).setDetailText(MAC_ADDRESS);
        verify(mockMacAddressPref).setSummary(MAC_ADDRESS);
    }

    @Test
@@ -447,7 +447,7 @@ public class WifiDetailPreferenceControllerTest {

        displayAndResume();

        verify(mockIpAddressPref).setDetailText(Constants.IPV4_ADDR.getAddress().getHostAddress());
        verify(mockIpAddressPref).setSummary(Constants.IPV4_ADDR.getAddress().getHostAddress());
    }

    @Test
@@ -458,8 +458,8 @@ public class WifiDetailPreferenceControllerTest {

        displayAndResume();

        verify(mockSubnetPref).setDetailText("255.255.255.128");
        verify(mockGatewayPref).setDetailText("192.0.2.127");
        verify(mockSubnetPref).setSummary("255.255.255.128");
        verify(mockGatewayPref).setSummary("192.0.2.127");
    }

    @Test
@@ -470,7 +470,7 @@ public class WifiDetailPreferenceControllerTest {

        displayAndResume();

        verify(mockDnsPref).setDetailText(
        verify(mockDnsPref).setSummary(
                "8.8.4.4\n" +
                        "8.8.8.8\n" +
                        Constants.IPV6_DNS.getHostAddress());
@@ -551,15 +551,15 @@ public class WifiDetailPreferenceControllerTest {

        lp.addRoute(Constants.IPV4_DEFAULT);
        updateLinkProperties(lp);
        inOrder.verify(mockGatewayPref).setDetailText(Constants.IPV4_GATEWAY.getHostAddress());
        inOrder.verify(mockGatewayPref).setSummary(Constants.IPV4_GATEWAY.getHostAddress());
        inOrder.verify(mockGatewayPref).setVisible(true);

        lp.addLinkAddress(Constants.IPV4_ADDR);
        lp.addRoute(Constants.IPV4_SUBNET);
        updateLinkProperties(lp);
        inOrder.verify(mockIpAddressPref).setDetailText(asString(Constants.IPV4_ADDR));
        inOrder.verify(mockIpAddressPref).setSummary(asString(Constants.IPV4_ADDR));
        inOrder.verify(mockIpAddressPref).setVisible(true);
        inOrder.verify(mockSubnetPref).setDetailText("255.255.255.128");
        inOrder.verify(mockSubnetPref).setSummary("255.255.255.128");
        inOrder.verify(mockSubnetPref).setVisible(true);

        lp.addLinkAddress(Constants.IPV6_GLOBAL1);
@@ -578,13 +578,13 @@ public class WifiDetailPreferenceControllerTest {

        lp.addDnsServer(Constants.IPV6_DNS);
        updateLinkProperties(lp);
        inOrder.verify(mockDnsPref).setDetailText(Constants.IPV6_DNS.getHostAddress());
        inOrder.verify(mockDnsPref).setSummary(Constants.IPV6_DNS.getHostAddress());
        inOrder.verify(mockDnsPref).setVisible(true);

        lp.addDnsServer(Constants.IPV4_DNS1);
        lp.addDnsServer(Constants.IPV4_DNS2);
        updateLinkProperties(lp);
        inOrder.verify(mockDnsPref).setDetailText(
        inOrder.verify(mockDnsPref).setSummary(
                Constants.IPV6_DNS.getHostAddress() + "\n" +
                        Constants.IPV4_DNS1.getHostAddress() + "\n" +
                        Constants.IPV4_DNS2.getHostAddress());