Loading api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -45217,7 +45217,7 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setNetworkSelectionModeManual(String, boolean); method public boolean setOperatorBrandOverride(String); method public boolean setPreferredNetworkTypeToGlobal(); method public boolean setPreferredOpportunisticDataSubscription(int); method public void setPreferredOpportunisticDataSubscription(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>); method public void setVisualVoicemailSmsFilterSettings(android.telephony.VisualVoicemailSmsFilterSettings); method public boolean setVoiceMailNumber(String, String); method @Deprecated public void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri); api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -7887,7 +7887,7 @@ package android.telephony { method public void requestEmbeddedSubscriptionInfoListRefresh(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultDataSubId(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultSmsSubId(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @NonNull java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Integer>); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSubscriptionEnabled(int, boolean); field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI; field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff telephony/java/android/telephony/SubscriptionManager.java +5 −4 Original line number Diff line number Diff line Loading @@ -2600,7 +2600,7 @@ public class SubscriptionManager { @SystemApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int subId, boolean needValidation, @NonNull @CallbackExecutor Executor executor, Consumer<Integer> callback) { @Nullable @CallbackExecutor Executor executor, @Nullable Consumer<Integer> callback) { if (VDBG) logd("[setPreferredDataSubscriptionId]+ subId:" + subId); try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); Loading @@ -2609,10 +2609,11 @@ public class SubscriptionManager { ISetOpportunisticDataCallback callbackStub = new ISetOpportunisticDataCallback.Stub() { @Override public void onComplete(int result) { if (executor == null || callback == null) { return; } Binder.withCleanCallingIdentity(() -> executor.execute(() -> { if (callback != null) { callback.accept(result); } })); } }; Loading telephony/java/android/telephony/TelephonyManager.java +27 −6 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ import com.android.internal.telephony.CellNetworkScanResult; import com.android.internal.telephony.INumberVerificationCallback; import com.android.internal.telephony.IOns; import com.android.internal.telephony.IPhoneSubInfo; import com.android.internal.telephony.ISetOpportunisticDataCallback; import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.ITelephonyRegistry; import com.android.internal.telephony.OperatorInfo; Loading @@ -98,6 +99,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.concurrent.Executor; import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; Loading Loading @@ -10185,21 +10187,40 @@ public class TelephonyManager { * @param subId which opportunistic subscription * {@link SubscriptionManager#getOpportunisticSubscriptions} is preferred for cellular data. * Pass {@link SubscriptionManager#DEFAULT_SUBSCRIPTION_ID} to unset the preference * @return true if request is accepted, else false. * @param needValidation whether validation is needed before switch happens. * @param executor The executor of where the callback will execute. * @param callback Callback will be triggered once it succeeds or failed. * See {@link TelephonyManager.SetOpportunisticSubscriptionResult} * for more details. Pass null if don't care about the result. * */ public boolean setPreferredOpportunisticDataSubscription(int subId) { public void setPreferredOpportunisticDataSubscription(int subId, boolean needValidation, @Nullable @CallbackExecutor Executor executor, @Nullable Consumer<Integer> callback) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; try { IOns iOpportunisticNetworkService = getIOns(); if (iOpportunisticNetworkService != null) { return iOpportunisticNetworkService .setPreferredDataSubscriptionId(subId, pkgForDebug); if (iOpportunisticNetworkService == null) { return; } ISetOpportunisticDataCallback callbackStub = new ISetOpportunisticDataCallback.Stub() { @Override public void onComplete(int result) { if (executor == null || callback == null) { return; } Binder.withCleanCallingIdentity(() -> executor.execute(() -> { callback.accept(result); })); } }; iOpportunisticNetworkService .setPreferredDataSubscriptionId(subId, needValidation, callbackStub, pkgForDebug); } catch (RemoteException ex) { Rlog.e(TAG, "setPreferredDataSubscriptionId RemoteException", ex); } return false; return; } /** Loading telephony/java/com/android/internal/telephony/IOns.aidl +6 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.internal.telephony; import android.telephony.AvailableNetworkInfo; import com.android.internal.telephony.ISetOpportunisticDataCallback; interface IOns { /** Loading Loading @@ -62,11 +64,13 @@ interface IOns { * @param subId which opportunistic subscription * {@link SubscriptionManager#getOpportunisticSubscriptions} is preferred for cellular data. * Pass {@link SubscriptionManager#DEFAULT_SUBSCRIPTION_ID} to unset the preference * @param needValidation whether validation is needed before switch happens. * @param callback callback upon request completion. * @param callingPackage caller's package name * @return true if request is accepted, else false. * */ boolean setPreferredDataSubscriptionId(int subId, String callingPackage); void setPreferredDataSubscriptionId(int subId, boolean needValidation, ISetOpportunisticDataCallback callbackStub, String callingPackage); /** * Get preferred opportunistic data subscription Id Loading Loading
api/current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -45217,7 +45217,7 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setNetworkSelectionModeManual(String, boolean); method public boolean setOperatorBrandOverride(String); method public boolean setPreferredNetworkTypeToGlobal(); method public boolean setPreferredOpportunisticDataSubscription(int); method public void setPreferredOpportunisticDataSubscription(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>); method public void setVisualVoicemailSmsFilterSettings(android.telephony.VisualVoicemailSmsFilterSettings); method public boolean setVoiceMailNumber(String, String); method @Deprecated public void setVoicemailRingtoneUri(android.telecom.PhoneAccountHandle, android.net.Uri);
api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -7887,7 +7887,7 @@ package android.telephony { method public void requestEmbeddedSubscriptionInfoListRefresh(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultDataSubId(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDefaultSmsSubId(int); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @NonNull java.util.concurrent.Executor, java.util.function.Consumer<java.lang.Integer>); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int, boolean, @Nullable java.util.concurrent.Executor, @Nullable java.util.function.Consumer<java.lang.Integer>); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setSubscriptionEnabled(int, boolean); field @NonNull public static final android.net.Uri ADVANCED_CALLING_ENABLED_CONTENT_URI; field public static final int PROFILE_CLASS_DEFAULT = -1; // 0xffffffff
telephony/java/android/telephony/SubscriptionManager.java +5 −4 Original line number Diff line number Diff line Loading @@ -2600,7 +2600,7 @@ public class SubscriptionManager { @SystemApi @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setPreferredDataSubscriptionId(int subId, boolean needValidation, @NonNull @CallbackExecutor Executor executor, Consumer<Integer> callback) { @Nullable @CallbackExecutor Executor executor, @Nullable Consumer<Integer> callback) { if (VDBG) logd("[setPreferredDataSubscriptionId]+ subId:" + subId); try { ISub iSub = ISub.Stub.asInterface(ServiceManager.getService("isub")); Loading @@ -2609,10 +2609,11 @@ public class SubscriptionManager { ISetOpportunisticDataCallback callbackStub = new ISetOpportunisticDataCallback.Stub() { @Override public void onComplete(int result) { if (executor == null || callback == null) { return; } Binder.withCleanCallingIdentity(() -> executor.execute(() -> { if (callback != null) { callback.accept(result); } })); } }; Loading
telephony/java/android/telephony/TelephonyManager.java +27 −6 Original line number Diff line number Diff line Loading @@ -81,6 +81,7 @@ import com.android.internal.telephony.CellNetworkScanResult; import com.android.internal.telephony.INumberVerificationCallback; import com.android.internal.telephony.IOns; import com.android.internal.telephony.IPhoneSubInfo; import com.android.internal.telephony.ISetOpportunisticDataCallback; import com.android.internal.telephony.ITelephony; import com.android.internal.telephony.ITelephonyRegistry; import com.android.internal.telephony.OperatorInfo; Loading @@ -98,6 +99,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.concurrent.Executor; import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; Loading Loading @@ -10185,21 +10187,40 @@ public class TelephonyManager { * @param subId which opportunistic subscription * {@link SubscriptionManager#getOpportunisticSubscriptions} is preferred for cellular data. * Pass {@link SubscriptionManager#DEFAULT_SUBSCRIPTION_ID} to unset the preference * @return true if request is accepted, else false. * @param needValidation whether validation is needed before switch happens. * @param executor The executor of where the callback will execute. * @param callback Callback will be triggered once it succeeds or failed. * See {@link TelephonyManager.SetOpportunisticSubscriptionResult} * for more details. Pass null if don't care about the result. * */ public boolean setPreferredOpportunisticDataSubscription(int subId) { public void setPreferredOpportunisticDataSubscription(int subId, boolean needValidation, @Nullable @CallbackExecutor Executor executor, @Nullable Consumer<Integer> callback) { String pkgForDebug = mContext != null ? mContext.getOpPackageName() : "<unknown>"; try { IOns iOpportunisticNetworkService = getIOns(); if (iOpportunisticNetworkService != null) { return iOpportunisticNetworkService .setPreferredDataSubscriptionId(subId, pkgForDebug); if (iOpportunisticNetworkService == null) { return; } ISetOpportunisticDataCallback callbackStub = new ISetOpportunisticDataCallback.Stub() { @Override public void onComplete(int result) { if (executor == null || callback == null) { return; } Binder.withCleanCallingIdentity(() -> executor.execute(() -> { callback.accept(result); })); } }; iOpportunisticNetworkService .setPreferredDataSubscriptionId(subId, needValidation, callbackStub, pkgForDebug); } catch (RemoteException ex) { Rlog.e(TAG, "setPreferredDataSubscriptionId RemoteException", ex); } return false; return; } /** Loading
telephony/java/com/android/internal/telephony/IOns.aidl +6 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.internal.telephony; import android.telephony.AvailableNetworkInfo; import com.android.internal.telephony.ISetOpportunisticDataCallback; interface IOns { /** Loading Loading @@ -62,11 +64,13 @@ interface IOns { * @param subId which opportunistic subscription * {@link SubscriptionManager#getOpportunisticSubscriptions} is preferred for cellular data. * Pass {@link SubscriptionManager#DEFAULT_SUBSCRIPTION_ID} to unset the preference * @param needValidation whether validation is needed before switch happens. * @param callback callback upon request completion. * @param callingPackage caller's package name * @return true if request is accepted, else false. * */ boolean setPreferredDataSubscriptionId(int subId, String callingPackage); void setPreferredDataSubscriptionId(int subId, boolean needValidation, ISetOpportunisticDataCallback callbackStub, String callingPackage); /** * Get preferred opportunistic data subscription Id Loading