Updating content description of taskview after latest update
Description: we wait for icon updates to receive the title of the task. However we still set the description immediately upon digitalwellbeingtoast creation.
this creates a null set for contentDescription resulting in incorrect talkbalk. This will listen for icon updates and will reiniitialize the toast ensuring
taskview is set properly.
Test: built and tested locally with talk back ensuring the titles are being set correctly
Bug: 280908761
Change-Id: I946e7190114cbdccb75883965b1fdf85ed6ad17a
diff --git a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java
index 7cd6756..3e79eaf 100644
--- a/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java
+++ b/quickstep/src/com/android/quickstep/views/DigitalWellBeingToast.java
@@ -92,6 +92,8 @@
private Task mTask;
private boolean mHasLimit;
+
+ private long mAppUsageLimitTimeMs;
private long mAppRemainingTimeMs;
@Nullable
private View mBanner;
@@ -113,10 +115,12 @@
mHasLimit = false;
mTaskView.setContentDescription(mTask.titleDescription);
replaceBanner(null);
- mAppRemainingTimeMs = 0;
+ mAppUsageLimitTimeMs = -1;
+ mAppRemainingTimeMs = -1;
}
private void setLimit(long appUsageLimitTimeMs, long appRemainingTimeMs) {
+ mAppUsageLimitTimeMs = appUsageLimitTimeMs;
mAppRemainingTimeMs = appRemainingTimeMs;
mHasLimit = true;
TextView toast = mActivity.getViewCache().getView(R.layout.digital_wellbeing_toast,
@@ -138,11 +142,12 @@
}
public void initialize(Task task) {
+ mAppUsageLimitTimeMs = mAppRemainingTimeMs = -1;
mTask = task;
THREAD_POOL_EXECUTOR.execute(() -> {
final AppUsageLimit usageLimit = mLauncherApps.getAppUsageLimit(
- task.getTopComponent().getPackageName(),
- UserHandle.of(task.key.userId));
+ mTask.getTopComponent().getPackageName(),
+ UserHandle.of(mTask.key.userId));
final long appUsageLimitTimeMs =
usageLimit != null ? usageLimit.getTotalUsageLimit() : -1;
@@ -275,6 +280,10 @@
}
}
+ public String getContentDescription() {
+ return getContentDescriptionForTask(mTask, mAppUsageLimitTimeMs, mAppRemainingTimeMs);
+ }
+
private String getContentDescriptionForTask(
Task task, long appUsageLimitTimeMs, long appRemainingTimeMs) {
return appUsageLimitTimeMs >= 0 && appRemainingTimeMs >= 0 ?
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index 6e7b6dc..f71d0c1 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -1342,6 +1342,7 @@
protected void refreshTaskThumbnailSplash() {
mSnapshotView.refreshSplashView();
+ setContentDescription(mDigitalWellBeingToast.getContentDescription());
}
private void setSplitSelectTranslationX(float x) {