From 59e639a1ca50588c4d20115ed6a44925ede460f2 Mon Sep 17 00:00:00 2001 From: FinepointCGI Date: Mon, 19 Sep 2022 14:59:26 -0400 Subject: [PATCH 1/5] Updated to the new gradle version --- android-plugin/build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/android-plugin/build.gradle b/android-plugin/build.gradle index ae37953..9f1213e 100644 --- a/android-plugin/build.gradle +++ b/android-plugin/build.gradle @@ -19,12 +19,12 @@ allprojects { apply plugin: 'com.android.library' android { - compileSdkVersion 29 - buildToolsVersion "29.0.1" + compileSdkVersion 32 + buildToolsVersion "29.0.3" defaultConfig { - minSdkVersion 18 - targetSdkVersion 29 + minSdkVersion 19 + targetSdkVersion 32 versionCode 1 versionName "1.0" } From ca641ea6d072975edfac76bde6172c78c8b91e4a Mon Sep 17 00:00:00 2001 From: FinepointCGI Date: Wed, 21 Sep 2022 08:36:56 -0400 Subject: [PATCH 2/5] Updated to fix pending intent error --- android-plugin/build.gradle | 1 + .../java/ru/mobilap/localnotification/LocalNotification.java | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/android-plugin/build.gradle b/android-plugin/build.gradle index 9f1213e..5e43e77 100644 --- a/android-plugin/build.gradle +++ b/android-plugin/build.gradle @@ -49,6 +49,7 @@ dependencies { */ compileOnly fileTree(dir: 'libs', include: ['godot-lib*.aar']) implementation 'androidx.appcompat:appcompat:1.0.2' + implementation 'androidx.work:work-runtime:2.7.1' } group = 'ru.mobilap.godot' diff --git a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java index 8ec35dd..3d42464 100644 --- a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java +++ b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java @@ -144,7 +144,7 @@ private PendingIntent getPendingIntent(String message, String title, int tag) { i.putExtra("notification_id", tag); i.putExtra("message", message); i.putExtra("title", title); - PendingIntent sender = PendingIntent.getBroadcast(getActivity(), tag, i, PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent sender = PendingIntent.getBroadcast(getActivity(), tag, i, PendingIntent.FLAG_IMMUTABLE); return sender; } From 495f18ba0d53234a21ee26cc6ca2e18ebc115f3e Mon Sep 17 00:00:00 2001 From: FinepointCGI Date: Thu, 3 Nov 2022 10:45:39 -0400 Subject: [PATCH 3/5] Updated to fix a few issues. --- android-plugin/build.gradle | 6 ++--- android-plugin/src/main/AndroidManifest.xml | 1 + .../localnotification/LocalNotification.java | 26 ++++++++++--------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/android-plugin/build.gradle b/android-plugin/build.gradle index 5e43e77..575588e 100644 --- a/android-plugin/build.gradle +++ b/android-plugin/build.gradle @@ -20,13 +20,13 @@ apply plugin: 'com.android.library' android { compileSdkVersion 32 - buildToolsVersion "29.0.3" + buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 19 targetSdkVersion 32 versionCode 1 - versionName "1.0" + versionName "1.1" } // Used to customize the name of generated AAR file. @@ -47,7 +47,7 @@ dependencies { necessary since the Godot editor will also provide a version of the godot library when building the final binary. */ - compileOnly fileTree(dir: 'libs', include: ['godot-lib*.aar']) + implementation 'io.github.m4gr3d:godot:3.5.1.stable' implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.work:work-runtime:2.7.1' } diff --git a/android-plugin/src/main/AndroidManifest.xml b/android-plugin/src/main/AndroidManifest.xml index f8f014b..9095f72 100644 --- a/android-plugin/src/main/AndroidManifest.xml +++ b/android-plugin/src/main/AndroidManifest.xml @@ -17,4 +17,5 @@ + diff --git a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java index 3d42464..3d2ac9b 100644 --- a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java +++ b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java @@ -13,6 +13,8 @@ import java.util.Arrays; import java.util.List; import java.util.Calendar; + +import org.godotengine.godot.plugin.UsedByGodot; import org.json.JSONObject; import org.json.JSONArray; import org.json.JSONException; @@ -74,18 +76,18 @@ public View onMainCreate(Activity activity) { } // Public methods - + @UsedByGodot public void init() { } - + @UsedByGodot public boolean isInited() { return true; } - + @UsedByGodot public boolean isEnabled() { return true; } - + @UsedByGodot public void showLocalNotification(String message, String title, int interval, int tag) { if(interval <= 0) return; Log.d(TAG, "showLocalNotification: "+message+", "+Integer.toString(interval)+", "+Integer.toString(tag)); @@ -102,7 +104,7 @@ public void showLocalNotification(String message, String title, int interval, in am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); } } - + @UsedByGodot public void showRepeatingNotification(String message, String title, int interval, int tag, int repeat_duration) { if(interval <= 0) return; Log.d(TAG, "showRepeatingNotification: "+message+", "+Integer.toString(interval)+", "+Integer.toString(tag)+" Repeat after: "+Integer.toString(repeat_duration)); @@ -119,20 +121,20 @@ public void showRepeatingNotification(String message, String title, int interval am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), repeat_duration*1000, sender); } } - + @UsedByGodot public void cancelLocalNotification(int tag) { AlarmManager am = (AlarmManager)getActivity().getSystemService(getActivity().ALARM_SERVICE); PendingIntent sender = getPendingIntent("", "", tag); am.cancel(sender); } - + @UsedByGodot public void cancelAllNotifications() { Log.w(TAG, "cancelAllNotifications not implemented"); } - + @UsedByGodot public void register_remote_notification() { } - + @UsedByGodot public String get_device_token() { return ""; } @@ -193,17 +195,17 @@ private void checkIntent() { } intentWasChecked = true; } - + @UsedByGodot public Dictionary get_notification_data() { if(!intentWasChecked) checkIntent(); return notificationData; } - + @UsedByGodot public String get_deeplink_action() { if(!intentWasChecked) checkIntent(); return action; } - + @UsedByGodot public String get_deeplink_uri() { if(!intentWasChecked) checkIntent(); return uri; From 0b8671c8529f1adc5f06676c37d20d69da931fa7 Mon Sep 17 00:00:00 2001 From: FinepointCGI Date: Thu, 22 Dec 2022 20:02:54 -0500 Subject: [PATCH 4/5] Updated readme and gradle/android version --- README.md | 16 ++++++++++------ android-plugin/build.gradle | 8 ++++---- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 23593bc..2538ed3 100644 --- a/README.md +++ b/README.md @@ -16,23 +16,27 @@ Add wrapper `scripts/localnotification.gd` into autoloading list in your project ## API -### show(message: String, title: String, interval: float, tag: int, repeating_interval: int = 0) +### showLocalNotification(message: String, title: String, interval: float, tag: int) Show notification with `title` and `message` after delay of `interval` seconds with `tag`. You can override notification by it's tag before it was fired. -If you defined `repeating_interval` the notification will be fired in a loop until you cancelled it. -### show_daily(message: String, title: String, hour: int, minute: int, tag: int = 1) +### showRepeatingNotification(message: String, title: String, interval: float, tag: int, repeat_duration: int) +Show notification with `title` and `message` after delay of `interval` seconds with `tag`. You can override notification by it's tag before it was fired. +`repeating_interval` the notification will be fired in a loop until you cancelled it. + +### show_daily(message: String, title: String, hour: int, minute: int, tag: int = 1) +(IOS Only) Show notification daily at specific hour and minute (in 24 hour format). You can overide the notification with new time, or cancel it with tag and register a new one. *Need help*: Currently just support ios, need help on Android -### cancel(tag: int) +### cancelLocalNotification(tag: int) Cancel previously created notification. -### cancel_all() +### cancelAllNotifications() Cancel all pending notifications (implemented for iOS only). @@ -50,7 +54,7 @@ Check if notification permission was granted by user (iOS only). ### register_remote_notification() -Request system token for push notifications. +Request system token for push notifications. (iOS only) ### get_device_token() -> String diff --git a/android-plugin/build.gradle b/android-plugin/build.gradle index 575588e..ecd7a46 100644 --- a/android-plugin/build.gradle +++ b/android-plugin/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.0' + classpath 'com.android.tools.build:gradle:3.6.4' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.+' } } @@ -12,19 +12,19 @@ buildscript { allprojects { repositories { google() - jcenter() + mavenCentral() } } apply plugin: 'com.android.library' android { - compileSdkVersion 32 + compileSdkVersion 33 buildToolsVersion "32.0.0" defaultConfig { minSdkVersion 19 - targetSdkVersion 32 + targetSdkVersion 33 versionCode 1 versionName "1.1" } From d12c7a357fd866ad39cf1ef7be4cb885ecf07091 Mon Sep 17 00:00:00 2001 From: FinepointCGI Date: Thu, 22 Dec 2022 20:08:28 -0500 Subject: [PATCH 5/5] Added in pending intent changes --- .../java/ru/mobilap/localnotification/LocalNotification.java | 2 +- .../ru/mobilap/localnotification/LocalNotificationReceiver.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java index 3d2ac9b..3544894 100644 --- a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java +++ b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotification.java @@ -146,7 +146,7 @@ private PendingIntent getPendingIntent(String message, String title, int tag) { i.putExtra("notification_id", tag); i.putExtra("message", message); i.putExtra("title", title); - PendingIntent sender = PendingIntent.getBroadcast(getActivity(), tag, i, PendingIntent.FLAG_IMMUTABLE); + PendingIntent sender = PendingIntent.getBroadcast(getActivity(), tag, i, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); return sender; } diff --git a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotificationReceiver.java b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotificationReceiver.java index 34c471a..155ed45 100644 --- a/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotificationReceiver.java +++ b/android-plugin/src/main/java/ru/mobilap/localnotification/LocalNotificationReceiver.java @@ -47,7 +47,7 @@ public void onReceive(Context context, Intent intent) { Intent intent2 = new Intent(context, appClass); intent2.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); - PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent2, PendingIntent.FLAG_UPDATE_CURRENT); + PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent2, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); int iconID = context.getResources().getIdentifier("icon", "mipmap", context.getPackageName()); int notificationIconID = context.getResources().getIdentifier("notification_icon", "mipmap", context.getPackageName());