Merge "Revert "Use TelecomManager.isInCall instead of TelephonyManager.getCallState""
This commit is contained in:
@@ -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";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user