[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:
@@ -16,10 +16,12 @@
|
||||
|
||||
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_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL;
|
||||
import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_DATA;
|
||||
import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_SMS;
|
||||
|
||||
import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
||||
import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_UNAVAILABLE;
|
||||
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;
|
||||
|
||||
@@ -39,6 +41,9 @@ import android.telephony.TelephonyManager;
|
||||
import android.telephony.satellite.SatelliteManager;
|
||||
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceManager;
|
||||
import androidx.preference.PreferenceScreen;
|
||||
import androidx.test.annotation.UiThreadTest;
|
||||
import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
@@ -47,7 +52,6 @@ import com.android.settings.R;
|
||||
import com.android.settings.network.CarrierConfigCache;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -56,10 +60,10 @@ import org.mockito.junit.MockitoJUnit;
|
||||
import org.mockito.junit.MockitoRule;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
@Ignore("b/382664790")
|
||||
@UiThreadTest
|
||||
public class SatelliteSettingsPreferenceControllerTest {
|
||||
private static final String KEY = "key";
|
||||
private static final int TEST_SUB_ID = 0;
|
||||
private static final String KEY = "SatelliteSettingsPreferenceControllerTest";
|
||||
private static final int TEST_SUB_ID = 5;
|
||||
|
||||
@Rule
|
||||
public final MockitoRule mMockitoRule = MockitoJUnit.rule();
|
||||
@@ -85,12 +89,13 @@ public class SatelliteSettingsPreferenceControllerTest {
|
||||
when(mContext.getSystemService(SatelliteManager.class)).thenReturn(mSatelliteManager);
|
||||
when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager);
|
||||
when(mTelephonyManager.createForSubscriptionId(TEST_SUB_ID)).thenReturn(mTelephonyManager);
|
||||
when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mCarrierConfig);
|
||||
mController = spy(new SatelliteSettingPreferenceController(mContext, KEY));
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG)
|
||||
public void getAvailabilityStatus_noSatellite_returnUnsupport() {
|
||||
public void getAvailabilityStatus_noSatellite_returnUnsupported() {
|
||||
when(mContext.getSystemService(SatelliteManager.class)).thenReturn(null);
|
||||
mController = new SatelliteSettingPreferenceController(mContext, KEY);
|
||||
|
||||
@@ -102,11 +107,39 @@ public class SatelliteSettingsPreferenceControllerTest {
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG)
|
||||
public void getAvailabilityStatus_carrierIsNotSupport_returnUnavailable() {
|
||||
when(mContext.getSystemService(SatelliteManager.class)).thenReturn(null);
|
||||
mCarrierConfig.putBoolean(
|
||||
CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL,
|
||||
false);
|
||||
when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mCarrierConfig);
|
||||
int result = mController.getAvailabilityStatus(TEST_SUB_ID);
|
||||
|
||||
assertThat(result).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG)
|
||||
public void getAvailabilityStatus_ntnConnectIsManual_returnUnavailable() {
|
||||
mCarrierConfig.putBoolean(
|
||||
CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL,
|
||||
true);
|
||||
mCarrierConfig.putInt(
|
||||
CarrierConfigManager.KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT,
|
||||
CARRIER_ROAMING_NTN_CONNECT_MANUAL);
|
||||
int result = mController.getAvailabilityStatus(TEST_SUB_ID);
|
||||
|
||||
assertThat(result).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG)
|
||||
public void getAvailabilityStatus_smsNotAvailable_returnUnavailable() {
|
||||
mCarrierConfig.putBoolean(
|
||||
CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL,
|
||||
true);
|
||||
mCarrierConfig.putInt(
|
||||
CarrierConfigManager.KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT,
|
||||
CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC);
|
||||
mController.mCarrierRoamingNtnModeCallback.onCarrierRoamingNtnAvailableServicesChanged(
|
||||
new int[]{SERVICE_TYPE_SMS});
|
||||
|
||||
int result = mController.getAvailabilityStatus(TEST_SUB_ID);
|
||||
|
||||
@@ -115,22 +148,25 @@ public class SatelliteSettingsPreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
@EnableFlags(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG)
|
||||
public void getAvailabilityStatus_carrierIsSupport_returnAvailable() {
|
||||
when(mContext.getSystemService(SatelliteManager.class)).thenReturn(null);
|
||||
public void getAvailabilityStatus_matchAllConditions_returnAvailable() {
|
||||
mCarrierConfig.putBoolean(
|
||||
CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL,
|
||||
true);
|
||||
when(mCarrierConfigCache.getConfigForSubId(TEST_SUB_ID)).thenReturn(mCarrierConfig);
|
||||
mCarrierConfig.putInt(
|
||||
CarrierConfigManager.KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT,
|
||||
CARRIER_ROAMING_NTN_CONNECT_AUTOMATIC);
|
||||
|
||||
mController.mCarrierRoamingNtnModeCallback.onCarrierRoamingNtnAvailableServicesChanged(
|
||||
new int[]{SERVICE_TYPE_SMS});
|
||||
|
||||
int result = mController.getAvailabilityStatus(TEST_SUB_ID);
|
||||
|
||||
assertThat(result).isEqualTo(AVAILABLE);
|
||||
assertThat(result).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore("avoid post submit failed")
|
||||
@EnableFlags(com.android.settings.flags.Flags.FLAG_SATELLITE_OEM_SETTINGS_UX_MIGRATION)
|
||||
public void getAvailabilityStatus_registerTelephonyCallback_success() {
|
||||
public void onResume_registerTelephonyCallback_success() {
|
||||
mController.init(TEST_SUB_ID);
|
||||
mController.onResume(null);
|
||||
|
||||
@@ -138,7 +174,6 @@ public class SatelliteSettingsPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
@Ignore("avoid post submit failed")
|
||||
@EnableFlags(com.android.settings.flags.Flags.FLAG_SATELLITE_OEM_SETTINGS_UX_MIGRATION)
|
||||
public void getAvailabilityStatus_unregisterTelephonyCallback_success() {
|
||||
mController.init(TEST_SUB_ID);
|
||||
@@ -178,4 +213,66 @@ public class SatelliteSettingsPreferenceControllerTest {
|
||||
assertThat(preference.getTitle()).isEqualTo(
|
||||
mContext.getString(R.string.satellite_setting_title));
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(com.android.settings.flags.Flags.FLAG_SATELLITE_OEM_SETTINGS_UX_MIGRATION)
|
||||
public void getAvailabilityStatus_noEntitlement_showSummaryWithoutEntitlement() {
|
||||
mCarrierConfig.putBoolean(
|
||||
KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL,
|
||||
false);
|
||||
mController.init(TEST_SUB_ID);
|
||||
Preference preference = new Preference(mContext);
|
||||
preference.setKey(KEY);
|
||||
preference.setTitle("test title");
|
||||
mController.updateState(preference);
|
||||
|
||||
assertThat(preference.getSummary()).isEqualTo(
|
||||
mContext.getString(R.string.satellite_setting_summary_without_entitlement));
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(com.android.settings.flags.Flags.FLAG_SATELLITE_OEM_SETTINGS_UX_MIGRATION)
|
||||
public void getAvailabilityStatus_smsAvailableForManualType_showSummaryWithAccount() {
|
||||
mCarrierConfig.putBoolean(
|
||||
KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL,
|
||||
true);
|
||||
mCarrierConfig.putInt(
|
||||
CarrierConfigManager.KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT,
|
||||
CARRIER_ROAMING_NTN_CONNECT_MANUAL);
|
||||
mController.init(TEST_SUB_ID);
|
||||
PreferenceManager preferenceManager = new PreferenceManager(mContext);
|
||||
PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext);
|
||||
Preference preference = new Preference(mContext);
|
||||
preference.setKey(KEY);
|
||||
preference.setTitle("test title");
|
||||
preferenceScreen.addPreference(preference);
|
||||
mController.mIsSatelliteSmsAvailableForManualType = true;
|
||||
mController.displayPreference(preferenceScreen);
|
||||
|
||||
assertThat(preference.getSummary()).isEqualTo(
|
||||
mContext.getString(R.string.satellite_setting_enabled_summary));
|
||||
}
|
||||
|
||||
@Test
|
||||
@EnableFlags(com.android.settings.flags.Flags.FLAG_SATELLITE_OEM_SETTINGS_UX_MIGRATION)
|
||||
public void getAvailabilityStatus_smsAvailableForAutoType_showSummaryWithoutAccount() {
|
||||
mCarrierConfig.putBoolean(
|
||||
KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL,
|
||||
true);
|
||||
mCarrierConfig.putInt(
|
||||
CarrierConfigManager.KEY_CARRIER_ROAMING_NTN_CONNECT_TYPE_INT,
|
||||
CARRIER_ROAMING_NTN_CONNECT_MANUAL);
|
||||
mController.init(TEST_SUB_ID);
|
||||
PreferenceManager preferenceManager = new PreferenceManager(mContext);
|
||||
PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext);
|
||||
Preference preference = new Preference(mContext);
|
||||
preference.setKey(KEY);
|
||||
preference.setTitle("test title");
|
||||
preferenceScreen.addPreference(preference);
|
||||
mController.mIsSatelliteSmsAvailableForManualType = false;
|
||||
mController.displayPreference(preferenceScreen);
|
||||
|
||||
assertThat(preference.getSummary()).isEqualTo(
|
||||
mContext.getString(R.string.satellite_setting_disabled_summary));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user