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

Commit d5a3be0b authored by Adrian Roos's avatar Adrian Roos Committed by Android (Google) Code Review
Browse files

Merge "Revert "Use TelecomManager.isInCall instead of TelephonyManager.getCallState""

parents e07a11a5 a67a1d0c
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.location.LocationManager;
import android.provider.Settings;
import android.telecom.TelecomManager;
import android.telephony.TelephonyManager;
import android.util.AndroidException;
import android.util.ArraySet;
import android.util.Log;
@@ -2139,8 +2139,13 @@ public class UserManager {
                mContext.getContentResolver(),
                Settings.Global.ALLOW_USER_SWITCHING_WHEN_SYSTEM_USER_LOCKED, 0) != 0;
        boolean isSystemUserUnlocked = isUserUnlocked(UserHandle.SYSTEM);
        boolean inCall = false;
        TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
        if (telephonyManager != null) {
            inCall = telephonyManager.getCallState() != TelephonyManager.CALL_STATE_IDLE;
        }
        boolean isUserSwitchDisallowed = hasUserRestrictionForUser(DISALLOW_USER_SWITCH, mUserId);
        return (allowUserSwitchingWhenSystemUserLocked || isSystemUserUnlocked) && !inCall()
        return (allowUserSwitchingWhenSystemUserLocked || isSystemUserUnlocked) && !inCall
                && !isUserSwitchDisallowed;
    }

@@ -2179,8 +2184,11 @@ public class UserManager {
            android.Manifest.permission.MANAGE_USERS,
            android.Manifest.permission.INTERACT_ACROSS_USERS}, conditional = true)
    public @UserSwitchabilityResult int getUserSwitchability(UserHandle userHandle) {
        final TelephonyManager tm =
                (TelephonyManager) mContext.getSystemService(Context.TELEPHONY_SERVICE);

        int flags = SWITCHABILITY_STATUS_OK;
        if (inCall()) {
        if (tm.getCallState() != TelephonyManager.CALL_STATE_IDLE) {
            flags |= SWITCHABILITY_STATUS_USER_IN_CALL;
        }
        if (hasUserRestrictionForUser(DISALLOW_USER_SWITCH, userHandle)) {
@@ -5614,11 +5622,6 @@ public class UserManager {
        }
    }

    private boolean inCall() {
        final TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class);
        return telecomManager != null && telecomManager.isInCall();
    }

    /* Cache key for anything that assumes that userIds cannot be re-used without rebooting. */
    private static final String CACHE_KEY_STATIC_USER_PROPERTIES = "cache_key.static_user_props";