For Internet Picker - Information about Wi-Fi scanning when Wi-Fi is off
Bug: 202323013 Test: manual test Test: make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest Change-Id: I4a26ec43bb7e1758b8170a7ff9fa7d5846cb4a35
This commit is contained in:
@@ -81,4 +81,10 @@
|
|||||||
<com.android.settings.datausage.DataUsagePreference
|
<com.android.settings.datausage.DataUsagePreference
|
||||||
android:key="non_carrier_data_usage"
|
android:key="non_carrier_data_usage"
|
||||||
android:title="@string/non_carrier_data_usage"/>
|
android:title="@string/non_carrier_data_usage"/>
|
||||||
|
|
||||||
|
<com.android.settingslib.widget.FooterPreference
|
||||||
|
android:key="wifi_status_message_footer"
|
||||||
|
android:selectable="false"
|
||||||
|
settings:allowDividerAbove="false"
|
||||||
|
settings:searchable="false"/>
|
||||||
</PreferenceScreen>
|
</PreferenceScreen>
|
||||||
|
@@ -61,7 +61,9 @@ import com.android.settings.core.FeatureFlags;
|
|||||||
import com.android.settings.core.SubSettingLauncher;
|
import com.android.settings.core.SubSettingLauncher;
|
||||||
import com.android.settings.datausage.DataUsagePreference;
|
import com.android.settings.datausage.DataUsagePreference;
|
||||||
import com.android.settings.datausage.DataUsageUtils;
|
import com.android.settings.datausage.DataUsageUtils;
|
||||||
|
import com.android.settings.location.WifiScanningFragment;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settings.utils.AnnotationSpan;
|
||||||
import com.android.settings.wifi.AddNetworkFragment;
|
import com.android.settings.wifi.AddNetworkFragment;
|
||||||
import com.android.settings.wifi.AddWifiNetworkPreference;
|
import com.android.settings.wifi.AddWifiNetworkPreference;
|
||||||
import com.android.settings.wifi.ConfigureWifiEntryFragment;
|
import com.android.settings.wifi.ConfigureWifiEntryFragment;
|
||||||
@@ -79,6 +81,7 @@ import com.android.settingslib.RestrictedLockUtilsInternal;
|
|||||||
import com.android.settingslib.search.Indexable;
|
import com.android.settingslib.search.Indexable;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
import com.android.settingslib.utils.ThreadUtils;
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
|
import com.android.settingslib.widget.FooterPreference;
|
||||||
import com.android.settingslib.widget.LayoutPreference;
|
import com.android.settingslib.widget.LayoutPreference;
|
||||||
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
|
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
|
||||||
import com.android.settingslib.wifi.WifiSavedConfigUtils;
|
import com.android.settingslib.wifi.WifiSavedConfigUtils;
|
||||||
@@ -132,6 +135,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
static final String PREF_KEY_DATA_USAGE = "non_carrier_data_usage";
|
static final String PREF_KEY_DATA_USAGE = "non_carrier_data_usage";
|
||||||
private static final String PREF_KEY_RESET_INTERNET = "resetting_your_internet";
|
private static final String PREF_KEY_RESET_INTERNET = "resetting_your_internet";
|
||||||
|
private static final String PREF_KEY_WIFI_STATUS_MESSAGE = "wifi_status_message_footer";
|
||||||
|
|
||||||
private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0;
|
private static final int REQUEST_CODE_WIFI_DPP_ENROLLEE_QR_CODE_SCANNER = 0;
|
||||||
|
|
||||||
@@ -231,6 +235,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
LayoutPreference mResetInternetPreference;
|
LayoutPreference mResetInternetPreference;
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
ConnectedEthernetNetworkController mConnectedEthernetNetworkController;
|
ConnectedEthernetNetworkController mConnectedEthernetNetworkController;
|
||||||
|
@VisibleForTesting
|
||||||
|
FooterPreference mWifiStatusMessagePreference;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mobile networks list for provider model
|
* Mobile networks list for provider model
|
||||||
@@ -305,6 +311,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
addNetworkMobileProviderController();
|
addNetworkMobileProviderController();
|
||||||
addConnectedEthernetNetworkController();
|
addConnectedEthernetNetworkController();
|
||||||
addWifiSwitchPreferenceController();
|
addWifiSwitchPreferenceController();
|
||||||
|
mWifiStatusMessagePreference = findPreference(PREF_KEY_WIFI_STATUS_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateAirplaneModeMsgPreference(boolean visible) {
|
private void updateAirplaneModeMsgPreference(boolean visible) {
|
||||||
@@ -717,6 +724,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
|
|
||||||
switch (wifiState) {
|
switch (wifiState) {
|
||||||
case WifiManager.WIFI_STATE_ENABLED:
|
case WifiManager.WIFI_STATE_ENABLED:
|
||||||
|
setWifiScanMessage(/* isWifiEnabled */ true);
|
||||||
updateWifiEntryPreferences();
|
updateWifiEntryPreferences();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -732,6 +740,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WifiManager.WIFI_STATE_DISABLED:
|
case WifiManager.WIFI_STATE_DISABLED:
|
||||||
|
setWifiScanMessage(/* isWifiEnabled */ false);
|
||||||
removeConnectedWifiEntryPreference();
|
removeConnectedWifiEntryPreference();
|
||||||
removeWifiEntryPreference();
|
removeWifiEntryPreference();
|
||||||
setAdditionalSettingsSummaries();
|
setAdditionalSettingsSummaries();
|
||||||
@@ -741,6 +750,34 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void setWifiScanMessage(boolean isWifiEnabled) {
|
||||||
|
final Context context = getContext();
|
||||||
|
if (context == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (isWifiEnabled || !mWifiManager.isScanAlwaysAvailable()) {
|
||||||
|
mWifiStatusMessagePreference.setVisible(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (TextUtils.isEmpty(mWifiStatusMessagePreference.getTitle())) {
|
||||||
|
AnnotationSpan.LinkInfo info = new AnnotationSpan.LinkInfo(
|
||||||
|
AnnotationSpan.LinkInfo.DEFAULT_ANNOTATION,
|
||||||
|
v -> launchWifiScanningFragment());
|
||||||
|
CharSequence text = AnnotationSpan.linkify(
|
||||||
|
context.getText(R.string.wifi_scan_notify_message), info);
|
||||||
|
mWifiStatusMessagePreference.setTitle(text);
|
||||||
|
}
|
||||||
|
mWifiStatusMessagePreference.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void launchWifiScanningFragment() {
|
||||||
|
new SubSettingLauncher(getContext())
|
||||||
|
.setDestination(WifiScanningFragment.class.getName())
|
||||||
|
.setSourceMetricsCategory(SettingsEnums.SETTINGS_NETWORK_CATEGORY)
|
||||||
|
.launch();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onWifiEntriesChanged() {
|
public void onWifiEntriesChanged() {
|
||||||
if (mIsWifiEntryListStale) {
|
if (mIsWifiEntryListStale) {
|
||||||
|
@@ -67,6 +67,7 @@ import com.android.settings.wifi.AddWifiNetworkPreference;
|
|||||||
import com.android.settings.wifi.ConnectedWifiEntryPreference;
|
import com.android.settings.wifi.ConnectedWifiEntryPreference;
|
||||||
import com.android.settings.wifi.WifiConfigController2;
|
import com.android.settings.wifi.WifiConfigController2;
|
||||||
import com.android.settings.wifi.WifiDialog2;
|
import com.android.settings.wifi.WifiDialog2;
|
||||||
|
import com.android.settingslib.widget.FooterPreference;
|
||||||
import com.android.settingslib.widget.LayoutPreference;
|
import com.android.settingslib.widget.LayoutPreference;
|
||||||
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
|
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
|
||||||
import com.android.wifitrackerlib.WifiEntry;
|
import com.android.wifitrackerlib.WifiEntry;
|
||||||
@@ -144,6 +145,7 @@ public class NetworkProviderSettingsTest {
|
|||||||
mNetworkProviderSettings.mAirplaneModeMsgPreference = mAirplaneModeMsgPreference;
|
mNetworkProviderSettings.mAirplaneModeMsgPreference = mAirplaneModeMsgPreference;
|
||||||
mNetworkProviderSettings.mAirplaneModeEnabler = mAirplaneModeEnabler;
|
mNetworkProviderSettings.mAirplaneModeEnabler = mAirplaneModeEnabler;
|
||||||
mNetworkProviderSettings.mInternetUpdater = mInternetUpdater;
|
mNetworkProviderSettings.mInternetUpdater = mInternetUpdater;
|
||||||
|
mNetworkProviderSettings.mWifiStatusMessagePreference = new FooterPreference(mContext);
|
||||||
doReturn(NetworkProviderSettings.PREF_KEY_CONNECTED_ACCESS_POINTS)
|
doReturn(NetworkProviderSettings.PREF_KEY_CONNECTED_ACCESS_POINTS)
|
||||||
.when(mConnectedWifiEntryPreferenceCategory).getKey();
|
.when(mConnectedWifiEntryPreferenceCategory).getKey();
|
||||||
mNetworkProviderSettings.mConnectedWifiEntryPreferenceCategory =
|
mNetworkProviderSettings.mConnectedWifiEntryPreferenceCategory =
|
||||||
@@ -531,6 +533,35 @@ public class NetworkProviderSettingsTest {
|
|||||||
verify(mNetworkProviderSettings.mWifiEntryPreferenceCategory, never()).setVisible(true);
|
verify(mNetworkProviderSettings.mWifiEntryPreferenceCategory, never()).setVisible(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setWifiScanMessage_wifiOnScanOn_footerIsInvisible() {
|
||||||
|
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
|
||||||
|
|
||||||
|
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ true);
|
||||||
|
|
||||||
|
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setWifiScanMessage_wifiOffScanOn_footerIsVisible() {
|
||||||
|
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(true);
|
||||||
|
|
||||||
|
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
|
||||||
|
|
||||||
|
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isTrue();
|
||||||
|
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.getTitle().length())
|
||||||
|
.isNotEqualTo(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setWifiScanMessage_wifiOffScanOff_footerIsInvisible() {
|
||||||
|
when(mWifiManager.isScanAlwaysAvailable()).thenReturn(false);
|
||||||
|
|
||||||
|
mNetworkProviderSettings.setWifiScanMessage(/* isWifiEnabled */ false);
|
||||||
|
|
||||||
|
assertThat(mNetworkProviderSettings.mWifiStatusMessagePreference.isVisible()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Config(shadows = ShadowPreferenceFragmentCompat.class)
|
@Config(shadows = ShadowPreferenceFragmentCompat.class)
|
||||||
public void onStop_shouldRemoveCallbacks() {
|
public void onStop_shouldRemoveCallbacks() {
|
||||||
|
Reference in New Issue
Block a user