Merge "[Settings] Connected carrier should not be forbidden ones" into sc-dev

This commit is contained in:
Bonian Chen
2021-06-03 02:17:06 +00:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 11 deletions

View File

@@ -105,13 +105,20 @@ public class NetworkOperatorPreference extends Preference {
return mCellId.equals(CellInfoUtil.getCellIdentity(cellinfo)); return mCellId.equals(CellInfoUtil.getCellIdentity(cellinfo));
} }
/**
* Return true when this preference is for forbidden network
*/
public boolean isForbiddenNetwork() {
return ((mForbiddenPlmns != null) && mForbiddenPlmns.contains(getOperatorNumeric()));
}
/** /**
* Refresh the NetworkOperatorPreference by updating the title and the icon. * Refresh the NetworkOperatorPreference by updating the title and the icon.
*/ */
public void refresh() { public void refresh() {
String networkTitle = getOperatorName(); String networkTitle = getOperatorName();
if ((mForbiddenPlmns != null) && mForbiddenPlmns.contains(getOperatorNumeric())) { if (isForbiddenNetwork()) {
if (DBG) Log.d(TAG, "refresh forbidden network: " + networkTitle); if (DBG) Log.d(TAG, "refresh forbidden network: " + networkTitle);
networkTitle += " " networkTitle += " "
+ getContext().getResources().getString(R.string.forbidden_network); + getContext().getResources().getString(R.string.forbidden_network);

View File

@@ -414,11 +414,23 @@ public class NetworkSelectSettings extends DashboardFragment {
if (networkList == null || networkList.size() == 0) { if (networkList == null || networkList.size() == 0) {
return; return;
} }
// Due to the aggregation of cell between carriers, it's possible to get CellIdentity
// containing forbidden PLMN.
// Getting current network from ServiceState is no longer a good idea.
// Add an additional rule to avoid from showing forbidden PLMN to the user.
if (mForbiddenPlmns == null) {
updateForbiddenPlmns();
}
for (NetworkRegistrationInfo regInfo : networkList) { for (NetworkRegistrationInfo regInfo : networkList) {
final CellIdentity cellIdentity = regInfo.getCellIdentity(); final CellIdentity cellIdentity = regInfo.getCellIdentity();
if (cellIdentity != null) { if (cellIdentity == null) {
continue;
}
final NetworkOperatorPreference pref = new NetworkOperatorPreference( final NetworkOperatorPreference pref = new NetworkOperatorPreference(
getPrefContext(), cellIdentity, mForbiddenPlmns, mShow4GForLTE); getPrefContext(), cellIdentity, mForbiddenPlmns, mShow4GForLTE);
if (pref.isForbiddenNetwork()) {
continue;
}
pref.setSummary(R.string.network_connected); pref.setSummary(R.string.network_connected);
// Update the signal strength icon, since the default signalStrength value // Update the signal strength icon, since the default signalStrength value
// would be zero // would be zero
@@ -429,7 +441,6 @@ public class NetworkSelectSettings extends DashboardFragment {
} }
} }
} }
}
/** /**
* Clear all of the preference summary * Clear all of the preference summary