From 64b65f8a940db5e8bb885402a5d98788c315a301 Mon Sep 17 00:00:00 2001 From: Matthew Raymer Date: Fri, 17 Oct 2025 08:06:53 +0000 Subject: [PATCH] fix(android): resolve DailyNotification plugin registration issue - Move plugin registration before super.onCreate() in MainActivity - Create dedicated dailynotification module for proper plugin structure - Add comprehensive logging for plugin registration debugging - Update Vue components with enhanced plugin detection and logging - Fix TypeScript errors in HomeView.vue for proper build The plugin was not being loaded because registration happened after BridgeActivity initialization. Moving registerPlugin() before super.onCreate() ensures the plugin is available when Capacitor loads plugins. Resolves simplified status dialog issue by ensuring native plugin is properly registered and accessible to JavaScript layer. --- .../android/app/build.gradle | 5 + .../dailynotification/test/MainActivity.java | 21 +- .../android/dailynotification/build.gradle | 22 +++ .../src/main/assets/capacitor.plugins.json | 6 + .../DailyNotificationPlugin.java | 3 +- .../android/settings.gradle | 1 + .../src/components/cards/StatusCard.vue | 49 +++-- .../src/views/HomeView.vue | 180 +++++++++++++++--- 8 files changed, 236 insertions(+), 51 deletions(-) create mode 100644 test-apps/daily-notification-test/android/dailynotification/build.gradle create mode 100644 test-apps/daily-notification-test/android/dailynotification/src/main/assets/capacitor.plugins.json rename test-apps/daily-notification-test/android/{app/src/main/java/com/timesafari/dailynotification/test => dailynotification/src/main/java/com/timesafari/dailynotification}/DailyNotificationPlugin.java (90%) diff --git a/test-apps/daily-notification-test/android/app/build.gradle b/test-apps/daily-notification-test/android/app/build.gradle index 14c6924..dfe0fe4 100644 --- a/test-apps/daily-notification-test/android/app/build.gradle +++ b/test-apps/daily-notification-test/android/app/build.gradle @@ -16,6 +16,10 @@ android { ignoreAssetsPattern '!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~' } } + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } buildTypes { release { minifyEnabled false @@ -40,6 +44,7 @@ dependencies { androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion" androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion" implementation project(':capacitor-cordova-android-plugins') + implementation project(':dailynotification') } apply from: 'capacitor.build.gradle' diff --git a/test-apps/daily-notification-test/android/app/src/main/java/com/timesafari/dailynotification/test/MainActivity.java b/test-apps/daily-notification-test/android/app/src/main/java/com/timesafari/dailynotification/test/MainActivity.java index d9ffcc7..8f2403c 100644 --- a/test-apps/daily-notification-test/android/app/src/main/java/com/timesafari/dailynotification/test/MainActivity.java +++ b/test-apps/daily-notification-test/android/app/src/main/java/com/timesafari/dailynotification/test/MainActivity.java @@ -1,5 +1,24 @@ package com.timesafari.dailynotification.test; import com.getcapacitor.BridgeActivity; +import com.timesafari.dailynotification.DailyNotificationPlugin; -public class MainActivity extends BridgeActivity {} +public class MainActivity extends BridgeActivity { + @Override + public void onCreate(android.os.Bundle savedInstanceState) { + android.util.Log.d("MainActivity", "MainActivity.onCreate() called - START"); + + // Register the DailyNotification plugin BEFORE calling super.onCreate() + android.util.Log.d("MainActivity", "Registering DailyNotification plugin..."); + try { + registerPlugin(DailyNotificationPlugin.class); + android.util.Log.d("MainActivity", "DailyNotification plugin registered successfully"); + } catch (Exception e) { + android.util.Log.e("MainActivity", "Failed to register DailyNotification plugin", e); + } + + super.onCreate(savedInstanceState); + android.util.Log.d("MainActivity", "MainActivity.onCreate() - after super.onCreate()"); + android.util.Log.d("MainActivity", "MainActivity.onCreate() called - END"); + } +} diff --git a/test-apps/daily-notification-test/android/dailynotification/build.gradle b/test-apps/daily-notification-test/android/dailynotification/build.gradle new file mode 100644 index 0000000..78a473b --- /dev/null +++ b/test-apps/daily-notification-test/android/dailynotification/build.gradle @@ -0,0 +1,22 @@ +apply plugin: 'com.android.library' + +android { + namespace "com.timesafari.dailynotification" + compileSdkVersion rootProject.ext.compileSdkVersion + + defaultConfig { + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_17 + targetCompatibility JavaVersion.VERSION_17 + } +} + +dependencies { + implementation project(':capacitor-android') +} diff --git a/test-apps/daily-notification-test/android/dailynotification/src/main/assets/capacitor.plugins.json b/test-apps/daily-notification-test/android/dailynotification/src/main/assets/capacitor.plugins.json new file mode 100644 index 0000000..e661cf9 --- /dev/null +++ b/test-apps/daily-notification-test/android/dailynotification/src/main/assets/capacitor.plugins.json @@ -0,0 +1,6 @@ +[ + { + "name": "DailyNotification", + "classpath": "com.timesafari.dailynotification.DailyNotificationPlugin" + } +] diff --git a/test-apps/daily-notification-test/android/app/src/main/java/com/timesafari/dailynotification/test/DailyNotificationPlugin.java b/test-apps/daily-notification-test/android/dailynotification/src/main/java/com/timesafari/dailynotification/DailyNotificationPlugin.java similarity index 90% rename from test-apps/daily-notification-test/android/app/src/main/java/com/timesafari/dailynotification/test/DailyNotificationPlugin.java rename to test-apps/daily-notification-test/android/dailynotification/src/main/java/com/timesafari/dailynotification/DailyNotificationPlugin.java index 21f78ac..7d209bf 100644 --- a/test-apps/daily-notification-test/android/app/src/main/java/com/timesafari/dailynotification/test/DailyNotificationPlugin.java +++ b/test-apps/daily-notification-test/android/dailynotification/src/main/java/com/timesafari/dailynotification/DailyNotificationPlugin.java @@ -1,4 +1,4 @@ -package com.timesafari.dailynotification.test; +package com.timesafari.dailynotification; import com.getcapacitor.JSObject; import com.getcapacitor.Plugin; @@ -13,6 +13,7 @@ public class DailyNotificationPlugin extends Plugin { public void load() { super.load(); // Log that the plugin has loaded + android.util.Log.d("DailyNotificationPlugin", "Plugin load() method called"); System.out.println("DN|PLUGIN_LOAD_START"); } diff --git a/test-apps/daily-notification-test/android/settings.gradle b/test-apps/daily-notification-test/android/settings.gradle index 3b4431d..b46bae3 100644 --- a/test-apps/daily-notification-test/android/settings.gradle +++ b/test-apps/daily-notification-test/android/settings.gradle @@ -1,4 +1,5 @@ include ':app' +include ':dailynotification' include ':capacitor-cordova-android-plugins' project(':capacitor-cordova-android-plugins').projectDir = new File('./capacitor-cordova-android-plugins/') diff --git a/test-apps/daily-notification-test/src/components/cards/StatusCard.vue b/test-apps/daily-notification-test/src/components/cards/StatusCard.vue index 99a37c4..1dac126 100644 --- a/test-apps/daily-notification-test/src/components/cards/StatusCard.vue +++ b/test-apps/daily-notification-test/src/components/cards/StatusCard.vue @@ -36,28 +36,39 @@ -