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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/ShortcutHelper.java

Issue 2629573004: Add a chrome://webapks page. (Closed)
Patch Set: Add a chrome://webapks page. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.app.ActivityManager; 8 import android.app.ActivityManager;
9 import android.content.Context; 9 import android.content.Context;
10 import android.content.Intent; 10 import android.content.Intent;
11 import android.content.pm.ApplicationInfo; 11 import android.content.pm.ApplicationInfo;
12 import android.content.pm.PackageInfo;
12 import android.content.pm.PackageManager; 13 import android.content.pm.PackageManager;
13 import android.content.pm.PackageManager.NameNotFoundException; 14 import android.content.pm.PackageManager.NameNotFoundException;
14 import android.content.pm.ResolveInfo; 15 import android.content.pm.ResolveInfo;
15 import android.graphics.Bitmap; 16 import android.graphics.Bitmap;
16 import android.graphics.BitmapFactory; 17 import android.graphics.BitmapFactory;
17 import android.graphics.Canvas; 18 import android.graphics.Canvas;
18 import android.graphics.Color; 19 import android.graphics.Color;
19 import android.graphics.Paint; 20 import android.graphics.Paint;
20 import android.graphics.Rect; 21 import android.graphics.Rect;
21 import android.graphics.drawable.BitmapDrawable; 22 import android.graphics.drawable.BitmapDrawable;
22 import android.graphics.drawable.Drawable; 23 import android.graphics.drawable.Drawable;
23 import android.net.Uri; 24 import android.net.Uri;
24 import android.os.AsyncTask; 25 import android.os.AsyncTask;
26 import android.support.annotation.NonNull;
25 import android.text.TextUtils; 27 import android.text.TextUtils;
26 import android.util.Base64; 28 import android.util.Base64;
27 29
28 import org.chromium.base.ApiCompatibilityUtils; 30 import org.chromium.base.ApiCompatibilityUtils;
29 import org.chromium.base.ContextUtils; 31 import org.chromium.base.ContextUtils;
30 import org.chromium.base.Log; 32 import org.chromium.base.Log;
31 import org.chromium.base.ThreadUtils; 33 import org.chromium.base.ThreadUtils;
32 import org.chromium.base.VisibleForTesting; 34 import org.chromium.base.VisibleForTesting;
33 import org.chromium.base.annotations.CalledByNative; 35 import org.chromium.base.annotations.CalledByNative;
34 import org.chromium.blink_public.platform.WebDisplayMode; 36 import org.chromium.blink_public.platform.WebDisplayMode;
35 import org.chromium.chrome.R; 37 import org.chromium.chrome.R;
36 import org.chromium.chrome.browser.webapps.ChromeWebApkHost; 38 import org.chromium.chrome.browser.webapps.ChromeWebApkHost;
39 import org.chromium.chrome.browser.webapps.WebApkInfo;
37 import org.chromium.chrome.browser.webapps.WebappActivity; 40 import org.chromium.chrome.browser.webapps.WebappActivity;
38 import org.chromium.chrome.browser.webapps.WebappAuthenticator; 41 import org.chromium.chrome.browser.webapps.WebappAuthenticator;
39 import org.chromium.chrome.browser.webapps.WebappDataStorage; 42 import org.chromium.chrome.browser.webapps.WebappDataStorage;
40 import org.chromium.chrome.browser.webapps.WebappLauncherActivity; 43 import org.chromium.chrome.browser.webapps.WebappLauncherActivity;
41 import org.chromium.chrome.browser.webapps.WebappRegistry; 44 import org.chromium.chrome.browser.webapps.WebappRegistry;
42 import org.chromium.chrome.browser.widget.RoundedIconGenerator; 45 import org.chromium.chrome.browser.widget.RoundedIconGenerator;
43 import org.chromium.content_public.common.ScreenOrientationConstants; 46 import org.chromium.content_public.common.ScreenOrientationConstants;
44 import org.chromium.ui.widget.Toast; 47 import org.chromium.ui.widget.Toast;
45 import org.chromium.webapk.lib.client.WebApkValidator; 48 import org.chromium.webapk.lib.client.WebApkValidator;
46 49
47 import java.io.ByteArrayOutputStream; 50 import java.io.ByteArrayOutputStream;
51 import java.util.ArrayList;
48 import java.util.List; 52 import java.util.List;
49 53
50 /** 54 /**
51 * This class contains functions related to adding shortcuts to the Android Home 55 * This class contains functions related to adding shortcuts to the Android Home
52 * screen. These shortcuts are used to either open a page in the main browser 56 * screen. These shortcuts are used to either open a page in the main browser
53 * or open a web app. 57 * or open a web app.
54 */ 58 */
55 public class ShortcutHelper { 59 public class ShortcutHelper {
56 public static final String EXTRA_ICON = "org.chromium.chrome.browser.webapp_ icon"; 60 public static final String EXTRA_ICON = "org.chromium.chrome.browser.webapp_ icon";
57 public static final String EXTRA_ID = "org.chromium.chrome.browser.webapp_id "; 61 public static final String EXTRA_ID = "org.chromium.chrome.browser.webapp_id ";
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 context.getResources(), id, density); 655 context.getResources(), id, density);
652 656
653 if (drawable instanceof BitmapDrawable) { 657 if (drawable instanceof BitmapDrawable) {
654 BitmapDrawable bd = (BitmapDrawable) drawable; 658 BitmapDrawable bd = (BitmapDrawable) drawable;
655 return bd.getBitmap(); 659 return bd.getBitmap();
656 } 660 }
657 assert false : "The drawable was not a bitmap drawable as expected"; 661 assert false : "The drawable was not a bitmap drawable as expected";
658 return null; 662 return null;
659 } 663 }
660 664
665 /**
666 * Calls the native |callbackPointer| with lists of information on all insta lled WebAPKs.
667 *
668 * @param callbackPointer Callback to call with the information on the WebAP Ks found.
669 */
670 @CalledByNative
671 public static void retrieveWebApks(long callbackPointer) {
672 List<String> shortNames = new ArrayList<>();
673 List<String> packageNames = new ArrayList<>();
674 List<Integer> shellApkVersions = new ArrayList<>();
675 List<Integer> versionCodes = new ArrayList<>();
676
677 Context context = ContextUtils.getApplicationContext();
678 PackageManager packageManager = context.getPackageManager();
679 for (PackageInfo packageInfo : packageManager.getInstalledPackages(0)) {
680 if (WebApkValidator.isValidWebApk(context, packageInfo.packageName)) {
681 // Pass non-null URL parameter so that {@link WebApkInfo#create( )}
682 // return value is non-null
683 WebApkInfo webApkInfo =
684 WebApkInfo.create(packageInfo.packageName, "", ShortcutS ource.UNKNOWN);
685 if (webApkInfo != null) {
686 shortNames.add(webApkInfo.shortName());
687 packageNames.add(webApkInfo.webApkPackageName());
688 shellApkVersions.add(webApkInfo.shellApkVersion());
689 versionCodes.add(packageInfo.versionCode);
690 }
691 }
692 }
693 nativeOnWebApksRetrieved(callbackPointer, shortNames.toArray(new String[ 0]),
694 packageNames.toArray(new String[0]), integerListToIntArray(shell ApkVersions),
695 integerListToIntArray(versionCodes));
696 }
697
698 private static int[] integerListToIntArray(@NonNull List<Integer> list) {
699 int[] array = new int[list.size()];
700 for (int i = 0; i < list.size(); i++) {
701 array[i] = list.get(i);
702 }
703 return array;
704 }
705
661 private static native void nativeOnWebappDataStored(long callbackPointer); 706 private static native void nativeOnWebappDataStored(long callbackPointer);
707 private static native void nativeOnWebApksRetrieved(long callbackPointer, St ring[] shortNames,
708 String[] packageName, int[] shellApkVersions, int[] versionCodes);
662 } 709 }
OLDNEW
« no previous file with comments | « chrome/BUILD.gn ('k') | chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkInfo.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698