mirror of
https://github.com/SimpleMobileTools/Simple-Calendar.git
synced 2025-06-05 21:59:17 +02:00
convert receivers to kotlin
This commit is contained in:
@ -73,7 +73,7 @@ public class Utils {
|
|||||||
|
|
||||||
private static PendingIntent getNotificationIntent(Context context, int eventId) {
|
private static PendingIntent getNotificationIntent(Context context, int eventId) {
|
||||||
final Intent intent = new Intent(context, NotificationReceiver.class);
|
final Intent intent = new Intent(context, NotificationReceiver.class);
|
||||||
intent.putExtra(NotificationReceiver.EVENT_ID, eventId);
|
intent.putExtra(NotificationReceiver.Companion.getEVENT_ID(), eventId);
|
||||||
return PendingIntent.getBroadcast(context, eventId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
return PendingIntent.getBroadcast(context, eventId, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
package com.simplemobiletools.calendar.receivers;
|
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
|
|
||||||
import com.simplemobiletools.calendar.DBHelper;
|
|
||||||
import com.simplemobiletools.calendar.Utils;
|
|
||||||
import com.simplemobiletools.calendar.models.Event;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class BootCompletedReceiver extends BroadcastReceiver {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent arg1) {
|
|
||||||
final List<Event> events = new DBHelper(context).getEventsAtReboot();
|
|
||||||
for (Event event : events) {
|
|
||||||
Utils.scheduleNextEvent(context, event);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,65 +0,0 @@
|
|||||||
package com.simplemobiletools.calendar.receivers;
|
|
||||||
|
|
||||||
import android.app.Notification;
|
|
||||||
import android.app.NotificationManager;
|
|
||||||
import android.app.PendingIntent;
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.media.RingtoneManager;
|
|
||||||
import android.net.Uri;
|
|
||||||
|
|
||||||
import com.simplemobiletools.calendar.Constants;
|
|
||||||
import com.simplemobiletools.calendar.DBHelper;
|
|
||||||
import com.simplemobiletools.calendar.Formatter;
|
|
||||||
import com.simplemobiletools.calendar.R;
|
|
||||||
import com.simplemobiletools.calendar.Utils;
|
|
||||||
import com.simplemobiletools.calendar.activities.EventActivity;
|
|
||||||
import com.simplemobiletools.calendar.models.Event;
|
|
||||||
|
|
||||||
public class NotificationReceiver extends BroadcastReceiver {
|
|
||||||
public static String EVENT_ID = "event_id";
|
|
||||||
|
|
||||||
public void onReceive(Context context, Intent intent) {
|
|
||||||
final NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
|
||||||
int id = intent.getIntExtra(EVENT_ID, -1);
|
|
||||||
if (id == -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
final Event event = new DBHelper(context).getEvent(id);
|
|
||||||
if (event == null || event.getReminderMinutes() == -1)
|
|
||||||
return;
|
|
||||||
|
|
||||||
final PendingIntent pendingIntent = getPendingIntent(context, event);
|
|
||||||
final String startTime = Formatter.INSTANCE.getTime(event.getStartTS());
|
|
||||||
final String endTime = Formatter.INSTANCE.getTime(event.getEndTS());
|
|
||||||
final String title = event.getTitle();
|
|
||||||
final Notification notification = getNotification(context, pendingIntent, getEventTime(startTime, endTime) + " " + title);
|
|
||||||
notificationManager.notify(id, notification);
|
|
||||||
|
|
||||||
if (event.getRepeatInterval() != 0)
|
|
||||||
Utils.scheduleNextEvent(context, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getEventTime(String startTime, String endTime) {
|
|
||||||
return startTime.equals(endTime) ? startTime : (startTime + " - " + endTime);
|
|
||||||
}
|
|
||||||
|
|
||||||
private PendingIntent getPendingIntent(Context context, Event event) {
|
|
||||||
final Intent intent = new Intent(context, EventActivity.class);
|
|
||||||
intent.putExtra(Constants.EVENT_ID, event);
|
|
||||||
return PendingIntent.getActivity(context, event.getId(), intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Notification getNotification(Context context, PendingIntent pendingIntent, String content) {
|
|
||||||
final Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
|
|
||||||
final Notification.Builder builder = new Notification.Builder(context);
|
|
||||||
builder.setContentTitle(context.getResources().getString(R.string.app_name));
|
|
||||||
builder.setContentText(content);
|
|
||||||
builder.setSmallIcon(R.mipmap.calendar);
|
|
||||||
builder.setContentIntent(pendingIntent);
|
|
||||||
builder.setAutoCancel(true);
|
|
||||||
builder.setSound(soundUri);
|
|
||||||
return builder.build();
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.simplemobiletools.calendar.receivers
|
||||||
|
|
||||||
|
import android.content.BroadcastReceiver
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import com.simplemobiletools.calendar.DBHelper
|
||||||
|
import com.simplemobiletools.calendar.Utils
|
||||||
|
|
||||||
|
class BootCompletedReceiver : BroadcastReceiver() {
|
||||||
|
|
||||||
|
override fun onReceive(context: Context, arg1: Intent) {
|
||||||
|
val events = DBHelper(context).getEventsAtReboot()
|
||||||
|
for (event in events) {
|
||||||
|
Utils.scheduleNextEvent(context, event)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package com.simplemobiletools.calendar.receivers
|
||||||
|
|
||||||
|
import android.app.Notification
|
||||||
|
import android.app.NotificationManager
|
||||||
|
import android.app.PendingIntent
|
||||||
|
import android.content.BroadcastReceiver
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.media.RingtoneManager
|
||||||
|
import com.simplemobiletools.calendar.*
|
||||||
|
import com.simplemobiletools.calendar.activities.EventActivity
|
||||||
|
import com.simplemobiletools.calendar.models.Event
|
||||||
|
|
||||||
|
class NotificationReceiver : BroadcastReceiver() {
|
||||||
|
companion object {
|
||||||
|
var EVENT_ID = "event_id"
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
|
val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
val id = intent.getIntExtra(EVENT_ID, -1)
|
||||||
|
if (id == -1)
|
||||||
|
return
|
||||||
|
|
||||||
|
val event = DBHelper(context).getEvent(id)
|
||||||
|
if (event == null || event.reminderMinutes == -1)
|
||||||
|
return
|
||||||
|
|
||||||
|
val pendingIntent = getPendingIntent(context, event)
|
||||||
|
val startTime = Formatter.getTime(event.startTS)
|
||||||
|
val endTime = Formatter.getTime(event.endTS)
|
||||||
|
val title = event.title
|
||||||
|
val notification = getNotification(context, pendingIntent, getEventTime(startTime, endTime) + " " + title)
|
||||||
|
notificationManager.notify(id, notification)
|
||||||
|
|
||||||
|
if (event.repeatInterval != 0)
|
||||||
|
Utils.scheduleNextEvent(context, event)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getEventTime(startTime: String, endTime: String): String {
|
||||||
|
return if (startTime == endTime) startTime else startTime + " - " + endTime
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getPendingIntent(context: Context, event: Event): PendingIntent {
|
||||||
|
val intent = Intent(context, EventActivity::class.java)
|
||||||
|
intent.putExtra(Constants.EVENT_ID, event)
|
||||||
|
return PendingIntent.getActivity(context, event.id, intent, PendingIntent.FLAG_UPDATE_CURRENT)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getNotification(context: Context, pendingIntent: PendingIntent, content: String): Notification {
|
||||||
|
val soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
|
||||||
|
return Notification.Builder(context)
|
||||||
|
.setContentTitle(context.resources.getString(R.string.app_name))
|
||||||
|
.setContentText(content)
|
||||||
|
.setSmallIcon(R.mipmap.calendar)
|
||||||
|
.setContentIntent(pendingIntent)
|
||||||
|
.setAutoCancel(true)
|
||||||
|
.setSound(soundUri)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user