summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/notification
diff options
context:
space:
mode:
authorJason Monk <jmonk@google.com>2015-06-30 12:18:26 -0400
committerJason Monk <jmonk@google.com>2015-06-30 19:21:10 +0000
commit72965ad53b4c935e115e49fe12189781954a4077 (patch)
treec388b8cfae7d83bef7afd5cf3e670ab6f545a444 /src/com/android/settings/notification
parentd9bd96b3094039fdcb8c76042a6f2dc21d6c7875 (diff)
downloadpackages_apps_Settings-72965ad53b4c935e115e49fe12189781954a4077.zip
packages_apps_Settings-72965ad53b4c935e115e49fe12189781954a4077.tar.gz
packages_apps_Settings-72965ad53b4c935e115e49fe12189781954a4077.tar.bz2
Handle adjust volume user restriction
- Finish all do not disturb pages immediately - Disable relevant items in Sounds & notification Bug: 21642285 Change-Id: I8de9bd10b8cea8adaa306b1ae388ab7d1ccc4e7e
Diffstat (limited to 'src/com/android/settings/notification')
-rw-r--r--src/com/android/settings/notification/NotificationSettings.java20
-rw-r--r--src/com/android/settings/notification/VolumeSeekBarPreference.java4
-rw-r--r--src/com/android/settings/notification/ZenModeSettingsBase.java12
3 files changed, 34 insertions, 2 deletions
diff --git a/src/com/android/settings/notification/NotificationSettings.java b/src/com/android/settings/notification/NotificationSettings.java
index 2a56c90..e7a154c 100644
--- a/src/com/android/settings/notification/NotificationSettings.java
+++ b/src/com/android/settings/notification/NotificationSettings.java
@@ -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
diff --git a/src/com/android/settings/notification/VolumeSeekBarPreference.java b/src/com/android/settings/notification/VolumeSeekBarPreference.java
index 2bbf9ef..2603016 100644
--- a/src/com/android/settings/notification/VolumeSeekBarPreference.java
+++ b/src/com/android/settings/notification/VolumeSeekBarPreference.java
@@ -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
diff --git a/src/com/android/settings/notification/ZenModeSettingsBase.java b/src/com/android/settings/notification/ZenModeSettingsBase.java
index 9824dc7..41c9b08 100644
--- a/src/com/android/settings/notification/ZenModeSettingsBase.java
+++ b/src/com/android/settings/notification/ZenModeSettingsBase.java
@@ -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