Index: webapk/libs/client/src/org/chromium/webapk/lib/client/NotificationClient.java |
diff --git a/webapk/libs/client/src/org/chromium/webapk/lib/client/NotificationClient.java b/webapk/libs/client/src/org/chromium/webapk/lib/client/NotificationClient.java |
deleted file mode 100644 |
index 3a180a46546909dbfbeb09f746ae7916e96d8810..0000000000000000000000000000000000000000 |
--- a/webapk/libs/client/src/org/chromium/webapk/lib/client/NotificationClient.java |
+++ /dev/null |
@@ -1,135 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-package org.chromium.webapk.lib.client; |
- |
-import android.app.PendingIntent; |
-import android.content.ComponentName; |
-import android.content.Context; |
-import android.content.Intent; |
-import android.content.ServiceConnection; |
-import android.graphics.Bitmap; |
-import android.os.IBinder; |
-import android.os.RemoteException; |
-import android.util.Log; |
- |
-import org.chromium.webapk.lib.runtime_library.IWebApkApi; |
- |
-/** |
- * NotificationClient provides APIs that a WebAPK host can delegate display or close notification |
- * tasks. |
- */ |
-public class NotificationClient { |
- private static final String CATEGORY_MINTED_API = "android.intent.category.MINTED_API"; |
- private static final String TAG = "cr_NotificationClient"; |
- |
- private IWebApkApi mMintedApi; |
- |
- public NotificationClient() {} |
- |
- /** |
- * Connect to a bind service of the WebAPK with the given package name, build a notification |
- * and hand it over to the WebAPK to display. |
- */ |
- public void displayNotification(Context context, final int pendingIntentRequestCode, |
- final NotificationBuilderDelegate notificationBuilder, |
- final Intent clickIntent, final Intent closeIntent, final Intent[] actionIntents, |
- final String[] actionTitles, final Bitmap[] actionIcons, final int flags, |
- final String platformTag, final int platformID, String packageNameOfMintedAPK) { |
- Intent intent = createIntentToBindMintedAPI(packageNameOfMintedAPK); |
- try { |
- context.bindService(intent, new ServiceConnection() { |
- @Override |
- public void onServiceDisconnected(ComponentName name) { |
- } |
- @Override |
- public void onServiceConnected(ComponentName name, IBinder service) { |
- mMintedApi = IWebApkApi.Stub.asInterface(service); |
- Log.d(TAG, "Got minted api: " + mMintedApi); |
- try { |
- // Create all the PendingIntents needed to build the notification. |
- PendingIntent clickPendingIntent = mMintedApi.getBroadcastPendingIntent( |
- pendingIntentRequestCode, clickIntent, flags); |
- PendingIntent closePendingIntent = mMintedApi.getBroadcastPendingIntent( |
- pendingIntentRequestCode, closeIntent, flags); |
- PendingIntent[] actionPendingIntents = null; |
- if (actionIntents != null) { |
- actionPendingIntents = new PendingIntent[actionIntents.length]; |
- for (int actionIndex = 0; actionIndex < actionIntents.length; |
- actionIndex++) { |
- actionPendingIntents[actionIndex] = |
- mMintedApi.getBroadcastPendingIntent( |
- pendingIntentRequestCode, |
- actionIntents[actionIndex], flags); |
- } |
- } |
- notificationBuilder.setSmallIcon(mMintedApi.getSmallIconId()); |
- // Build a notification. |
- buildNotification(notificationBuilder, clickPendingIntent, |
- closePendingIntent, actionPendingIntents, actionTitles, |
- actionIcons); |
- // Dispaly the notification. |
- mMintedApi.displayNotification(platformTag, platformID, |
- notificationBuilder.build()); |
- } catch (RemoteException e) { |
- Log.w(TAG, "MintedAPI use failed, exception: " + e); |
- } |
- } |
- }, Context.BIND_AUTO_CREATE); |
- } catch (SecurityException e) { |
- Log.w(TAG, "Security failed binding."); |
- } |
- } |
- |
- /** |
- * Connect to a bind service of a WebAPK with the given package name, and ask the it to close a |
- * notification. |
- */ |
- public void closeNotification(Context context, String packageNameOfMintedAPK, |
- final String platformTag, final int platformID) { |
- Intent intent = NotificationClient.createIntentToBindMintedAPI(packageNameOfMintedAPK); |
- try { |
- context.bindService(intent, new ServiceConnection() { |
- @Override |
- public void onServiceDisconnected(ComponentName name) { |
- } |
- @Override |
- public void onServiceConnected(ComponentName name, IBinder service) { |
- mMintedApi = IWebApkApi.Stub.asInterface(service); |
- Log.d(TAG, "Got minted api: " + mMintedApi); |
- try { |
- mMintedApi.closeNotification(platformTag, platformID); |
- } catch (RemoteException e) { |
- Log.w(TAG, "MintedAPI use failed, exception: " + e); |
- } |
- } |
- }, Context.BIND_AUTO_CREATE); |
- } catch (SecurityException e) { |
- Log.w(TAG, "Security failed binding."); |
- } |
- } |
- |
- private static Intent createIntentToBindMintedAPI(String packageNameOfMintedAPK) { |
- Intent intent = new Intent(); |
- intent.addCategory(CATEGORY_MINTED_API); |
- intent.setPackage(packageNameOfMintedAPK); |
- return intent; |
- } |
- |
- private static void buildNotification(final NotificationBuilderDelegate notificationBuilder, |
- final PendingIntent clickPendingIntent, final PendingIntent closePendingIntent, |
- final PendingIntent[] actionPendingIntents, |
- final String[] actionTitles, final Bitmap[] actionIcons) { |
- notificationBuilder.setContentIntent(clickPendingIntent) |
- .setDeleteIntent(closePendingIntent); |
- if (actionPendingIntents != null) { |
- for (int actionIndex = 0; actionIndex < actionPendingIntents.length; |
- actionIndex++) { |
- notificationBuilder.addAction(actionIcons[actionIndex], |
- actionTitles[actionIndex], |
- actionPendingIntents[actionIndex]); |
- } |
- } |
- } |
-} |