-
- All Implemented Interfaces:
-
android.content.ComponentCallbacks,android.content.ComponentCallbacks2,android.view.KeyEvent.Callback,android.view.LayoutInflater.Factory,android.view.LayoutInflater.Factory2,android.view.View.OnCreateContextMenuListener,android.view.Window.Callback,androidx.activity.OnBackPressedDispatcherOwner,androidx.activity.contextaware.ContextAware,androidx.activity.result.ActivityResultCaller,androidx.activity.result.ActivityResultRegistryOwner,androidx.core.app.ActivityCompat.OnRequestPermissionsResultCallback,androidx.core.app.ActivityCompat.RequestPermissionsRequestCodeValidator,androidx.core.view.KeyEventDispatcher.Component,androidx.lifecycle.HasDefaultViewModelProviderFactory,androidx.lifecycle.LifecycleOwner,androidx.lifecycle.ViewModelStoreOwner,androidx.savedstate.SavedStateRegistryOwner
public final class RoomBackup extends FragmentActivity
MIT License
Copyright (c) 2021 Raphael Ebner
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public classRoomBackup.Companion
-
Field Summary
Fields Modifier and Type Field Description private Contextcontextprivate final FragmentControllermFragmentsprivate final LifecycleRegistrymFragmentLifecycleRegistryprivate final BooleanmCreatedprivate final BooleanmResumedprivate final BooleanmStoppedprivate final ContextAwareHelpermContextAwareHelperprivate final SavedStateRegistryControllermSavedStateRegistryController
-
Constructor Summary
Constructors Constructor Description RoomBackup(Context context)
-
Method Summary
Modifier and Type Method Description final ContextgetContext()final UnitsetContext(Context context)final RoomBackupdatabase(RoomDatabase roomDatabase)Set RoomDatabase instance final RoomBackupenableLogDebug(Boolean enableLogDebug)Set LogDebug enabled / disabled final RoomBackuprestartApp(Intent restartIntent)Set Intent in which to boot after App restart final RoomBackuponCompleteListener(OnCompleteListener onCompleteListener)Set onCompleteListener, to run code when tasks completed final RoomBackuponCompleteListener(Function3<Boolean, String, Integer, Unit> listener)Set onCompleteListener, to run code when tasks completed final RoomBackupcustomLogTag(String customLogTag)Set custom log tag, for detailed debugging final RoomBackupcustomRestoreDialogTitle(String customRestoreDialogTitle)Set custom Restore Dialog Title, default = "Choose file to restore" final RoomBackupcustomBackupFileName(String customBackupFileName)Set custom Backup File Name, default = "$dbName-$currentTime. final RoomBackupbackupLocation(Integer backupLocation)Set you backup location. final RoomBackupbackupLocationCustomFile(File backupLocationCustomFile)Set a custom file where to save or restore a backup. final RoomBackupbackupIsEncrypted(Boolean backupIsEncrypted)Set file encryption to true / false can be used for backup and restore final RoomBackupmaxFileCount(Integer maxFileCount)Set max backup files count if fileCount is maxFileCount the oldest backup file will be deleted is for both internal and external storage final RoomBackupcustomEncryptPassword(String encryptPassword)Set custom backup encryption password final Unitbackup()Start Backup process, and set onComplete Listener to success, if no error occurred, else onComplete Listener success is false and error message is passedif custom storage ist selected, the openBackupfileCreator will be launched final Unitrestore()Start Restore process, and set onComplete Listener to success, if no error occurred, else onComplete Listener success is false and error message is passedif internal or external storage is selected, this function shows a list of all available backup files in a MaterialAlertDialog and calls restoreSelectedInternalExternalFile to restore selected fileif custom storage ist selected, the openBackupfileChooser will be launched -
Methods inherited from class android.app.Activity
applyOverrideConfiguration, getAssets, getResources, getTheme, onPointerCaptureChanged, setTheme -
Methods inherited from class android.view.ContextThemeWrapper
bindIsolatedService, bindService, bindService, bindServiceAsUser, checkCallingOrSelfPermission, checkCallingOrSelfUriPermission, checkCallingOrSelfUriPermissions, checkCallingPermission, checkCallingUriPermission, checkCallingUriPermissions, checkPermission, checkSelfPermission, checkUriPermission, checkUriPermission, checkUriPermissions, clearWallpaper, createAttributionContext, createConfigurationContext, createContext, createContextForSplit, createDeviceProtectedStorageContext, createDisplayContext, createPackageContext, createWindowContext, createWindowContext, databaseList, deleteDatabase, deleteFile, deleteSharedPreferences, enforceCallingOrSelfPermission, enforceCallingOrSelfUriPermission, enforceCallingPermission, enforceCallingUriPermission, enforcePermission, enforceUriPermission, enforceUriPermission, fileList, getApplicationContext, getApplicationInfo, getAttributionSource, getAttributionTag, getBaseContext, getCacheDir, getClassLoader, getCodeCacheDir, getContentResolver, getDataDir, getDatabasePath, getDir, getDisplay, getExternalCacheDir, getExternalCacheDirs, getExternalFilesDir, getExternalFilesDirs, getExternalMediaDirs, getFileStreamPath, getFilesDir, getMainExecutor, getMainLooper, getNoBackupFilesDir, getObbDir, getObbDirs, getOpPackageName, getPackageCodePath, getPackageManager, getPackageName, getPackageResourcePath, getParams, getSharedPreferences, getSystemServiceName, getWallpaper, getWallpaperDesiredMinimumHeight, getWallpaperDesiredMinimumWidth, grantUriPermission, isDeviceProtectedStorage, isRestricted, isUiContext, moveDatabaseFrom, moveSharedPreferencesFrom, openFileInput, openFileOutput, openOrCreateDatabase, openOrCreateDatabase, peekWallpaper, registerReceiver, registerReceiver, registerReceiver, registerReceiver, removeStickyBroadcast, removeStickyBroadcastAsUser, revokeUriPermission, revokeUriPermission, sendBroadcast, sendBroadcast, sendBroadcastAsUser, sendBroadcastAsUser, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcast, sendOrderedBroadcastAsUser, sendStickyBroadcast, sendStickyBroadcast, sendStickyBroadcastAsUser, sendStickyOrderedBroadcast, sendStickyOrderedBroadcastAsUser, setWallpaper, setWallpaper, startForegroundService, startInstrumentation, startService, stopService, unbindService, unregisterReceiver, updateServiceGroup -
Methods inherited from class android.content.ContextWrapper
getColor, getColorStateList, getDrawable, getString, getString, getSystemService, getText, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, obtainStyledAttributes, registerComponentCallbacks, sendBroadcastWithMultiplePermissions, unregisterComponentCallbacks -
Methods inherited from class androidx.core.app.ComponentActivity
attachBaseContext, closeContextMenu, closeOptionsMenu, createPendingResult, dismissDialog, dismissKeyboardShortcutsHelper, dispatchGenericMotionEvent, dispatchPopulateAccessibilityEvent, dispatchTouchEvent, dispatchTrackballEvent, enterPictureInPictureMode, enterPictureInPictureMode, findViewById, finish, finishActivity, finishActivityFromChild, finishAffinity, finishAfterTransition, finishAndRemoveTask, finishFromChild, getActionBar, getApplication, getCallingActivity, getCallingPackage, getChangingConfigurations, getComponentName, getContentScene, getContentTransitionManager, getCurrentFocus, getFragmentManager, getIntent, getLastNonConfigurationInstance, getLayoutInflater, getLoaderManager, getLocalClassName, getMaxNumPictureInPictureActions, getMediaController, getMenuInflater, getParent, getParentActivityIntent, getPreferences, getReferrer, getRequestedOrientation, getSearchEvent, getSplashScreen, getSystemService, getTaskId, getTitle, getTitleColor, getVoiceInteractor, getVolumeControlStream, getWindow, getWindowManager, hasWindowFocus, invalidateOptionsMenu, isActivityTransitionRunning, isChangingConfigurations, isChild, isDestroyed, isFinishing, isImmersive, isInMultiWindowMode, isInPictureInPictureMode, isLaunchedFromBubble, isLocalVoiceInteractionSupported, isTaskRoot, isVoiceInteraction, isVoiceInteractionRoot, managedQuery, moveTaskToBack, navigateUpTo, navigateUpToFromChild, onActionModeFinished, onActionModeStarted, onActivityReenter, onApplyThemeResource, onAttachFragment, onAttachedToWindow, onChildTitleChanged, onContentChanged, onContextItemSelected, onContextMenuClosed, onCreate, onCreateContextMenu, onCreateDescription, onCreateDialog, onCreateDialog, onCreateNavigateUpTaskStack, onCreateOptionsMenu, onCreatePanelView, onCreateThumbnail, onDetachedFromWindow, onEnterAnimationComplete, onGenericMotionEvent, onGetDirectActions, onKeyDown, onKeyLongPress, onKeyMultiple, onKeyShortcut, onKeyUp, onLocalVoiceInteractionStarted, onLocalVoiceInteractionStopped, onMenuOpened, onMultiWindowModeChanged, onNavigateUp, onNavigateUpFromChild, onOptionsItemSelected, onOptionsMenuClosed, onPerformDirectAction, onPictureInPictureModeChanged, onPictureInPictureRequested, onPictureInPictureUiStateChanged, onPostCreate, onPostCreate, onPrepareDialog, onPrepareDialog, onPrepareNavigateUpTaskStack, onPrepareOptionsMenu, onProvideAssistContent, onProvideAssistData, onProvideKeyboardShortcuts, onProvideReferrer, onRestart, onRestoreInstanceState, onRestoreInstanceState, onSaveInstanceState, onSearchRequested, onSearchRequested, onTitleChanged, onTopResumedActivityChanged, onTouchEvent, onTrackballEvent, onTrimMemory, onUserInteraction, onUserLeaveHint, onVisibleBehindCanceled, onWindowAttributesChanged, onWindowFocusChanged, onWindowStartingActionMode, onWindowStartingActionMode, openContextMenu, openOptionsMenu, overridePendingTransition, postponeEnterTransition, recreate, registerActivityLifecycleCallbacks, registerForContextMenu, releaseInstance, removeDialog, requestDragAndDropPermissions, requestPermissions, requestShowKeyboardShortcuts, requestVisibleBehind, requestWindowFeature, requireViewById, runOnUiThread, setActionBar, setContentTransitionManager, setDefaultKeyMode, setEnterSharedElementCallback, setExitSharedElementCallback, setFeatureDrawable, setFeatureDrawableAlpha, setFeatureDrawableResource, setFeatureDrawableUri, setFinishOnTouchOutside, setImmersive, setInheritShowWhenLocked, setIntent, setLocusContext, setMediaController, setPictureInPictureParams, setProgress, setProgressBarIndeterminate, setProgressBarIndeterminateVisibility, setProgressBarVisibility, setRequestedOrientation, setResult, setResult, setSecondaryProgress, setShowWhenLocked, setTaskDescription, setTheme, setTitle, setTitle, setTitleColor, setTranslucent, setTurnScreenOn, setVisible, setVolumeControlStream, setVrModeEnabled, shouldShowRequestPermissionRationale, shouldUpRecreateTask, showAssist, showDialog, showDialog, showLockTaskEscapeMessage, startActionMode, startActionMode, startActivities, startActivities, startActivity, startActivity, startActivityFromChild, startActivityFromChild, startActivityFromFragment, startActivityFromFragment, startActivityIfNeeded, startActivityIfNeeded, startIntentSender, startIntentSender, startIntentSenderFromChild, startIntentSenderFromChild, startLocalVoiceInteraction, startLockTask, startManagingCursor, startNextMatchingActivity, startNextMatchingActivity, startPostponedEnterTransition, startSearch, stopLocalVoiceInteraction, stopLockTask, stopManagingCursor, takeKeyEvents, triggerSearch, unregisterActivityLifecycleCallbacks, unregisterForContextMenu -
Methods inherited from class de.raphaelebner.roomdatabasebackup.core.RoomBackup
dispatchFragmentsOnCreateView, dump, getSupportFragmentManager, getSupportLoaderManager, markFragmentsCreated, onActivityResult, onAttachFragment, onConfigurationChanged, onCreate, onCreatePanelMenu, onCreateView, onCreateView, onDestroy, onLowMemory, onMenuItemSelected, onMultiWindowModeChanged, onNewIntent, onPanelClosed, onPause, onPictureInPictureModeChanged, onPostResume, onPrepareOptionsPanel, onPreparePanel, onRequestPermissionsResult, onResume, onResumeFragments, onStart, onStateNotSaved, onStop, setEnterSharedElementCallback, setExitSharedElementCallback, startActivityFromFragment, startActivityFromFragment, startIntentSenderFromFragment, supportFinishAfterTransition, supportInvalidateOptionsMenu, supportPostponeEnterTransition, supportStartPostponedEnterTransition, validateRequestPermissionsRequestCode -
Methods inherited from class androidx.activity.ComponentActivity
dispatchKeyEvent, dispatchKeyShortcutEvent, getExtraData, putExtraData, superDispatchKeyEvent -
Methods inherited from class androidx.fragment.app.FragmentActivity
addContentView, addOnContextAvailableListener, ensureViewModelStore, getActivityResultRegistry, getDefaultViewModelProviderFactory, getLastCustomNonConfigurationInstance, getLifecycle, getOnBackPressedDispatcher, getSavedStateRegistry, getViewModelStore, onBackPressed, onRetainCustomNonConfigurationInstance, onRetainNonConfigurationInstance, onSaveInstanceState, peekAvailableContext, registerForActivityResult, registerForActivityResult, removeOnContextAvailableListener, reportFullyDrawn, setContentView, setContentView, setContentView, startActivityForResult, startActivityForResult, startIntentSenderForResult, startIntentSenderForResult -
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
Constructor Detail
-
RoomBackup
RoomBackup(Context context)
-
-
Method Detail
-
getContext
final Context getContext()
-
setContext
final Unit setContext(Context context)
-
database
final RoomBackup database(RoomDatabase roomDatabase)
Set RoomDatabase instance
- Parameters:
roomDatabase- RoomDatabase
-
enableLogDebug
final RoomBackup enableLogDebug(Boolean enableLogDebug)
Set LogDebug enabled / disabled
- Parameters:
enableLogDebug- Boolean
-
restartApp
final RoomBackup restartApp(Intent restartIntent)
Set Intent in which to boot after App restart
- Parameters:
restartIntent- Intent
-
onCompleteListener
final RoomBackup onCompleteListener(OnCompleteListener onCompleteListener)
Set onCompleteListener, to run code when tasks completed
- Parameters:
onCompleteListener- OnCompleteListener
-
onCompleteListener
final RoomBackup onCompleteListener(Function3<Boolean, String, Integer, Unit> listener)
Set onCompleteListener, to run code when tasks completed
- Parameters:
listener- (success: Boolean, message: String) -> Unit
-
customLogTag
final RoomBackup customLogTag(String customLogTag)
Set custom log tag, for detailed debugging
- Parameters:
customLogTag- String
-
customRestoreDialogTitle
final RoomBackup customRestoreDialogTitle(String customRestoreDialogTitle)
Set custom Restore Dialog Title, default = "Choose file to restore"
- Parameters:
customRestoreDialogTitle- String
-
customBackupFileName
final RoomBackup customBackupFileName(String customBackupFileName)
Set custom Backup File Name, default = "$dbName-$currentTime.sqlite3"
- Parameters:
customBackupFileName- String
-
backupLocation
final RoomBackup backupLocation(Integer backupLocation)
Set you backup location. Available values see: BACKUP_FILE_LOCATION_INTERNAL, BACKUP_FILE_LOCATION_EXTERNAL, BACKUP_FILE_LOCATION_CUSTOM_DIALOG or BACKUP_FILE_LOCATION_CUSTOM_FILE
- Parameters:
backupLocation- Int, default = BACKUP_FILE_LOCATION_INTERNAL
-
backupLocationCustomFile
final RoomBackup backupLocationCustomFile(File backupLocationCustomFile)
Set a custom file where to save or restore a backup. can be used for backup and restore
Only available if backupLocation is set to BACKUP_FILE_LOCATION_CUSTOM_FILE
- Parameters:
backupLocationCustomFile- File
-
backupIsEncrypted
final RoomBackup backupIsEncrypted(Boolean backupIsEncrypted)
Set file encryption to true / false can be used for backup and restore
- Parameters:
backupIsEncrypted- Boolean, default = false
-
maxFileCount
final RoomBackup maxFileCount(Integer maxFileCount)
Set max backup files count if fileCount is maxFileCount the oldest backup file will be deleted is for both internal and external storage
- Parameters:
maxFileCount- Int, default = null
-
customEncryptPassword
final RoomBackup customEncryptPassword(String encryptPassword)
Set custom backup encryption password
- Parameters:
encryptPassword- String
-
backup
final Unit backup()
Start Backup process, and set onComplete Listener to success, if no error occurred, else onComplete Listener success is false and error message is passed
if custom storage ist selected, the openBackupfileCreator will be launched
-
restore
final Unit restore()
Start Restore process, and set onComplete Listener to success, if no error occurred, else onComplete Listener success is false and error message is passed
if internal or external storage is selected, this function shows a list of all available backup files in a MaterialAlertDialog and calls restoreSelectedInternalExternalFile to restore selected file
if custom storage ist selected, the openBackupfileChooser will be launched
-
-
-
-