Merge "Persist master volume mute across reboot" into nyc-mr1-dev
This commit is contained in:
@@ -579,6 +579,16 @@ public class UserManager {
|
|||||||
*/
|
*/
|
||||||
public static final String DISALLOW_CAMERA = "no_camera";
|
public static final String DISALLOW_CAMERA = "no_camera";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies if a user is not allowed to unmute the device's master volume.
|
||||||
|
*
|
||||||
|
* @see DevicePolicyManager#setMasterVolumeMuted(ComponentName, boolean)
|
||||||
|
* @see DevicePolicyManager#clearUserRestriction(ComponentName, String)
|
||||||
|
* @see #getUserRestrictions()
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final String DISALLLOW_UNMUTE_DEVICE = "disallow_unmute_device";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specifies if a user is not allowed to use cellular data when roaming. This can only be set by
|
* Specifies if a user is not allowed to use cellular data when roaming. This can only be set by
|
||||||
* device owners. The default value is <code>false</code>.
|
* device owners. The default value is <code>false</code>.
|
||||||
|
|||||||
@@ -1130,8 +1130,11 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
final int currentUser = getCurrentUserId();
|
final int currentUser = getCurrentUserId();
|
||||||
|
|
||||||
// Check the current user restriction.
|
// Check the current user restriction.
|
||||||
boolean masterMute = mUserManagerInternal.getUserRestriction(
|
boolean masterMute =
|
||||||
currentUser, UserManager.DISALLOW_ADJUST_VOLUME);
|
mUserManagerInternal.getUserRestriction(currentUser,
|
||||||
|
UserManager.DISALLLOW_UNMUTE_DEVICE)
|
||||||
|
|| mUserManagerInternal.getUserRestriction(currentUser,
|
||||||
|
UserManager.DISALLOW_ADJUST_VOLUME);
|
||||||
if (mUseFixedVolume) {
|
if (mUseFixedVolume) {
|
||||||
masterMute = false;
|
masterMute = false;
|
||||||
AudioSystem.setMasterVolume(1.0f);
|
AudioSystem.setMasterVolume(1.0f);
|
||||||
@@ -5380,9 +5383,11 @@ public class AudioService extends IAudioService.Stub {
|
|||||||
// Update speaker mute state.
|
// Update speaker mute state.
|
||||||
{
|
{
|
||||||
final boolean wasRestricted =
|
final boolean wasRestricted =
|
||||||
prevRestrictions.getBoolean(UserManager.DISALLOW_ADJUST_VOLUME);
|
prevRestrictions.getBoolean(UserManager.DISALLOW_ADJUST_VOLUME)
|
||||||
|
|| prevRestrictions.getBoolean(UserManager.DISALLLOW_UNMUTE_DEVICE);
|
||||||
final boolean isRestricted =
|
final boolean isRestricted =
|
||||||
newRestrictions.getBoolean(UserManager.DISALLOW_ADJUST_VOLUME);
|
newRestrictions.getBoolean(UserManager.DISALLOW_ADJUST_VOLUME)
|
||||||
|
|| newRestrictions.getBoolean(UserManager.DISALLLOW_UNMUTE_DEVICE);
|
||||||
if (wasRestricted != isRestricted) {
|
if (wasRestricted != isRestricted) {
|
||||||
setMasterMuteInternalNoCallerCheck(isRestricted, /* flags =*/ 0, userId);
|
setMasterMuteInternalNoCallerCheck(isRestricted, /* flags =*/ 0, userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,8 @@ public class UserRestrictionsUtils {
|
|||||||
UserManager.DISALLOW_DATA_ROAMING,
|
UserManager.DISALLOW_DATA_ROAMING,
|
||||||
UserManager.DISALLOW_SET_USER_ICON,
|
UserManager.DISALLOW_SET_USER_ICON,
|
||||||
UserManager.DISALLOW_SET_WALLPAPER,
|
UserManager.DISALLOW_SET_WALLPAPER,
|
||||||
UserManager.DISALLOW_OEM_UNLOCK
|
UserManager.DISALLOW_OEM_UNLOCK,
|
||||||
|
UserManager.DISALLLOW_UNMUTE_DEVICE,
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -150,7 +151,8 @@ public class UserRestrictionsUtils {
|
|||||||
private static final Set<String> GLOBAL_RESTRICTIONS = Sets.newArraySet(
|
private static final Set<String> GLOBAL_RESTRICTIONS = Sets.newArraySet(
|
||||||
UserManager.DISALLOW_ADJUST_VOLUME,
|
UserManager.DISALLOW_ADJUST_VOLUME,
|
||||||
UserManager.DISALLOW_RUN_IN_BACKGROUND,
|
UserManager.DISALLOW_RUN_IN_BACKGROUND,
|
||||||
UserManager.DISALLOW_UNMUTE_MICROPHONE
|
UserManager.DISALLOW_UNMUTE_MICROPHONE,
|
||||||
|
UserManager.DISALLLOW_UNMUTE_DEVICE
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -439,6 +441,7 @@ public class UserRestrictionsUtils {
|
|||||||
manager.setOemUnlockEnabled(false);
|
manager.setOemUnlockEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
Binder.restoreCallingIdentity(id);
|
Binder.restoreCallingIdentity(id);
|
||||||
|
|||||||
@@ -7930,17 +7930,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
|
|||||||
Preconditions.checkNotNull(who, "ComponentName is null");
|
Preconditions.checkNotNull(who, "ComponentName is null");
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
|
getActiveAdminForCallerLocked(who, DeviceAdminInfo.USES_POLICY_PROFILE_OWNER);
|
||||||
int userId = UserHandle.getCallingUserId();
|
setUserRestriction(who, UserManager.DISALLLOW_UNMUTE_DEVICE, on);
|
||||||
long identity = mInjector.binderClearCallingIdentity();
|
|
||||||
try {
|
|
||||||
IAudioService iAudioService = IAudioService.Stub.asInterface(
|
|
||||||
ServiceManager.getService(Context.AUDIO_SERVICE));
|
|
||||||
iAudioService.setMasterMute(on, 0, mContext.getPackageName(), userId);
|
|
||||||
} catch (RemoteException re) {
|
|
||||||
Slog.e(LOG_TAG, "Failed to setMasterMute", re);
|
|
||||||
} finally {
|
|
||||||
mInjector.binderRestoreCallingIdentity(identity);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user