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

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..3ed07ddbefa6f9dcd0598b8705fcf0fbc0ca6e27 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,8 @@ 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.Log;
import org.chromium.base.SysUtils;
import org.chromium.base.TraceEvent;
import org.chromium.base.VisibleForTesting;
@@ -148,6 +151,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 +1771,20 @@ 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);
+ if (launchIntent != null) {
+ try {
+ context.startActivity(launchIntent);
+ RecordUserAction.record("MobileMenuOpenWebAPK");
pkotwicz 2017/02/22 16:50:19 You need to add "MobileMenuOpenWebAPK" in tools/me
gonzalon 2017/02/22 17:17:40 Done.
+ } catch (ActivityNotFoundException e) {
+ Log.e(TAG, "Failed to open WebAPK: %s", packageName, e);
pkotwicz 2017/02/22 16:50:19 I don't think that this log is useful.
gonzalon 2017/02/22 17:17:40 Done.
+ Toast.makeText(context, R.string.open_webapk_failed, Toast.LENGTH_SHORT).show();
+ }
+ }
pkotwicz 2017/02/22 16:50:19 Shouldn't we show a toast in the else case?
gonzalon 2017/02/22 17:17:40 Done.
} 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