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

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 comment and rebase 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
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;
11 import android.app.ActivityManager.AppTask; 11 import android.app.ActivityManager.AppTask;
12 import android.app.ActivityManager.RecentTaskInfo; 12 import android.app.ActivityManager.RecentTaskInfo;
13 import android.app.NotificationManager;
13 import android.content.Context; 14 import android.content.Context;
14 import android.content.Intent; 15 import android.content.Intent;
15 import android.content.pm.PackageManager; 16 import android.content.pm.PackageManager;
16 import android.content.pm.ShortcutManager; 17 import android.content.pm.ShortcutManager;
17 import android.graphics.Color; 18 import android.graphics.Color;
18 import android.os.Build; 19 import android.os.Build;
19 import android.os.Bundle; 20 import android.os.Bundle;
20 import android.os.SystemClock; 21 import android.os.SystemClock;
21 import android.support.annotation.IntDef; 22 import android.support.annotation.IntDef;
22 import android.support.annotation.Nullable; 23 import android.support.annotation.Nullable;
(...skipping 21 matching lines...) Expand all
44 import org.chromium.base.TraceEvent; 45 import org.chromium.base.TraceEvent;
45 import org.chromium.base.VisibleForTesting; 46 import org.chromium.base.VisibleForTesting;
46 import org.chromium.base.library_loader.LibraryLoader; 47 import org.chromium.base.library_loader.LibraryLoader;
47 import org.chromium.base.metrics.RecordHistogram; 48 import org.chromium.base.metrics.RecordHistogram;
48 import org.chromium.base.metrics.RecordUserAction; 49 import org.chromium.base.metrics.RecordUserAction;
49 import org.chromium.chrome.R; 50 import org.chromium.chrome.R;
50 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; 51 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate;
51 import org.chromium.chrome.browser.IntentHandler.TabOpenType; 52 import org.chromium.chrome.browser.IntentHandler.TabOpenType;
52 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate; 53 import org.chromium.chrome.browser.appmenu.AppMenuPropertiesDelegate;
53 import org.chromium.chrome.browser.bookmarks.BookmarkUtils; 54 import org.chromium.chrome.browser.bookmarks.BookmarkUtils;
55 import org.chromium.chrome.browser.browseractions.BrowserActionsContextMenuItemD elegate;
54 import org.chromium.chrome.browser.compositor.CompositorViewHolder; 56 import org.chromium.chrome.browser.compositor.CompositorViewHolder;
55 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason; 57 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel.StateChange Reason;
56 import org.chromium.chrome.browser.compositor.layouts.Layout; 58 import org.chromium.chrome.browser.compositor.layouts.Layout;
57 import org.chromium.chrome.browser.compositor.layouts.LayoutManager; 59 import org.chromium.chrome.browser.compositor.layouts.LayoutManager;
58 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome; 60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChrome;
59 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone; 61 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromePhone;
60 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet; 62 import org.chromium.chrome.browser.compositor.layouts.LayoutManagerChromeTablet;
61 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver; 63 import org.chromium.chrome.browser.compositor.layouts.OverviewModeBehavior.Overv iewModeObserver;
62 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout; 64 import org.chromium.chrome.browser.compositor.layouts.phone.StackLayout;
63 import org.chromium.chrome.browser.cookies.CookiesFetcher; 65 import org.chromium.chrome.browser.cookies.CookiesFetcher;
(...skipping 12 matching lines...) Expand all
76 import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar; 78 import org.chromium.chrome.browser.infobar.DataReductionPromoInfoBar;
77 import org.chromium.chrome.browser.locale.LocaleManager; 79 import org.chromium.chrome.browser.locale.LocaleManager;
78 import org.chromium.chrome.browser.metrics.ActivityStopMetrics; 80 import org.chromium.chrome.browser.metrics.ActivityStopMetrics;
79 import org.chromium.chrome.browser.metrics.LaunchMetrics; 81 import org.chromium.chrome.browser.metrics.LaunchMetrics;
80 import org.chromium.chrome.browser.metrics.MainIntentBehaviorMetrics; 82 import org.chromium.chrome.browser.metrics.MainIntentBehaviorMetrics;
81 import org.chromium.chrome.browser.metrics.StartupMetrics; 83 import org.chromium.chrome.browser.metrics.StartupMetrics;
82 import org.chromium.chrome.browser.metrics.UmaUtils; 84 import org.chromium.chrome.browser.metrics.UmaUtils;
83 import org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity ; 85 import org.chromium.chrome.browser.multiwindow.MultiInstanceChromeTabbedActivity ;
84 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; 86 import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
85 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings; 87 import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
88 import org.chromium.chrome.browser.notifications.NotificationConstants;
86 import org.chromium.chrome.browser.ntp.ChromeHomeNewTabPage; 89 import org.chromium.chrome.browser.ntp.ChromeHomeNewTabPage;
87 import org.chromium.chrome.browser.ntp.NativePageAssassin; 90 import org.chromium.chrome.browser.ntp.NativePageAssassin;
88 import org.chromium.chrome.browser.ntp.NewTabPage; 91 import org.chromium.chrome.browser.ntp.NewTabPage;
89 import org.chromium.chrome.browser.ntp.NewTabPageUma; 92 import org.chromium.chrome.browser.ntp.NewTabPageUma;
90 import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; 93 import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge;
91 import org.chromium.chrome.browser.omaha.OmahaBase; 94 import org.chromium.chrome.browser.omaha.OmahaBase;
92 import org.chromium.chrome.browser.omnibox.AutocompleteController; 95 import org.chromium.chrome.browser.omnibox.AutocompleteController;
93 import org.chromium.chrome.browser.partnercustomizations.HomepageManager; 96 import org.chromium.chrome.browser.partnercustomizations.HomepageManager;
94 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions; 97 import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomiza tions;
95 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; 98 import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
(...skipping 462 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 @Override 561 @Override
559 public void onStart() { 562 public void onStart() {
560 super.onStart(); 563 super.onStart();
561 StartupMetrics.getInstance().updateIntent(getIntent()); 564 StartupMetrics.getInstance().updateIntent(getIntent());
562 } 565 }
563 566
564 @Override 567 @Override
565 public void onStartWithNative() { 568 public void onStartWithNative() {
566 super.onStartWithNative(); 569 super.onStartWithNative();
567 // If we don't have a current tab, show the overview mode. 570 // If we don't have a current tab, show the overview mode.
568 if (getActivityTab() == null) mLayoutManager.showOverview(false); 571 if (getActivityTab() == null) mLayoutManager.showOverview(false);
David Trainor- moved to gerrit 2017/05/17 16:48:01 Can you add {} around this now?
ltian 2017/05/19 21:02:47 Done.
572 else if (isStartedByBrowserActions() && shouldToggleOverview()) {
573 toggleOverview();
574 }
575 cancelBrowserActionsNotification();
David Trainor- moved to gerrit 2017/05/17 16:48:02 Can this hit a static method on that delegate or s
ltian 2017/05/19 21:02:47 Done.
569 576
570 resetSavedInstanceState(); 577 resetSavedInstanceState();
571 } 578 }
572 579
573 @Override 580 @Override
574 public void onNewIntentWithNative(Intent intent) { 581 public void onNewIntentWithNative(Intent intent) {
575 try { 582 try {
576 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative"); 583 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative");
577 584
578 super.onNewIntentWithNative(intent); 585 super.onNewIntentWithNative(intent);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
612 619
613 private void handleDebugIntent(Intent intent) { 620 private void handleDebugIntent(Intent intent) {
614 if (ACTION_CLOSE_TABS.equals(intent.getAction())) { 621 if (ACTION_CLOSE_TABS.equals(intent.getAction())) {
615 getTabModelSelector().closeAllTabs(); 622 getTabModelSelector().closeAllTabs();
616 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this, 623 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity .this,
617 intent.getAction())) { 624 intent.getAction())) {
618 // Handled. 625 // Handled.
619 } 626 }
620 } 627 }
621 628
629 private void cancelBrowserActionsNotification() {
630 NotificationManager notificationManager =
631 (NotificationManager) getSystemService(Context.NOTIFICATION_SERV ICE);
632 notificationManager.cancel(NotificationConstants.NOTIFICATION_ID_BROWSER _ACTIONS);
633 }
634
635 private boolean isStartedByBrowserActions() {
636 if (BrowserActionsContextMenuItemDelegate.ACTION_BROWSER_ACTIONS_OPEN_IN _BACKGROUND.equals(
637 getIntent().getAction())) {
638 return true;
639 }
640 return false;
641 }
642
643 private boolean shouldToggleOverview() {
David Trainor- moved to gerrit 2017/05/17 16:48:01 Can we just call this setInitialOverviewState() an
ltian 2017/05/19 21:02:47 Done.
644 boolean isSingleUrl = IntentUtils.safeGetBooleanExtra(
645 getIntent(), BrowserActionsContextMenuItemDelegate.EXTRA_IS_SING LE_URL, false);
646 if (isSingleUrl && mLayoutManager.overviewVisible()) {
647 return true;
648 } else if (!isSingleUrl && !mLayoutManager.overviewVisible()) {
649 return true;
650 }
651 return false;
652 }
653
622 private void initializeUI() { 654 private void initializeUI() {
623 try { 655 try {
624 TraceEvent.begin("ChromeTabbedActivity.initializeUI"); 656 TraceEvent.begin("ChromeTabbedActivity.initializeUI");
625 657
626 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( ); 658 CompositorViewHolder compositorViewHolder = getCompositorViewHolder( );
627 if (DeviceFormFactor.isTablet(this)) { 659 if (DeviceFormFactor.isTablet(this)) {
628 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der); 660 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol der);
629 } else { 661 } else {
630 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er); 662 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold er);
631 } 663 }
(...skipping 1407 matching lines...) Expand 10 before | Expand all | Expand 10 after
2039 if (info.id == sMergedInstanceTaskId) return true; 2071 if (info.id == sMergedInstanceTaskId) return true;
2040 } 2072 }
2041 return false; 2073 return false;
2042 } 2074 }
2043 2075
2044 @Override 2076 @Override
2045 public boolean supportsFullscreenActivity() { 2077 public boolean supportsFullscreenActivity() {
2046 return true; 2078 return true;
2047 } 2079 }
2048 } 2080 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698