Restructure Android project from nested module layout to standard
Capacitor plugin structure following community conventions.
Structure Changes:
- Move plugin code from android/plugin/ to android/src/main/java/
- Move test app from android/app/ to test-apps/android-test-app/app/
- Remove nested android/plugin module structure
- Remove nested android/app test app structure
Build Infrastructure:
- Add Gradle wrapper files (gradlew, gradlew.bat, gradle/wrapper/)
- Transform android/build.gradle from root project to library module
- Update android/settings.gradle for standalone plugin builds
- Add android/gradle.properties with AndroidX configuration
- Add android/consumer-rules.pro for ProGuard rules
Configuration Updates:
- Add prepare script to package.json for automatic builds on npm install
- Update package.json version to 1.0.1
- Update android/build.gradle to properly resolve Capacitor dependencies
- Update test-apps/android-test-app/settings.gradle with correct paths
- Remove android/variables.gradle (hardcode values in build.gradle)
Documentation:
- Update BUILDING.md with new structure and build process
- Update INTEGRATION_GUIDE.md to reflect standard structure
- Update README.md to remove path fix warnings
- Add test-apps/BUILD_PROCESS.md documenting test app build flows
Test App Configuration:
- Fix android-test-app to correctly reference plugin and Capacitor
- Remove capacitor-cordova-android-plugins dependency (not needed)
- Update capacitor.settings.gradle path verification in fix script
BREAKING CHANGE: Plugin now uses standard Capacitor Android structure.
Consuming apps must update their capacitor.settings.gradle to reference
android/ instead of android/plugin/. This is automatically handled by
Capacitor CLI for apps using standard plugin installation.
Extracted daily reminder functionality from DailyNotificationPlugin into
a dedicated DailyReminderManager class to reduce the plugin's size and
effortsify responsibilities.
Changes:
- Created DailyReminderManager class (405 lines) for reminder CRUD
- Created DailyReminderInfo data class (moved from inner class)
- Delegated reminder methods to the manager
- Removed duplicate helper methods from plugin
- Added ensureReminderManagerInitialized() helper
Impact:
- Reduced DailyNotificationPlugin from 2639 to 2430 lines (209 lines)
- Clear separation of concerns
- Easier to test and maintain reminder functionality
- Follows existing manager pattern (PermissionManager, ChannelManager, etc.)
All public API methods remain unchanged - this is purely an internal
refactoring.