Commit 6851abbc authored by Jian Li's avatar Jian Li Committed by Commit Bot

Reshow offline indicator when chrome activity resumes

Also shorten the time to wait for stable offline to 20s.

Bug: 883020
Change-Id: If932810e0d4864fe00bd2fec980175086b43afbd
Reviewed-on: https://chromium-review.googlesource.com/1220049Reviewed-by: default avatarPeter Williamson <petewil@chromium.org>
Commit-Queue: Jian Li <jianli@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590527}
parent 8c0f2dd7
...@@ -52,14 +52,14 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer ...@@ -52,14 +52,14 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer
// Default time in seconds to wait until the offline state is stablized in the case of flaky // Default time in seconds to wait until the offline state is stablized in the case of flaky
// connections. // connections.
private static final int STABLE_OFFLINE_DEFAULT_WAIT_SECONDS = 3 * 60; private static final int STABLE_OFFLINE_DEFAULT_WAIT_SECONDS = 20;
@SuppressLint("StaticFieldLeak") @SuppressLint("StaticFieldLeak")
private static OfflineIndicatorController sInstance; private static OfflineIndicatorController sInstance;
private boolean mIsShowingOfflineIndicator; private boolean mIsShowingOfflineIndicator;
// Set to true if the offline indicator has been shown once. // Set to true if the offline indicator has been shown once since the activity has resumed.
private boolean mHasOfflineIndicatorShown; private boolean mHasOfflineIndicatorShownSinceActivityResumed;
private ConnectivityDetector mConnectivityDetector; private ConnectivityDetector mConnectivityDetector;
private ChromeActivity mObservedActivity; private ChromeActivity mObservedActivity;
...@@ -121,6 +121,7 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer ...@@ -121,6 +121,7 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer
public void onApplicationStateChange(int newState) { public void onApplicationStateChange(int newState) {
// If the application is resumed, update the connection state and show indicator if needed. // If the application is resumed, update the connection state and show indicator if needed.
if (newState == ApplicationState.HAS_RUNNING_ACTIVITIES) { if (newState == ApplicationState.HAS_RUNNING_ACTIVITIES) {
mHasOfflineIndicatorShownSinceActivityResumed = false;
mConnectivityDetector.detect(); mConnectivityDetector.detect();
updateOfflineIndicator(mConnectivityDetector.getConnectionState() updateOfflineIndicator(mConnectivityDetector.getConnectionState()
== ConnectivityDetector.ConnectionState.VALIDATED); == ConnectivityDetector.ConnectionState.VALIDATED);
...@@ -222,7 +223,7 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer ...@@ -222,7 +223,7 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer
// be shown if the user has been continuously online for the required duration, then goes // be shown if the user has been continuously online for the required duration, then goes
// back to being offline. // back to being offline.
// TODO(jianli): keep these values in shared prefernces. (http://crbug.com/879725) // TODO(jianli): keep these values in shared prefernces. (http://crbug.com/879725)
if (mHasOfflineIndicatorShown if (mHasOfflineIndicatorShownSinceActivityResumed
&& SystemClock.elapsedRealtime() - mLastOnlineTime && SystemClock.elapsedRealtime() - mLastOnlineTime
< getTimeToWaitForStableOffline()) { < getTimeToWaitForStableOffline()) {
return; return;
...@@ -252,7 +253,7 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer ...@@ -252,7 +253,7 @@ public class OfflineIndicatorController implements ConnectivityDetector.Observer
RecordHistogram.recordEnumeratedHistogram("OfflineIndicator.CTR", RecordHistogram.recordEnumeratedHistogram("OfflineIndicator.CTR",
OFFLINE_INDICATOR_CTR_DISPLAYED, OFFLINE_INDICATOR_CTR_COUNT); OFFLINE_INDICATOR_CTR_DISPLAYED, OFFLINE_INDICATOR_CTR_COUNT);
mIsShowingOfflineIndicator = true; mIsShowingOfflineIndicator = true;
mHasOfflineIndicatorShown = true; mHasOfflineIndicatorShownSinceActivityResumed = true;
} }
private void hideOfflineIndicator(Activity activity) { private void hideOfflineIndicator(Activity activity) {
......
...@@ -44,7 +44,7 @@ public class TopSnackbarManager ...@@ -44,7 +44,7 @@ public class TopSnackbarManager
@Override @Override
public void onActivityStateChange(Activity activity, int newState) { public void onActivityStateChange(Activity activity, int newState) {
if (newState == ActivityState.STOPPED) { if (newState == ActivityState.PAUSED || newState == ActivityState.STOPPED) {
dismissSnackbar(false); dismissSnackbar(false);
} }
} }
...@@ -70,10 +70,10 @@ public class TopSnackbarManager ...@@ -70,10 +70,10 @@ public class TopSnackbarManager
* Shows a snackbar at the top of the given activity. * Shows a snackbar at the top of the given activity.
*/ */
public void show(Snackbar snackbar, Activity activity) { public void show(Snackbar snackbar, Activity activity) {
if (mSnackbar != null if (mSnackbar != null) return;
|| ApplicationStatus.getStateForActivity(activity) != ActivityState.RESUMED) { @ActivityState
return; int state = ApplicationStatus.getStateForActivity(activity);
} if (state != ActivityState.STARTED && state != ActivityState.RESUMED) return;
mActivity = activity; mActivity = activity;
mSnackbar = snackbar; mSnackbar = snackbar;
......
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