mirror of
https://github.com/selfxyz/self.git
synced 2026-04-05 03:00:53 -04:00
feat: backup/restore flow (#81)
Co-authored-by: Justin Hernandez <transphorm@gmail.com>
This commit is contained in:
committed by
GitHub
parent
dedcf82b24
commit
6a36b55cb8
@@ -3,8 +3,6 @@
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
|
||||
>
|
||||
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
|
||||
@@ -18,7 +16,6 @@
|
||||
android:label="@string/app_name"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:roundIcon="@mipmap/ic_launcher"
|
||||
android:allowBackup="false"
|
||||
tools:replace="android:allowBackup, android:icon, android:roundIcon, android:name"
|
||||
android:theme="@style/AppTheme"
|
||||
android:supportsRtl="true">
|
||||
@@ -45,3 +42,11 @@
|
||||
</activity>
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
|
||||
<!--
|
||||
TODO: add this back to <application />
|
||||
android:allowBackup="true"
|
||||
android:backupInForeground="true"
|
||||
android:dataExtractionRules="@xml/backup_rules"
|
||||
-->
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.proofofpassportapp
|
||||
|
||||
import android.app.backup.BackupManager
|
||||
import com.facebook.react.bridge.Promise
|
||||
import com.facebook.react.bridge.ReactApplicationContext
|
||||
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
||||
import com.facebook.react.bridge.ReactMethod
|
||||
|
||||
class BackupModule(reactContext: ReactApplicationContext): ReactContextBaseJavaModule(reactContext) {
|
||||
override fun getName() = "BackupModule"
|
||||
|
||||
@ReactMethod
|
||||
fun backupNow(promise: Promise) {
|
||||
// https://developer.android.com/identity/data/keyvaluebackup#RequestingBackup
|
||||
BackupManager.dataChanged(BuildConfig.APPLICATION_ID)
|
||||
promise.resolve(null)
|
||||
}
|
||||
|
||||
@ReactMethod
|
||||
fun restoreNow(promise: Promise) {
|
||||
// noop
|
||||
// https://developer.android.com/identity/data/keyvaluebackup#RequestingRestore
|
||||
promise.resolve(null)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.proofofpassportapp
|
||||
|
||||
import com.facebook.react.ReactPackage
|
||||
import com.facebook.react.bridge.NativeModule
|
||||
import com.facebook.react.bridge.ReactApplicationContext
|
||||
import com.facebook.react.uimanager.ViewManager
|
||||
|
||||
class BackupPackage : ReactPackage {
|
||||
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
||||
return listOf(
|
||||
BackupModule(reactContext)
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,10 +8,6 @@ import com.facebook.react.ReactPackage
|
||||
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint
|
||||
import com.facebook.react.defaults.DefaultReactNativeHost
|
||||
import com.facebook.soloader.SoLoader
|
||||
import com.proofofpassportapp.CameraActivityPackage
|
||||
import io.tradle.nfc.RNPassportReaderPackage
|
||||
import com.rnfs.RNFSPackage
|
||||
import com.proofofpassportapp.QRCodeScannerPackage
|
||||
|
||||
class MainApplication : Application(), ReactApplication {
|
||||
|
||||
@@ -23,6 +19,7 @@ class MainApplication : Application(), ReactApplication {
|
||||
// add(MyReactNativePackage())
|
||||
add(CameraActivityPackage())
|
||||
add(QRCodeScannerPackage())
|
||||
add(BackupPackage())
|
||||
}
|
||||
|
||||
override fun getJSMainModuleName(): String = "index"
|
||||
|
||||
9
app/android/app/src/main/res/xml/backup_rules.xml
Normal file
9
app/android/app/src/main/res/xml/backup_rules.xml
Normal file
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<data-extraction-rules>
|
||||
<cloud-backup>
|
||||
<include domain="file" path="."
|
||||
requireFlags="clientSideEncryption" />
|
||||
</cloud-backup>
|
||||
<device-transfer>
|
||||
</device-transfer>
|
||||
</data-extraction-rules>
|
||||
Reference in New Issue
Block a user