Commit 84b1f37c authored by Jian Li's avatar Jian Li Committed by Commit Bot

Some changes to improve snackback duration for accessibility.

Increase the default snackbar duration to 10s when accessibility
mode is on. Also make SnackbarManager to double the custom
duration automatically when accessibility mode is on.

Bug: 699160
Change-Id: If3762db7eea56eed614ce15ff69a6591c7ae7706
Reviewed-on: https://chromium-review.googlesource.com/c/1327330Reviewed-by: default avatarTheresa <twellington@chromium.org>
Commit-Queue: Jian Li <jianli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606673}
parent c1727d16
...@@ -17,7 +17,6 @@ import org.chromium.chrome.browser.customtabs.CustomTabActivity; ...@@ -17,7 +17,6 @@ import org.chromium.chrome.browser.customtabs.CustomTabActivity;
import org.chromium.chrome.browser.download.items.OfflineContentAggregatorNotificationBridgeUiFactory; import org.chromium.chrome.browser.download.items.OfflineContentAggregatorNotificationBridgeUiFactory;
import org.chromium.chrome.browser.snackbar.Snackbar; import org.chromium.chrome.browser.snackbar.Snackbar;
import org.chromium.chrome.browser.snackbar.SnackbarManager; import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.util.AccessibilityUtil;
import org.chromium.chrome.browser.util.FeatureUtilities; import org.chromium.chrome.browser.util.FeatureUtilities;
import org.chromium.components.offline_items_collection.LegacyHelpers; import org.chromium.components.offline_items_collection.LegacyHelpers;
...@@ -27,7 +26,6 @@ import org.chromium.components.offline_items_collection.LegacyHelpers; ...@@ -27,7 +26,6 @@ import org.chromium.components.offline_items_collection.LegacyHelpers;
public class DownloadSnackbarController implements SnackbarManager.SnackbarController { public class DownloadSnackbarController implements SnackbarManager.SnackbarController {
public static final int INVALID_NOTIFICATION_ID = -1; public static final int INVALID_NOTIFICATION_ID = -1;
private static final int SNACKBAR_DURATION_MS = 7000; private static final int SNACKBAR_DURATION_MS = 7000;
private static final int SNACKBAR_ACCESSIBILITY_DURATION_MS = 15000;
private static class ActionDataInfo { private static class ActionDataInfo {
public final DownloadInfo downloadInfo; public final DownloadInfo downloadInfo;
...@@ -105,7 +103,7 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr ...@@ -105,7 +103,7 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr
this, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_DOWNLOAD_SUCCEEDED); this, Snackbar.TYPE_NOTIFICATION, Snackbar.UMA_DOWNLOAD_SUCCEEDED);
} }
// TODO(qinmin): Coalesce snackbars if multiple downloads finish at the same time. // TODO(qinmin): Coalesce snackbars if multiple downloads finish at the same time.
snackbar.setDuration(getSnackbarDurationMs()).setSingleLine(false); snackbar.setDuration(SNACKBAR_DURATION_MS).setSingleLine(false);
ActionDataInfo info = null; ActionDataInfo info = null;
if (canBeResolved || !LegacyHelpers.isLegacyDownload(downloadInfo.getContentId()) if (canBeResolved || !LegacyHelpers.isLegacyDownload(downloadInfo.getContentId())
|| usesAndroidDownloadManager) { || usesAndroidDownloadManager) {
...@@ -131,7 +129,7 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr ...@@ -131,7 +129,7 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr
Snackbar snackbar = Snackbar.make(errorMessage, this, Snackbar.TYPE_NOTIFICATION, Snackbar snackbar = Snackbar.make(errorMessage, this, Snackbar.TYPE_NOTIFICATION,
Snackbar.UMA_DOWNLOAD_FAILED) Snackbar.UMA_DOWNLOAD_FAILED)
.setSingleLine(false) .setSingleLine(false)
.setDuration(getSnackbarDurationMs()); .setDuration(SNACKBAR_DURATION_MS);
if (showAllDownloads) { if (showAllDownloads) {
snackbar.setAction( snackbar.setAction(
ContextUtils.getApplicationContext().getString(R.string.open_downloaded_label), ContextUtils.getApplicationContext().getString(R.string.open_downloaded_label),
...@@ -152,7 +150,7 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr ...@@ -152,7 +150,7 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr
this, Snackbar.TYPE_NOTIFICATION, this, Snackbar.TYPE_NOTIFICATION,
Snackbar.UMA_MISSING_FILES_NO_SD_CARD) Snackbar.UMA_MISSING_FILES_NO_SD_CARD)
.setSingleLine(false) .setSingleLine(false)
.setDuration(getSnackbarDurationMs()); .setDuration(SNACKBAR_DURATION_MS);
getSnackbarManager().showSnackbar(snackbar); getSnackbarManager().showSnackbar(snackbar);
} }
...@@ -171,9 +169,4 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr ...@@ -171,9 +169,4 @@ public class DownloadSnackbarController implements SnackbarManager.SnackbarContr
} }
return null; return null;
} }
private static int getSnackbarDurationMs() {
return AccessibilityUtil.isAccessibilityEnabled() ? SNACKBAR_ACCESSIBILITY_DURATION_MS
: SNACKBAR_DURATION_MS;
}
} }
...@@ -59,7 +59,7 @@ public class SnackbarManager implements OnClickListener, InfoBarContainer.InfoBa ...@@ -59,7 +59,7 @@ public class SnackbarManager implements OnClickListener, InfoBarContainer.InfoBa
} }
public static final int DEFAULT_SNACKBAR_DURATION_MS = 3000; public static final int DEFAULT_SNACKBAR_DURATION_MS = 3000;
private static final int ACCESSIBILITY_MODE_SNACKBAR_DURATION_MS = 6000; private static final int ACCESSIBILITY_MODE_SNACKBAR_DURATION_MS = 10000;
// Used instead of the constant so tests can override the value. // Used instead of the constant so tests can override the value.
private static int sSnackbarDurationMs = DEFAULT_SNACKBAR_DURATION_MS; private static int sSnackbarDurationMs = DEFAULT_SNACKBAR_DURATION_MS;
...@@ -235,10 +235,14 @@ public class SnackbarManager implements OnClickListener, InfoBarContainer.InfoBa ...@@ -235,10 +235,14 @@ public class SnackbarManager implements OnClickListener, InfoBarContainer.InfoBa
private int getDuration(Snackbar snackbar) { private int getDuration(Snackbar snackbar) {
int durationMs = snackbar.getDuration(); int durationMs = snackbar.getDuration();
if (durationMs == 0) { if (durationMs == 0) durationMs = sSnackbarDurationMs;
durationMs = AccessibilityUtil.isAccessibilityEnabled()
? sAccessibilitySnackbarDurationMs : sSnackbarDurationMs; if (AccessibilityUtil.isAccessibilityEnabled()) {
durationMs *= 2;
if (durationMs < sAccessibilitySnackbarDurationMs)
durationMs = sAccessibilitySnackbarDurationMs;
} }
return durationMs; return durationMs;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment