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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java

Issue 2707993003: [Android]: Hide add-to-homescreen app menu item when WebAPK is installed (Closed)
Patch Set: Add new state for 'Add to Homescreen' Menu item Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
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 ebeb3e7257f3ffeba044cded0b0b853b9198c210..f105eefc1a4bead3ae112753a2c180829c132e61 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -9,6 +9,7 @@ import android.annotation.TargetApi;
import android.app.Activity;
import android.app.SearchManager;
import android.app.assist.AssistContent;
+import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.content.res.Configuration;
@@ -44,6 +45,7 @@ import org.chromium.base.ApplicationStatus;
import org.chromium.base.BaseSwitches;
import org.chromium.base.Callback;
import org.chromium.base.CommandLine;
+import org.chromium.base.ContextUtils;
import org.chromium.base.SysUtils;
import org.chromium.base.TraceEvent;
import org.chromium.base.VisibleForTesting;
@@ -87,6 +89,7 @@ import org.chromium.chrome.browser.metrics.LaunchMetrics;
import org.chromium.chrome.browser.metrics.StartupMetrics;
import org.chromium.chrome.browser.metrics.UmaSessionStats;
import org.chromium.chrome.browser.metrics.UmaUtils;
+import org.chromium.chrome.browser.metrics.WebApkUma;
import org.chromium.chrome.browser.multiwindow.MultiWindowUtils;
import org.chromium.chrome.browser.net.spdyproxy.DataReductionProxySettings;
import org.chromium.chrome.browser.nfc.BeamController;
@@ -150,6 +153,8 @@ import org.chromium.ui.base.ActivityWindowAndroid;
import org.chromium.ui.base.DeviceFormFactor;
import org.chromium.ui.base.PageTransition;
import org.chromium.ui.base.WindowAndroid;
+import org.chromium.ui.widget.Toast;
+import org.chromium.webapk.lib.client.WebApkValidator;
import java.util.ArrayList;
import java.util.HashSet;
@@ -1795,6 +1800,28 @@ public abstract class ChromeActivity extends AsyncInitializationActivity
new AddToHomescreenManager(this, currentTab);
addToHomescreenManager.start();
RecordUserAction.record("MobileMenuAddToHomescreen");
+ } else if (id == R.id.open_webapk_id) {
+ Context context = ContextUtils.getApplicationContext();
+ String packageName = WebApkValidator.queryWebApkPackage(context, currentTab.getUrl());
+ Intent launchIntent =
+ context.getPackageManager().getLaunchIntentForPackage(packageName);
+ boolean launchFailed = false;
+ if (launchIntent != null) {
+ try {
+ context.startActivity(launchIntent);
+ RecordUserAction.record("MobileMenuOpenWebApk");
+ WebApkUma.recordWebApkOpenAttempt(WebApkUma.WEBAPK_OPEN_LAUNCH_SUCCESS);
+ } catch (ActivityNotFoundException e) {
+ WebApkUma.recordWebApkOpenAttempt(WebApkUma.WEBAPK_OPEN_ACTIVITY_NOT_FOUND);
+ launchFailed = true;
+ }
+ } else {
+ WebApkUma.recordWebApkOpenAttempt(WebApkUma.WEBAPK_OPEN_NO_LAUNCH_INTENT);
+ launchFailed = true;
+ }
+ if (launchFailed) {
+ Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show();
+ }
} else if (id == R.id.request_desktop_site_id) {
final boolean reloadOnChange = !currentTab.isNativePage();
final boolean usingDesktopUserAgent = currentTab.getUseDesktopUserAgent();

Powered by Google App Engine
This is Rietveld 408576698