Merge "Introduce CarrierPrivilegesCallback to replace CarrierPrivilegesListener" am: a77a04e330 am: aceba5ccbb

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2028807

Change-Id: Id0745ea0405ac6b738291ec0b2b70e78af87e771
This commit is contained in:
Rambo Wang 2022-03-21 20:49:46 +00:00 committed by Automerger Merge Worker
commit e095f5aaab
2 changed files with 100 additions and 4 deletions

View File

@ -11594,7 +11594,7 @@ package android.telephony {
}
public class TelephonyManager {
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void addCarrierPrivilegesListener(int, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CarrierPrivilegesListener);
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void addCarrierPrivilegesListener(int, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CarrierPrivilegesListener);
method @RequiresPermission(anyOf={android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION}) @WorkerThread public void bootstrapAuthenticationRequest(int, @NonNull android.net.Uri, @NonNull android.telephony.gba.UaSecurityProtocolIdentifier, boolean, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.BootstrapAuthenticationCallback);
method @Deprecated @RequiresPermission(android.Manifest.permission.CALL_PHONE) public void call(String, String);
method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.telephony.PinResult changeIccLockPin(@NonNull String, @NonNull String);
@ -11690,7 +11690,8 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void notifyOtaEmergencyNumberDbInstalled();
method @RequiresPermission(android.Manifest.permission.REBOOT) public int prepareForUnattendedReboot();
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean rebootRadio();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void removeCarrierPrivilegesListener(@NonNull android.telephony.TelephonyManager.CarrierPrivilegesListener);
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerCarrierPrivilegesCallback(int, @NonNull java.util.concurrent.Executor, @NonNull android.telephony.TelephonyManager.CarrierPrivilegesCallback);
method @Deprecated @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void removeCarrierPrivilegesListener(@NonNull android.telephony.TelephonyManager.CarrierPrivilegesListener);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void reportDefaultNetworkStatus(boolean);
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 requestModemActivityInfo(@NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.telephony.ModemActivityInfo,android.telephony.TelephonyManager.ModemActivityInfoException>);
@ -11740,6 +11741,7 @@ package android.telephony {
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int[] supplyPukReportResult(String, String);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean switchSlots(int[]);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void toggleRadioOnOff();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterCarrierPrivilegesCallback(@NonNull android.telephony.TelephonyManager.CarrierPrivilegesCallback);
method @RequiresPermission(android.Manifest.permission.READ_ACTIVE_EMERGENCY_SESSION) public void updateOtaEmergencyNumberDbFilePath(@NonNull android.os.ParcelFileDescriptor);
method public void updateServiceLocation();
field @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public static final String ACTION_ANOMALY_REPORTED = "android.telephony.action.ANOMALY_REPORTED";
@ -11844,8 +11846,13 @@ package android.telephony {
field public static final int RESULT_SUCCESS = 0; // 0x0
}
public static interface TelephonyManager.CarrierPrivilegesListener {
method public void onCarrierPrivilegesChanged(@NonNull java.util.List<java.lang.String>, @NonNull int[]);
public static interface TelephonyManager.CarrierPrivilegesCallback {
method public void onCarrierPrivilegesChanged(@NonNull java.util.Set<java.lang.String>, @NonNull java.util.Set<java.lang.Integer>);
method public default void onCarrierServiceChanged(@Nullable String, int);
}
@Deprecated public static interface TelephonyManager.CarrierPrivilegesListener {
method @Deprecated public void onCarrierPrivilegesChanged(@NonNull java.util.List<java.lang.String>, @NonNull int[]);
}
public static class TelephonyManager.ModemActivityInfoException extends java.lang.Exception {

View File

@ -140,6 +140,7 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Executor;
import java.util.concurrent.RejectedExecutionException;
@ -16228,6 +16229,8 @@ public class TelephonyManager {
* Callback to listen for when the set of packages with carrier privileges for a SIM changes.
*
* @hide
* @deprecated Use {@link CarrierPrivilegesCallback} instead. This API will be removed soon
* prior to API finalization.
*/
@SystemApi
public interface CarrierPrivilegesListener {
@ -16247,6 +16250,54 @@ public class TelephonyManager {
@NonNull List<String> privilegedPackageNames, @NonNull int[] privilegedUids);
}
/**
* Callbacks to listen for when the set of packages with carrier privileges for a SIM changes.
*
* <p>Of note, when multiple callbacks are registered, they may be triggered one after another.
* The ordering of them is not guaranteed and thus should not be depend on.
*
* @hide
*/
@SystemApi
public interface CarrierPrivilegesCallback {
/**
* Called when the set of packages with carrier privileges has changed.
*
* <p>Of note, this callback will <b>not</b> be fired if a carrier triggers a SIM profile
* switch and the same set of packages remains privileged after the switch.
*
* <p>At registration, the callback will receive the current set of privileged packages.
*
* @param privilegedPackageNames The updated set of package names that have carrier
* privileges
* @param privilegedUids The updated set of UIDs that have carrier privileges
*/
void onCarrierPrivilegesChanged(
@NonNull Set<String> privilegedPackageNames, @NonNull Set<Integer> privilegedUids);
/**
* Called when the {@link CarrierService} for the current user profile has changed.
*
* <p>This method does nothing by default. Clients that are interested in the carrier
* service change should override this method to get package name and UID info.
*
* <p>At registration, the callback will receive the current carrier service info.
*
* <p>Of note, this callback will <b>not</b> be fired if a carrier triggers a SIM profile
* switch and the same carrier service remains after switch.
*
* @param carrierServicePackageName package name of the {@link CarrierService}. May be
* {@code null} when no carrier service is detected.
* @param carrierServiceUid UID of the {@link CarrierService}. May be
* {@link android.os.Process#INVALID_UID} if no carrier
* service is detected.
*/
default void onCarrierServiceChanged(
@Nullable String carrierServicePackageName, int carrierServiceUid) {
// do nothing by default
}
}
/**
* Registers a {@link CarrierPrivilegesListener} on the given {@code logicalSlotIndex} to
* receive callbacks when the set of packages with carrier privileges changes. The callback will
@ -16256,7 +16307,10 @@ public class TelephonyManager {
* @param executor The executor where {@code listener} will be invoked
* @param listener The callback to register
* @hide
* @deprecated Use {@link #registerCarrierPrivilegesCallback} instead. This API will be
* removed prior to API finalization.
*/
@Deprecated
@SystemApi
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public void addCarrierPrivilegesListener(
@ -16280,7 +16334,10 @@ public class TelephonyManager {
* Unregisters an existing {@link CarrierPrivilegesListener}.
*
* @hide
* @deprecated Use {@link #unregisterCarrierPrivilegesCallback} instead. This API will be
* removed prior to API finalization.
*/
@Deprecated
@SystemApi
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public void removeCarrierPrivilegesListener(@NonNull CarrierPrivilegesListener listener) {
@ -16295,4 +16352,36 @@ public class TelephonyManager {
}
mTelephonyRegistryMgr.removeCarrierPrivilegesListener(listener);
}
/**
* Registers a {@link CarrierPrivilegesCallback} on the given {@code logicalSlotIndex} to
* receive callbacks when the set of packages with carrier privileges changes. The callback will
* immediately be called with the latest state.
*
* @param logicalSlotIndex The SIM slot to listen on
* @param executor The executor where {@code callback} will be invoked
* @param callback The callback to register
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public void registerCarrierPrivilegesCallback(
int logicalSlotIndex,
@NonNull @CallbackExecutor Executor executor,
@NonNull CarrierPrivilegesCallback callback) {
// TODO(b/216549778): cherry-pick implementation once merge conflict is resolved
throw new UnsupportedOperationException("Not implemented, yet");
}
/**
* Unregisters an existing {@link CarrierPrivilegesCallback}.
*
* @hide
*/
@SystemApi
@RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public void unregisterCarrierPrivilegesCallback(@NonNull CarrierPrivilegesCallback callback) {
// TODO(b/216549778): cherry-pick implementation once merge conflict is resolved
throw new UnsupportedOperationException("Not implemented, yet");
}
}