OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |