Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| index 1e8816779e1bb3be30af768b3f5727e21768e25a..2e4e58f635d227f9f8c6eea21c1e1409eb43a0ea 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java |
| @@ -97,6 +97,8 @@ import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
| import org.chromium.chrome.browser.omaha.UpdateMenuItemHelper; |
| import org.chromium.chrome.browser.pageinfo.WebsiteSettingsPopup; |
| import org.chromium.chrome.browser.partnercustomizations.PartnerBrowserCustomizations; |
| +import org.chromium.chrome.browser.physicalweb.PhysicalWeb; |
| +import org.chromium.chrome.browser.physicalweb.PhysicalWebShareActivity; |
| import org.chromium.chrome.browser.preferences.ChromePreferenceManager; |
| import org.chromium.chrome.browser.preferences.PrefServiceBridge; |
| import org.chromium.chrome.browser.preferences.PreferencesLauncher; |
| @@ -1139,10 +1141,9 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
| final Tab currentTab = getActivityTab(); |
| if (currentTab == null) return; |
| - PrintingController printingController = PrintingControllerImpl.getInstance(); |
| - if (printingController != null && !currentTab.isNativePage() && !printingController.isBusy() |
| - && PrefServiceBridge.getInstance().isPrintingEnabled()) { |
| - PrintShareActivity.enablePrintShareOption(this, new Runnable() { |
| + List<Class> options = getAdditionalShareOptionsList(currentTab); |
| + if (!options.isEmpty()) { |
| + ShareHelper.enableOptions(this, options, new Runnable() { |
| @Override |
| public void run() { |
| triggerShare(currentTab, shareDirectly, isIncognito); |
| @@ -1154,6 +1155,25 @@ public abstract class ChromeActivity extends AsyncInitializationActivity |
| triggerShare(currentTab, shareDirectly, isIncognito); |
| } |
| + public static List<Class> getAdditionalShareOptionsList(Tab currentTab) { |
|
cco3
2017/02/02 00:58:57
How do you know that this will give you the same v
iankc
2017/02/02 01:52:24
Done.
|
| + List<Class> options = new ArrayList<Class>(2); |
| + |
| + // Check and handle Printing option. |
| + PrintingController printingController = PrintingControllerImpl.getInstance(); |
| + if (printingController != null && (currentTab == null || !currentTab.isNativePage()) |
| + && !printingController.isBusy() |
| + && PrefServiceBridge.getInstance().isPrintingEnabled()) { |
| + options.add(PrintShareActivity.class); |
| + } |
| + |
| + // Check and handle Physical Web Sharing. |
| + if (PhysicalWeb.sharingIsEnabled() |
| + && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { |
| + options.add(PhysicalWebShareActivity.class); |
| + } |
| + return options; |
| + } |
| + |
| private void triggerShare( |
| final Tab currentTab, final boolean shareDirectly, boolean isIncognito) { |
| final Activity mainActivity = this; |