Merge "[Satellite] Add satellite string for KDDI if no entitlement" into main

This commit is contained in:
Treehugger Robot
2025-02-10 19:30:27 -08:00
committed by Android (Google) Code Review
4 changed files with 166 additions and 51 deletions

View File

@@ -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));
}
}