feat(backup): implement platform-specific database backup service

- Add Capacitor-specific DatabaseBackupService implementation
- Update PlatformServiceFactory to correctly load platform services
- Fix Filesystem API usage in Capacitor backup service
- Add detailed logging throughout backup process
- Improve error handling and cleanup of temporary files
- Update web platform backup implementation
- Add proper TypeScript types and documentation

This commit implements a robust platform-specific backup service that:
- Uses Capacitor's Filesystem and Share APIs for mobile platforms
- Properly handles file paths and URIs
- Includes comprehensive logging for debugging
- Cleans up temporary files after sharing
- Maintains consistent interface across platforms
This commit is contained in:
Matthew Raymer
2025-04-03 08:33:00 +00:00
parent 42d706b1fb
commit a0cf9ea721
33 changed files with 1156 additions and 158 deletions
@@ -1,2 +1,2 @@
#Fri Mar 21 07:27:50 UTC 2025
gradle.version=8.2.1
#Thu Apr 03 08:01:00 UTC 2025
gradle.version=8.11.1
Binary file not shown.
+2
View File
@@ -10,6 +10,8 @@ android {
apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
dependencies {
implementation project(':capacitor-app')
implementation project(':capacitor-filesystem')
implementation project(':capacitor-share')
}
@@ -2,5 +2,13 @@
{
"pkg": "@capacitor/app",
"classpath": "com.capacitorjs.plugins.app.AppPlugin"
},
{
"pkg": "@capacitor/filesystem",
"classpath": "com.capacitorjs.plugins.filesystem.FilesystemPlugin"
},
{
"pkg": "@capacitor/share",
"classpath": "com.capacitorjs.plugins.share.SharePlugin"
}
]
@@ -6,7 +6,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="/favicon.ico">
<title>TimeSafari</title>
<script type="module" crossorigin src="/assets/index-CZMUlUNO.js"></script>
<script type="module" crossorigin src="/assets/index-CxCVZqQa.js"></script>
</head>
<body>
<noscript>
+1 -1
View File
@@ -7,7 +7,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.2.1'
classpath 'com.android.tools.build:gradle:8.9.0'
classpath 'com.google.gms:google-services:4.4.0'
// NOTE: Do not place your application dependencies here; they belong
+6
View File
@@ -4,3 +4,9 @@ project(':capacitor-android').projectDir = new File('../node_modules/@capacitor/
include ':capacitor-app'
project(':capacitor-app').projectDir = new File('../node_modules/@capacitor/app/android')
include ':capacitor-filesystem'
project(':capacitor-filesystem').projectDir = new File('../node_modules/@capacitor/filesystem/android')
include ':capacitor-share'
project(':capacitor-share').projectDir = new File('../node_modules/@capacitor/share/android')
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME