• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2013 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.example.notificationshowcase;
18 
19 import android.app.IntentService;
20 import android.app.NotificationManager;
21 import android.app.PendingIntent;
22 import android.content.Context;
23 import android.content.Intent;
24 import android.content.SharedPreferences;
25 import android.support.v7.preference.PreferenceManager;
26 import android.util.Log;
27 
28 public class UpdateService extends IntentService {
29 
30     private static final String TAG = "UpdateService";
31 
32     private static final String ACTION_UPDATE = "update";
33 
UpdateService()34     public UpdateService() {
35         super(TAG);
36     }
37 
UpdateService(String name)38     public UpdateService(String name) {
39         super(name);
40     }
41 
42     @Override
onHandleIntent(Intent intent)43     protected void onHandleIntent(Intent intent) {
44         Log.v(TAG, "clicked a thing! intent=" + intent.toString());
45         if (intent.hasExtra("id") && intent.hasExtra("when")) {
46             final int id = intent.getIntExtra("id", 0);
47                 NotificationManager noMa =
48                         (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
49                 final int update = intent.getIntExtra("update", 0);
50                 final long when = intent.getLongExtra("when", 0L);
51                 Log.v(TAG, "id: " + id + " when: " + when + " update: " + update);
52                 noMa.notify(NotificationService.NOTIFICATION_ID + id,
53                         NotificationService.makeSmsNotification(this, update, id, when));
54         } else {
55             Log.v(TAG, "id extra was " + (intent.hasExtra("id") ? "present" : "missing"));
56             Log.v(TAG, "when extra was " + (intent.hasExtra("when") ? "present"  : "missing"));
57         }
58     }
59 
getPendingIntent(Context context, int update, int id, long when)60     public static PendingIntent getPendingIntent(Context context, int update, int id, long when) {
61         Intent updateIntent = new Intent(context, UpdateService.class);
62         updateIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
63         updateIntent.setAction(ACTION_UPDATE);
64         updateIntent.putExtra("id", id);
65         updateIntent.putExtra("when", when);
66         updateIntent.putExtra("update", update);
67         PendingIntent pi = PendingIntent.getService(
68                 context, 58, updateIntent, PendingIntent.FLAG_UPDATE_CURRENT);
69         return pi;
70     }
71 }
72