feat: implement core notification functionality for iOS and Android - Add settings management, proper error handling, and platform-specific implementations

This commit is contained in:
Server
2025-03-27 01:50:19 -07:00
parent 71e0f297ff
commit 9994db28bd
20 changed files with 1461 additions and 472 deletions

View File

@@ -13,6 +13,7 @@ import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Build;
import android.os.Bundle;
import android.os.SystemClock;
@@ -35,6 +36,8 @@ public class DailyNotificationPlugin extends Plugin {
private NotificationManager notificationManager;
private AlarmManager alarmManager;
private Context context;
private SharedPreferences settings;
private static final String SETTINGS_KEY = "daily_notification_settings";
@Override
public void load() {
@@ -42,6 +45,7 @@ public class DailyNotificationPlugin extends Plugin {
notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
createNotificationChannel();
settings = context.getSharedPreferences(SETTINGS_KEY, Context.MODE_PRIVATE);
}
private void createNotificationChannel() {
@@ -154,7 +158,18 @@ public class DailyNotificationPlugin extends Plugin {
@PluginMethod
public void updateSettings(PluginCall call) {
// TODO: Implement settings update
SharedPreferences.Editor editor = settings.edit();
if (call.hasOption("timezone")) {
String timezone = call.getString("timezone");
if (TimeZone.getTimeZone(timezone) != null) {
editor.putString("timezone", timezone);
} else {
call.reject("Invalid timezone");
return;
}
}
// Add other settings...
editor.apply();
call.resolve();
}
}