From 52552ab0ab6f0b4d50915947c25d7e3ab5c355dd Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Wed, 28 Nov 2018 15:06:58 -0800 Subject: [PATCH] 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 --- res/xml/wifi_network_details_fragment.xml | 40 ++++++++------ .../settings/wifi/WifiDetailPreference.java | 54 ------------------- .../WifiDetailPreferenceController.java | 52 +++++++++--------- .../WifiDetailPreferenceControllerTest.java | 48 ++++++++--------- 4 files changed, 72 insertions(+), 122 deletions(-) delete mode 100644 src/com/android/settings/wifi/WifiDetailPreference.java diff --git a/res/xml/wifi_network_details_fragment.xml b/res/xml/wifi_network_details_fragment.xml index b33cb75800b..8b027e22242 100644 --- a/res/xml/wifi_network_details_fragment.xml +++ b/res/xml/wifi_network_details_fragment.xml @@ -34,18 +34,18 @@ - - - - - + - + - + - + - + + android:selectable="false" + settings:enableCopying="true"/> diff --git a/src/com/android/settings/wifi/WifiDetailPreference.java b/src/com/android/settings/wifi/WifiDetailPreference.java deleted file mode 100644 index 2567a429932..00000000000 --- a/src/com/android/settings/wifi/WifiDetailPreference.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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); - } -} diff --git a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java index 9a3398ad94f..48446c95bde 100644 --- a/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +++ b/src/com/android/settings/wifi/details/WifiDetailPreferenceController.java @@ -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); diff --git a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java index 4a0988a25c9..d39b55f6f3e 100644 --- a/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java @@ -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());