Moving composing task content description to resources

Bug:118319143
Test: Manual
Change-Id: Iedcf3d90191614011b9b7d35afabb17a5b5953b3
diff --git a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java
index 4e89353..4e7a0c4 100644
--- a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java
+++ b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java
@@ -34,7 +34,7 @@
 
 public final class DigitalWellBeingToast extends LinearLayout {
     public interface InitializeCallback {
-        void call(long t, boolean b);
+        void call(long remainingTimeMs, boolean isGroupLimit, String contentDescription);
     }
 
     private static final String TAG = DigitalWellBeingToast.class.getSimpleName();
@@ -66,7 +66,10 @@
             final boolean isGroupLimit = true;
             post(() -> {
                 setRemainingTime(appRemainingTimeMs, isGroupLimit);
-                callback.call(appRemainingTimeMs, isGroupLimit);
+                callback.call(
+                        appRemainingTimeMs,
+                        isGroupLimit,
+                        getContentDescriptionForTask(task, appRemainingTimeMs, isGroupLimit));
             });
         });
     }
@@ -94,4 +97,14 @@
                     + mTask.getTopComponent().getPackageName(), e);
         }
     }
+
+    private String getContentDescriptionForTask(
+            Task task, long appRemainingTimeMs, boolean isGroupLimit) {
+        return appRemainingTimeMs > 0 ?
+                getResources().getString(
+                        R.string.task_contents_description_with_remaining_time,
+                        task.titleDescription,
+                        getText(appRemainingTimeMs, isGroupLimit)) :
+                task.titleDescription;
+    }
 }
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index a6a3b85..9b26d08 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -268,14 +268,9 @@
                         setIcon(task.icon);
                         mDigitalWellBeingToast.initialize(
                                 mTask,
-                                (appRemainingTimeMs, isGroupLimit) -> {
+                                (appRemainingTimeMs, isGroupLimit, contentDescription) -> {
                                     mAppRemainingTimeMs = appRemainingTimeMs;
-                                    setContentDescription(
-                                            hasRemainingTime() ?
-                                                    task.titleDescription + ". "
-                                                            + DigitalWellBeingToast.getText(
-                                                            appRemainingTimeMs, isGroupLimit) :
-                                                    task.titleDescription);
+                                    setContentDescription(contentDescription);
                                 });
                     });
         } else {
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7e5784d..fb6eb43 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -350,4 +350,6 @@
 
     <!-- Failed action error message: e.g. Failed: Pause -->
     <string name="remote_action_failed">Failed: <xliff:g id="what" example="Pause">%1$s</xliff:g></string>
+
+    <string name="task_contents_description_with_remaining_time" translatable="false"><xliff:g id="task_description" example="GMail">%1$s</xliff:g>, <xliff:g id="remaining_time" example="7 minutes">%2$s</xliff:g></string>
 </resources>