diff --git a/api/system-current.txt b/api/system-current.txt index 71c1e38c83211..e2957157d4b38 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -11724,7 +11724,8 @@ package android.telephony { 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, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List); 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 1169c91b6cd70..ea262278f3f41 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -3730,7 +3730,8 @@ package android.telephony { 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, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); + method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull java.util.List); 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 10180ff995f0b..67a2604ba9c7a 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -12601,14 +12601,32 @@ public class TelephonyManager { @TestApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setSystemSelectionChannels(@NonNull List specifiers, + @NonNull @CallbackExecutor Executor executor, + @NonNull Consumer 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)}, 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 specifiers) { + Objects.requireNonNull(specifiers, "Specifiers must not be null."); + setSystemSelectionChannelsInternal(specifiers, null, null); + } + + + private void setSystemSelectionChannelsInternal(@NonNull List specifiers, @Nullable @CallbackExecutor Executor executor, @Nullable Consumer 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) {