diff --git a/wallet/src/main/java/net/taler/wallet/settings/SettingsScreen.kt b/wallet/src/main/java/net/taler/wallet/settings/SettingsScreen.kt index 05923069..9e9a2f30 100644 --- a/wallet/src/main/java/net/taler/wallet/settings/SettingsScreen.kt +++ b/wallet/src/main/java/net/taler/wallet/settings/SettingsScreen.kt @@ -227,6 +227,36 @@ fun SettingsContent( } ) + SettingsItem( + title = stringResource(R.string.settings_db_export), + summary = stringResource(R.string.settings_db_export_summary), + icon = ImageVector.vectorResource(R.drawable.ic_unarchive), + onClick = { pendingDbExport = DbExportType.Json } + ) + + SettingsItem( + title = stringResource(R.string.settings_db_import), + summary = stringResource(R.string.settings_db_import_summary), + icon = ImageVector.vectorResource(R.drawable.ic_archive), + onClick = { + MaterialAlertDialogBuilder(context) + .setMessage(R.string.settings_dialog_import_message) + .setNegativeButton(R.string.import_db) { _, _ -> + dbImportLauncher.launch(arrayOf("application/json")) + } + .setPositiveButton(R.string.cancel) { _, _ -> + scope.launch { snackbarHostState.showSnackbar(importCanceledMessage) } + } + .show() + } + ) + + SettingsItem( + title = stringResource(R.string.settings_version_app), + summary = "${BuildConfig.VERSION_NAME} (${BuildConfig.FLAVOR} ${BuildConfig.VERSION_CODE})", + icon = ImageVector.vectorResource(R.drawable.ic_account_balance_wallet), + ) + SettingsSwitchItem( title = stringResource(R.string.settings_dev_mode), summary = stringResource(R.string.settings_dev_mode_summary), @@ -308,13 +338,6 @@ fun SettingsContent( onClick = { onNavigate(WalletDestination.AliasRegistration, false) } ) - SettingsItem( - title = stringResource(R.string.settings_db_export), - summary = stringResource(R.string.settings_db_export_summary), - icon = ImageVector.vectorResource(R.drawable.ic_unarchive), - onClick = { pendingDbExport = DbExportType.Json } - ) - SettingsItem( title = stringResource(R.string.settings_db_export_raw), summary = stringResource(R.string.settings_db_export_raw_summary), @@ -322,23 +345,6 @@ fun SettingsContent( onClick = { pendingDbExport = DbExportType.Raw } ) - SettingsItem( - title = stringResource(R.string.settings_db_import), - summary = stringResource(R.string.settings_db_import_summary), - icon = ImageVector.vectorResource(R.drawable.ic_archive), - onClick = { - MaterialAlertDialogBuilder(context) - .setMessage(R.string.settings_dialog_import_message) - .setNegativeButton(R.string.import_db) { _, _ -> - dbImportLauncher.launch(arrayOf("application/json")) - } - .setPositiveButton(R.string.cancel) { _, _ -> - scope.launch { snackbarHostState.showSnackbar(importCanceledMessage) } - } - .show() - } - ) - if (databaseBackend == WalletDatabaseBackend.IndexedDB) SettingsItem( title = stringResource(R.string.settings_migrate_db), summary = stringResource(R.string.settings_migrate_db_summary), @@ -346,12 +352,6 @@ fun SettingsContent( onClick = model::offerDatabaseMigration, ) - SettingsItem( - title = stringResource(R.string.settings_version_app), - summary = "${BuildConfig.VERSION_NAME} (${BuildConfig.FLAVOR} ${BuildConfig.VERSION_CODE})", - icon = ImageVector.vectorResource(R.drawable.ic_account_balance_wallet), - ) - SettingsItem( title = stringResource(R.string.settings_version_core), summary = "$walletVersion ($walletVersionHash)", @@ -404,32 +404,32 @@ fun SettingsContent( .show() } ) + } - pendingDbExport?.let { exportType -> - AlertDialog( - onDismissRequest = { pendingDbExport = null }, - title = { Text(stringResource(R.string.wallet_export_database)) }, - text = { Text(stringResource(R.string.wallet_export_database_warning)) }, - confirmButton = { - Button(onClick = { - pendingDbExport = null - when (exportType) { - DbExportType.Json -> - dbExportLauncher.launch("taler-wallet-db-${System.currentTimeMillis()}.json") - DbExportType.Raw -> - rawDbExportLauncher.launch("taler-wallet-db-${System.currentTimeMillis()}.sqlite3") - } - }) { - Text(stringResource(R.string.wallet_export_database_confirm)) - } - }, - dismissButton = { - TextButton(onClick = { pendingDbExport = null }) { - Text(stringResource(R.string.cancel)) + pendingDbExport?.let { exportType -> + AlertDialog( + onDismissRequest = { pendingDbExport = null }, + title = { Text(stringResource(R.string.wallet_export_database)) }, + text = { Text(stringResource(R.string.wallet_export_database_warning)) }, + confirmButton = { + Button(onClick = { + pendingDbExport = null + when (exportType) { + DbExportType.Json -> + dbExportLauncher.launch("taler-wallet-db-${System.currentTimeMillis()}.json") + DbExportType.Raw -> + rawDbExportLauncher.launch("taler-wallet-db-${System.currentTimeMillis()}.sqlite3") } + }) { + Text(stringResource(R.string.wallet_export_database_confirm)) } - ) - } + }, + dismissButton = { + TextButton(onClick = { pendingDbExport = null }) { + Text(stringResource(R.string.cancel)) + } + } + ) } BottomInsetsSpacer()