summaryrefslogtreecommitdiff
path: root/src/com/android/calendar/alerts/DismissAlarmsService.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/calendar/alerts/DismissAlarmsService.java')
-rw-r--r--src/com/android/calendar/alerts/DismissAlarmsService.java136
1 files changed, 0 insertions, 136 deletions
diff --git a/src/com/android/calendar/alerts/DismissAlarmsService.java b/src/com/android/calendar/alerts/DismissAlarmsService.java
deleted file mode 100644
index 1ec3c22d..00000000
--- a/src/com/android/calendar/alerts/DismissAlarmsService.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Copyright (C) 2009 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License
- */
-
-package com.android.calendar.alerts;
-
-import android.app.IntentService;
-import android.app.NotificationManager;
-import android.content.ContentResolver;
-import android.content.ContentValues;
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.os.IBinder;
-import android.provider.CalendarContract.CalendarAlerts;
-import androidx.core.app.TaskStackBuilder;
-
-import android.util.Log;
-import com.android.calendar.EventInfoActivity;
-import com.android.calendar.alerts.GlobalDismissManager.AlarmId;
-
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Service for asynchronously marking fired alarms as dismissed.
- */
-public class DismissAlarmsService extends IntentService {
- private static final String TAG = "DismissAlarmsService";
- public static final String SHOW_ACTION = "com.android.calendar.SHOW";
- public static final String DISMISS_ACTION = "com.android.calendar.DISMISS";
-
- private static final String[] PROJECTION = new String[] {
- CalendarAlerts.STATE,
- };
- private static final int COLUMN_INDEX_STATE = 0;
-
- public DismissAlarmsService() {
- super("DismissAlarmsService");
- }
-
- @Override
- public IBinder onBind(Intent intent) {
- return null;
- }
-
- @Override
- public void onHandleIntent(Intent intent) {
- if (AlertService.DEBUG) {
- Log.d(TAG, "onReceive: a=" + intent.getAction() + " " + intent.toString());
- }
-
- long eventId = intent.getLongExtra(AlertUtils.EVENT_ID_KEY, -1);
- long eventStart = intent.getLongExtra(AlertUtils.EVENT_START_KEY, -1);
- long eventEnd = intent.getLongExtra(AlertUtils.EVENT_END_KEY, -1);
- long[] eventIds = intent.getLongArrayExtra(AlertUtils.EVENT_IDS_KEY);
- long[] eventStarts = intent.getLongArrayExtra(AlertUtils.EVENT_STARTS_KEY);
- int notificationId = intent.getIntExtra(AlertUtils.NOTIFICATION_ID_KEY, -1);
- List<AlarmId> alarmIds = new LinkedList<AlarmId>();
-
- Uri uri = CalendarAlerts.CONTENT_URI;
- String selection;
-
- // Dismiss a specific fired alarm if id is present, otherwise, dismiss all alarms
- if (eventId != -1) {
- alarmIds.add(new AlarmId(eventId, eventStart));
- selection = CalendarAlerts.STATE + "=" + CalendarAlerts.STATE_FIRED + " AND " +
- CalendarAlerts.EVENT_ID + "=" + eventId;
- } else if (eventIds != null && eventIds.length > 0 &&
- eventStarts != null && eventIds.length == eventStarts.length) {
- selection = buildMultipleEventsQuery(eventIds);
- for (int i = 0; i < eventIds.length; i++) {
- alarmIds.add(new AlarmId(eventIds[i], eventStarts[i]));
- }
- } else {
- // NOTE: I don't believe that this ever happens.
- selection = CalendarAlerts.STATE + "=" + CalendarAlerts.STATE_FIRED;
- }
-
- GlobalDismissManager.dismissGlobally(getApplicationContext(), alarmIds);
-
- ContentResolver resolver = getContentResolver();
- ContentValues values = new ContentValues();
- values.put(PROJECTION[COLUMN_INDEX_STATE], CalendarAlerts.STATE_DISMISSED);
- resolver.update(uri, values, selection, null);
-
- // Remove from notification bar.
- if (notificationId != -1) {
- NotificationManager nm =
- (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
- nm.cancel(notificationId);
- }
-
- if (SHOW_ACTION.equals(intent.getAction())) {
- // Show event on Calendar app by building an intent and task stack to start
- // EventInfoActivity with AllInOneActivity as the parent activity rooted to home.
- Intent i = AlertUtils.buildEventViewIntent(this, eventId, eventStart, eventEnd);
-
- TaskStackBuilder.create(this)
- .addParentStack(EventInfoActivity.class).addNextIntent(i).startActivities();
- }
- }
-
- private String buildMultipleEventsQuery(long[] eventIds) {
- StringBuilder selection = new StringBuilder();
- selection.append(CalendarAlerts.STATE);
- selection.append("=");
- selection.append(CalendarAlerts.STATE_FIRED);
- if (eventIds.length > 0) {
- selection.append(" AND (");
- selection.append(CalendarAlerts.EVENT_ID);
- selection.append("=");
- selection.append(eventIds[0]);
- for (int i = 1; i < eventIds.length; i++) {
- selection.append(" OR ");
- selection.append(CalendarAlerts.EVENT_ID);
- selection.append("=");
- selection.append(eventIds[i]);
- }
- selection.append(")");
- }
- return selection.toString();
- }
-}