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; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 545 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 | 610 |
610 @Override | 611 @Override |
611 public void onStart() { | 612 public void onStart() { |
612 super.onStart(); | 613 super.onStart(); |
613 StartupMetrics.getInstance().updateIntent(getIntent()); | 614 StartupMetrics.getInstance().updateIntent(getIntent()); |
614 } | 615 } |
615 | 616 |
616 @Override | 617 @Override |
617 public void onStartWithNative() { | 618 public void onStartWithNative() { |
618 super.onStartWithNative(); | 619 super.onStartWithNative(); |
619 // If we don't have a current tab, show the overview mode. | 620 |
620 if (getActivityTab() == null && !mLayoutManager.overviewVisible()) { | 621 setInitialOverviewState(); |
621 mLayoutManager.showOverview(false); | 622 BrowserActionsContextMenuItemDelegate.cancelBrowserActionsNotification()
; |
622 } | |
623 | 623 |
624 resetSavedInstanceState(); | 624 resetSavedInstanceState(); |
625 } | 625 } |
626 | 626 |
627 @Override | 627 @Override |
628 public void onNewIntentWithNative(Intent intent) { | 628 public void onNewIntentWithNative(Intent intent) { |
629 try { | 629 try { |
630 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative"); | 630 TraceEvent.begin("ChromeTabbedActivity.onNewIntentWithNative"); |
631 | 631 |
632 super.onNewIntentWithNative(intent); | 632 super.onNewIntentWithNative(intent); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
666 | 666 |
667 private void handleDebugIntent(Intent intent) { | 667 private void handleDebugIntent(Intent intent) { |
668 if (ACTION_CLOSE_TABS.equals(intent.getAction())) { | 668 if (ACTION_CLOSE_TABS.equals(intent.getAction())) { |
669 getTabModelSelector().closeAllTabs(); | 669 getTabModelSelector().closeAllTabs(); |
670 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity
.this, | 670 } else if (MemoryPressureListener.handleDebugIntent(ChromeTabbedActivity
.this, |
671 intent.getAction())) { | 671 intent.getAction())) { |
672 // Handled. | 672 // Handled. |
673 } | 673 } |
674 } | 674 } |
675 | 675 |
| 676 private void setInitialOverviewState() { |
| 677 boolean isOverviewVisible = mLayoutManager.overviewVisible(); |
| 678 if (getActivityTab() == null && !isOverviewVisible) { |
| 679 toggleOverview(); |
| 680 } |
| 681 |
| 682 if (BrowserActionsContextMenuItemDelegate.toggleOverviewByBrowserActions
( |
| 683 getIntent(), isOverviewVisible)) { |
| 684 toggleOverview(); |
| 685 } |
| 686 } |
| 687 |
676 private void initializeUI() { | 688 private void initializeUI() { |
677 try { | 689 try { |
678 TraceEvent.begin("ChromeTabbedActivity.initializeUI"); | 690 TraceEvent.begin("ChromeTabbedActivity.initializeUI"); |
679 | 691 |
680 CompositorViewHolder compositorViewHolder = getCompositorViewHolder(
); | 692 CompositorViewHolder compositorViewHolder = getCompositorViewHolder(
); |
681 if (DeviceFormFactor.isTablet()) { | 693 if (DeviceFormFactor.isTablet()) { |
682 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol
der); | 694 mLayoutManager = new LayoutManagerChromeTablet(compositorViewHol
der); |
683 } else { | 695 } else { |
684 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold
er); | 696 mLayoutManager = new LayoutManagerChromePhone(compositorViewHold
er); |
685 if (getBottomSheet() != null) { | 697 if (getBottomSheet() != null) { |
(...skipping 1130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1816 null, | 1828 null, |
1817 intent); | 1829 intent); |
1818 } else { | 1830 } else { |
1819 return getTabCreator(false).launchUrlFromExternalApp(url, referer, h
eaders, | 1831 return getTabCreator(false).launchUrlFromExternalApp(url, referer, h
eaders, |
1820 externalAppId, forceNewTab, intent, mIntentHandlingTimeMs); | 1832 externalAppId, forceNewTab, intent, mIntentHandlingTimeMs); |
1821 } | 1833 } |
1822 } | 1834 } |
1823 | 1835 |
1824 private void toggleOverview() { | 1836 private void toggleOverview() { |
1825 Tab currentTab = getActivityTab(); | 1837 Tab currentTab = getActivityTab(); |
1826 ContentViewCore contentViewCore = | 1838 // If we don't have a current tab, show the overview mode. |
1827 currentTab != null ? currentTab.getContentViewCore() : null; | 1839 if (currentTab == null) { |
| 1840 mLayoutManager.showOverview(false); |
| 1841 return; |
| 1842 } |
| 1843 ContentViewCore contentViewCore = currentTab.getContentViewCore(); |
1828 | 1844 |
1829 if (!mLayoutManager.overviewVisible()) { | 1845 if (!mLayoutManager.overviewVisible()) { |
1830 getCompositorViewHolder().hideKeyboard(new Runnable() { | 1846 getCompositorViewHolder().hideKeyboard(new Runnable() { |
1831 @Override | 1847 @Override |
1832 public void run() { | 1848 public void run() { |
1833 mLayoutManager.showOverview(true); | 1849 mLayoutManager.showOverview(true); |
1834 } | 1850 } |
1835 }); | 1851 }); |
1836 if (contentViewCore != null) { | 1852 if (contentViewCore != null) { |
1837 contentViewCore.setAccessibilityState(false); | 1853 contentViewCore.setAccessibilityState(false); |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2142 if (info.id == sMergedInstanceTaskId) return true; | 2158 if (info.id == sMergedInstanceTaskId) return true; |
2143 } | 2159 } |
2144 return false; | 2160 return false; |
2145 } | 2161 } |
2146 | 2162 |
2147 @Override | 2163 @Override |
2148 public boolean supportsFullscreenActivity() { | 2164 public boolean supportsFullscreenActivity() { |
2149 return true; | 2165 return true; |
2150 } | 2166 } |
2151 } | 2167 } |
OLD | NEW |