diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index cb1d9e3d993..a2268120a23 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -190,6 +190,7 @@
-
@@ -318,12 +314,16 @@
android:icon="@drawable/ic_homepage_network"
android:exported="true"
android:configChanges="orientation|keyboardHidden|screenSize">
+
+
+
+
+ android:value="com.android.settings.network.NetworkProviderSettings"/>
+ android:value="@string/menu_key_network"/>
+ android:value="true"/>
@@ -334,9 +334,11 @@
android:icon="@drawable/ic_homepage_network"
android:exported="true">
+ android:value="com.android.settings.network.NetworkProviderSettings"/>
+ android:value="@string/menu_key_network"/>
+
-
-
+
+
-
-
-
-
-
-
+
+
+ android:value="com.android.settings.network.NetworkProviderSettings"/>
+ android:value="@string/menu_key_network"/>
-
-
-
-
-
+ android:value="true"/>
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index cd87424f447..39ff8f37d6d 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -89,9 +89,7 @@ public class Settings extends SettingsActivity {
public static class PrivateVolumeForgetActivity extends SettingsActivity { /* empty */ }
public static class PublicVolumeSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiSettingsActivity extends SettingsActivity { /* empty */ }
- public static class WifiSettings2Activity extends SettingsActivity { /* empty */ }
public static class NetworkProviderSettingsActivity extends SettingsActivity { /* empty */ }
- public static class NetworkSelectActivity extends SettingsActivity { /* empty */ }
/** Activity for the Wi-Fi network details settings. */
public static class WifiDetailsSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiP2pSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java
index 7894c6e2789..10a0bce5c5a 100644
--- a/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java
+++ b/src/com/android/settings/accessibility/AccessibilityScreenSizeForSetupWizardActivity.java
@@ -63,6 +63,9 @@ public class AccessibilityScreenSizeForSetupWizardActivity extends InstrumentedA
int SCREEN_SIZE = 2;
}
+ // Keep the last height of the scroll view in the {@link GlifLayout}
+ private int mLastScrollViewHeight;
+
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -143,11 +146,13 @@ public class AccessibilityScreenSizeForSetupWizardActivity extends InstrumentedA
* Scrolls to bottom while {@link ScrollView} layout changed.
*/
private void scrollToBottom() {
+ mLastScrollViewHeight = 0;
final GlifLayout layout = findViewById(R.id.setup_wizard_layout);
final ScrollView scrollView = layout.getScrollView();
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
final int scrollViewHeight = scrollView.getHeight();
- if (scrollViewHeight > 0) {
+ if (scrollViewHeight > 0 && scrollViewHeight != mLastScrollViewHeight) {
+ mLastScrollViewHeight = scrollViewHeight;
scrollView.post(() -> {
// Here is no need to show the scrolling animation. So disabled first and
// then enabled it after scrolling finished.
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index bb84d01ea6a..6897a094816 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -120,7 +120,6 @@ import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.network.NetworkProviderSettings;
import com.android.settings.network.apn.ApnEditor;
import com.android.settings.network.apn.ApnSettings;
-import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.nfc.AndroidBeam;
import com.android.settings.nfc.PaymentSettings;
import com.android.settings.notification.ConfigureNotificationSettings;
@@ -320,7 +319,6 @@ public class SettingsGateway {
InteractAcrossProfilesDetails.class.getName(),
MediaControlsSettings.class.getName(),
NetworkProviderSettings.class.getName(),
- NetworkSelectSettings.class.getName(),
AlarmsAndRemindersDetails.class.getName(),
MediaManagementAppsDetails.class.getName(),
AutoBrightnessSettings.class.getName()
@@ -345,7 +343,6 @@ public class SettingsGateway {
Settings.WifiSettingsActivity.class.getName(),
Settings.DataUsageSummaryActivity.class.getName(),
Settings.NetworkProviderSettingsActivity.class.getName(),
- Settings.NetworkSelectActivity.class.getName(),
// Home page > Connected devices
Settings.BluetoothSettingsActivity.class.getName(),
Settings.WifiDisplaySettingsActivity.class.getName(),
diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java
index 8c433a061a6..57931c1b36b 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -271,12 +271,14 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
mView = dialogInflater.inflate(R.layout.data_usage_bytes_editor, null, false);
setupPicker((EditText) mView.findViewById(R.id.bytes),
(Spinner) mView.findViewById(R.id.size_spinner));
- return new AlertDialog.Builder(context)
+ Dialog dialog = new AlertDialog.Builder(context)
.setTitle(isLimit ? R.string.data_usage_limit_editor_title
: R.string.data_usage_warning_editor_title)
.setView(mView)
.setPositiveButton(R.string.data_usage_cycle_editor_positive, this)
.create();
+ dialog.setCanceledOnTouchOutside(false);
+ return dialog;
}
private void setupPicker(EditText bytesPicker, Spinner type) {
@@ -402,10 +404,12 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
mCycleDayPicker.setValue(cycleDay);
mCycleDayPicker.setWrapSelectorWheel(true);
- return builder.setTitle(R.string.data_usage_cycle_editor_title)
+ Dialog dialog = builder.setTitle(R.string.data_usage_cycle_editor_title)
.setView(view)
.setPositiveButton(R.string.data_usage_cycle_editor_positive, this)
.create();
+ dialog.setCanceledOnTouchOutside(false);
+ return dialog;
}
@Override
@@ -466,12 +470,14 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Context context = getActivity();
- return new AlertDialog.Builder(context)
+ Dialog dialog = new AlertDialog.Builder(context)
.setTitle(R.string.data_usage_limit_dialog_title)
.setMessage(R.string.data_usage_limit_dialog_mobile)
.setPositiveButton(android.R.string.ok, this)
.setNegativeButton(android.R.string.cancel, null)
.create();
+ dialog.setCanceledOnTouchOutside(false);
+ return dialog;
}
@Override
diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
index 3b75ebf420e..fb879bacc5a 100644
--- a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
+++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java
@@ -129,7 +129,7 @@ public class ContextualCardsFragment extends InstrumentedFragment implements
private void registerKeyEventReceiver() {
getActivity().registerReceiver(mKeyEventReceiver,
- new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS));
+ new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS), Context.RECEIVER_EXPORTED);
}
private void unregisterKeyEventReceiver() {
diff --git a/src/com/android/settings/network/telephony/EuiccOperationSidecar.java b/src/com/android/settings/network/telephony/EuiccOperationSidecar.java
index 0ee6d95fa83..05c866e7e9a 100644
--- a/src/com/android/settings/network/telephony/EuiccOperationSidecar.java
+++ b/src/com/android/settings/network/telephony/EuiccOperationSidecar.java
@@ -114,7 +114,8 @@ public abstract class EuiccOperationSidecar extends SidecarFragment {
mReceiver,
new IntentFilter(getReceiverAction()),
Manifest.permission.WRITE_EMBEDDED_SUBSCRIPTIONS,
- null);
+ null,
+ Context.RECEIVER_EXPORTED);
}
@Override
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index b26e7835754..d20cc2711e1 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -19,7 +19,6 @@ package com.android.settings.network.telephony;
import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -103,7 +102,7 @@ public class NetworkSelectSettings extends DashboardFragment {
@VisibleForTesting
protected void onCreateInitialization() {
mUseNewApi = enableNewAutoSelectNetworkUI(getContext());
- mSubId = getSubId();
+ mSubId = getArguments().getInt(Settings.EXTRA_SUB_ID);
mPreferenceCategory = getPreferenceCategory(PREF_KEY_NETWORK_OPERATORS);
mStatusMessagePreference = new Preference(getContext());
@@ -122,7 +121,7 @@ public class NetworkSelectSettings extends DashboardFragment {
mMetricsFeatureProvider = getMetricsFeatureProvider(getContext());
mIsAggregationEnabled = enableAggregation(getContext());
Log.d(TAG, "init: mUseNewApi:" + mUseNewApi
- + " ,mIsAggregationEnabled:" + mIsAggregationEnabled + " ,mSubId:" + mSubId);
+ + " ,mIsAggregationEnabled:" + mIsAggregationEnabled);
}
@Keep
@@ -176,18 +175,6 @@ public class NetworkSelectSettings extends DashboardFragment {
getPreferenceScreen().setEnabled(enable);
}
- @Keep
- @VisibleForTesting
- protected int getSubId() {
- int subId = SubscriptionManager.INVALID_SUBSCRIPTION_ID;
- Intent intent = getActivity().getIntent();
- if (intent != null) {
- subId = intent.getIntExtra(Settings.EXTRA_SUB_ID,
- SubscriptionManager.INVALID_SUBSCRIPTION_ID);
- }
- return subId;
- }
-
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
diff --git a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
index 7615fe339bc..b585ecec6a4 100644
--- a/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceController.java
@@ -46,6 +46,7 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
Preference mPreference;
private TelephonyManager mTelephonyManager;
private PhoneCallStateTelephonyCallback mTelephonyCallback;
+ private boolean mIsVonrEnabledFromCarrierConfig = false;
private boolean mIsVonrVisibleFromCarrierConfig = false;
private boolean mIsNrEnableFromCarrierConfig = false;
private boolean mHas5gCapability = false;
@@ -83,6 +84,9 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
if (carrierConfig == null) {
return this;
}
+ mIsVonrEnabledFromCarrierConfig = carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_VONR_ENABLED_BOOL);
+
mIsVonrVisibleFromCarrierConfig = carrierConfig.getBoolean(
CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL);
@@ -92,6 +96,7 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
Log.d(TAG, "mHas5gCapability: " + mHas5gCapability
+ ",mIsNrEnabledFromCarrierConfig: " + mIsNrEnableFromCarrierConfig
+ + ",mIsVonrEnabledFromCarrierConfig: " + mIsVonrEnabledFromCarrierConfig
+ ",mIsVonrVisibleFromCarrierConfig: " + mIsVonrVisibleFromCarrierConfig);
return this;
}
@@ -100,7 +105,10 @@ public class NrAdvancedCallingPreferenceController extends TelephonyTogglePrefer
public int getAvailabilityStatus(int subId) {
init(subId);
- if (mHas5gCapability && mIsNrEnableFromCarrierConfig && mIsVonrVisibleFromCarrierConfig) {
+ if (mHas5gCapability
+ && mIsNrEnableFromCarrierConfig
+ && mIsVonrEnabledFromCarrierConfig
+ && mIsVonrVisibleFromCarrierConfig) {
return AVAILABLE;
}
return CONDITIONALLY_UNAVAILABLE;
diff --git a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
index 028c4e77a78..997235c8a0c 100644
--- a/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/AutoSelectPreferenceController.java
@@ -20,8 +20,9 @@ import static androidx.lifecycle.Lifecycle.Event.ON_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
import android.app.ProgressDialog;
+import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.content.Intent;
+import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerExecutor;
import android.os.Looper;
@@ -42,8 +43,10 @@ import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.telephony.MobileNetworkUtils;
+import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyTogglePreferenceController;
import com.android.settingslib.utils.ThreadUtils;
@@ -148,26 +151,25 @@ public class AutoSelectPreferenceController extends TelephonyTogglePreferenceCon
public boolean setChecked(boolean isChecked) {
if (isChecked) {
setAutomaticSelectionMode();
+ return false;
} else {
- if (mSwitchPreference != null) {
- Intent intent = new Intent();
- intent.setClassName("com.android.settings",
- "com.android.settings.Settings$NetworkSelectActivity");
- intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
- mSwitchPreference.setIntent(intent);
- }
+ final Bundle bundle = new Bundle();
+ bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
+ new SubSettingLauncher(mContext)
+ .setDestination(NetworkSelectSettings.class.getName())
+ .setSourceMetricsCategory(SettingsEnums.MOBILE_NETWORK_SELECT)
+ .setTitleRes(R.string.choose_network_title)
+ .setArguments(bundle)
+ .launch();
+ return false;
}
- return false;
}
@VisibleForTesting
Future setAutomaticSelectionMode() {
final long startMillis = SystemClock.elapsedRealtime();
showAutoSelectProgressBar();
- if (mSwitchPreference != null) {
- mSwitchPreference.setIntent(null);
- mSwitchPreference.setEnabled(false);
- }
+ mSwitchPreference.setEnabled(false);
return ThreadUtils.postOnBackgroundThread(() -> {
// set network selection mode in background
mTelephonyManager.setNetworkSelectionModeAutomatic();
diff --git a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
index 54f5ce15d72..4047009b325 100644
--- a/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
+++ b/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceController.java
@@ -19,12 +19,14 @@ package com.android.settings.network.telephony.gsm;
import static androidx.lifecycle.Lifecycle.Event.ON_START;
import static androidx.lifecycle.Lifecycle.Event.ON_STOP;
+import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.content.Intent;
+import android.os.Bundle;
import android.provider.Settings;
import android.telephony.ServiceState;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
+import android.text.TextUtils;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
@@ -33,8 +35,10 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
+import com.android.settings.core.SubSettingLauncher;
import com.android.settings.network.AllowedNetworkTypesListener;
import com.android.settings.network.telephony.MobileNetworkUtils;
+import com.android.settings.network.telephony.NetworkSelectSettings;
import com.android.settings.network.telephony.TelephonyBasePreferenceController;
/**
@@ -98,12 +102,6 @@ public class OpenNetworkSelectPagePreferenceController extends
super.updateState(preference);
preference.setEnabled(mTelephonyManager.getNetworkSelectionMode()
!= TelephonyManager.NETWORK_SELECTION_MODE_AUTO);
-
- Intent intent = new Intent();
- intent.setClassName("com.android.settings",
- "com.android.settings.Settings$NetworkSelectActivity");
- intent.putExtra(Settings.EXTRA_SUB_ID, mSubId);
- preference.setIntent(intent);
}
@Override
@@ -116,6 +114,23 @@ public class OpenNetworkSelectPagePreferenceController extends
}
}
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ final Bundle bundle = new Bundle();
+ bundle.putInt(Settings.EXTRA_SUB_ID, mSubId);
+ new SubSettingLauncher(mContext)
+ .setDestination(NetworkSelectSettings.class.getName())
+ .setSourceMetricsCategory(SettingsEnums.MOBILE_NETWORK_SELECT)
+ .setTitleRes(R.string.choose_network_title)
+ .setArguments(bundle)
+ .launch();
+ return true;
+ }
+
+ return false;
+ }
+
public OpenNetworkSelectPagePreferenceController init(Lifecycle lifecycle, int subId) {
mSubId = subId;
mTelephonyManager = mContext.getSystemService(TelephonyManager.class)
diff --git a/src/com/android/settings/password/PasswordUtils.java b/src/com/android/settings/password/PasswordUtils.java
index 5b75033f0f2..e8e309c40ec 100644
--- a/src/com/android/settings/password/PasswordUtils.java
+++ b/src/com/android/settings/password/PasswordUtils.java
@@ -79,18 +79,20 @@ public final class PasswordUtils extends com.android.settingslib.Utils {
}
/** Crashes the calling application and provides it with {@code message}. */
- public static void crashCallingApplication(IBinder activityToken, String message) {
+ public static void crashCallingApplication(IBinder activityToken, String message,
+ int exceptionTypeId) {
IActivityManager am = ActivityManager.getService();
try {
int uid = am.getLaunchedFromUid(activityToken);
int userId = UserHandle.getUserId(uid);
- am.crashApplication(
+ am.crashApplicationWithType(
uid,
/* initialPid= */ -1,
getCallingAppPackageName(activityToken),
userId,
message,
- false);
+ false,
+ exceptionTypeId);
} catch (RemoteException e) {
Log.v(TAG, "Could not talk to activity manager.", e);
}
diff --git a/src/com/android/settings/password/SetNewPasswordActivity.java b/src/com/android/settings/password/SetNewPasswordActivity.java
index 22825872128..fc664eccde1 100644
--- a/src/com/android/settings/password/SetNewPasswordActivity.java
+++ b/src/com/android/settings/password/SetNewPasswordActivity.java
@@ -29,6 +29,7 @@ import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_I
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
import android.app.Activity;
+import android.app.RemoteServiceException.MissingRequestPasswordComplexityPermissionException;
import android.app.admin.DevicePolicyManager;
import android.app.admin.DevicePolicyManager.PasswordComplexity;
import android.app.admin.PasswordMetrics;
@@ -101,7 +102,8 @@ public class SetNewPasswordActivity extends Activity implements SetNewPasswordCo
PasswordUtils.crashCallingApplication(activityToken,
"Must have permission "
+ REQUEST_PASSWORD_COMPLEXITY + " to use extra "
- + EXTRA_PASSWORD_COMPLEXITY);
+ + EXTRA_PASSWORD_COMPLEXITY,
+ MissingRequestPasswordComplexityPermissionException.TYPE_ID);
finish();
return;
}
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 3261b81083b..968af3232f8 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -21,6 +21,7 @@ import static android.app.admin.DevicePolicyManager.EXTRA_PASSWORD_COMPLEXITY;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_REQUESTED_MIN_COMPLEXITY;
+import android.app.RemoteServiceException.MissingRequestPasswordComplexityPermissionException;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
@@ -79,7 +80,8 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
if (!hasPermission) {
PasswordUtils.crashCallingApplication(activityToken,
"Must have permission " + REQUEST_PASSWORD_COMPLEXITY
- + " to use extra " + EXTRA_PASSWORD_COMPLEXITY);
+ + " to use extra " + EXTRA_PASSWORD_COMPLEXITY,
+ MissingRequestPasswordComplexityPermissionException.TYPE_ID);
finish();
return;
}
diff --git a/src/com/android/settings/wifi/tether/TetherService.java b/src/com/android/settings/wifi/tether/TetherService.java
index 59027193ed5..8a557ba0c3e 100644
--- a/src/com/android/settings/wifi/tether/TetherService.java
+++ b/src/com/android/settings/wifi/tether/TetherService.java
@@ -119,7 +119,8 @@ public class TetherService extends Service {
if (mExpectedProvisionResponseAction != null) unregisterReceiver(mReceiver);
registerReceiver(mReceiver, new IntentFilter(responseAction),
- android.Manifest.permission.TETHER_PRIVILEGED, null /* handler */);
+ android.Manifest.permission.TETHER_PRIVILEGED, null /* handler */,
+ Context.RECEIVER_EXPORTED);
mExpectedProvisionResponseAction = responseAction;
if (DEBUG) Log.d(TAG, "registerReceiver " + responseAction);
}
diff --git a/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java b/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
index 7d860185a31..6449c65ffe7 100644
--- a/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/NetworkSelectSettingsTest.java
@@ -122,6 +122,10 @@ public class NetworkSelectSettingsTest {
public TargetClass(NetworkSelectSettingsTest env) {
mTestEnv = env;
+
+ Bundle bundle = new Bundle();
+ bundle.putInt(Settings.EXTRA_SUB_ID, SUB_ID);
+ setArguments(bundle);
}
@Override
@@ -180,11 +184,6 @@ public class NetworkSelectSettingsTest {
protected boolean enableAggregation(Context context) {
return mTestEnv.mIsAggregationEnabled;
}
-
- @Override
- protected int getSubId() {
- return SUB_ID;
- }
}
@Test
diff --git a/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java
index 9eb67df96ca..fac777232f0 100644
--- a/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/NrAdvancedCallingPreferenceControllerTest.java
@@ -80,7 +80,8 @@ public class NrAdvancedCallingPreferenceControllerTest {
mTelephonyManager).setVoNrEnabled(anyBoolean());
mCarrierConfig = new PersistableBundle();
doReturn(mCarrierConfig).when(mCarrierConfigManager).getConfigForSubId(SUB_ID);
- mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, false);
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, false);
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, true);
mCarrierConfig.putIntArray(CarrierConfigManager.KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY,
new int[]{1, 2});
@@ -92,7 +93,8 @@ public class NrAdvancedCallingPreferenceControllerTest {
}
@Test
- public void getAvailabilityStatus_vonrDisabled_returnUnavailable() {
+ public void getAvailabilityStatus_vonrEnabledAndVisibleDisable_returnUnavailable() {
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, true);
mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, false);
mController.init(SUB_ID);
@@ -102,7 +104,30 @@ public class NrAdvancedCallingPreferenceControllerTest {
}
@Test
- public void getAvailabilityStatus_vonrEnabled_returnAvailable() {
+ public void getAvailabilityStatus_vonrDisabledAndVisibleDisable_returnUnavailable() {
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, false);
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, false);
+
+ mController.init(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_vonrDisabledAndVisibleEnable_returnUnavailable() {
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, false);
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, true);
+
+ mController.init(SUB_ID);
+
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(
+ BasePreferenceController.CONDITIONALLY_UNAVAILABLE);
+ }
+
+ @Test
+ public void getAvailabilityStatus_vonrEnabledAndVisibleEnable_returnAvailable() {
+ mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_ENABLED_BOOL, true);
mCarrierConfig.putBoolean(CarrierConfigManager.KEY_VONR_SETTING_VISIBILITY_BOOL, true);
mController.init(SUB_ID);