Split setSystemSelectionChannels
Split method into two parts, one that takes a callback/executor and one
that doesn't.
Fixes: 148866746
Test: atest TelephonyManagerTest#testSetSystemSelectionChannels
Change-Id: Ic5a130e5806b4516caa1a8510214eaf9b2b43b03
diff --git a/api/system-current.txt b/api/system-current.txt
index 9a1aacd..58c6753 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -11786,7 +11786,8 @@
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setRadioPower(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerState(int);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSimPowerStateForSlot(int, int);
- method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Boolean>);
+ method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
+ method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>);
method @Deprecated public void setVisualVoicemailEnabled(android.telecom.PhoneAccountHandle, boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setVoiceActivationState(int);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void shutdownAllRadios();
diff --git a/api/test-current.txt b/api/test-current.txt
index f25f108..04fff6f 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -3775,7 +3775,8 @@
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void refreshUiccProfile();
method @Deprecated public void setCarrierTestOverride(String, String, String, String, String, String, String);
method public void setCarrierTestOverride(String, String, String, String, String, String, String, String, String);
- method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Boolean>);
+ method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Boolean>);
+ method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List<android.telephony.RadioAccessSpecifier>);
method @RequiresPermission("android.permission.READ_ACTIVE_EMERGENCY_SESSION") public void updateTestOtaEmergencyNumberDbFilePath(@NonNull String);
field public static final int CARRIER_PRIVILEGE_STATUS_ERROR_LOADING_RULES = -2; // 0xfffffffe
field public static final int CARRIER_PRIVILEGE_STATUS_HAS_ACCESS = 1; // 0x1
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 31d9654..69613f3 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -12610,14 +12610,32 @@
@TestApi
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void setSystemSelectionChannels(@NonNull List<RadioAccessSpecifier> specifiers,
+ @NonNull @CallbackExecutor Executor executor,
+ @NonNull Consumer<Boolean> callback) {
+ Objects.requireNonNull(specifiers, "Specifiers must not be null.");
+ Objects.requireNonNull(executor, "Executor must not be null.");
+ Objects.requireNonNull(callback, "Callback must not be null.");
+ setSystemSelectionChannelsInternal(specifiers, executor, callback);
+ }
+
+ /**
+ * Same as {@link #setSystemSelectionChannels(List, Executor, Consumer<Boolean>)}, but to be
+ * used when the caller does not need feedback on the results of the operation.
+ * @param specifiers which bands to scan.
+ * @hide
+ */
+ @SystemApi
+ @TestApi
+ @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
+ public void setSystemSelectionChannels(@NonNull List<RadioAccessSpecifier> specifiers) {
+ Objects.requireNonNull(specifiers, "Specifiers must not be null.");
+ setSystemSelectionChannelsInternal(specifiers, null, null);
+ }
+
+
+ private void setSystemSelectionChannelsInternal(@NonNull List<RadioAccessSpecifier> specifiers,
@Nullable @CallbackExecutor Executor executor,
@Nullable Consumer<Boolean> callback) {
- Objects.requireNonNull(specifiers, "Specifiers must not be null.");
- if (callback != null) {
- Objects.requireNonNull(executor, "Executor must not be null when"
- + " the callback is nonnull");
- }
-
IBooleanConsumer aidlConsumer = callback == null ? null : new IBooleanConsumer.Stub() {
@Override
public void accept(boolean result) {