DO NOT MERGE Update zen onboarding

- Update text
- Update buttons
- Update style

Bug: 79702414
Bug: 78447976
Bug: 79525632
Test: ZenOnboardingActivityTest
Change-Id: Ied476fc920828409993953fba32bf3dae324ea3c
diff --git a/res/layout/zen_onboarding.xml b/res/layout/zen_onboarding.xml
index 6467955..82951bd 100644
--- a/res/layout/zen_onboarding.xml
+++ b/res/layout/zen_onboarding.xml
@@ -17,40 +17,112 @@
 <RelativeLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="320dp"
-    android:layout_height="wrap_content"
-    android:padding="20dp">
+    android:layout_height="wrap_content" >
 
-    <TextView
-        android:id="@+id/header"
-        android:layout_width="wrap_content"
+    <RelativeLayout
+        android:id="@+id/zen_onboarding_choices"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:text="@string/zen_onboarding_dnd_visual_disturbances_header"
-        android:textAppearance="@android:style/TextAppearance.Material.DialogWindowTitle" />
+        android:paddingLeft="24dp"
+        android:paddingRight="24dp"
+        android:paddingTop="18dp">
 
-    <TextView
-        android:id="@+id/feature_description"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_below="@+id/header"
-        android:layout_marginTop="24dp"
-        android:textAppearance="?android:attr/textAppearanceListItem"
-        android:text="@string/zen_onboarding_dnd_visual_disturbances_description" />
+        <TextView
+            android:id="@+id/header"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/zen_onboarding_dnd_visual_disturbances_header"
+            android:textAppearance="@android:style/TextAppearance.Material.DialogWindowTitle" />
+
+        <LinearLayout
+            android:id="@+id/zen_onboarding_new_setting"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/header"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="22dp"
+            android:orientation="horizontal">
+
+            <RadioButton
+                android:id="@+id/zen_onboarding_new_setting_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingHorizontal="8dp" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/zen_onboarding_new_setting_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/zen_onboarding_new_setting_title"
+                    android:textAppearance="?android:attr/textAppearanceListItem" />
+
+                <TextView
+                    android:id="@+id/zen_onboarding_new_setting_summary"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/zen_onboarding_new_setting_summary" />
+            </LinearLayout>
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:id="@+id/zen_onboarding_current_setting"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/zen_onboarding_new_setting"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="10dp"
+            android:orientation="horizontal">
+
+            <RadioButton
+                android:id="@+id/zen_onboarding_current_setting_button"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingHorizontal="8dp" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical">
+
+                <TextView
+                    android:id="@+id/zen_onboarding_current_setting_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/zen_onboarding_current_setting_title"
+                    android:textAppearance="?android:attr/textAppearanceListItem" />
+
+                <TextView
+                    android:id="@+id/zen_onboarding_current_setting_summary"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:text="@string/zen_onboarding_current_setting_summary" />
+            </LinearLayout>
+        </LinearLayout>
+    </RelativeLayout>
 
     <RelativeLayout
         android:id="@+id/buttons"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_below="@+id/feature_description"
-        android:layout_marginTop="35dp">
+        android:layout_below="@+id/zen_onboarding_choices"
+        android:layout_marginLeft="8dp"
+        android:layout_marginTop="20dp"
+        android:layout_marginBottom="10dp">
 
         <Button
-            android:id="@+id/no"
+            android:id="@+id/settings"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
-            android:text="@string/zen_onboarding_no_update"
-            android:layout_toStartOf="@+id/ok"
+            android:text="@string/zen_onboarding_settings"
+            android:layout_alignParentStart="true"
             style="@style/TextAppearance.ZenOnboardingButton"
-            android:onClick="close" />
+            android:onClick="launchSettings" />
 
         <Button
             android:id="@+id/ok"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4176b86..50b6016 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -7390,26 +7390,34 @@
     <string name="zen_msg_event_reminder_footer">When Do Not Disturb is on, messages, reminders, and events will muted, except for the items you allow above. You can adjust messages settings to allow your friends, family, or other contacts to reach you.</string>
 
     <!-- Do not disturb onboarding dialog, accept new settings [CHAR LIMIT=30]-->
