| OLD | NEW | 
|---|
| 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.chrome.browser.ntp; | 5 package org.chromium.chrome.browser.ntp; | 
| 6 | 6 | 
|  | 7 import android.app.NotificationManager; | 
|  | 8 import android.app.PendingIntent; | 
| 7 import android.content.Context; | 9 import android.content.Context; | 
| 8 import android.content.Intent; | 10 import android.content.Intent; | 
|  | 11 import android.graphics.Bitmap; | 
| 9 import android.net.Uri; | 12 import android.net.Uri; | 
| 10 import android.provider.Browser; | 13 import android.provider.Browser; | 
|  | 14 import android.support.v4.app.NotificationCompat; | 
| 11 | 15 | 
| 12 import org.chromium.base.ContextUtils; | 16 import org.chromium.base.ContextUtils; | 
| 13 import org.chromium.base.annotations.CalledByNative; | 17 import org.chromium.base.annotations.CalledByNative; | 
|  | 18 import org.chromium.chrome.R; | 
| 14 import org.chromium.chrome.browser.IntentHandler; | 19 import org.chromium.chrome.browser.IntentHandler; | 
| 15 import org.chromium.chrome.browser.ShortcutHelper; | 20 import org.chromium.chrome.browser.ShortcutHelper; | 
| 16 import org.chromium.chrome.browser.document.ChromeLauncherActivity; | 21 import org.chromium.chrome.browser.document.ChromeLauncherActivity; | 
| 17 | 22 | 
| 18 /** | 23 /** | 
| 19  * Provides functionality needed for content suggestion notifications. | 24  * Provides functionality needed for content suggestion notifications. | 
| 20  * | 25  * | 
| 21  * Exposes helper functions to native C++ code. | 26  * Exposes helper functions to native C++ code. | 
| 22  */ | 27  */ | 
| 23 public class ContentSuggestionsNotificationHelper { | 28 public class ContentSuggestionsNotificationHelper { | 
|  | 29     private static final String NOTIFICATION_TAG = "ContentSuggestionsNotificati
    on"; | 
|  | 30     private static final int NOTIFICATION_ID = 0; | 
|  | 31 | 
| 24     private ContentSuggestionsNotificationHelper() {} // Prevent instantiation | 32     private ContentSuggestionsNotificationHelper() {} // Prevent instantiation | 
| 25 | 33 | 
| 26     @CalledByNative | 34     @CalledByNative | 
| 27     private static void openUrl(String url) { | 35     private static void openUrl(String url) { | 
| 28         Context context = ContextUtils.getApplicationContext(); | 36         Context context = ContextUtils.getApplicationContext(); | 
| 29         Intent intent = new Intent(); | 37         Intent intent = new Intent(); | 
| 30         intent.setAction(Intent.ACTION_VIEW); | 38         intent.setAction(Intent.ACTION_VIEW); | 
| 31         intent.setData(Uri.parse(url)); | 39         intent.setData(Uri.parse(url)); | 
| 32         intent.setClass(context, ChromeLauncherActivity.class); | 40         intent.setClass(context, ChromeLauncherActivity.class); | 
| 33         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | 41         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | 
| 34         intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); | 42         intent.putExtra(Browser.EXTRA_APPLICATION_ID, context.getPackageName()); | 
| 35         intent.putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true
    ); | 43         intent.putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_ELSE_NEW_TAB, true
    ); | 
| 36         IntentHandler.addTrustedIntentExtras(intent, context); | 44         IntentHandler.addTrustedIntentExtras(intent, context); | 
| 37         context.startActivity(intent); | 45         context.startActivity(intent); | 
| 38     } | 46     } | 
|  | 47 | 
|  | 48     @CalledByNative | 
|  | 49     private static void showNotification(String url, String title, String text, 
    Bitmap image) { | 
|  | 50         Context context = ContextUtils.getApplicationContext(); | 
|  | 51         NotificationManager manager = | 
|  | 52                 (NotificationManager) context.getSystemService(Context.NOTIFICAT
    ION_SERVICE); | 
|  | 53         Intent intent = new Intent() | 
|  | 54                                 .setAction(Intent.ACTION_VIEW) | 
|  | 55                                 .setData(Uri.parse(url)) | 
|  | 56                                 .setClass(context, ChromeLauncherActivity.class) | 
|  | 57                                 .putExtra(ShortcutHelper.REUSE_URL_MATCHING_TAB_
    ELSE_NEW_TAB, true) | 
|  | 58                                 .putExtra(Browser.EXTRA_APPLICATION_ID, context.
    getPackageName()); | 
|  | 59         NotificationCompat.Builder builder = | 
|  | 60                 new NotificationCompat.Builder(context) | 
|  | 61                         .setAutoCancel(true) | 
|  | 62                         .setContentIntent(PendingIntent.getActivity(context, 0, 
    intent, 0)) | 
|  | 63                         .setContentTitle(title) | 
|  | 64                         .setContentText(text) | 
|  | 65                         .setLargeIcon(image) | 
|  | 66                         .setSmallIcon(R.drawable.ic_chrome); | 
|  | 67         manager.notify(NOTIFICATION_TAG, NOTIFICATION_ID, builder.build()); | 
|  | 68     } | 
|  | 69 | 
|  | 70     @CalledByNative | 
|  | 71     private static void hideNotification() { | 
|  | 72         Context context = ContextUtils.getApplicationContext(); | 
|  | 73         NotificationManager manager = | 
|  | 74                 (NotificationManager) context.getSystemService(Context.NOTIFICAT
    ION_SERVICE); | 
|  | 75         manager.cancel(NOTIFICATION_TAG, NOTIFICATION_ID); | 
|  | 76     } | 
| 39 } | 77 } | 
| OLD | NEW | 
|---|