diff options
5 files changed, 40 insertions, 1 deletions
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 574ccaf8d1cc..ee6e1ba78bc4 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -13772,6 +13772,7 @@ public final class Settings { * requires_targeting_p (boolean) * max_squeeze_remeasure_attempts (int) * edit_choices_before_sending (boolean) + * show_in_heads_up (boolean) * </pre> * @see com.android.systemui.statusbar.policy.SmartReplyConstants * @hide diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml index 7cc552441602..476089aa3aac 100644 --- a/packages/SystemUI/res/values/config.xml +++ b/packages/SystemUI/res/values/config.xml @@ -454,6 +454,10 @@ RemoteInput.Builder.setEditChoicesBeforeSending. --> <bool name="config_smart_replies_in_notifications_edit_choices_before_sending">false</bool> + <!-- Smart replies in notifications: Whether smart suggestions in notifications are enabled in + heads-up notifications. --> + <bool name="config_smart_replies_in_notifications_show_in_heads_up">true</bool> + <!-- Screenshot editing default activity. Must handle ACTION_EDIT image/png intents. Blank sends the user to the Chooser first. This name is in the ComponentName flattened format (package/class) --> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java index bf30cf9a53c0..c161da348c28 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationContentView.java @@ -1489,7 +1489,7 @@ public class NotificationContentView extends FrameLayout { } } } - if (mHeadsUpChild != null) { + if (mHeadsUpChild != null && mSmartReplyConstants.getShowInHeadsUp()) { mHeadsUpSmartReplyView = applySmartReplyView(mHeadsUpChild, smartRepliesAndActions, entry); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyConstants.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyConstants.java index 0c63e2969e01..3bd0d456dbd3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyConstants.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/SmartReplyConstants.java @@ -45,16 +45,19 @@ public final class SmartReplyConstants extends ContentObserver { "max_squeeze_remeasure_attempts"; private static final String KEY_EDIT_CHOICES_BEFORE_SENDING = "edit_choices_before_sending"; + private static final String KEY_SHOW_IN_HEADS_UP = "show_in_heads_up"; private final boolean mDefaultEnabled; private final boolean mDefaultRequiresP; private final int mDefaultMaxSqueezeRemeasureAttempts; private final boolean mDefaultEditChoicesBeforeSending; + private final boolean mDefaultShowInHeadsUp; private boolean mEnabled; private boolean mRequiresTargetingP; private int mMaxSqueezeRemeasureAttempts; private boolean mEditChoicesBeforeSending; + private boolean mShowInHeadsUp; private final Context mContext; private final KeyValueListParser mParser = new KeyValueListParser(','); @@ -73,6 +76,8 @@ public final class SmartReplyConstants extends ContentObserver { R.integer.config_smart_replies_in_notifications_max_squeeze_remeasure_attempts); mDefaultEditChoicesBeforeSending = resources.getBoolean( R.bool.config_smart_replies_in_notifications_edit_choices_before_sending); + mDefaultShowInHeadsUp = resources.getBoolean( + R.bool.config_smart_replies_in_notifications_show_in_heads_up); mContext.getContentResolver().registerContentObserver( Settings.Global.getUriFor(Settings.Global.SMART_REPLIES_IN_NOTIFICATIONS_FLAGS), @@ -99,6 +104,7 @@ public final class SmartReplyConstants extends ContentObserver { KEY_MAX_SQUEEZE_REMEASURE_ATTEMPTS, mDefaultMaxSqueezeRemeasureAttempts); mEditChoicesBeforeSending = mParser.getBoolean( KEY_EDIT_CHOICES_BEFORE_SENDING, mDefaultEditChoicesBeforeSending); + mShowInHeadsUp = mParser.getBoolean(KEY_SHOW_IN_HEADS_UP, mDefaultShowInHeadsUp); } } @@ -142,4 +148,11 @@ public final class SmartReplyConstants extends ContentObserver { return mEditChoicesBeforeSending; } } + + /** + * Returns whether smart suggestions should be enabled in heads-up notifications. + */ + public boolean getShowInHeadsUp() { + return mShowInHeadsUp; + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyConstantsTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyConstantsTest.java index 37a56a3cbded..3cbf902f1d40 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyConstantsTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/SmartReplyConstantsTest.java @@ -54,6 +54,7 @@ public class SmartReplyConstantsTest extends SysuiTestCase { R.integer.config_smart_replies_in_notifications_max_squeeze_remeasure_attempts, 7); resources.addOverride( R.bool.config_smart_replies_in_notifications_edit_choices_before_sending, false); + resources.addOverride(R.bool.config_smart_replies_in_notifications_show_in_heads_up, true); mConstants = new SmartReplyConstants(Handler.createAsync(Looper.myLooper()), mContext); } @@ -152,6 +153,26 @@ public class SmartReplyConstantsTest extends SysuiTestCase { RemoteInput.EDIT_CHOICES_BEFORE_SENDING_DISABLED)); } + @Test + public void testShowInHeadsUpWithNoConfig() { + assertTrue(mConstants.isEnabled()); + assertTrue(mConstants.getShowInHeadsUp()); + } + + @Test + public void testShowInHeadsUpEnabled() { + overrideSetting("enabled=true,show_in_heads_up=true"); + triggerConstantsOnChange(); + assertTrue(mConstants.getShowInHeadsUp()); + } + + @Test + public void testShowInHeadsUpDisabled() { + overrideSetting("enabled=true,show_in_heads_up=false"); + triggerConstantsOnChange(); + assertFalse(mConstants.getShowInHeadsUp()); + } + private void overrideSetting(String flags) { Settings.Global.putString(mContext.getContentResolver(), Settings.Global.SMART_REPLIES_IN_NOTIFICATIONS_FLAGS, flags); |