-    <string name="zen_onboarding_ok">Update</string>
-    <!-- Do not disturb onboarding dialog, do not accept new settings [CHAR LIMIT=30]-->
-    <string name="zen_onboarding_no_update">Don\'t update</string>
-    <!-- Do not disturb onboarding dialog, description of new settings [CHAR LIMIT=NONE]-->
-    <string name="zen_onboarding_dnd_visual_disturbances_description">Your phone can do more to help you focus.\n\nUpdate settings to:\n\n- Hide notifications completely\n\n- Allow calls from starred contacts and repeat callers</string>
-    <!-- Do not disturb onboarding dialog, header prompt for settings [CHAR LIMIT=80]-->
-    <string name="zen_onboarding_dnd_visual_disturbances_header">Update Do Not Disturb?</string>
-
-    <!-- obsolete -->
+    <string name="zen_onboarding_ok">Done</string>
+    <!-- Do not disturb onboarding dialog, on click user goes to dnd settings page [CHAR LIMIT=30]-->
     <string name="zen_onboarding_settings">Settings</string>
-    <!-- obsolete -->
-    <string name="zen_onboarding_more_options">You can further customize this in Settings.</string>
-    <!-- obsolete -->
-    <string name="zen_onboarding_screen_on_title">Block when the screen is on</string>
-    <!-- obsolete -->
-    <string name="zen_onboarding_screen_off_title">Block when the screen is off</string>
-    <!-- obsolete -->
-    <string name="zen_onboarding_screen_off_summary">Don\'t turn on the screen or wake for notifications</string>
-    <!-- obsolete -->
-    <string name="zen_onboarding_screen_on_summary">Don\'t show notifications at all, except for basic phone activity and status</string>
+
+    <!-- Do not disturb onboarding dialog, title for radio button [CHAR LIMIT=80]-->
+    <string name="zen_onboarding_new_setting_title">No visuals or sounds from notifications</string>
+    <!-- Do not disturb onboarding dialog, title for radio button [CHAR LIMIT=80]-->
+    <string name="zen_onboarding_current_setting_title">No sound from notifications</string>
+    <!-- Do not disturb onboarding dialog, secondary text for radio button [CHAR LIMIT=NONE]-->
+    <string name="zen_onboarding_new_setting_summary">You won\u2019t see or hear notifications. Calls from starred contacts and repeat callers are allowed.</string>
+    <!-- Do not disturb onboarding dialog, secondary text for radio button [CHAR LIMIT=NONE]-->
+    <string name="zen_onboarding_current_setting_summary">(Current setting)</string>
+
+    <!-- Do not disturb onboarding dialog, header prompt for settings [CHAR LIMIT=80]-->
+    <string name="zen_onboarding_dnd_visual_disturbances_header">Change Do Not Disturb notification settings?</string>
+
+    <!-- DO NOT TRANSLATE obsolete [CHAR LIMIT=NONE]-->
+    <string name="zen_onboarding_dnd_visual_disturbances_description" translatable="false">Your phone can do more to help you focus.\n\nUpdate settings to:\n\n- Hide notifications completely\n\n- Allow calls from starred contacts and repeat callers</string>
+    <!-- DO NOT TRANSLATE obsolete -->
+    <string name="zen_onboarding_more_options" translatable="false">You can further customize this in Settings.</string>
+    <!-- DO NOT TRANSLATE obsolete -->
+    <string name="zen_onboarding_screen_on_title" translatable="false">Block when the screen is on</string>
+    <!-- DO NOT TRANSLATE obsolete -->
+    <string name="zen_onboarding_screen_off_title" translatable="false">Block when the screen is off</string>
+    <!-- DO NOT TRANSLATE obsolete -->
+    <string name="zen_onboarding_screen_off_summary" translatable="false">Don\'t turn on the screen or wake for notifications</string>
+    <!-- DO NOT TRANSLATE obsolete -->
+    <string name="zen_onboarding_screen_on_summary" translatable="false">Don\'t show notifications at all, except for basic phone activity and status</string>
 
     <!-- Work Sounds: Work sound settings section header.  [CHAR LIMIT=50] -->
     <string name="sound_work_settings">Work profile sounds</string>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index 819202e..763d8fa 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -439,8 +439,7 @@
         <item name="android:background">@drawable/btn_borderless_rect</item>
         <item name="android:gravity">center</item>
         <item name="android:focusable">true</item>
-        <item name="android:paddingStart">8dp</item>
-        <item name="android:paddingEnd">8dp</item>
+        <item name="android:padding">8dp</item>
     </style>
 
     <style name="ActionPrimaryButton" parent="android:Widget.DeviceDefault.Button.Colored"/>
diff --git a/src/com/android/settings/notification/ZenOnboardingActivity.java b/src/com/android/settings/notification/ZenOnboardingActivity.java
index ff86ef6..fca1a6c 100644
--- a/src/com/android/settings/notification/ZenOnboardingActivity.java
+++ b/src/com/android/settings/notification/ZenOnboardingActivity.java
@@ -20,12 +20,14 @@
 import android.app.NotificationManager;
 import android.app.NotificationManager.Policy;
 import android.content.Context;
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
 import android.provider.Settings;
 import android.text.format.DateUtils;
 import android.util.Log;
 import android.view.View;
