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

Side by Side Diff: chrome/android/webapk/libs/client/src/org/chromium/webapk/lib/client/NotificationClient.java

Issue 1969873003: Remove WebApkServiceImpl#getBroadcastPendingIntent() because it is unneeded (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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.webapk.lib.client; 5 package org.chromium.webapk.lib.client;
6 6
7 import android.app.PendingIntent;
8 import android.content.Intent;
9 import android.graphics.Bitmap;
10 import android.os.RemoteException; 7 import android.os.RemoteException;
11 import android.util.Log; 8 import android.util.Log;
12 9
13 import org.chromium.base.Callback; 10 import org.chromium.base.Callback;
14 import org.chromium.webapk.lib.runtime_library.IWebApkApi; 11 import org.chromium.webapk.lib.runtime_library.IWebApkApi;
15 12
16 /** 13 /**
17 * NotificationClient provides APIs that a WebAPK host can delegate display or c lose notification 14 * NotificationClient provides APIs that a WebAPK host can delegate display or c lose notification
18 * tasks. 15 * tasks.
19 */ 16 */
(...skipping 13 matching lines...) Expand all
33 } 30 }
34 } 31 }
35 } 32 }
36 33
37 public NotificationClient() {} 34 public NotificationClient() {}
38 35
39 /** 36 /**
40 * Connect to a bind service of the WebAPK with the given package name, buil d a notification 37 * Connect to a bind service of the WebAPK with the given package name, buil d a notification
41 * and hand it over to the WebAPK to display. 38 * and hand it over to the WebAPK to display.
42 */ 39 */
43 public void displayNotification(final int pendingIntentRequestCode, 40 public void displayNotification(final NotificationBuilderDelegate notificati onBuilder,
44 final NotificationBuilderDelegate notificationBuilder, final Intent clickIntent, 41 final String platformTag, final int platformID, String webApkPackage ) {
45 final Intent closeIntent, final Intent[] actionIntents, final String [] actionTitles,
46 final Bitmap[] actionIcons, final int flags, final String platformTa g,
47 final int platformID, String webApkPackage) {
48 final ApiUseCallback connectionCallback = new ApiUseCallback() { 42 final ApiUseCallback connectionCallback = new ApiUseCallback() {
49 @Override 43 @Override
50 public void useApi(IWebApkApi api) throws RemoteException { 44 public void useApi(IWebApkApi api) throws RemoteException {
51 // Create all the PendingIntents needed to build the notificatio n.
52 PendingIntent clickPendingIntent =
53 api.getBroadcastPendingIntent(pendingIntentRequestCode, clickIntent, flags);
54 PendingIntent closePendingIntent =
55 api.getBroadcastPendingIntent(pendingIntentRequestCode, closeIntent, flags);
56 PendingIntent[] actionPendingIntents = null;
57 if (actionIntents != null) {
58 actionPendingIntents = new PendingIntent[actionIntents.lengt h];
59 for (int actionIndex = 0; actionIndex < actionIntents.length ; actionIndex++) {
60 actionPendingIntents[actionIndex] = api.getBroadcastPend ingIntent(
61 pendingIntentRequestCode, actionIntents[actionIn dex], flags);
62 }
63 }
64 notificationBuilder.setSmallIcon(api.getSmallIconId()); 45 notificationBuilder.setSmallIcon(api.getSmallIconId());
65 // Build a notification.
66 buildNotification(notificationBuilder, clickPendingIntent, close PendingIntent,
67 actionPendingIntents, actionTitles, actionIcons);
68 // Display the notification.
69 api.displayNotification(platformTag, platformID, notificationBui lder.build()); 46 api.displayNotification(platformTag, platformID, notificationBui lder.build());
70 } 47 }
71 }; 48 };
72 49
73 WebApkServiceConnectionManager.getInstance().connect(webApkPackage, conn ectionCallback); 50 WebApkServiceConnectionManager.getInstance().connect(webApkPackage, conn ectionCallback);
74 } 51 }
75 52
76 /** 53 /**
77 * Connect to a bind service of a WebAPK with the given package name, and as k the it to close a 54 * Connect to a bind service of a WebAPK with the given package name, and as k the it to close a
78 * notification. 55 * notification.
79 */ 56 */
80 public void closeNotification( 57 public void closeNotification(
81 String webApkPackage, final String platformTag, final int platformID ) { 58 String webApkPackage, final String platformTag, final int platformID ) {
82 final ApiUseCallback connectionCallback = new ApiUseCallback() { 59 final ApiUseCallback connectionCallback = new ApiUseCallback() {
83 @Override 60 @Override
84 public void useApi(IWebApkApi api) throws RemoteException { 61 public void useApi(IWebApkApi api) throws RemoteException {
85 api.closeNotification(platformTag, platformID); 62 api.closeNotification(platformTag, platformID);
86 } 63 }
87 }; 64 };
88 WebApkServiceConnectionManager.getInstance().connect(webApkPackage, conn ectionCallback); 65 WebApkServiceConnectionManager.getInstance().connect(webApkPackage, conn ectionCallback);
89 } 66 }
90
91 private static void buildNotification(final NotificationBuilderDelegate noti ficationBuilder,
92 final PendingIntent clickPendingIntent, final PendingIntent closePen dingIntent,
93 final PendingIntent[] actionPendingIntents,
94 final String[] actionTitles, final Bitmap[] actionIcons) {
95 notificationBuilder.setContentIntent(clickPendingIntent)
96 .setDeleteIntent(closePendingIntent);
97 if (actionPendingIntents != null) {
98 for (int actionIndex = 0; actionIndex < actionPendingIntents.length;
99 actionIndex++) {
100 notificationBuilder.addAction(actionIcons[actionIndex],
101 actionTitles[actionIndex],
102 actionPendingIntents[actionIndex]);
103 }
104 }
105 }
106 } 67 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698