feat(android-test): integrate DailyNotification plugin for real functionality
## 🔌 Plugin Integration - Copy DailyNotification plugin source code to android-test project - Add plugin manifest entries (receivers, permissions) to AndroidManifest.xml - Register plugin in capacitor.plugins.json for Capacitor discovery - Copy gradle wrapper and build configuration files ## 🎯 Real Functionality (No More Mocks) - Vue 3 app now connects to actual DailyNotification plugin - All buttons and features work with real plugin methods - Proper error handling for plugin availability - Better user feedback when plugin is not loaded ## 🛠️ Technical Changes - Added plugin Java source files to capacitor-cordova-android-plugins - Updated AndroidManifest.xml with receivers and permissions - Enhanced Vue stores with proper plugin availability checks - Improved error messages and user guidance ## ✅ Build & Deployment - Successfully builds Android APK with plugin integration - Installs and runs on emulator with full functionality - Plugin methods are now accessible from Vue 3 interface The android-test app is now a fully functional test environment that interacts with the real DailyNotification plugin, not mock interfaces. All scheduling, status checking, and notification management features work with the actual plugin implementation.
This commit is contained in:
@@ -92,12 +92,14 @@ export default class App extends Vue {
|
||||
|
||||
// Check if DailyNotification plugin is available
|
||||
if (!window.DailyNotification) {
|
||||
throw new Error('DailyNotification plugin not available')
|
||||
console.warn('⚠️ DailyNotification plugin not loaded - buttons will show error messages')
|
||||
this.appStore.setError('DailyNotification plugin not loaded. Please restart the app to enable full functionality.')
|
||||
return
|
||||
}
|
||||
|
||||
console.log('✅ DailyNotification plugin available')
|
||||
} else {
|
||||
console.log('🌐 Running in web mode')
|
||||
console.log('🌐 Running in web mode - DailyNotification plugin not available')
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -62,8 +62,12 @@ export const useNotificationsStore = defineStore('notifications', () => {
|
||||
priority?: string
|
||||
url?: string
|
||||
}): Promise<void> {
|
||||
if (!Capacitor.isNativePlatform() || !window.DailyNotification) {
|
||||
throw new Error('DailyNotification plugin not available')
|
||||
if (!Capacitor.isNativePlatform()) {
|
||||
throw new Error('DailyNotification plugin only available on native platforms')
|
||||
}
|
||||
|
||||
if (!window.DailyNotification) {
|
||||
throw new Error('DailyNotification plugin not loaded. Please restart the app.')
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -106,8 +110,12 @@ export const useNotificationsStore = defineStore('notifications', () => {
|
||||
repeatDaily?: boolean
|
||||
timezone?: string
|
||||
}): Promise<void> {
|
||||
if (!Capacitor.isNativePlatform() || !window.DailyNotification) {
|
||||
throw new Error('DailyNotification plugin not available')
|
||||
if (!Capacitor.isNativePlatform()) {
|
||||
throw new Error('DailyNotification plugin only available on native platforms')
|
||||
}
|
||||
|
||||
if (!window.DailyNotification) {
|
||||
throw new Error('DailyNotification plugin not loaded. Please restart the app.')
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -140,8 +148,12 @@ export const useNotificationsStore = defineStore('notifications', () => {
|
||||
}
|
||||
|
||||
async function cancelReminder(reminderId: string): Promise<void> {
|
||||
if (!Capacitor.isNativePlatform() || !window.DailyNotification) {
|
||||
throw new Error('DailyNotification plugin not available')
|
||||
if (!Capacitor.isNativePlatform()) {
|
||||
throw new Error('DailyNotification plugin only available on native platforms')
|
||||
}
|
||||
|
||||
if (!window.DailyNotification) {
|
||||
throw new Error('DailyNotification plugin not loaded. Please restart the app.')
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -169,7 +181,13 @@ export const useNotificationsStore = defineStore('notifications', () => {
|
||||
}
|
||||
|
||||
async function checkStatus(): Promise<void> {
|
||||
if (!Capacitor.isNativePlatform() || !window.DailyNotification) {
|
||||
if (!Capacitor.isNativePlatform()) {
|
||||
console.warn('DailyNotification plugin only available on native platforms')
|
||||
return
|
||||
}
|
||||
|
||||
if (!window.DailyNotification) {
|
||||
console.warn('DailyNotification plugin not loaded')
|
||||
return
|
||||
}
|
||||
|
||||
@@ -188,7 +206,13 @@ export const useNotificationsStore = defineStore('notifications', () => {
|
||||
}
|
||||
|
||||
async function getLastNotification(): Promise<void> {
|
||||
if (!Capacitor.isNativePlatform() || !window.DailyNotification) {
|
||||
if (!Capacitor.isNativePlatform()) {
|
||||
console.warn('DailyNotification plugin only available on native platforms')
|
||||
return
|
||||
}
|
||||
|
||||
if (!window.DailyNotification) {
|
||||
console.warn('DailyNotification plugin not loaded')
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user