+import android.widget.RadioButton;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.logging.MetricsLogger;
@@ -39,13 +41,16 @@
     private static final String TAG = "ZenOnboardingActivity";
 
     @VisibleForTesting
-    static final String PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME =
+    static final String PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME =
             "pref_zen_suggestion_first_display_time_ms";
     @VisibleForTesting
-    static final String PREF_KEY_SUGGESTION_VIEWED = "pref_zen_suggestion_viewed";
-    @VisibleForTesting
     static final long ALWAYS_SHOW_THRESHOLD = DateUtils.DAY_IN_MILLIS * 14;
 
+    View mNewSetting;
+    View mKeepCurrentSetting;
+    RadioButton mNewSettingButton;
+    RadioButton mKeepCurrentSettingButton;
+
     private NotificationManager mNm;
     private MetricsLogger mMetrics;
 
@@ -66,6 +71,34 @@
     protected void setupUI() {
         setContentView(R.layout.zen_onboarding);
 
+        mNewSetting = findViewById(R.id.zen_onboarding_new_setting);
+        mKeepCurrentSetting = findViewById(R.id.zen_onboarding_current_setting);
+        mNewSettingButton = findViewById(R.id.zen_onboarding_new_setting_button);
+        mKeepCurrentSettingButton = findViewById(R.id.zen_onboarding_current_setting_button);
+
+        View.OnClickListener newSettingClickListener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mKeepCurrentSettingButton.setChecked(false);
+                mNewSettingButton.setChecked(true);
+            }
+        };
+
+        View.OnClickListener currentSettingClickListener = new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mKeepCurrentSettingButton.setChecked(true);
+                mNewSettingButton.setChecked(false);
+            }
+        };
+
+        mNewSetting.setOnClickListener(newSettingClickListener);
+        mNewSettingButton.setOnClickListener(newSettingClickListener);
+
+        mKeepCurrentSetting.setOnClickListener(currentSettingClickListener);
+        mKeepCurrentSettingButton.setOnClickListener(currentSettingClickListener);
+
+        mKeepCurrentSettingButton.setChecked(true);
         mMetrics.visible(MetricsEvent.SETTINGS_ZEN_ONBOARDING);
     }
 
@@ -79,25 +112,27 @@
         mMetrics = ml;
     }
 
