From af67c3b57677d7680d094575a85ad160f739dfaf Mon Sep 17 00:00:00 2001 From: Ricky Wai Date: Fri, 15 Apr 2016 14:43:44 +0100 Subject: [PATCH] Show "work mode off" dialog when work notification setting is clicked Bug: 28158297 Change-Id: Iea4eaa32f3c4b2e605b6eace82ee4443e387fb4b --- .../ConfigureNotificationSettings.java | 2 +- .../NotificationLockscreenPreference.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/notification/ConfigureNotificationSettings.java b/src/com/android/settings/notification/ConfigureNotificationSettings.java index c342ba076c2..9acac06301e 100644 --- a/src/com/android/settings/notification/ConfigureNotificationSettings.java +++ b/src/com/android/settings/notification/ConfigureNotificationSettings.java @@ -213,7 +213,7 @@ public class ConfigureNotificationSettings extends SettingsPreferenceFragment { Log.i(TAG, "Preference not found: " + KEY_LOCK_SCREEN_PROFILE_NOTIFICATIONS); return; } - + mLockscreenProfile.setUserId(mProfileChallengeUserId); ArrayList entries = new ArrayList<>(); ArrayList values = new ArrayList<>(); entries.add(getString(R.string.lock_screen_notifications_summary_disable_profile)); diff --git a/src/com/android/settings/notification/NotificationLockscreenPreference.java b/src/com/android/settings/notification/NotificationLockscreenPreference.java index cd3e30cc7b2..8c8996837a2 100644 --- a/src/com/android/settings/notification/NotificationLockscreenPreference.java +++ b/src/com/android/settings/notification/NotificationLockscreenPreference.java @@ -18,11 +18,14 @@ package com.android.settings.notification; import com.android.settings.R; import com.android.settings.RestrictedListPreference; +import com.android.settings.Utils; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; +import android.os.UserHandle; +import android.os.UserManager; import android.provider.Settings; import android.util.AttributeSet; import android.view.View; @@ -38,6 +41,7 @@ public class NotificationLockscreenPreference extends RestrictedListPreference { private Listener mListener; private boolean mShowRemoteInput; private boolean mRemoteInputCheckBoxEnabled = true; + private int mUserId = UserHandle.myUserId(); public NotificationLockscreenPreference(Context context, AttributeSet attrs) { super(context, attrs); @@ -47,6 +51,20 @@ public class NotificationLockscreenPreference extends RestrictedListPreference { mRemoteInputCheckBoxEnabled = enabled; } + @Override + protected void onClick() { + final Context context = getContext(); + if (!Utils.startQuietModeDialogIfNecessary(context, UserManager.get(context), mUserId)) { + // Call super to create preference dialog only when work mode is on + // startQuietModeDialogIfNecessary will return false if mUserId is not a managed user + super.onClick(); + } + } + + public void setUserId(int userId) { + mUserId = userId; + } + @Override protected void onPrepareDialogBuilder(AlertDialog.Builder builder, DialogInterface.OnClickListener innerListener) {