Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c735f482 authored by Pranav Madapurmath's avatar Pranav Madapurmath Committed by Android (Google) Code Review
Browse files

Merge "TelecomManager consolidate isInSelfManagedCall." into main

parents d39d079a dbb2887d
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -14214,7 +14214,6 @@ package android.telecom {
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public java.util.List<android.telecom.PhoneAccountHandle> getPhoneAccountsSupportingScheme(String);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean isInEmergencyCall();
    method @FlaggedApi("com.android.server.telecom.flags.telecom_resolve_hidden_dependencies") @RequiresPermission(allOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional=true) public boolean isInSelfManagedCall(@NonNull String, @NonNull android.os.UserHandle);
    method @FlaggedApi("com.android.server.telecom.flags.telecom_resolve_hidden_dependencies") @RequiresPermission(allOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional=true) public boolean isInSelfManagedCall(@NonNull String, boolean);
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isRinging();
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setUserSelectedOutgoingPhoneAccount(@Nullable android.telecom.PhoneAccountHandle);
    field public static final String ACTION_CURRENT_TTY_MODE_CHANGED = "android.telecom.action.CURRENT_TTY_MODE_CHANGED";
+1 −1
Original line number Diff line number Diff line
@@ -8210,7 +8210,7 @@ public class NotificationManagerService extends SystemService {
                try {
                    return mTelecomManager.isInManagedCall()
                            || mTelecomManager.isInSelfManagedCall(pkg,
                            /* hasCrossUserAccess */ true);
                            UserHandle.ALL);
                } catch (IllegalStateException ise) {
                    // Telecom is not ready (this is likely early boot), so there are no calls.
                    return false;
+2 −2
Original line number Diff line number Diff line
@@ -12008,7 +12008,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
        // style + self managed call - bypasses block
        when(mTelecomManager.isInSelfManagedCall(
                r.getSbn().getPackageName(), true)).thenReturn(true);
                r.getSbn().getPackageName(), UserHandle.ALL)).thenReturn(true);
        assertThat(mService.checkDisqualifyingFeatures(r.getUserId(), r.getUid(),
                r.getSbn().getId(), r.getSbn().getTag(), r, false, false)).isTrue();
@@ -12091,7 +12091,7 @@ public class NotificationManagerServiceTest extends UiServiceTestCase {
        // style + self managed call - bypasses block
        mService.clearNotifications();
        reset(mUsageStats);
        when(mTelecomManager.isInSelfManagedCall(r.getSbn().getPackageName(), true))
        when(mTelecomManager.isInSelfManagedCall(r.getSbn().getPackageName(), UserHandle.ALL))
                .thenReturn(true);
        mService.addEnqueuedNotification(r);
+4 −36
Original line number Diff line number Diff line
@@ -2797,7 +2797,9 @@ public class TelecomManager {

    /**
     * Determines whether there are any ongoing {@link PhoneAccount#CAPABILITY_SELF_MANAGED}
     * calls for a given {@code packageName} and {@code userHandle}.
     * calls for a given {@code packageName} and {@code userHandle}. If UserHandle.ALL or a user
     * that isn't the calling user is passed in, the caller will need to have granted the ability
     * to interact across users.
     *
     * @param packageName the package name of the app to check calls for.
     * @param userHandle the user handle to check calls for.
@@ -2816,41 +2818,7 @@ public class TelecomManager {
        if (service != null) {
            try {
                return service.isInSelfManagedCall(packageName, userHandle,
                        mContext.getOpPackageName(), false);
            } catch (RemoteException e) {
                Log.e(TAG, "RemoteException isInSelfManagedCall: " + e);
                e.rethrowFromSystemServer();
                return false;
            }
        } else {
            throw new IllegalStateException("Telecom service is not present");
        }
    }

    /**
     * Determines whether there are any ongoing {@link PhoneAccount#CAPABILITY_SELF_MANAGED}
     * calls for a given {@code packageName} amongst all users, given that detectForAllUsers is true
     * and the caller has the ability to interact across users. If detectForAllUsers isn't enabled,
     * the calls will be checked against the caller.
     *
     * @param packageName the package name of the app to check calls for.
     * @param detectForAllUsers indicates if calls should be detected across all users.
     * @return {@code true} if there are ongoing calls, {@code false} otherwise.
     * @throws SecurityException if detectForAllUsers is true and the caller does not grant the
     * ability to interact across users.
     * @hide
     */
    @SystemApi
    @FlaggedApi(Flags.FLAG_TELECOM_RESOLVE_HIDDEN_DEPENDENCIES)
    @RequiresPermission(allOf = {Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
            Manifest.permission.INTERACT_ACROSS_USERS}, conditional = true)
    public boolean isInSelfManagedCall(@NonNull String packageName,
            boolean detectForAllUsers) {
        ITelecomService service = getTelecomService();
        if (service != null) {
            try {
                return service.isInSelfManagedCall(packageName, null,
                        mContext.getOpPackageName(), detectForAllUsers);
                        mContext.getOpPackageName());
            } catch (RemoteException e) {
                Log.e(TAG, "RemoteException isInSelfManagedCall: " + e);
                e.rethrowFromSystemServer();
+1 −1
Original line number Diff line number Diff line
@@ -401,7 +401,7 @@ interface ITelecomService {
     * @see TelecomServiceImpl#isInSelfManagedCall
     */
    boolean isInSelfManagedCall(String packageName, in UserHandle userHandle,
        String callingPackage, boolean detectForAllUsers);
        String callingPackage);

    /**
     * @see TelecomServiceImpl#addCall