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

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 d0bca3b432841078a8fbf9b2e134d8d3868257ac..a1b6c156ec8efd90ad2b3ce7505701695f29652f 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;
@@ -148,6 +150,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.List;
@@ -1766,6 +1770,27 @@ 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.Success");
+ } catch (ActivityNotFoundException e) {
+ RecordUserAction.record("MobileMenuOpenWebAPK.WebAPKActivityNotFound");
+ launchFailed = true;
+ }
+ } else {
+ RecordUserAction.record("MobileMenuOpenWebAPK.LaunchIntentIsNull");
+ launchFailed = true;
+ }
pkotwicz 2017/02/23 20:46:17 There are two different metrics: 1) The user actio
dominickn 2017/02/24 05:21:25 +1, except maybe call it LAUNCH_SUCCESS instead of
gonzalon 2017/02/24 16:02:58 Done.
+ 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