[Satellite] Add satellite string for KDDI if no entitlement
- Currently Android only handles Satellite w/ entitlement for any notifications. Some carriers such as KDDI have no entitlement for satellite service, so this change is to add some strings to avoid any confuse to Android user on satellite service. Flag: EXEMPT resource update Fix: b/382387532 Test: Manual test Test: atest pass Change-Id: I835787c9e0fe29eeecec0470e9bd6b38939abd8c
This commit is contained in:
@@ -17,9 +17,9 @@
|
||||
package com.android.settings.network.telephony;
|
||||
|
||||
import static android.telephony.CarrierConfigManager.CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC;
|
||||
import static android.telephony.CarrierConfigManager.CARRIER_ROAMING_NTN_CONNECT_MANUAL;
|
||||
import static android.telephony.CarrierConfigManager.KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT;
|
||||
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL;
|
||||
import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL;
|
||||
import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_DATA;
|
||||
import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_SMS;
|
||||
|
||||
@@ -65,9 +65,9 @@ public class SatelliteSettingPreferenceController extends
|
||||
@Nullable
|
||||
private Boolean mIsSatelliteEligible = null;
|
||||
private boolean mIsServiceDataType = false;
|
||||
private boolean mIsSatelliteSmsAvailableForManualType = false;
|
||||
private boolean mIsCarrierSatelliteAttachSupported = false;
|
||||
private boolean mIsCarrierRoamingNtnConnectedTypeManual = false;
|
||||
@VisibleForTesting
|
||||
boolean mIsSatelliteSmsAvailableForManualType = false;
|
||||
private PersistableBundle mCarrierConfigs = new PersistableBundle();
|
||||
|
||||
public SatelliteSettingPreferenceController(@NonNull Context context, @NonNull String key) {
|
||||
super(context, key);
|
||||
@@ -95,13 +95,15 @@ public class SatelliteSettingPreferenceController extends
|
||||
return UNSUPPORTED_ON_DEVICE;
|
||||
}
|
||||
|
||||
int availabilityStatus = mIsCarrierSatelliteAttachSupported
|
||||
? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||
if (availabilityStatus == AVAILABLE && mIsCarrierRoamingNtnConnectedTypeManual
|
||||
&& !mIsSatelliteSmsAvailableForManualType) {
|
||||
availabilityStatus = CONDITIONALLY_UNAVAILABLE;
|
||||
boolean isSatelliteAttachSupport = mCarrierConfigs.getBoolean(
|
||||
KEY_SATELLITE_ATTACH_SUPPORTED_BOOL);
|
||||
|
||||
if (isSatelliteAttachSupport && isCarrierRoamingNtnConnectedTypeAuto()
|
||||
&& mIsSatelliteSmsAvailableForManualType) {
|
||||
return AVAILABLE;
|
||||
}
|
||||
return availabilityStatus;
|
||||
|
||||
return CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -128,7 +130,7 @@ public class SatelliteSettingPreferenceController extends
|
||||
@Override
|
||||
public void updateState(@Nullable Preference preference) {
|
||||
super.updateState(preference);
|
||||
if (preference != null) {
|
||||
if (preference != null && preference.getKey().equals(getPreferenceKey())) {
|
||||
mCarrierRoamingNtnModeCallback.mPref = preference;
|
||||
updateSummary(preference);
|
||||
}
|
||||
@@ -162,18 +164,7 @@ public class SatelliteSettingPreferenceController extends
|
||||
logd("init(), subId=" + subId);
|
||||
mSubId = subId;
|
||||
mTelephonyManager = mTelephonyManager.createForSubscriptionId(subId);
|
||||
|
||||
final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId);
|
||||
if (carrierConfig == null) {
|
||||
logd("init(), no carrier config data");
|
||||
return;
|
||||
}
|
||||
mIsCarrierSatelliteAttachSupported = carrierConfig.getBoolean(
|
||||
KEY_SATELLITE_ATTACH_SUPPORTED_BOOL);
|
||||
mIsCarrierRoamingNtnConnectedTypeManual =
|
||||
CARRIER_ROAMING_NTN_CONNECT_MANUAL == carrierConfig.getInt(
|
||||
KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT,
|
||||
CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC);
|
||||
mCarrierConfigs = mCarrierConfigCache.getConfigForSubId(subId);
|
||||
}
|
||||
|
||||
private void updateSummary(Preference preference) {
|
||||
@@ -186,11 +177,12 @@ public class SatelliteSettingPreferenceController extends
|
||||
return;
|
||||
}
|
||||
|
||||
if (mIsCarrierRoamingNtnConnectedTypeManual) {
|
||||
preference.setSummary(mIsSatelliteSmsAvailableForManualType
|
||||
? R.string.satellite_setting_enabled_summary
|
||||
: R.string.satellite_setting_disabled_summary);
|
||||
} else {
|
||||
if (!mCarrierConfigs.getBoolean(KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL)) {
|
||||
preference.setSummary(R.string.satellite_setting_summary_without_entitlement);
|
||||
return;
|
||||
}
|
||||
|
||||
if (isCarrierRoamingNtnConnectedTypeAuto()) {
|
||||
try {
|
||||
Set<Integer> restrictionReason =
|
||||
mSatelliteManager.getAttachRestrictionReasonsForCarrier(mSubId);
|
||||
@@ -207,9 +199,19 @@ public class SatelliteSettingPreferenceController extends
|
||||
loge(ex.toString());
|
||||
preference.setSummary(R.string.satellite_setting_disabled_summary);
|
||||
}
|
||||
} else {
|
||||
preference.setSummary(mIsSatelliteSmsAvailableForManualType
|
||||
? R.string.satellite_setting_enabled_summary
|
||||
: R.string.satellite_setting_disabled_summary);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isCarrierRoamingNtnConnectedTypeAuto() {
|
||||
return CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC == mCarrierConfigs.getInt(
|
||||
KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT,
|
||||
CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
class CarrierRoamingNtnModeCallback extends TelephonyCallback implements
|
||||
TelephonyCallback.CarrierRoamingNtnListener {
|
||||
|
||||
Reference in New Issue
Block a user