Update "Allow 2G" toggle summary wording.
Update "Allow 2G" toggle summary wording to be more clear regarding the purpose of the toggle and why it may be disabled. Bug: b/193693810 Bug: b/196183458 Test: manual & atest -c Enable2gPreferenceControllerTest Change-Id: Iffef8f4f44105de30392c30ffd44c1d62cd066b8
This commit is contained in:
@@ -13642,7 +13642,10 @@
|
||||
<!-- Title for toggle if user wants to enable 2G [CHAR LIMIT=40] -->
|
||||
<string name="enable_2g_title">Allow 2G</string>
|
||||
<!-- Title for toggle if user wants to enable 2G [CHAR LIMIT=NONE] -->
|
||||
<string name="enable_2g_summary">Use 2G cellular connections. For emergency calls, 2G is always turned on.</string>
|
||||
<string name="enable_2g_summary">2G is less secure, but may improve your connection in some locations. For emergency calls, 2G is always allowed.</string>
|
||||
<!-- Title for if toggle access is disabled by carrier [CHAR LIMIT=NONE] -->
|
||||
<string name="enable_2g_summary_disabled_carrier"><xliff:g id="carrier_name_2g" example="Google Fi">%1$s</xliff:g> requires 2G to be available</string>
|
||||
|
||||
|
||||
<!-- Label for extra app info settings for a specific app [CHAR LIMIT=40] -->
|
||||
<string name="extra_app_info_label" translatable="false"></string>
|
||||
|
@@ -19,10 +19,15 @@ import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.os.PersistableBundle;
|
||||
import android.telephony.CarrierConfigManager;
|
||||
import android.telephony.SubscriptionInfo;
|
||||
import android.telephony.SubscriptionManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.network.SubscriptionUtil;
|
||||
import com.android.settings.overlay.FeatureFactory;
|
||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||
|
||||
@@ -41,6 +46,7 @@ public class Enable2gPreferenceController extends TelephonyTogglePreferenceContr
|
||||
private final MetricsFeatureProvider mMetricsFeatureProvider;
|
||||
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
private SubscriptionManager mSubscriptionManager;
|
||||
private TelephonyManager mTelephonyManager;
|
||||
|
||||
/**
|
||||
@@ -53,6 +59,7 @@ public class Enable2gPreferenceController extends TelephonyTogglePreferenceContr
|
||||
super(context, key);
|
||||
mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class);
|
||||
mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
|
||||
mSubscriptionManager = context.getSystemService(SubscriptionManager.class);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -68,6 +75,36 @@ public class Enable2gPreferenceController extends TelephonyTogglePreferenceContr
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
super.updateState(preference);
|
||||
if (preference == null || !SubscriptionManager.isUsableSubscriptionId(mSubId)) {
|
||||
return;
|
||||
}
|
||||
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
|
||||
boolean isDisabledByCarrier =
|
||||
carrierConfig != null
|
||||
&& carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G);
|
||||
preference.setEnabled(!isDisabledByCarrier);
|
||||
String summary;
|
||||
if (isDisabledByCarrier) {
|
||||
summary = mContext.getString(R.string.enable_2g_summary_disabled_carrier,
|
||||
getCarrierName());
|
||||
} else {
|
||||
summary = mContext.getString(R.string.enable_2g_summary);
|
||||
}
|
||||
preference.setSummary(summary);
|
||||
}
|
||||
|
||||
private String getCarrierName() {
|
||||
SubscriptionInfo subInfo = SubscriptionUtil.getSubById(mSubscriptionManager, mSubId);
|
||||
if (subInfo == null) {
|
||||
return "";
|
||||
}
|
||||
final String carrierName = subInfo.getCarrierName().toString();
|
||||
return carrierName;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus(int subId) {
|
||||
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subId);
|
||||
@@ -78,7 +115,6 @@ public class Enable2gPreferenceController extends TelephonyTogglePreferenceContr
|
||||
boolean visible =
|
||||
SubscriptionManager.isUsableSubscriptionId(subId)
|
||||
&& carrierConfig != null
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_HIDE_ENABLE_2G)
|
||||
&& mTelephonyManager.isRadioInterfaceCapabilitySupported(
|
||||
mTelephonyManager.CAPABILITY_USES_ALLOWED_NETWORK_TYPES_BITMASK);
|
||||
return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||
|
@@ -45,12 +45,12 @@ import org.mockito.MockitoAnnotations;
|
||||
public final class Enable2gPreferenceControllerTest {
|
||||
private static final int SUB_ID = 2;
|
||||
|
||||
@Mock
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
@Mock
|
||||
private TelephonyManager mTelephonyManager;
|
||||
@Mock
|
||||
private TelephonyManager mInvalidTelephonyManager;
|
||||
@Mock
|
||||
private CarrierConfigManager mCarrierConfigManager;
|
||||
|
||||
private PersistableBundle mPersistableBundle;
|
||||
private Enable2gPreferenceController mController;
|
||||
|
Reference in New Issue
Block a user