Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java

Issue 2367403005: Snackbar for promoting Data Saver to existing users (Closed)
Patch Set: add space, clear on data saving clear Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser; 5 package org.chromium.chrome.browser;
6 6
7 import android.annotation.SuppressLint; 7 import android.annotation.SuppressLint;
8 import android.annotation.TargetApi; 8 import android.annotation.TargetApi;
9 import android.app.Activity; 9 import android.app.Activity;
10 import android.app.SearchManager; 10 import android.app.SearchManager;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 import org.chromium.chrome.browser.gsa.GSAServiceClient; 79 import org.chromium.chrome.browser.gsa.GSAServiceClient;
80 import org.chromium.chrome.browser.gsa.GSAState; 80 import org.chromium.chrome.browser.gsa.GSAState;
81 import org.chromium.chrome.browser.help.HelpAndFeedback; 81 import org.chromium.chrome.browser.help.HelpAndFeedback;
82 import org.chromium.chrome.browser.infobar.InfoBarContainer; 82 import org.chromium.chrome.browser.infobar.InfoBarContainer;
83 import org.chromium.chrome.browser.init.AsyncInitializationActivity; 83 import org.chromium.chrome.browser.init.AsyncInitializationActivity;
84 import org.chromium.chrome.browser.metrics.LaunchMetrics; 84 import org.chromium.chrome.browser.metrics.LaunchMetrics;
85 import org.chromium.chrome.browser.metrics.StartupMetrics; 85 import org.chromium.chrome.browser.metrics.StartupMetrics;
86 import org.chromium.chrome.browser.metrics.UmaSessionStats; 86 import org.chromium.chrome.browser.metrics.UmaSessionStats;
87 import org.chromium.chrome.browser.metrics.UmaUtils; 87 import org.chromium.chrome.browser.metrics.UmaUtils;
88 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; 88 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
89 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
89 import org.chromium.chrome.browser.nfc.BeamController; 90 import org.chromium.chrome.browser.nfc.BeamController;
90 import org.chromium.chrome.browser.nfc.BeamProvider; 91 import org.chromium.chrome.browser.nfc.BeamProvider;
91 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; 92 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
92 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; 93 import org.chromium.chrome.browser.offlinepages.OfflinePageUtils;
93 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper; 94 import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper;
94 import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup; 95 import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup;
95 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions; 96 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions;
96 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; 97 import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
97 import org.chromium.chrome.browser.preferences.PrefServiceBridge; 98 import org.chromium.chrome.browser.preferences.PrefServiceBridge;
98 import org.chromium.chrome.browser.preferences.PreferencesLauncher; 99 import org.chromium.chrome.browser.preferences.PreferencesLauncher;
99 import org.chromium.chrome.browser.printing.PrintShareActivity; 100 import org.chromium.chrome.browser.printing.PrintShareActivity;
100 import org.chromium.chrome.browser.printing.TabPrinter; 101 import org.chromium.chrome.browser.printing.TabPrinter;
101 import org.chromium.chrome.browser.profiles.Profile; 102 import org.chromium.chrome.browser.profiles.Profile;
102 import org.chromium.chrome.browser.share.ShareHelper; 103 import org.chromium.chrome.browser.share.ShareHelper;
104 import org.chromium.chrome.browser.snackbar.DataReductionPromoSnackbarController ;
103 import org.chromium.chrome.browser.snackbar.DataUseSnackbarController; 105 import org.chromium.chrome.browser.snackbar.DataUseSnackbarController;
104 import org.chromium.chrome.browser.snackbar.SnackbarManager; 106 import org.chromium.chrome.browser.snackbar.SnackbarManager;
105 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; 107 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
106 import org.chromium.chrome.browser.sync.ProfileSyncService; 108 import org.chromium.chrome.browser.sync.ProfileSyncService;
107 import org.chromium.chrome.browser.sync.SyncController; 109 import org.chromium.chrome.browser.sync.SyncController;
108 import org.chromium.chrome.browser.tab.Tab; 110 import org.chromium.chrome.browser.tab.Tab;
109 import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager; 111 import org.chromium.chrome.browser.tabmodel.AsyncTabParamsManager;
110 import org.chromium.chrome.browser.tabmodel.EmptyTabModel; 112 import org.chromium.chrome.browser.tabmodel.EmptyTabModel;
111 import org.chromium.chrome.browser.tabmodel.TabCreatorManager; 113 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
112 import org.chromium.chrome.browser.tabmodel.TabModel; 114 import org.chromium.chrome.browser.tabmodel.TabModel;
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
199 private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListene r; 201 private ProfileSyncService.SyncStateChangedListener mSyncStateChangedListene r;
200 202
201 private ActivityWindowAndroid mWindowAndroid; 203 private ActivityWindowAndroid mWindowAndroid;
202 private ChromeFullscreenManager mFullscreenManager; 204 private ChromeFullscreenManager mFullscreenManager;
203 private CompositorViewHolder mCompositorViewHolder; 205 private CompositorViewHolder mCompositorViewHolder;
204 private InsetObserverView mInsetObserverView; 206 private InsetObserverView mInsetObserverView;
205 private ContextualSearchManager mContextualSearchManager; 207 private ContextualSearchManager mContextualSearchManager;
206 private ReaderModeManager mReaderModeManager; 208 private ReaderModeManager mReaderModeManager;
207 private SnackbarManager mSnackbarManager; 209 private SnackbarManager mSnackbarManager;
208 private DataUseSnackbarController mDataUseSnackbarController; 210 private DataUseSnackbarController mDataUseSnackbarController;
211 private DataReductionPromoSnackbarController mDataReductionPromoSnackbarCont roller;
209 private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate; 212 private AppMenuPropertiesDelegate mAppMenuPropertiesDelegate;
210 private AppMenuHandler mAppMenuHandler; 213 private AppMenuHandler mAppMenuHandler;
211 private ToolbarManager mToolbarManager; 214 private ToolbarManager mToolbarManager;
212 215
213 // Time in ms that it took took us to inflate the initial layout 216 // Time in ms that it took took us to inflate the initial layout
214 private long mInflateInitialLayoutDurationMs; 217 private long mInflateInitialLayoutDurationMs;
215 218
216 private int mScreenWidthDp; 219 private int mScreenWidthDp;
217 private Runnable mRecordMultiWindowModeScreenWidthRunnable; 220 private Runnable mRecordMultiWindowModeScreenWidthRunnable;
218 221
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 public void didFirstVisuallyNonEmptyPaint(Tab tab) { 520 public void didFirstVisuallyNonEmptyPaint(Tab tab) {
518 if (DataUseTabUIManager.checkAndResetDataUseTrackingStarted(tab) 521 if (DataUseTabUIManager.checkAndResetDataUseTrackingStarted(tab)
519 && DataUseTabUIManager.shouldShowDataUseStartedUI()) { 522 && DataUseTabUIManager.shouldShowDataUseStartedUI()) {
520 mDataUseSnackbarController.showDataUseTrackingStartedBar(); 523 mDataUseSnackbarController.showDataUseTrackingStartedBar();
521 } else if (DataUseTabUIManager.shouldShowDataUseEndedUI() 524 } else if (DataUseTabUIManager.shouldShowDataUseEndedUI()
522 && DataUseTabUIManager.shouldShowDataUseEndedSnackbar( 525 && DataUseTabUIManager.shouldShowDataUseEndedSnackbar(
523 getApplicationContext()) 526 getApplicationContext())
524 && DataUseTabUIManager.checkAndResetDataUseTrackingEnded (tab)) { 527 && DataUseTabUIManager.checkAndResetDataUseTrackingEnded (tab)) {
525 mDataUseSnackbarController.showDataUseTrackingEndedBar(); 528 mDataUseSnackbarController.showDataUseTrackingEndedBar();
526 } 529 }
530 if (DataReductionProxySettings.getInstance().isSnackbarPromoAllo wed(tab.getUrl())) {
531 mDataReductionPromoSnackbarController.maybeShowDataReduction PromoSnackbar(
532 DataReductionProxySettings.getInstance()
533 .getTotalHttpContentLengthSaved());
534 }
gone 2016/10/13 01:03:10 What was the reasoning for putting all this non-pa
megjablon 2016/10/24 23:58:59 Done.
527 } 535 }
528 536
529 @Override 537 @Override
530 public void onShown(Tab tab) { 538 public void onShown(Tab tab) {
531 setStatusBarColor(tab, tab.getThemeColor()); 539 setStatusBarColor(tab, tab.getThemeColor());
532 } 540 }
533 541
534 @Override 542 @Override
535 public void onHidden(Tab tab) { 543 public void onHidden(Tab tab) {
536 mDataUseSnackbarController.dismissDataUseBar(); 544 mDataUseSnackbarController.dismissDataUseBar();
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 if (Build.VERSION.CODENAME.equals("N") || Build.VERSION.SDK_INT > Build. VERSION_CODES.M) { 973 if (Build.VERSION.CODENAME.equals("N") || Build.VERSION.SDK_INT > Build. VERSION_CODES.M) {
966 getWindow().setBackgroundDrawable(new ColorDrawable( 974 getWindow().setBackgroundDrawable(new ColorDrawable(
967 ApiCompatibilityUtils.getColor(getResources(), 975 ApiCompatibilityUtils.getColor(getResources(),
968 R.color.resizing_background_color))); 976 R.color.resizing_background_color)));
969 } else { 977 } else {
970 removeWindowBackground(); 978 removeWindowBackground();
971 } 979 }
972 DownloadManagerService.getDownloadManagerService( 980 DownloadManagerService.getDownloadManagerService(
973 getApplicationContext()).onActivityLaunched(); 981 getApplicationContext()).onActivityLaunched();
974 982
983 mDataReductionPromoSnackbarController = new DataReductionPromoSnackbarCo ntroller(this,
gone 2016/10/13 01:03:10 Does this need to be created if the snackbar promo
megjablon 2016/10/24 23:59:00 Done.
984 getSnackbarManager());
985
975 super.finishNativeInitialization(); 986 super.finishNativeInitialization();
976 } 987 }
977 988
978 /** 989 /**
979 * Called when the accessibility status of this device changes. This might be triggered by 990 * Called when the accessibility status of this device changes. This might be triggered by
980 * touch exploration or general accessibility status updates. It is an aggr egate of two other 991 * touch exploration or general accessibility status updates. It is an aggr egate of two other
981 * accessibility update methods. 992 * accessibility update methods.
982 * @see #onAccessibilityModeChanged(boolean) 993 * @see #onAccessibilityModeChanged(boolean)
983 * @see #onTouchExplorationStateChanged(boolean) 994 * @see #onTouchExplorationStateChanged(boolean)
984 * @param enabled Whether or not accessibility and touch exploration are cur rently enabled. 995 * @param enabled Whether or not accessibility and touch exploration are cur rently enabled.
(...skipping 851 matching lines...) Expand 10 before | Expand all | Expand 10 after
1836 "Android.MultiWindowMode.IsTabletScreenWidthBelow600", 1847 "Android.MultiWindowMode.IsTabletScreenWidthBelow600",
1837 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP); 1848 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP);
1838 1849
1839 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) { 1850 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) {
1840 RecordHistogram.recordLinearCountHistogram( 1851 RecordHistogram.recordLinearCountHistogram(
1841 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp, 1, 1852 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp, 1,
1842 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); 1853 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50);
1843 } 1854 }
1844 } 1855 }
1845 } 1856 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698