diff options
| author | 2019-02-28 14:46:14 -0800 | |
|---|---|---|
| committer | 2019-03-13 15:36:11 -0700 | |
| commit | 3b09d711f903266eaaa8af4c3b7e1cb121e718a1 (patch) | |
| tree | d6f66dc73049d037d66f40df47bbea413af92e15 | |
| parent | c9948da02a00e431cce29adacacfc7675e396251 (diff) | |
Should not turn on validation for data
Should not turn on validation for data switch every time.
Provide result as a callback
Test: verified manually
Bug: 126264455
Merged-In: I5df2311d91fdab34563148b4466163696e52faf9
Change-Id: I5df2311d91fdab34563148b4466163696e52faf9
| -rwxr-xr-x | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | telephony/java/android/telephony/SubscriptionManager.java | 9 | ||||
| -rw-r--r-- | telephony/java/android/telephony/TelephonyManager.java | 32 | ||||
| -rwxr-xr-x | telephony/java/com/android/internal/telephony/IOns.aidl | 8 |
5 files changed, 39 insertions, 14 deletions
diff --git a/api/current.txt b/api/current.txt index 5746403fd541..98502c890e3a 100755 --- a/api/current.txt +++ b/api/current.txt @@ -43118,7 +43118,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); diff --git a/api/system-current.txt b/api/system-current.txt index b89a1da22ca2..050d179139a6 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -6317,7 +6317,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 diff --git a/telephony/java/android/telephony/SubscriptionManager.java b/telephony/java/android/telephony/SubscriptionManager.java index e6bf5a30c5c8..90df45af6645 100644 --- a/telephony/java/android/telephony/SubscriptionManager.java +++ b/telephony/java/android/telephony/SubscriptionManager.java @@ -2597,7 +2597,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")); @@ -2606,10 +2606,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); - } + callback.accept(result); })); } }; diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 22614a2be192..a0c14e30b006 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -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.IUpdateAvailableNetworksCallback; @@ -10194,21 +10195,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; } /** diff --git a/telephony/java/com/android/internal/telephony/IOns.aidl b/telephony/java/com/android/internal/telephony/IOns.aidl index 4672e2d44301..a74498f680db 100755 --- a/telephony/java/com/android/internal/telephony/IOns.aidl +++ b/telephony/java/com/android/internal/telephony/IOns.aidl @@ -19,6 +19,8 @@ package com.android.internal.telephony; import android.telephony.AvailableNetworkInfo; import com.android.internal.telephony.IUpdateAvailableNetworksCallback; +import com.android.internal.telephony.ISetOpportunisticDataCallback; + interface IOns { /** @@ -63,11 +65,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 |