-    public void close(View button) {
-        mMetrics.action(MetricsEvent.ACTION_ZEN_ONBOARDING_KEEP_CURRENT_SETTINGS);
-
-        Settings.Global.putInt(getApplicationContext().getContentResolver(),
-                Settings.Global.ZEN_SETTINGS_UPDATED, 1);
-
-        finishAndRemoveTask();
+    public void launchSettings(View button) {
+        mMetrics.action(MetricsEvent.ACTION_ZEN_ONBOARDING_SETTINGS);
+        Intent settings = new Intent(Settings.ACTION_ZEN_MODE_SETTINGS);
+        settings.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
+        startActivity(settings);
     }
 
     public void save(View button) {
-        mMetrics.action(MetricsEvent.ACTION_ZEN_ONBOARDING_OK);
         NotificationManager.Policy policy = mNm.getNotificationPolicy();
 
-        NotificationManager.Policy newPolicy = new NotificationManager.Policy(
-                Policy.PRIORITY_CATEGORY_REPEAT_CALLERS | policy.priorityCategories,
-                Policy.PRIORITY_SENDERS_STARRED,
-                policy.priorityMessageSenders,
-                NotificationManager.Policy.getAllSuppressedVisualEffects());
-        mNm.setNotificationPolicy(newPolicy);
+        if (mNewSettingButton.isChecked()) {
+            NotificationManager.Policy newPolicy = new NotificationManager.Policy(
+                    Policy.PRIORITY_CATEGORY_REPEAT_CALLERS | policy.priorityCategories,
+                    Policy.PRIORITY_SENDERS_STARRED,
+                    policy.priorityMessageSenders,
+                    NotificationManager.Policy.getAllSuppressedVisualEffects());
+            mNm.setNotificationPolicy(newPolicy);
+            mMetrics.action(MetricsEvent.ACTION_ZEN_ONBOARDING_OK);
+        } else {
+            mMetrics.action(MetricsEvent.ACTION_ZEN_ONBOARDING_KEEP_CURRENT_SETTINGS);
+        }
 
         Settings.Global.putInt(getApplicationContext().getContentResolver(),
                 Settings.Global.ZEN_SETTINGS_UPDATED, 1);
@@ -143,11 +178,11 @@
         final long currentTimeMs = System.currentTimeMillis();
         final long firstDisplayTimeMs;
 
-        if (!prefs.contains(PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME)) {
+        if (!prefs.contains(PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME)) {
             firstDisplayTimeMs = currentTimeMs;
-            prefs.edit().putLong(PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME, currentTimeMs).commit();
+            prefs.edit().putLong(PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME, currentTimeMs).commit();
         } else {
-            firstDisplayTimeMs = prefs.getLong(PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME, -1);
+            firstDisplayTimeMs = prefs.getLong(PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME, -1);
         }
 
         final long showTimeMs = firstDisplayTimeMs + ALWAYS_SHOW_THRESHOLD;
diff --git a/tests/robotests/src/com/android/settings/notification/ZenOnboardingActivityTest.java b/tests/robotests/src/com/android/settings/notification/ZenOnboardingActivityTest.java
index b4d3700..e09dc0d 100644
--- a/tests/robotests/src/com/android/settings/notification/ZenOnboardingActivityTest.java
+++ b/tests/robotests/src/com/android/settings/notification/ZenOnboardingActivityTest.java
@@ -18,21 +18,11 @@
 
 import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_ALARMS;
 import static android.app.NotificationManager.Policy.PRIORITY_CATEGORY_REPEAT_CALLERS;
-import static android.app.NotificationManager.Policy.PRIORITY_SENDERS_ANY;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_AMBIENT;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_BADGE;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_FULL_SCREEN_INTENT;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_LIGHTS;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_NOTIFICATION_LIST;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_PEEK;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_SCREEN_OFF;
 import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_SCREEN_ON;
-import static android.app.NotificationManager.Policy.SUPPRESSED_EFFECT_STATUS_BAR;
 
 import static com.android.settings.notification.ZenOnboardingActivity.ALWAYS_SHOW_THRESHOLD;
-import static com.android.settings.notification.ZenOnboardingActivity.PREF_KEY_SUGGESTION_VIEWED;
 import static com.android.settings.notification.ZenOnboardingActivity
-        .PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME;
+        .PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME;
 import static com.android.settings.notification.ZenOnboardingActivity.isSuggestionComplete;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -99,10 +89,11 @@
     }
 
     @Test
-    public void save() {
+    public void saveNewSetting() {
         Policy policy = new Policy(PRIORITY_CATEGORY_ALARMS, 0, 0, SUPPRESSED_EFFECT_SCREEN_ON);
         when(mNm.getNotificationPolicy()).thenReturn(policy);
 
+        mActivity.mNewSetting.performClick();
         mActivity.save(null);
 
         verify(mMetricsLogger).action(MetricsEvent.ACTION_ZEN_ONBOARDING_OK);
@@ -120,24 +111,14 @@
     }
 
     @Test
-    public void close() {
-        Policy policy = new Policy(
-                PRIORITY_CATEGORY_ALARMS, PRIORITY_SENDERS_ANY, 0,
-                SUPPRESSED_EFFECT_SCREEN_ON
-                        | SUPPRESSED_EFFECT_SCREEN_OFF
-                        | SUPPRESSED_EFFECT_FULL_SCREEN_INTENT
-                        | SUPPRESSED_EFFECT_LIGHTS
-                        | SUPPRESSED_EFFECT_PEEK
-                        | SUPPRESSED_EFFECT_STATUS_BAR
-                        | SUPPRESSED_EFFECT_BADGE
-                        | SUPPRESSED_EFFECT_AMBIENT
-                        | SUPPRESSED_EFFECT_NOTIFICATION_LIST);
+    public void keepCurrentSetting() {
+        Policy policy = new Policy(PRIORITY_CATEGORY_ALARMS, 0, 0, SUPPRESSED_EFFECT_SCREEN_ON);
         when(mNm.getNotificationPolicy()).thenReturn(policy);
 
-        mActivity.close(null);
+        mActivity.mKeepCurrentSetting.performClick();
+        mActivity.save(null);
 
         verify(mMetricsLogger).action(MetricsEvent.ACTION_ZEN_ONBOARDING_KEEP_CURRENT_SETTINGS);
-
         verify(mNm, never()).setNotificationPolicy(any());
     }
 
@@ -192,7 +173,7 @@
             firstTime -= ALWAYS_SHOW_THRESHOLD * 2;
         }
 
-        getSharedPreferences().edit().putLong(PREF_KEY_SUGGGESTION_FIRST_DISPLAY_TIME,
+        getSharedPreferences().edit().putLong(PREF_KEY_SUGGESTION_FIRST_DISPLAY_TIME,
                firstTime).commit();
     }