| 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]);
|
| - }
|
| - }
|
| - }
|
| -}
|
|
|