Merge "Handle adjust volume user restriction" into mnc-dev
This commit is contained in:
@@ -38,6 +38,7 @@ import android.os.Handler;
|
|||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.Preference.OnPreferenceChangeListener;
|
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_LOCK_SCREEN_NOTIFICATIONS = "lock_screen_notifications";
|
||||||
private static final String KEY_NOTIFICATION_ACCESS = "manage_notification_access";
|
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_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
|
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 ComponentName mSuppressor;
|
||||||
private int mRingerMode = -1;
|
private int mRingerMode = -1;
|
||||||
|
|
||||||
|
private UserManager mUserManager;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getMetricsCategory() {
|
protected int getMetricsCategory() {
|
||||||
return MetricsLogger.NOTIFICATION;
|
return MetricsLogger.NOTIFICATION;
|
||||||
@@ -119,6 +131,7 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
|
|||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
mContext = getActivity();
|
mContext = getActivity();
|
||||||
mPM = mContext.getPackageManager();
|
mPM = mContext.getPackageManager();
|
||||||
|
mUserManager = UserManager.get(getContext());
|
||||||
mVoiceCapable = Utils.isVoiceCapable(mContext);
|
mVoiceCapable = Utils.isVoiceCapable(mContext);
|
||||||
mSecure = new LockPatternUtils(getActivity()).isSecure(UserHandle.myUserId());
|
mSecure = new LockPatternUtils(getActivity()).isSecure(UserHandle.myUserId());
|
||||||
|
|
||||||
@@ -175,6 +188,13 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
|
|||||||
for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
|
for (VolumeSeekBarPreference volumePref : mVolumePrefs) {
|
||||||
volumePref.onActivityResume();
|
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
|
@Override
|
||||||
|
@@ -139,6 +139,10 @@ public class VolumeSeekBarPreference extends SeekBarPreference
|
|||||||
updateIconView();
|
updateIconView();
|
||||||
mCallback.onStreamValueChanged(mStream, mSeekBar.getProgress());
|
mCallback.onStreamValueChanged(mStream, mSeekBar.getProgress());
|
||||||
updateSuppressionText();
|
updateSuppressionText();
|
||||||
|
if (!isEnabled()) {
|
||||||
|
mSeekBar.setEnabled(false);
|
||||||
|
mVolumizer.stop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// during initialization, this preference is the SeekBar listener
|
// during initialization, this preference is the SeekBar listener
|
||||||
|
@@ -22,16 +22,17 @@ import android.database.ContentObserver;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.provider.Settings.Global;
|
import android.provider.Settings.Global;
|
||||||
import android.service.notification.ZenModeConfig;
|
import android.service.notification.ZenModeConfig;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.RestrictedSettingsFragment;
|
||||||
|
|
||||||
import java.util.Objects;
|
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 String TAG = "ZenModeSettings";
|
||||||
protected static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
|
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 onZenModeChanged();
|
||||||
abstract protected void onZenModeConfigChanged();
|
abstract protected void onZenModeConfigChanged();
|
||||||
|
|
||||||
|
public ZenModeSettingsBase() {
|
||||||
|
super(UserManager.DISALLOW_ADJUST_VOLUME);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
@@ -60,6 +65,9 @@ abstract public class ZenModeSettingsBase extends SettingsPreferenceFragment {
|
|||||||
updateZenMode(true /*fireChanged*/);
|
updateZenMode(true /*fireChanged*/);
|
||||||
updateZenModeConfig(true /*fireChanged*/);
|
updateZenModeConfig(true /*fireChanged*/);
|
||||||
mSettingsObserver.register();
|
mSettingsObserver.register();
|
||||||
|
if (isUiRestricted()) {
|
||||||
|
finish();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user