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

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

Issue 2876863002: [Android] Show notification for opening new tab in background of Browser Actions (Closed)
Patch Set: Update based on David's comments. Created 3 years, 7 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
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionsContextMenuItemDelegate.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.ActivityManager; 10 import android.app.ActivityManager;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 import org.chromium.base.TraceEvent; 44 import org.chromium.base.TraceEvent;
45 import org.chromium.base.VisibleForTesting; 45 import org.chromium.base.VisibleForTesting;
46 import org.chromium.base.library_loader.LibraryLoader; 46 import org.chromium.base.library_loader.LibraryLoader;
47 import org.chromium.base.metrics.RecordHistogram; 47 import org.chromium.base.metrics.RecordHistogram;
48 import org.chromium.base.metrics.RecordUserAction; 48 import org.chromium.base.metrics.RecordUserAction;
49 import org.chromium.chrome.R; 49 import org.chromium.chrome.R;
50 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; 50 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
51 import org.chromium.chrome.browser.IntentHandler.TabOpenType; 51 import org.chromium.chrome.browser.IntentHandler.TabOpenType;
52 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; 52 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate;
53 import org.chromium.chrome.browser.bookmarks.BookmarkUtils; 53 import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
54 import org.chromium.chrome.browser.browseractions.BrowserActionsContextMenuItemD elegate;
54 import org.chromium.chrome.browser.compositor.CompositorViewHolder; 55 import org.chromium.chrome.browser.compositor.CompositorViewHolder;
55 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason; 56 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason;
56 import org.chromium.chrome.browser.compositor.layouts.Layout; 57 import org.chromium.chrome.browser.compositor.layouts.Layout;
57 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; 58 import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
58 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; 59 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
59 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; 60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet; 61 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet;
61 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver; 62 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver;
62 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout; 63 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout;
63 import org.chromium.chrome.browser.cookies.CookiesFetcher; 64 import org.chromium.chrome.browser.cookies.CookiesFetcher;
(...skipping 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 582
582 @Override 583 @Override
583 public void onStart() { 584 public void onStart() {
584 super.onStart(); 585 super.onStart();
585 StartupMetrics.getInstance().updateIntent(getIntent()); 586 StartupMetrics.getInstance().updateIntent(getIntent());
586 } 587 }
587 588
588 @Override 589 @Override
589 public void onStartWithNative() { 590 public void onStartWithNative() {
590 super.onStartWithNative(); 591 super.onStartWithNative();
591 // If we don't have a current tab, show the overview mode. 592 setInitialOverviewState();
592 if (getActivityTab() == null) mLayoutManager.showOverview(false); 593 BrowserActionsContextMenuItemDelegate.cancelBrowserActionsNotification() ;
593 594
594 resetSavedInstanceState(); 595 resetSavedInstanceState();
595 } 596 }
596 597
597 @Override 598 @Override
598 public void onNewIntentWithNative(Intent intent) { 599 public void onNewIntentWithNative(Intent intent) {
599 try { 600 try {
600 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative"); 601 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative");
601 602
602 super.onNewIntentWithNative(intent); 603 super.onNewIntentWithNative(intent);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 637
637 private void handleDebugIntent(Intent intent) { 638 private void handleDebugIntent(Intent intent) {
638 if (ACTION_CLOSE_TABS.equals(intent.getAction())) { 639 if (ACTION_CLOSE_TABS.equals(intent.getAction())) {
639 getTabModelSelector().closeAllTabs(); 640 getTabModelSelector().closeAllTabs();
640 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this, 641 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this,
641 intent.getAction())) { 642 intent.getAction())) {
642 // Handled. 643 // Handled.
643 } 644 }
644 } 645 }
645 646
647 private boolean isStartedByBrowserActions() {
648 if (BrowserActionsContextMenuItemDelegate.ACTION_BROWSER_ACTIONS_OPEN_IN _BACKGROUND.equals(
649 getIntent().getAction())) {
650 return true;
651 }
652 return false;
653 }
654
655 private void setInitialOverviewState() {
656 boolean isOverviewVisible = mLayoutManager.overviewVisible();
657 if (getActivityTab() == null && !isOverviewVisible) {
658 toggleOverview();
659 }
660
661 boolean fromBrowserActions = isStartedByBrowserActions();
662 boolean isSingleUrl = IntentUtils.safeGetBooleanExtra(
663 getIntent(), BrowserActionsContextMenuItemDelegate.EXTRA_IS_SING LE_URL, false);
664 if (fromBrowserActions) {
665 if ((isSingleUrl && isOverviewVisible) || (!isSingleUrl && !isOvervi ewVisible)) {
David Trainor- moved to gerrit 2017/05/25 17:23:28 Is this the same as "if (isSingleUrl == isOverview
ltian 2017/05/26 18:12:58 Done.
666 toggleOverview();
667 }
668 }
669 }
670
646 private void initializeUI() { 671 private void initializeUI() {
647 try { 672 try {
648 TraceEvent.begin("ChromeTabbedActivity.initializeUI"); 673 TraceEvent.begin("ChromeTabbedActivity.initializeUI");
649 674
650 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( ); 675 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( );
651 if (DeviceFormFactor.isTablet()) { 676 if (DeviceFormFactor.isTablet()) {
652 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der); 677 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der);
653 } else { 678 } else {
654 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er); 679 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er);
655 } 680 }
(...skipping 1120 matching lines...) Expand 10 before | Expand all | Expand 10 after
1776 null, 1801 null,
1777 intent); 1802 intent);
1778 } else { 1803 } else {
1779 return getTabCreator(false).launchUrlFromExternalApp(url, referer, h eaders, 1804 return getTabCreator(false).launchUrlFromExternalApp(url, referer, h eaders,
1780 externalAppId, forceNewTab, intent, mIntentHandlingTimeMs); 1805 externalAppId, forceNewTab, intent, mIntentHandlingTimeMs);
1781 } 1806 }
1782 } 1807 }
1783 1808
1784 private void toggleOverview() { 1809 private void toggleOverview() {
1785 Tab currentTab = getActivityTab(); 1810 Tab currentTab = getActivityTab();
1811 // If we don't have a current tab, show the overview mode.
1812 if (currentTab == null) {
1813 mLayoutManager.showOverview(false);
1814 return;
1815 }
1786 ContentViewCore contentViewCore = 1816 ContentViewCore contentViewCore =
1787 currentTab != null ? currentTab.getContentViewCore() : null; 1817 currentTab != null ? currentTab.getContentViewCore() : null;
1788 1818
1789 if (!mLayoutManager.overviewVisible()) { 1819 if (!mLayoutManager.overviewVisible()) {
1790 getCompositorViewHolder().hideKeyboard(new Runnable() { 1820 getCompositorViewHolder().hideKeyboard(new Runnable() {
1791 @Override 1821 @Override
1792 public void run() { 1822 public void run() {
1793 mLayoutManager.showOverview(true); 1823 mLayoutManager.showOverview(true);
1794 } 1824 }
1795 }); 1825 });
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
2111 2141
2112 private boolean shouldCreateNewTabsUsingBottomSheet() { 2142 private boolean shouldCreateNewTabsUsingBottomSheet() {
2113 if (mShouldCreateNewTabsUsingBottomSheet == null) { 2143 if (mShouldCreateNewTabsUsingBottomSheet == null) {
2114 mShouldCreateNewTabsUsingBottomSheet = getBottomSheet() != null 2144 mShouldCreateNewTabsUsingBottomSheet = getBottomSheet() != null
2115 && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME _NTP_REDESIGN); 2145 && ChromeFeatureList.isEnabled(ChromeFeatureList.CHROME_HOME _NTP_REDESIGN);
2116 } 2146 }
2117 2147
2118 return mShouldCreateNewTabsUsingBottomSheet; 2148 return mShouldCreateNewTabsUsingBottomSheet;
2119 } 2149 }
2120 } 2150 }
OLDNEW
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/browseractions/BrowserActionsContextMenuItemDelegate.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698