Commit 325cdb07 authored by Mehran Mahmoudi's avatar Mehran Mahmoudi Committed by Commit Bot

[Touchless] Show progress bar on activity start instead of resume

This moves the re-display code for progress bar from on
activity resume to on activity start. It also adds the new
skipShowingProgressBarOnNextActivityStart to
TouchlessUiCoordinatorImpl. When called, the next activity
start event will not cause the progress bar to show.

Downstream CL: https://chrome-internal-review.googlesource.com/c/clank/internal/apps/+/1450627

Bug: 971902
Change-Id: If959fbff9503ae3789bf0d1d3668bb43b47fb1d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1692486Reviewed-by: default avatarTibor Goldschwendt <tiborg@chromium.org>
Reviewed-by: default avatarMichael Thiessen <mthiesse@chromium.org>
Commit-Queue: Mehran Mahmoudi <mahmoudi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#675757}
parent 878d6a39
include_rules = [
"+chrome/lib/lifecycle/public",
"+components/feature_engagement/public",
"+components/offline_items_collection/core/android/java",
"+content/public/android/java/src/org/chromium/content_public",
......
......@@ -15,7 +15,7 @@ import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.lifecycle.Destroyable;
import org.chromium.chrome.browser.lifecycle.InflationObserver;
import org.chromium.chrome.browser.lifecycle.NativeInitObserver;
import org.chromium.chrome.browser.lifecycle.PauseResumeWithNativeObserver;
import org.chromium.chrome.browser.lifecycle.StartStopWithNativeObserver;
import org.chromium.chrome.browser.snackbar.SnackbarManager;
import org.chromium.chrome.browser.touchless.dialog.TouchlessDialogPresenter;
import org.chromium.chrome.browser.touchless.snackbar.BlackHoleSnackbarManager;
......@@ -28,7 +28,7 @@ import org.chromium.ui.modaldialog.ModalDialogManager.ModalDialogType;
/** A coordinator for touchless UI. */
public class TouchlessUiCoordinatorImpl implements Destroyable, NativeInitObserver,
InflationObserver, PauseResumeWithNativeObserver,
InflationObserver, StartStopWithNativeObserver,
TouchlessUiCoordinator {
private ChromeActivity mActivity;
......@@ -83,13 +83,17 @@ public class TouchlessUiCoordinatorImpl implements Destroyable, NativeInitObserv
mTouchlessZoomHelper = new TouchlessZoomHelper(mActivity.getActivityTabProvider());
}
public void skipShowingProgressBarOnNextActivityStart() {
mProgressBarCoordinator.skipShowingOnNextActivityStart();
}
@Override
public void onResumeWithNative() {
if (mProgressBarCoordinator != null) mProgressBarCoordinator.onActivityResume();
public void onStartWithNative() {
if (mProgressBarCoordinator != null) mProgressBarCoordinator.onActivityStart();
}
@Override
public void onPauseWithNative() {}
public void onStopWithNative() {}
@Override
public KeyEvent processKeyEvent(KeyEvent event) {
......
......@@ -28,8 +28,12 @@ public class ProgressBarCoordinator {
mMediator = new ProgressBarMediator(model, activityTabProvider);
}
public void onActivityResume() {
mMediator.onActivityResume();
public void onActivityStart() {
mMediator.onActivityStart();
}
public void skipShowingOnNextActivityStart() {
mMediator.skipShowingOnNextActivityStart();
}
public void destroy() {
......
......@@ -25,6 +25,7 @@ public class ProgressBarMediator {
private FutureTask mHideTask;
private boolean mCanHideProgressBar;
private boolean mWasDisplayedForMinimumDuration;
private boolean mSkipShowingOnNextActivityStart;
private static final int MINIMUM_DISPLAY_DURATION_MS = 3 * 1000;
......@@ -33,7 +34,16 @@ public class ProgressBarMediator {
mModel = model;
}
void onActivityResume() {
void skipShowingOnNextActivityStart() {
mSkipShowingOnNextActivityStart = true;
}
void onActivityStart() {
if (mSkipShowingOnNextActivityStart) {
mSkipShowingOnNextActivityStart = false;
return;
}
if (mModel.get(ProgressBarProperties.IS_ENABLED)) show();
}
......
......@@ -81,8 +81,8 @@ public class ProgressBarMediatorTest {
Assert.assertEquals(mModel.get(ProgressBarProperties.IS_ENABLED), true);
Assert.assertEquals(mModel.get(ProgressBarProperties.IS_VISIBLE), false);
// The progress bar should be shown on activity resume.
mProgressBarMediator.onActivityResume();
// The progress bar should be shown on activity start.
mProgressBarMediator.onActivityStart();
Assert.assertEquals(mModel.get(ProgressBarProperties.IS_ENABLED), true);
Assert.assertEquals(mModel.get(ProgressBarProperties.IS_VISIBLE), true);
......
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