[Provider Model] Hide W+ network if it's inactive
Bug: 187854575 Test: manual test atest -c CarrierWifiTogglePreferenceControllerTest \ SubscriptionsPreferenceControllerTest Change-Id: Ib99bc7fef38a99c1da1e365c2002ad30c617d445
This commit is contained in:
@@ -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;
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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();
|
||||||
|
Reference in New Issue
Block a user