1 /* 2 * Copyright (C) 2015 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 package com.android.messaging.receiver; 17 18 import android.content.BroadcastReceiver; 19 import android.content.Context; 20 import android.content.Intent; 21 22 import com.android.messaging.datamodel.BugleNotifications; 23 import com.android.messaging.datamodel.action.MarkAsSeenAction; 24 import com.android.messaging.ui.UIIntents; 25 import com.android.messaging.util.ConversationIdSet; 26 import com.android.messaging.util.LogUtil; 27 28 // NotificationReceiver is used to handle delete intents from notifications. When a user 29 // clears all notifications or swipes a bugle notification away, the intent we pass in as 30 // the delete intent will get handled here. 31 public class NotificationReceiver extends BroadcastReceiver { 32 // Logging 33 public static final String TAG = LogUtil.BUGLE_TAG; 34 public static final boolean VERBOSE = false; 35 36 @Override 37 public void onReceive(final Context context, final Intent intent) { 38 if (VERBOSE) { 39 LogUtil.v(TAG, "NotificationReceiver.onReceive: intent " + intent); 40 } 41 if (intent.getAction().equals(UIIntents.ACTION_RESET_NOTIFICATIONS)) { 42 final String conversationIdSetString = 43 intent.getStringExtra(UIIntents.UI_INTENT_EXTRA_CONVERSATION_ID_SET); 44 final int notificationTargets = intent.getIntExtra( 45 UIIntents.UI_INTENT_EXTRA_NOTIFICATIONS_UPDATE, BugleNotifications.UPDATE_ALL); 46 if (conversationIdSetString == null) { 47 BugleNotifications.markAllMessagesAsSeen(); 48 } else { 49 for (final String conversationId : 50 ConversationIdSet.createSet(conversationIdSetString)) { 51 MarkAsSeenAction.markAsSeen(conversationId); 52 BugleNotifications.resetLastMessageDing(conversationId); 53 } 54 } 55 } 56 } 57 }