Loading src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryController.java +29 −11 Original line number Diff line number Diff line Loading @@ -16,13 +16,17 @@ package com.android.settings.network.telephony; import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL; import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ESOS_SUPPORTED_BOOL; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_DATA; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_SMS; import android.content.Context; import android.os.PersistableBundle; import android.telephony.TelephonyCallback; import android.telephony.TelephonyManager; import android.telephony.satellite.NtnSignalStrength; import android.telephony.satellite.SatelliteManager; import android.util.Log; import androidx.annotation.NonNull; Loading @@ -34,6 +38,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.flags.Flags; import com.android.settings.network.CarrierConfigCache; import java.util.Arrays; import java.util.List; Loading @@ -43,8 +48,10 @@ public class SatelliteSettingsPreferenceCategoryController extends TelephonyBasePreferenceController implements DefaultLifecycleObserver { private static final String TAG = "SatelliteSettingsPrefCategoryCon"; private CarrierConfigCache mCarrierConfigCache; private SatelliteManager mSatelliteManager; private PreferenceCategory mPreferenceCategory; private TelephonyManager mTelephonyManager = null; private TelephonyManager mTelephonyManager; @VisibleForTesting final CarrierRoamingNtnModeCallback mCarrierRoamingNtnModeCallback = Loading @@ -52,7 +59,8 @@ public class SatelliteSettingsPreferenceCategoryController public SatelliteSettingsPreferenceCategoryController(Context context, String key) { super(context, key); setAvailabilityStatus(UNSUPPORTED_ON_DEVICE); mCarrierConfigCache = CarrierConfigCache.getInstance(context); mSatelliteManager = context.getSystemService(SatelliteManager.class); mTelephonyManager = context.getSystemService(TelephonyManager.class); } Loading @@ -71,19 +79,29 @@ public class SatelliteSettingsPreferenceCategoryController public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mPreferenceCategory = screen.findPreference(getPreferenceKey()); if (mPreferenceCategory.getPreferenceCount() > 0) { for (int i = 0; i < mPreferenceCategory.getPreferenceCount(); i++) { if (mPreferenceCategory.getPreference(i).isVisible()) { setAvailabilityStatus(AVAILABLE_UNSEARCHABLE); break; } @Override public int getAvailabilityStatus(int subId) { if (!com.android.internal.telephony.flags.Flags.carrierEnabledSatelliteFlag()) { return UNSUPPORTED_ON_DEVICE; } if (mSatelliteManager == null) { return UNSUPPORTED_ON_DEVICE; } final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId); final boolean isSatelliteAttachSupported = carrierConfig.getBoolean( KEY_SATELLITE_ATTACH_SUPPORTED_BOOL); boolean isSatelliteSosSupported = false; if (Flags.satelliteOemSettingsUxMigration()) { isSatelliteSosSupported = carrierConfig.getBoolean( KEY_SATELLITE_ESOS_SUPPORTED_BOOL); } @Override public int getAvailabilityStatus(int subId) { return isAvailable() ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; return (isSatelliteAttachSupported || isSatelliteSosSupported) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; } @Override Loading tests/unit/src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryControllerTest.java +6 −33 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.settings.network.telephony; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_DATA; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_SMS; import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; Loading @@ -39,6 +38,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.R; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -47,7 +47,7 @@ import org.mockito.junit.MockitoRule; @RunWith(AndroidJUnit4.class) public class SatelliteSettingsPreferenceCategoryControllerTest { private static final String KEY = "key"; private static final String KEY = "telephony_satellite_settings_category_key"; private static final int TEST_SUB_ID = 0; @Rule Loading @@ -66,48 +66,21 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { } @Test @Ignore("b/382664790") public void getAvailabilityStatus_default_returnUnsupported() { int result = mController.getAvailabilityStatus(TEST_SUB_ID); assertThat(result).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_hasAvailablePreference_returnAvailableUnsearchable() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); preferenceCategory.setKey(KEY); preferenceScreen.addPreference(preferenceCategory); preferenceCategory.addPreference(new Preference(mContext)); mController.displayPreference(preferenceScreen); int result = mController.getAvailabilityStatus(TEST_SUB_ID); assertThat(result).isEqualTo(AVAILABLE_UNSEARCHABLE); } @Test public void getAvailabilityStatus_noAvailablePreference_returnUnsupported() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); preferenceCategory.setKey(KEY); preferenceScreen.addPreference(preferenceCategory); mController.displayPreference(preferenceScreen); int result = mController.getAvailabilityStatus(TEST_SUB_ID); assertThat(result).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test @Ignore("b/382664790") public void setPreferenceTitle_hasDataService_showConnectivity() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); preferenceCategory.setKey(KEY); preferenceScreen.addPreference(preferenceCategory); preferenceCategory.addPreference(new Preference(mContext)); preferenceScreen.addPreference(preferenceCategory); mController.displayPreference(preferenceScreen); mController.mCarrierRoamingNtnModeCallback.onCarrierRoamingNtnAvailableServicesChanged( Loading @@ -117,8 +90,8 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { mContext.getString(R.string.title_satellite_setting_connectivity)); } @Test @Ignore("b/382664790") public void setPreferenceTitle_hasSmsService_showMessaging() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); Loading Loading
src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryController.java +29 −11 Original line number Diff line number Diff line Loading @@ -16,13 +16,17 @@ package com.android.settings.network.telephony; import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ATTACH_SUPPORTED_BOOL; import static android.telephony.CarrierConfigManager.KEY_SATELLITE_ESOS_SUPPORTED_BOOL; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_DATA; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_SMS; import android.content.Context; import android.os.PersistableBundle; import android.telephony.TelephonyCallback; import android.telephony.TelephonyManager; import android.telephony.satellite.NtnSignalStrength; import android.telephony.satellite.SatelliteManager; import android.util.Log; import androidx.annotation.NonNull; Loading @@ -34,6 +38,7 @@ import androidx.preference.PreferenceScreen; import com.android.settings.R; import com.android.settings.flags.Flags; import com.android.settings.network.CarrierConfigCache; import java.util.Arrays; import java.util.List; Loading @@ -43,8 +48,10 @@ public class SatelliteSettingsPreferenceCategoryController extends TelephonyBasePreferenceController implements DefaultLifecycleObserver { private static final String TAG = "SatelliteSettingsPrefCategoryCon"; private CarrierConfigCache mCarrierConfigCache; private SatelliteManager mSatelliteManager; private PreferenceCategory mPreferenceCategory; private TelephonyManager mTelephonyManager = null; private TelephonyManager mTelephonyManager; @VisibleForTesting final CarrierRoamingNtnModeCallback mCarrierRoamingNtnModeCallback = Loading @@ -52,7 +59,8 @@ public class SatelliteSettingsPreferenceCategoryController public SatelliteSettingsPreferenceCategoryController(Context context, String key) { super(context, key); setAvailabilityStatus(UNSUPPORTED_ON_DEVICE); mCarrierConfigCache = CarrierConfigCache.getInstance(context); mSatelliteManager = context.getSystemService(SatelliteManager.class); mTelephonyManager = context.getSystemService(TelephonyManager.class); } Loading @@ -71,19 +79,29 @@ public class SatelliteSettingsPreferenceCategoryController public void displayPreference(PreferenceScreen screen) { super.displayPreference(screen); mPreferenceCategory = screen.findPreference(getPreferenceKey()); if (mPreferenceCategory.getPreferenceCount() > 0) { for (int i = 0; i < mPreferenceCategory.getPreferenceCount(); i++) { if (mPreferenceCategory.getPreference(i).isVisible()) { setAvailabilityStatus(AVAILABLE_UNSEARCHABLE); break; } @Override public int getAvailabilityStatus(int subId) { if (!com.android.internal.telephony.flags.Flags.carrierEnabledSatelliteFlag()) { return UNSUPPORTED_ON_DEVICE; } if (mSatelliteManager == null) { return UNSUPPORTED_ON_DEVICE; } final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(subId); final boolean isSatelliteAttachSupported = carrierConfig.getBoolean( KEY_SATELLITE_ATTACH_SUPPORTED_BOOL); boolean isSatelliteSosSupported = false; if (Flags.satelliteOemSettingsUxMigration()) { isSatelliteSosSupported = carrierConfig.getBoolean( KEY_SATELLITE_ESOS_SUPPORTED_BOOL); } @Override public int getAvailabilityStatus(int subId) { return isAvailable() ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; return (isSatelliteAttachSupported || isSatelliteSosSupported) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; } @Override Loading
tests/unit/src/com/android/settings/network/telephony/SatelliteSettingsPreferenceCategoryControllerTest.java +6 −33 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.settings.network.telephony; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_DATA; import static android.telephony.NetworkRegistrationInfo.SERVICE_TYPE_SMS; import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; Loading @@ -39,6 +38,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.R; import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; Loading @@ -47,7 +47,7 @@ import org.mockito.junit.MockitoRule; @RunWith(AndroidJUnit4.class) public class SatelliteSettingsPreferenceCategoryControllerTest { private static final String KEY = "key"; private static final String KEY = "telephony_satellite_settings_category_key"; private static final int TEST_SUB_ID = 0; @Rule Loading @@ -66,48 +66,21 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { } @Test @Ignore("b/382664790") public void getAvailabilityStatus_default_returnUnsupported() { int result = mController.getAvailabilityStatus(TEST_SUB_ID); assertThat(result).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test public void getAvailabilityStatus_hasAvailablePreference_returnAvailableUnsearchable() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); preferenceCategory.setKey(KEY); preferenceScreen.addPreference(preferenceCategory); preferenceCategory.addPreference(new Preference(mContext)); mController.displayPreference(preferenceScreen); int result = mController.getAvailabilityStatus(TEST_SUB_ID); assertThat(result).isEqualTo(AVAILABLE_UNSEARCHABLE); } @Test public void getAvailabilityStatus_noAvailablePreference_returnUnsupported() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); preferenceCategory.setKey(KEY); preferenceScreen.addPreference(preferenceCategory); mController.displayPreference(preferenceScreen); int result = mController.getAvailabilityStatus(TEST_SUB_ID); assertThat(result).isEqualTo(UNSUPPORTED_ON_DEVICE); } @Test @Ignore("b/382664790") public void setPreferenceTitle_hasDataService_showConnectivity() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); PreferenceCategory preferenceCategory = new PreferenceCategory(mContext); preferenceCategory.setKey(KEY); preferenceScreen.addPreference(preferenceCategory); preferenceCategory.addPreference(new Preference(mContext)); preferenceScreen.addPreference(preferenceCategory); mController.displayPreference(preferenceScreen); mController.mCarrierRoamingNtnModeCallback.onCarrierRoamingNtnAvailableServicesChanged( Loading @@ -117,8 +90,8 @@ public class SatelliteSettingsPreferenceCategoryControllerTest { mContext.getString(R.string.title_satellite_setting_connectivity)); } @Test @Ignore("b/382664790") public void setPreferenceTitle_hasSmsService_showMessaging() { PreferenceManager preferenceManager = new PreferenceManager(mContext); PreferenceScreen preferenceScreen = preferenceManager.createPreferenceScreen(mContext); Loading