Only show historical tasks in history.

- Also only show the history button if there are
  historical tasks (and reflect that in the 
  button text)

Change-Id: I7b9dcf79e2feef61f96b720f586144de4c5033e3
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 666a024..9b74a80 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -713,8 +713,8 @@
     <string name="recents_launch_error_message">Could not start <xliff:g id="app" example="Calendar">%s</xliff:g>.</string>
     <!-- Recents: Show history string. [CHAR LIMIT=NONE] -->
     <string name="recents_show_history_button_label">More</string>
-    <!-- Recents: The history of recents. [CHAR LIMIT=NONE] -->
-    <string name="recents_history_label">History</string>
+    <!-- Recents: A format string to set the number of availabe historical tasks in recents. [CHAR LIMIT=NONE] -->
+    <string name="recents_history_label_format"><xliff:g id="number">%d</xliff:g> More</string>
 
     <!-- Recents: MultiStack add stack split horizontal radio button. [CHAR LIMIT=NONE] -->
     <string name="recents_multistack_add_stack_dialog_split_horizontal">Split Horizontal</string>
diff --git a/packages/SystemUI/src/com/android/systemui/recents/history/RecentsHistoryView.java b/packages/SystemUI/src/com/android/systemui/recents/history/RecentsHistoryView.java
index 538ec93..1163f14 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/history/RecentsHistoryView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/history/RecentsHistoryView.java
@@ -101,7 +101,7 @@
                         .start();
             }
         });
-        mAdapter.updateTasks(getContext(), stack.computeAllTasksList());
+        mAdapter.updateTasks(getContext(), stack.getHistoricalTasks());
         mIsVisible = true;
     }
 
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
index 0557332..addcc85 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/RecentsView.java
@@ -32,8 +32,8 @@
 import android.view.animation.AnimationUtils;
 import android.view.animation.Interpolator;
 import android.widget.FrameLayout;
-
 import com.android.internal.logging.MetricsLogger;
+import android.widget.TextView;
 import com.android.systemui.R;
 import com.android.systemui.recents.Recents;
 import com.android.systemui.recents.RecentsActivity;
@@ -81,7 +81,7 @@
     private TaskStack mStack;
     private TaskStackView mTaskStackView;
     private RecentsAppWidgetHostView mSearchBar;
-    private View mHistoryButton;
+    private TextView mHistoryButton;
     private View mEmptyView;
     private boolean mAwaitingFirstLayout = true;
     private boolean mLastTaskLaunchedWasFreeform;
@@ -126,7 +126,7 @@
         mFlingAnimationUtils = new FlingAnimationUtils(context, 0.3f);
 
         LayoutInflater inflater = LayoutInflater.from(context);
-        mHistoryButton = inflater.inflate(R.layout.recents_history_button, this, false);
+        mHistoryButton = (TextView) inflater.inflate(R.layout.recents_history_button, this, false);
         mHistoryButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -609,6 +609,8 @@
         RecentsDebugFlags debugFlags = Recents.getDebugFlags();
         if (!debugFlags.isHistoryEnabled()) {
             hideHistoryButton(100);
+        } else {
+            showHistoryButton(100);
         }
     }
 
@@ -631,6 +633,8 @@
 
         mHistoryButton.setVisibility(View.VISIBLE);
         mHistoryButton.setAlpha(0f);
+        mHistoryButton.setText(getContext().getString(R.string.recents_history_label_format,
+                mStack.getHistoricalTasks().size()));
         postHideHistoryAnimationTrigger.addLastDecrementRunnable(new Runnable() {
             @Override
             public void run() {
diff --git a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
index 9d7a927..404ac47 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/views/TaskStackView.java
@@ -1065,8 +1065,11 @@
         }
 
         // Update the history button visibility
-        if (mStackScroller.getStackScroll() < SHOW_HISTORY_BUTTON_SCROLL_THRESHOLD) {
+        if (shouldShowHistoryButton() &&
+                mStackScroller.getStackScroll() < SHOW_HISTORY_BUTTON_SCROLL_THRESHOLD) {
             EventBus.getDefault().send(new ShowHistoryButtonEvent());
+        } else {
+            EventBus.getDefault().send(new HideHistoryButtonEvent());
         }
 
         // Start dozing
@@ -1395,7 +1398,8 @@
         requestSynchronizeStackViewsWithModel();
         postInvalidateOnAnimation();
 
-        if (prevScroll > SHOW_HISTORY_BUTTON_SCROLL_THRESHOLD &&
+        if (shouldShowHistoryButton() &&
+                prevScroll > SHOW_HISTORY_BUTTON_SCROLL_THRESHOLD &&
                 curScroll <= SHOW_HISTORY_BUTTON_SCROLL_THRESHOLD) {
             EventBus.getDefault().send(new ShowHistoryButtonEvent());
         } else if (prevScroll < HIDE_HISTORY_BUTTON_SCROLL_THRESHOLD &&
@@ -1666,4 +1670,11 @@
         }
         return -1;
     }
+
+    /**
+     * @return whether the history button should be visible
+     */
+    private boolean shouldShowHistoryButton() {
+        return !mStack.getHistoricalTasks().isEmpty();
+    }
 }