Merge "Handle adjust volume user restriction" into mnc-dev

This commit is contained in:
Jason Monk
2015-06-30 20:08:13 +00:00
committed by Android (Google) Code Review
3 changed files with 34 additions and 2 deletions

View File

@@ -38,6 +38,7 @@ import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.UserHandle;
import android.os.UserManager;
import android.os.Vibrator;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
@@ -81,6 +82,15 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
private static final String KEY_LOCK_SCREEN_NOTIFICATIONS = "lock_screen_notifications";
private static final String KEY_NOTIFICATION_ACCESS = "manage_notification_access";
private static final String KEY_ZEN_ACCESS = "manage_zen_access";
private static final String KEY_ZEN_MODE = "zen_mode";
private static final String[] RESTRICTED_KEYS = {
KEY_MEDIA_VOLUME,
KEY_ALARM_VOLUME,
KEY_RING_VOLUME,
KEY_ZEN_ACCESS,
KEY_ZEN_MODE,
};
private static final int SAMPLE_CUTOFF = 2000; // manually cap sample playback at 2 seconds
@@ -109,6 +119,8 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
private ComponentName mSuppressor;
private int mRingerMode = -1;
private UserManager mUserManager;
@Override
protected int getMetricsCategory() {
return MetricsLogger.NOTIFICATION;
@@ -119,6 +131,7 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
super.onCreate(savedInstanceState);
mContext = getActivity();
mPM = mContext.getPackageManager();
mUserManager = UserManager.get(getContext());
mVoiceCapable = Utils.isVoiceCapable(mContext);
mSecure = new LockPatternUtils(getActivity()).isSecure(UserHandle.myUserId());
@@ -175,6 +188,13 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
volumePref.onActivityResume();
}
boolean isRestricted = mUserManager.hasUserRestriction(UserManager.DISALLOW_ADJUST_VOLUME);
for (String key : RESTRICTED_KEYS) {
Preference pref = findPreference(key);
if (pref != null) {
pref.setEnabled(!isRestricted);
}
}
}
@Override

View File

@@ -139,6 +139,10 @@ public class VolumeSeekBarPreference extends SeekBarPreference
updateIconView();
mCallback.onStreamValueChanged(mStream, mSeekBar.getProgress());
updateSuppressionText();
if (!isEnabled()) {
mSeekBar.setEnabled(false);
mVolumizer.stop();
}
}
// during initialization, this preference is the SeekBar listener

View File

@@ -22,16 +22,17 @@ import android.database.ContentObserver;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserManager;
import android.provider.Settings;
import android.provider.Settings.Global;
import android.service.notification.ZenModeConfig;
import android.util.Log;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.RestrictedSettingsFragment;
import java.util.Objects;
abstract public class ZenModeSettingsBase extends SettingsPreferenceFragment {
abstract public class ZenModeSettingsBase extends RestrictedSettingsFragment {
protected static final String TAG = "ZenModeSettings";
protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
@@ -45,6 +46,10 @@ abstract public class ZenModeSettingsBase extends SettingsPreferenceFragment {
abstract protected void onZenModeChanged();
abstract protected void onZenModeConfigChanged();
public ZenModeSettingsBase() {
super(UserManager.DISALLOW_ADJUST_VOLUME);
}
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -60,6 +65,9 @@ abstract public class ZenModeSettingsBase extends SettingsPreferenceFragment {
updateZenMode(true /*fireChanged*/);
updateZenModeConfig(true /*fireChanged*/);
mSettingsObserver.register();
if (isUiRestricted()) {
finish();
}
}
@Override