Merge "[Provider Model] Hide W+ network if it's inactive" into sc-dev

This commit is contained in:
TreeHugger Robot
2021-06-15 09:23:58 +00:00
committed by Android (Google) Code Review
6 changed files with 59 additions and 29 deletions

View File

@@ -78,7 +78,6 @@ public class CarrierWifiTogglePreferenceController extends TogglePreferenceContr
return false; return false;
} }
mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked); mWifiPickerTrackerHelper.setCarrierNetworkEnabled(isChecked);
updateCarrierNetworkPreference(isChecked);
return true; return true;
} }
@@ -86,21 +85,17 @@ public class CarrierWifiTogglePreferenceController extends TogglePreferenceContr
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mCarrierNetworkPreference = screen.findPreference(CARRIER_WIFI_NETWORK_PREF_KEY); mCarrierNetworkPreference = screen.findPreference(CARRIER_WIFI_NETWORK_PREF_KEY);
updateCarrierNetworkPreference(isChecked()); updateCarrierNetworkPreference();
} }
@Override @Override
public void onWifiStateChanged() { public void onWifiStateChanged() {
if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) { updateCarrierNetworkPreference();
mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid());
}
} }
@Override @Override
public void onWifiEntriesChanged() { public void onWifiEntriesChanged() {
if (mCarrierNetworkPreference != null && mCarrierNetworkPreference.isVisible()) { updateCarrierNetworkPreference();
mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid());
}
} }
@Override @Override
@@ -113,11 +108,11 @@ public class CarrierWifiTogglePreferenceController extends TogglePreferenceContr
// Do nothing // Do nothing
} }
protected void updateCarrierNetworkPreference(boolean isCarrierNetworkEnabled) { protected void updateCarrierNetworkPreference() {
if (mCarrierNetworkPreference == null) { if (mCarrierNetworkPreference == null) {
return; return;
} }
if (!isCarrierNetworkEnabled || getAvailabilityStatus() != AVAILABLE) { if (getAvailabilityStatus() != AVAILABLE || !isCarrierNetworkActive()) {
mCarrierNetworkPreference.setVisible(false); mCarrierNetworkPreference.setVisible(false);
return; return;
} }
@@ -125,6 +120,13 @@ public class CarrierWifiTogglePreferenceController extends TogglePreferenceContr
mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid()); mCarrierNetworkPreference.setSummary(getCarrierNetworkSsid());
} }
protected boolean isCarrierNetworkActive() {
if (mWifiPickerTrackerHelper == null) {
return false;
}
return mWifiPickerTrackerHelper.isCarrierNetworkActive();
}
protected String getCarrierNetworkSsid() { protected String getCarrierNetworkSsid() {
if (mWifiPickerTrackerHelper == null) { if (mWifiPickerTrackerHelper == null) {
return null; return null;

View File

@@ -277,12 +277,12 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
final boolean isDataInService = tmForSubId.getDataState() final boolean isDataInService = tmForSubId.getDataState()
== TelephonyManager.DATA_CONNECTED; == TelephonyManager.DATA_CONNECTED;
final boolean isActiveCarrierNetwork = final boolean isCarrierNetworkActive =
(mWifiPickerTrackerHelper != null) (mWifiPickerTrackerHelper != null)
&& mWifiPickerTrackerHelper.isActiveCarrierNetwork(); && mWifiPickerTrackerHelper.isCarrierNetworkActive();
String result = mSubsPrefCtrlInjector.getNetworkType( String result = mSubsPrefCtrlInjector.getNetworkType(
mContext, mConfig, mTelephonyDisplayInfo, subId, isActiveCarrierNetwork); mContext, mConfig, mTelephonyDisplayInfo, subId, isCarrierNetworkActive);
if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext) || isActiveCarrierNetwork) { if (mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext) || isCarrierNetworkActive) {
Log.i(TAG, "Active cellular network or active carrier network."); Log.i(TAG, "Active cellular network or active carrier network.");
result = mContext.getString(R.string.preference_summary_default_combination, result = mContext.getString(R.string.preference_summary_default_combination,
mContext.getString(R.string.mobile_data_connection_active), result); mContext.getString(R.string.mobile_data_connection_active), result);
@@ -306,7 +306,7 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl
final boolean isActiveCellularNetwork = final boolean isActiveCellularNetwork =
mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext); mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext);
if (isActiveCellularNetwork || (mWifiPickerTrackerHelper != null) if (isActiveCellularNetwork || (mWifiPickerTrackerHelper != null)
&& mWifiPickerTrackerHelper.isActiveCarrierNetwork()) { && mWifiPickerTrackerHelper.isCarrierNetworkActive()) {
icon.setTint(Utils.getColorAccentDefaultColor(mContext)); icon.setTint(Utils.getColorAccentDefaultColor(mContext));
return icon; return icon;
} }

View File

@@ -261,7 +261,7 @@ public class NetworkProviderWorker extends WifiScanWorker implements
String iconKey = getIconKey(telephonyDisplayInfo); String iconKey = getIconKey(telephonyDisplayInfo);
int resId = mapIconSets(config).get(iconKey).dataContentDescription; int resId = mapIconSets(config).get(iconKey).dataContentDescription;
if (mWifiPickerTrackerHelper != null if (mWifiPickerTrackerHelper != null
&& mWifiPickerTrackerHelper.isActiveCarrierNetwork()) { && mWifiPickerTrackerHelper.isCarrierNetworkActive()) {
MobileIconGroup carrierMergedWifiIconGroup = TelephonyIcons.CARRIER_MERGED_WIFI; MobileIconGroup carrierMergedWifiIconGroup = TelephonyIcons.CARRIER_MERGED_WIFI;
resId = carrierMergedWifiIconGroup.dataContentDescription; resId = carrierMergedWifiIconGroup.dataContentDescription;
return resId != 0 return resId != 0

View File

@@ -77,7 +77,7 @@ public class WifiPickerTrackerHelper implements LifecycleObserver {
Process.THREAD_PRIORITY_BACKGROUND); Process.THREAD_PRIORITY_BACKGROUND);
mWorkerThread.start(); mWorkerThread.start();
mWifiPickerTracker = FeatureFactory.getFactory(context) mWifiPickerTracker = FeatureFactory.getFactory(context)
.getWifiTrackerLibProvider() .getWifiTrackerLibProvider()
.createWifiPickerTracker(lifecycle, context, .createWifiPickerTracker(lifecycle, context,
new Handler(Looper.getMainLooper()), new Handler(Looper.getMainLooper()),
@@ -139,8 +139,8 @@ public class WifiPickerTrackerHelper implements LifecycleObserver {
return true; return true;
} }
/** Confirms connection of the carrier network */ /** Confirms connection of the carrier network connected with the internet access */
public boolean isActiveCarrierNetwork() { public boolean isCarrierNetworkActive() {
final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry(); final MergedCarrierEntry mergedCarrierEntry = mWifiPickerTracker.getMergedCarrierEntry();
if (mergedCarrierEntry != null) { if (mergedCarrierEntry != null) {
return mergedCarrierEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED return mergedCarrierEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTED

View File

@@ -72,8 +72,10 @@ public class CarrierWifiTogglePreferenceControllerTest {
mController.init(mock(Lifecycle.class), SUB_ID); mController.init(mock(Lifecycle.class), SUB_ID);
mController.mIsProviderModelEnabled = true; mController.mIsProviderModelEnabled = true;
mController.mIsCarrierProvisionWifiEnabled = true; mController.mIsCarrierProvisionWifiEnabled = true;
doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
doReturn(SSID).when(mWifiPickerTrackerHelper).getCarrierNetworkSsid(); doReturn(SSID).when(mWifiPickerTrackerHelper).getCarrierNetworkSsid();
mController.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper; mController.mWifiPickerTrackerHelper = mWifiPickerTrackerHelper;
if (Looper.myLooper() == null) { if (Looper.myLooper() == null) {
Looper.prepare(); Looper.prepare();
} }
@@ -87,6 +89,7 @@ public class CarrierWifiTogglePreferenceControllerTest {
mNetworkPreference.setKey( mNetworkPreference.setKey(
CarrierWifiTogglePreferenceController.CARRIER_WIFI_NETWORK_PREF_KEY); CarrierWifiTogglePreferenceController.CARRIER_WIFI_NETWORK_PREF_KEY);
mScreen.addPreference(mNetworkPreference); mScreen.addPreference(mNetworkPreference);
mController.mCarrierNetworkPreference = mNetworkPreference;
} }
@Test @Test
@@ -139,8 +142,9 @@ public class CarrierWifiTogglePreferenceControllerTest {
} }
@Test @Test
public void displayPreference_carrierNetworkEnabled_showCarrierNetwork() { public void displayPreference_carrierNetworkActive_showCarrierNetwork() {
doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkEnabled(SUB_ID); doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
doReturn(SSID).when(mWifiPickerTrackerHelper).getCarrierNetworkSsid();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -150,8 +154,8 @@ public class CarrierWifiTogglePreferenceControllerTest {
} }
@Test @Test
public void displayPreference_carrierNetworkDisabled_hideCarrierNetwork() { public void displayPreference_carrierNetworkInactive_hideCarrierNetwork() {
doReturn(false).when(mWifiPickerTrackerHelper).isCarrierNetworkEnabled(SUB_ID); doReturn(false).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
mController.displayPreference(mScreen); mController.displayPreference(mScreen);
@@ -160,24 +164,48 @@ public class CarrierWifiTogglePreferenceControllerTest {
} }
@Test @Test
public void onWifiStateChanged_carrierNetworkVisible_shouldSetSummary() { public void onWifiStateChanged_carrierNetworkActive_shouldSetSummary() {
mController.mCarrierNetworkPreference = mNetworkPreference; doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
mNetworkPreference.setVisible(true); doReturn(SSID).when(mWifiPickerTrackerHelper).getCarrierNetworkSsid();
mNetworkPreference.setVisible(false);
mNetworkPreference.setSummary(null); mNetworkPreference.setSummary(null);
mController.onWifiEntriesChanged(); mController.onWifiEntriesChanged();
assertThat(mNetworkPreference.isVisible()).isEqualTo(true);
assertThat(mNetworkPreference.getSummary()).isEqualTo(SSID); assertThat(mNetworkPreference.getSummary()).isEqualTo(SSID);
} }
@Test @Test
public void onWifiEntriesChanged_carrierNetworkVisible_shouldSetSummary() { public void onWifiStateChanged_carrierNetworkInactive_shouldHideNetwork() {
mController.mCarrierNetworkPreference = mNetworkPreference; doReturn(false).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
mNetworkPreference.setVisible(true); mNetworkPreference.setVisible(true);
mController.onWifiEntriesChanged();
assertThat(mNetworkPreference.isVisible()).isEqualTo(false);
}
@Test
public void onWifiEntriesChanged_carrierNetworkActive_shouldSetSummary() {
doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
doReturn(SSID).when(mWifiPickerTrackerHelper).getCarrierNetworkSsid();
mNetworkPreference.setVisible(false);
mNetworkPreference.setSummary(null); mNetworkPreference.setSummary(null);
mController.onWifiEntriesChanged(); mController.onWifiEntriesChanged();
assertThat(mNetworkPreference.isVisible()).isEqualTo(true);
assertThat(mNetworkPreference.getSummary()).isEqualTo(SSID); assertThat(mNetworkPreference.getSummary()).isEqualTo(SSID);
} }
@Test
public void onWifiEntriesChanged_carrierNetworkInactive_shouldHideNetwork() {
doReturn(false).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
mNetworkPreference.setVisible(true);
mController.onWifiEntriesChanged();
assertThat(mNetworkPreference.isVisible()).isEqualTo(false);
}
} }

View File

@@ -455,7 +455,7 @@ public class SubscriptionsPreferenceControllerTest {
doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext); doReturn(mock(MobileMappings.Config.class)).when(sInjector).getConfig(mContext);
doReturn(networkType) doReturn(networkType)
.when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(true)); .when(sInjector).getNetworkType(any(), any(), any(), anyInt(), eq(true));
doReturn(true).when(mWifiPickerTrackerHelper).isActiveCarrierNetwork(); doReturn(true).when(mWifiPickerTrackerHelper).isCarrierNetworkActive();
mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper); mController.setWifiPickerTrackerHelper(mWifiPickerTrackerHelper);
mController.onResume(); mController.onResume();