Update history flow

So the screens are more clear when you don't have history
items yet

Test: manual
Fixes: 150211282
Change-Id: Icf1dded3e92ed2121e18bf9a35d570f9efcfda62
diff --git a/res/layout/notification_history.xml b/res/layout/notification_history.xml
index b397eef..0e7f6b0 100644
--- a/res/layout/notification_history.xml
+++ b/res/layout/notification_history.xml
@@ -72,6 +72,35 @@
                 android:focusable="true"
                 android:textAppearance="?android:attr/textAppearanceSmall"
                 android:text="@string/notification_history_off_summary" />
+
+            <TextView
+                android:id="@+id/history_toggled_on_title"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/history_image"
+                android:layout_marginTop="48dp"
+                android:layout_marginStart="48dp"
+                android:layout_marginEnd="48dp"
+                android:layout_gravity="center_horizontal"
+                android:focusable="true"
+                android:visibility="gone"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:text="@string/history_toggled_on_title" />
+
+            <TextView
+                android:id="@+id/history_toggled_on_summary"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/history_off_title"
+                android:layout_marginStart="48dp"
+                android:layout_marginEnd="48dp"
+                android:layout_marginTop="16dp"
+                android:layout_gravity="center_horizontal"
+                android:textAlignment="center"
+                android:focusable="true"
+                android:visibility="gone"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:text="@string/history_toggled_on_summary" />
         </LinearLayout>
 
         <LinearLayout
diff --git a/res/values/strings.xml b/res/values/strings.xml
index bc3706f..3c4f304 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8110,6 +8110,12 @@
     <!--  Notification history screen; summary when history is off [CHAR LIMIT=NONE] -->
    <string name="notification_history_off_summary">Turn on notification history to see recent notifications and snoozed notifications</string>
 
+    <!-- Notification history screen; title when history is newly turned on [CHAR LIMIT=200] -->
+    <string name="history_toggled_on_title">No recent notifications</string>
+
+    <!--  Notification history screen; summary when history is newly turned on [CHAR LIMIT=NONE] -->
+    <string name="history_toggled_on_summary">Your recent and snoozed notifications will appear here</string>
+
     <!-- Notification history screen; content description describing what happens when you tap on a notification history entry [CHAR LIMIT=NONE] -->
     <string name="notification_history_view_settings">view notification settings</string>
 
diff --git a/src/com/android/settings/notification/history/NotificationHistoryActivity.java b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
index 8d7695f..d41268d 100644
--- a/src/com/android/settings/notification/history/NotificationHistoryActivity.java
+++ b/src/com/android/settings/notification/history/NotificationHistoryActivity.java
@@ -70,6 +70,8 @@
     private PackageManager mPm;
 
     private HistoryLoader.OnHistoryLoaderListener mOnHistoryLoaderListener = notifications -> {
+        findViewById(R.id.today_list).setVisibility(
+                notifications.isEmpty() ? View.GONE : View.VISIBLE);
         // for each package, new header and recycler view
         for (NotificationHistoryPackage nhp : notifications) {
             View viewForPackage = LayoutInflater.from(this)
@@ -182,6 +184,10 @@
         } else {
             mHistoryOn.setVisibility(View.GONE);
             mHistoryOff.setVisibility(View.VISIBLE);
+            mHistoryOff.findViewById(R.id.history_off_title).setVisibility(View.VISIBLE);
+            mHistoryOff.findViewById(R.id.history_off_summary).setVisibility(View.VISIBLE);
+            mHistoryOff.findViewById(R.id.history_toggled_on_title).setVisibility(View.GONE);
+            mHistoryOff.findViewById(R.id.history_toggled_on_summary).setVisibility(View.GONE);
             mTodayView.removeAllViews();
         }
     }
@@ -232,7 +238,17 @@
                 Settings.Secure.putInt(getContentResolver(),
                         NOTIFICATION_HISTORY_ENABLED,
                         isChecked ? 1 : 0);
-                toggleViews(isChecked);
+                mHistoryOn.setVisibility(View.GONE);
+                mHistoryOff.findViewById(R.id.history_off_title).setVisibility(
+                        isChecked ? View.GONE : View.VISIBLE);
+                mHistoryOff.findViewById(R.id.history_off_summary).setVisibility(
+                        isChecked ? View.GONE : View.VISIBLE);
+                mHistoryOff.findViewById(R.id.history_toggled_on_title).setVisibility(
+                        isChecked ? View.VISIBLE : View.GONE);
+                mHistoryOff.findViewById(R.id.history_toggled_on_summary).setVisibility(
+                        isChecked ? View.VISIBLE : View.GONE);
+                mTodayView.removeAllViews();
+                mHistoryOff.setVisibility(View.VISIBLE);
             };
 
     private final NotificationListenerService mListener = new NotificationListenerService() {