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.SearchManager; | 10 import android.app.SearchManager; |
11 import android.app.assist.AssistContent; | 11 import android.app.assist.AssistContent; |
12 import android.content.ActivityNotFoundException; | |
12 import android.content.Context; | 13 import android.content.Context; |
13 import android.content.Intent; | 14 import android.content.Intent; |
14 import android.content.res.Configuration; | 15 import android.content.res.Configuration; |
15 import android.graphics.Bitmap; | 16 import android.graphics.Bitmap; |
16 import android.graphics.Color; | 17 import android.graphics.Color; |
17 import android.graphics.Rect; | 18 import android.graphics.Rect; |
18 import android.graphics.drawable.ColorDrawable; | 19 import android.graphics.drawable.ColorDrawable; |
19 import android.graphics.drawable.Drawable; | 20 import android.graphics.drawable.Drawable; |
20 import android.net.Uri; | 21 import android.net.Uri; |
21 import android.os.Build; | 22 import android.os.Build; |
(...skipping 15 matching lines...) Expand all Loading... | |
37 import android.view.accessibility.AccessibilityManager; | 38 import android.view.accessibility.AccessibilityManager; |
38 import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeL istener; | 39 import android.view.accessibility.AccessibilityManager.AccessibilityStateChangeL istener; |
39 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChan geListener; | 40 import android.view.accessibility.AccessibilityManager.TouchExplorationStateChan geListener; |
40 | 41 |
41 import org.chromium.base.ActivityState; | 42 import org.chromium.base.ActivityState; |
42 import org.chromium.base.ApiCompatibilityUtils; | 43 import org.chromium.base.ApiCompatibilityUtils; |
43 import org.chromium.base.ApplicationStatus; | 44 import org.chromium.base.ApplicationStatus; |
44 import org.chromium.base.BaseSwitches; | 45 import org.chromium.base.BaseSwitches; |
45 import org.chromium.base.Callback; | 46 import org.chromium.base.Callback; |
46 import org.chromium.base.CommandLine; | 47 import org.chromium.base.CommandLine; |
48 import org.chromium.base.ContextUtils; | |
47 import org.chromium.base.SysUtils; | 49 import org.chromium.base.SysUtils; |
48 import org.chromium.base.TraceEvent; | 50 import org.chromium.base.TraceEvent; |
49 import org.chromium.base.VisibleForTesting; | 51 import org.chromium.base.VisibleForTesting; |
50 import org.chromium.base.metrics.RecordHistogram; | 52 import org.chromium.base.metrics.RecordHistogram; |
51 import org.chromium.base.metrics.RecordUserAction; | 53 import org.chromium.base.metrics.RecordUserAction; |
52 import org.chromium.chrome.R; | 54 import org.chromium.chrome.R; |
53 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; | 55 import org.chromium.chrome.browser.IntentHandler.IntentHandlerDelegate; |
54 import org.chromium.chrome.browser.IntentHandler.TabOpenType; | 56 import org.chromium.chrome.browser.IntentHandler.TabOpenType; |
55 import org.chromium.chrome.browser.appmenu.AppMenu; | 57 import org.chromium.chrome.browser.appmenu.AppMenu; |
56 import org.chromium.chrome.browser.appmenu.AppMenuHandler; | 58 import org.chromium.chrome.browser.appmenu.AppMenuHandler; |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
141 import org.chromium.content_public.browser.readback_types.ReadbackResponse; | 143 import org.chromium.content_public.browser.readback_types.ReadbackResponse; |
142 import org.chromium.policy.CombinedPolicyProvider; | 144 import org.chromium.policy.CombinedPolicyProvider; |
143 import org.chromium.policy.CombinedPolicyProvider.PolicyChangeListener; | 145 import org.chromium.policy.CombinedPolicyProvider.PolicyChangeListener; |
144 import org.chromium.printing.PrintManagerDelegateImpl; | 146 import org.chromium.printing.PrintManagerDelegateImpl; |
145 import org.chromium.printing.PrintingController; | 147 import org.chromium.printing.PrintingController; |
146 import org.chromium.printing.PrintingControllerImpl; | 148 import org.chromium.printing.PrintingControllerImpl; |
147 import org.chromium.ui.base.ActivityWindowAndroid; | 149 import org.chromium.ui.base.ActivityWindowAndroid; |
148 import org.chromium.ui.base.DeviceFormFactor; | 150 import org.chromium.ui.base.DeviceFormFactor; |
149 import org.chromium.ui.base.PageTransition; | 151 import org.chromium.ui.base.PageTransition; |
150 import org.chromium.ui.base.WindowAndroid; | 152 import org.chromium.ui.base.WindowAndroid; |
153 import org.chromium.ui.widget.Toast; | |
154 import org.chromium.webapk.lib.client.WebApkValidator; | |
151 | 155 |
152 import java.util.ArrayList; | 156 import java.util.ArrayList; |
153 import java.util.List; | 157 import java.util.List; |
154 import java.util.concurrent.TimeUnit; | 158 import java.util.concurrent.TimeUnit; |
155 | 159 |
156 import javax.annotation.Nullable; | 160 import javax.annotation.Nullable; |
157 | 161 |
158 /** | 162 /** |
159 * A {@link AsyncInitializationActivity} that builds and manages a {@link Compos itorViewHolder} | 163 * A {@link AsyncInitializationActivity} that builds and manages a {@link Compos itorViewHolder} |
160 * and associated classes. | 164 * and associated classes. |
(...skipping 1598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1759 && PrefServiceBridge.getInstance().isPrintingEnabled()) { | 1763 && PrefServiceBridge.getInstance().isPrintingEnabled()) { |
1760 printingController.startPrint(new TabPrinter(currentTab), | 1764 printingController.startPrint(new TabPrinter(currentTab), |
1761 new PrintManagerDelegateImpl(this)); | 1765 new PrintManagerDelegateImpl(this)); |
1762 RecordUserAction.record("MobileMenuPrint"); | 1766 RecordUserAction.record("MobileMenuPrint"); |
1763 } | 1767 } |
1764 } else if (id == R.id.add_to_homescreen_id) { | 1768 } else if (id == R.id.add_to_homescreen_id) { |
1765 AddToHomescreenManager addToHomescreenManager = | 1769 AddToHomescreenManager addToHomescreenManager = |
1766 new AddToHomescreenManager(this, currentTab); | 1770 new AddToHomescreenManager(this, currentTab); |
1767 addToHomescreenManager.start(); | 1771 addToHomescreenManager.start(); |
1768 RecordUserAction.record("MobileMenuAddToHomescreen"); | 1772 RecordUserAction.record("MobileMenuAddToHomescreen"); |
1773 } else if (id == R.id.open_webapk_id) { | |
1774 Context context = ContextUtils.getApplicationContext(); | |
1775 String packageName = WebApkValidator.queryWebApkPackage(context, cur rentTab.getUrl()); | |
1776 Intent launchIntent = | |
1777 context.getPackageManager().getLaunchIntentForPackage(packag eName); | |
1778 boolean launchFailed = false; | |
1779 if (launchIntent != null) { | |
1780 try { | |
1781 context.startActivity(launchIntent); | |
1782 RecordUserAction.record("MobileMenuOpenWebAPK"); | |
1783 } catch (ActivityNotFoundException e) { | |
1784 launchFailed = true; | |
dominickn
2017/02/23 05:53:55
Can you add another metric here to record the fail
gonzalon
2017/02/23 16:49:57
I added the actions. I'm unsure if the way I did i
| |
1785 } | |
1786 } else { | |
1787 launchFailed = true; | |
1788 } | |
1789 if (launchFailed) { | |
1790 Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGT H_SHORT).show(); | |
1791 } | |
1769 } else if (id == R.id.request_desktop_site_id) { | 1792 } else if (id == R.id.request_desktop_site_id) { |
1770 final boolean reloadOnChange = !currentTab.isNativePage(); | 1793 final boolean reloadOnChange = !currentTab.isNativePage(); |
1771 final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAg ent(); | 1794 final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAg ent(); |
1772 currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnCh ange); | 1795 currentTab.setUseDesktopUserAgent(!usingDesktopUserAgent, reloadOnCh ange); |
1773 RecordUserAction.record("MobileMenuRequestDesktopSite"); | 1796 RecordUserAction.record("MobileMenuRequestDesktopSite"); |
1774 } else if (id == R.id.reader_mode_prefs_id) { | 1797 } else if (id == R.id.reader_mode_prefs_id) { |
1775 if (currentTab.getWebContents() != null) { | 1798 if (currentTab.getWebContents() != null) { |
1776 RecordUserAction.record("DomDistiller_DistilledPagePrefsOpened") ; | 1799 RecordUserAction.record("DomDistiller_DistilledPagePrefsOpened") ; |
1777 AlertDialog.Builder builder = | 1800 AlertDialog.Builder builder = |
1778 new AlertDialog.Builder(this, R.style.AlertDialogTheme); | 1801 new AlertDialog.Builder(this, R.style.AlertDialogTheme); |
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2010 "Android.MultiWindowMode.IsTabletScreenWidthBelow600", | 2033 "Android.MultiWindowMode.IsTabletScreenWidthBelow600", |
2011 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP); | 2034 mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP); |
2012 | 2035 |
2013 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) { | 2036 if (mScreenWidthDp < DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP) { |
2014 RecordHistogram.recordLinearCountHistogram( | 2037 RecordHistogram.recordLinearCountHistogram( |
2015 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp, 1, | 2038 "Android.MultiWindowMode.TabletScreenWidth", mScreenWidthDp, 1, |
2016 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); | 2039 DeviceFormFactor.MINIMUM_TABLET_WIDTH_DP, 50); |
2017 } | 2040 } |
2018 } | 2041 } |
2019 } | 2042 } |
OLD | NEW |