From 7370458ca9b297d97e332449ae74777cc5a5fa46 Mon Sep 17 00:00:00 2001 From: Brad Ebinger Date: Fri, 1 Nov 2019 14:10:13 -0700 Subject: [PATCH] Fix new registration APIs as per API council guidelines Bug: 143653269 Bug: 143653007 Test: atest FrameworksTelephonyTests GtsTelephonyTestCases Merged-In: I634cbf2b9cd91bfa53729ccc4bfc92e9c4808976 Change-Id: I634cbf2b9cd91bfa53729ccc4bfc92e9c4808976 --- api/system-current.txt | 16 ++++---- .../android/telephony/TelephonyManager.java | 27 +++++++++++-- .../telephony/ims/ImsMmTelManager.java | 25 ++++++------ .../android/telephony/ims/ImsRcsManager.java | 14 +++---- .../telephony/ims/RegistrationManager.java | 38 +++++++++---------- 5 files changed, 69 insertions(+), 51 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 7ea45dcbd7a65..15edb6724fd1b 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8200,7 +8200,6 @@ package android.telephony { method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean enableDataConnectivity(); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean enableModemForSlot(int, boolean); method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void enableVideoCalling(boolean); - method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void factoryReset(int); method @Nullable @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public String getAidForAppType(int); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List getAllowedCarriers(int); method public java.util.List getCarrierPackageNamesForIntent(android.content.Intent); @@ -8256,6 +8255,7 @@ package android.telephony { method @RequiresPermission(allOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.MODIFY_PHONE_STATE}) public void requestCellInfoUpdate(@NonNull android.os.WorkSource, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CellInfoCallback); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void requestNumberVerification(@NonNull android.telephony.PhoneNumberRange, long, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.NumberVerificationCallback); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean resetRadioConfig(); + method @RequiresPermission(android.Manifest.permission.CONNECTIVITY_INTERNAL) public void resetSettings(); method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setAllowedCarriers(int, java.util.List); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules); @@ -8858,20 +8858,20 @@ package android.telephony.ims { public class ImsMmTelManager implements android.telephony.ims.RegistrationManager { method @NonNull public static android.telephony.ims.ImsMmTelManager createForSubscriptionId(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getFeatureState(@NonNull java.util.function.Consumer, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException; - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.function.Consumer, @NonNull java.util.concurrent.Executor); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.function.Consumer, @NonNull java.util.concurrent.Executor); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoWiFiModeSetting(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public int getVoWiFiRoamingModeSetting(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAdvancedCallingSettingEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAvailable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isCapable(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void isSupported(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int, @NonNull java.util.function.Consumer, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException; + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void isSupported(@android.telephony.ims.feature.MmTelFeature.MmTelCapabilities.MmTelCapability int, int, @NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isTtyOverVolteEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiRoamingSettingEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVoWiFiSettingEnabled(); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isVtSettingEnabled(); method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.RegistrationCallback) throws android.telephony.ims.ImsException; - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException; + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerMmTelCapabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsMmTelManager.CapabilityCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setAdvancedCallingSettingEnabled(boolean); method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setRttCapabilitySetting(boolean); @@ -9331,9 +9331,9 @@ package android.telephony.ims { } public interface RegistrationManager { - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.function.Consumer, @NonNull java.util.concurrent.Executor); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.function.Consumer, @NonNull java.util.concurrent.Executor); - method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback, @NonNull java.util.concurrent.Executor) throws android.telephony.ims.ImsException; + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException; method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback); field public static final int REGISTRATION_STATE_NOT_REGISTERED = 0; // 0x0 field public static final int REGISTRATION_STATE_REGISTERED = 2; // 0x2 diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 8dfc944c05b44..63cd51189de9f 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -9445,18 +9445,37 @@ public class TelephonyManager { } /** - * Resets Telephony and IMS settings back to factory defaults. + * Resets telephony manager settings back to factory defaults. * * @hide */ - @SystemApi - @RequiresPermission(Manifest.permission.CONNECTIVITY_INTERNAL) public void factoryReset(int subId) { try { Log.d(TAG, "factoryReset: subId=" + subId); ITelephony telephony = getITelephony(); - if (telephony != null) + if (telephony != null) { telephony.factoryReset(subId); + } + } catch (RemoteException e) { + } + } + + + /** + * Resets Telephony and IMS settings back to factory defaults only for the subscription + * associated with this instance. + * @see #createForSubscriptionId(int) + * @hide + */ + @SystemApi + @RequiresPermission(Manifest.permission.CONNECTIVITY_INTERNAL) + public void resetSettings() { + try { + Log.d(TAG, "resetSettings: subId=" + getSubId()); + ITelephony telephony = getITelephony(); + if (telephony != null) { + telephony.factoryReset(getSubId()); + } } catch (RemoteException e) { } } diff --git a/telephony/java/android/telephony/ims/ImsMmTelManager.java b/telephony/java/android/telephony/ims/ImsMmTelManager.java index 7cafa1ea068cd..9fc8e7563a81a 100644 --- a/telephony/java/android/telephony/ims/ImsMmTelManager.java +++ b/telephony/java/android/telephony/ims/ImsMmTelManager.java @@ -254,8 +254,8 @@ public class ImsMmTelManager implements RegistrationManager { * the {@link ImsService} associated with the subscription is not available. This can happen if * the service crashed, for example. See {@link ImsException#getCode()} for a more detailed * reason. - * @deprecated Use {@link #registerImsRegistrationCallback( - * RegistrationManager.RegistrationCallback, Executor)} instead. + * @deprecated Use {@link RegistrationManager#registerImsRegistrationCallback(Executor, + * RegistrationManager.RegistrationCallback)} instead. */ @Deprecated @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) @@ -285,9 +285,8 @@ public class ImsMmTelManager implements RegistrationManager { /**{@inheritDoc}*/ @Override @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - public void registerImsRegistrationCallback( - @NonNull RegistrationManager.RegistrationCallback c, - @NonNull @CallbackExecutor Executor executor) throws ImsException { + public void registerImsRegistrationCallback(@NonNull @CallbackExecutor Executor executor, + @NonNull RegistrationManager.RegistrationCallback c) throws ImsException { if (c == null) { throw new IllegalArgumentException("Must include a non-null RegistrationCallback."); } @@ -348,8 +347,8 @@ public class ImsMmTelManager implements RegistrationManager { /**{@inheritDoc}*/ @Override @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - public void getRegistrationState(@NonNull @ImsRegistrationState Consumer stateCallback, - @NonNull @CallbackExecutor Executor executor) { + public void getRegistrationState(@NonNull @CallbackExecutor Executor executor, + @NonNull @ImsRegistrationState Consumer stateCallback) { if (stateCallback == null) { throw new IllegalArgumentException("Must include a non-null callback."); } @@ -371,9 +370,9 @@ public class ImsMmTelManager implements RegistrationManager { /**{@inheritDoc}*/ @Override @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - public void getRegistrationTransportType( - @NonNull @AccessNetworkConstants.TransportType Consumer transportTypeCallback, - @NonNull @CallbackExecutor Executor executor) { + public void getRegistrationTransportType(@NonNull @CallbackExecutor Executor executor, + @NonNull @AccessNetworkConstants.TransportType + Consumer transportTypeCallback) { if (transportTypeCallback == null) { throw new IllegalArgumentException("Must include a non-null callback."); } @@ -607,17 +606,17 @@ public class ImsMmTelManager implements RegistrationManager { * {@link CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED} broadcast for this subscription. * @param capability The capability that is being queried for support on the carrier network. * @param transportType The transport type of the capability to check support for. + * @param executor The executor that the callback will be called with. * @param callback A consumer containing a Boolean result specifying whether or not the * capability is supported on this carrier network for the transport specified. - * @param executor The executor that the callback will be called with. * @throws ImsException if the subscription is no longer valid or the IMS service is not * available. */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void isSupported(@MmTelFeature.MmTelCapabilities.MmTelCapability int capability, @AccessNetworkConstants.TransportType int transportType, - @NonNull Consumer callback, - @NonNull @CallbackExecutor Executor executor) throws ImsException { + @NonNull @CallbackExecutor Executor executor, + @NonNull Consumer callback) throws ImsException { if (callback == null) { throw new IllegalArgumentException("Must include a non-null Consumer."); } diff --git a/telephony/java/android/telephony/ims/ImsRcsManager.java b/telephony/java/android/telephony/ims/ImsRcsManager.java index 25bd1caea431c..6432016ac2c36 100644 --- a/telephony/java/android/telephony/ims/ImsRcsManager.java +++ b/telephony/java/android/telephony/ims/ImsRcsManager.java @@ -141,8 +141,8 @@ public class ImsRcsManager implements RegistrationManager { /**{@inheritDoc}*/ @Override public void registerImsRegistrationCallback( - @NonNull RegistrationManager.RegistrationCallback c, - @NonNull @CallbackExecutor Executor executor) + @NonNull @CallbackExecutor Executor executor, + @NonNull RegistrationCallback c) throws ImsException { if (c == null) { throw new IllegalArgumentException("Must include a non-null RegistrationCallback."); @@ -168,8 +168,8 @@ public class ImsRcsManager implements RegistrationManager { /**{@inheritDoc}*/ @Override - public void getRegistrationState(@NonNull @ImsRegistrationState Consumer stateCallback, - @NonNull @CallbackExecutor Executor executor) { + public void getRegistrationState(@NonNull @CallbackExecutor Executor executor, + @NonNull @ImsRegistrationState Consumer stateCallback) { if (stateCallback == null) { throw new IllegalArgumentException("Must include a non-null stateCallback."); } @@ -182,9 +182,9 @@ public class ImsRcsManager implements RegistrationManager { /**{@inheritDoc}*/ @Override - public void getRegistrationTransportType( - @NonNull @AccessNetworkConstants.TransportType Consumer transportTypeCallback, - @NonNull @CallbackExecutor Executor executor) { + public void getRegistrationTransportType(@NonNull @CallbackExecutor Executor executor, + @NonNull @AccessNetworkConstants.TransportType + Consumer transportTypeCallback) { if (transportTypeCallback == null) { throw new IllegalArgumentException("Must include a non-null transportTypeCallback."); } diff --git a/telephony/java/android/telephony/ims/RegistrationManager.java b/telephony/java/android/telephony/ims/RegistrationManager.java index b4c11e3c32a1b..23402b88f3b17 100644 --- a/telephony/java/android/telephony/ims/RegistrationManager.java +++ b/telephony/java/android/telephony/ims/RegistrationManager.java @@ -90,7 +90,7 @@ public interface RegistrationManager { /** * Callback class for receiving IMS network Registration callback events. - * @see #registerImsRegistrationCallback(RegistrationCallback, Executor) + * @see #registerImsRegistrationCallback(Executor, RegistrationCallback) * @see #unregisterImsRegistrationCallback(RegistrationCallback) */ class RegistrationCallback { @@ -229,8 +229,8 @@ public interface RegistrationManager { * When the callback is registered, it will initiate the callback c to be called with the * current registration state. * - * @param c The {@link RegistrationCallback} to be added. * @param executor The executor the callback events should be run on. + * @param c The {@link RegistrationCallback} to be added. * @see #unregisterImsRegistrationCallback(RegistrationCallback) * @throws ImsException if the subscription associated with this callback is valid, but * the {@link ImsService} associated with the subscription is not available. This can happen if @@ -238,8 +238,8 @@ public interface RegistrationManager { * reason. */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - void registerImsRegistrationCallback(@NonNull RegistrationCallback c, - @NonNull @CallbackExecutor Executor executor) throws ImsException; + void registerImsRegistrationCallback(@NonNull @CallbackExecutor Executor executor, + @NonNull RegistrationCallback c) throws ImsException; /** * Removes an existing {@link RegistrationCallback}. @@ -250,36 +250,36 @@ public interface RegistrationManager { * * @param c The {@link RegistrationCallback} to be removed. * @see SubscriptionManager.OnSubscriptionsChangedListener - * @see #registerImsRegistrationCallback(RegistrationCallback, Executor) + * @see #registerImsRegistrationCallback(Executor, RegistrationCallback) */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) void unregisterImsRegistrationCallback(@NonNull RegistrationCallback c); /** * Gets the registration state of the IMS service. - * @param stateCallback A callback called on the supplied {@link Executor} that will contain the - * registration state of the IMS service, which will be one of the - * following: {@link #REGISTRATION_STATE_NOT_REGISTERED}, - * {@link #REGISTRATION_STATE_REGISTERING}, or - * {@link #REGISTRATION_STATE_REGISTERED}. * @param executor The {@link Executor} that will be used to call the IMS registration state * callback. + * @param stateCallback A callback called on the supplied {@link Executor} that will contain the + * registration state of the IMS service, which will be one of the + * following: {@link #REGISTRATION_STATE_NOT_REGISTERED}, + * {@link #REGISTRATION_STATE_REGISTERING}, or + * {@link #REGISTRATION_STATE_REGISTERED}. */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - void getRegistrationState(@NonNull @ImsRegistrationState Consumer stateCallback, - @NonNull @CallbackExecutor Executor executor); + void getRegistrationState(@NonNull @CallbackExecutor Executor executor, + @NonNull @ImsRegistrationState Consumer stateCallback); /** * Gets the Transport Type associated with the current IMS registration. - * @param transportTypeCallback The transport type associated with the current IMS registration, - * which will be one of following: - * {@link AccessNetworkConstants#TRANSPORT_TYPE_WWAN}, - * {@link AccessNetworkConstants#TRANSPORT_TYPE_WLAN}, or - * {@link AccessNetworkConstants#TRANSPORT_TYPE_INVALID}. * @param executor The {@link Executor} that will be used to call the transportTypeCallback. + * @param transportTypeCallback The transport type associated with the current IMS registration, + * which will be one of following: + * {@link AccessNetworkConstants#TRANSPORT_TYPE_WWAN}, + * {@link AccessNetworkConstants#TRANSPORT_TYPE_WLAN}, or + * {@link AccessNetworkConstants#TRANSPORT_TYPE_INVALID}. */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) void getRegistrationTransportType( - @NonNull @AccessNetworkConstants.TransportType Consumer transportTypeCallback, - @NonNull @CallbackExecutor Executor executor); + @NonNull @CallbackExecutor Executor executor, + @NonNull @AccessNetworkConstants.TransportType Consumer transportTypeCallback); }