diff --git a/app/src/main/java/org/gnucash/android/ui/account/AccountsListFragment.java b/app/src/main/java/org/gnucash/android/ui/account/AccountsListFragment.java index d099027d2..a83ab10bc 100644 --- a/app/src/main/java/org/gnucash/android/ui/account/AccountsListFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/account/AccountsListFragment.java @@ -64,6 +64,7 @@ import org.gnucash.android.ui.util.AccountBalanceTask; import org.gnucash.android.ui.util.CursorRecyclerAdapter; import org.gnucash.android.ui.util.widget.EmptyRecyclerView; +import org.gnucash.android.util.BackupManager; import java.util.List; @@ -247,6 +248,7 @@ public void tryDeleteAccount(long rowId) { if (acc.getTransactionCount() > 0 || mAccountsDbAdapter.getSubAccountCount(acc.getUID()) > 0) { showConfirmationDialog(rowId); } else { + BackupManager.backupActiveBook(); // Avoid calling AccountsDbAdapter.deleteRecord(long). See #654 String uid = mAccountsDbAdapter.getUID(rowId); mAccountsDbAdapter.deleteRecord(uid); diff --git a/app/src/main/java/org/gnucash/android/ui/account/DeleteAccountDialogFragment.java b/app/src/main/java/org/gnucash/android/ui/account/DeleteAccountDialogFragment.java index bc84ac4e1..4d5f6c551 100644 --- a/app/src/main/java/org/gnucash/android/ui/account/DeleteAccountDialogFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/account/DeleteAccountDialogFragment.java @@ -39,6 +39,7 @@ import org.gnucash.android.model.AccountType; import org.gnucash.android.ui.common.Refreshable; import org.gnucash.android.ui.homescreen.WidgetConfigurationActivity; +import org.gnucash.android.util.BackupManager; import org.gnucash.android.util.QualifiedAccountNameCursorAdapter; import java.util.List; @@ -209,6 +210,7 @@ public void onClick(View v) { @Override public void onClick(View v) { + BackupManager.backupActiveBook(); AccountsDbAdapter accountsDbAdapter = AccountsDbAdapter.getInstance(); diff --git a/app/src/main/java/org/gnucash/android/ui/settings/dialog/DeleteBookConfirmationDialog.java b/app/src/main/java/org/gnucash/android/ui/settings/dialog/DeleteBookConfirmationDialog.java index fe5dfccf9..2f58bcaf8 100644 --- a/app/src/main/java/org/gnucash/android/ui/settings/dialog/DeleteBookConfirmationDialog.java +++ b/app/src/main/java/org/gnucash/android/ui/settings/dialog/DeleteBookConfirmationDialog.java @@ -24,6 +24,7 @@ import org.gnucash.android.R; import org.gnucash.android.db.adapter.BooksDbAdapter; import org.gnucash.android.ui.common.Refreshable; +import org.gnucash.android.util.BackupManager; /** * Confirmation dialog for deleting a book. @@ -52,6 +53,7 @@ public Dialog onCreateDialog(Bundle savedInstanceState) { @Override public void onClick(DialogInterface dialogInterface, int which) { final String bookUID = getArguments().getString("bookUID"); + BackupManager.backupBook(bookUID); BooksDbAdapter.getInstance().deleteBook(bookUID); ((Refreshable) getTargetFragment()).refresh(); } diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java index ac382c53f..01f25340e 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledActionsListFragment.java @@ -60,6 +60,7 @@ import org.gnucash.android.model.Transaction; import org.gnucash.android.ui.common.FormActivity; import org.gnucash.android.ui.common.UxArgument; +import org.gnucash.android.util.BackupManager; import java.text.DateFormat; import java.util.Date; @@ -116,6 +117,8 @@ public void onDestroyActionMode(ActionMode mode) { public boolean onActionItemClicked(ActionMode mode, MenuItem item) { switch (item.getItemId()) { case R.id.context_menu_delete: + BackupManager.backupActiveBook(); + for (long id : getListView().getCheckedItemIds()) { if (mActionType == ScheduledAction.ActionType.TRANSACTION) { diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java index bb5796009..9ea0847e9 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java @@ -60,6 +60,7 @@ import org.gnucash.android.ui.transaction.dialog.BulkMoveDialogFragment; import org.gnucash.android.ui.util.CursorRecyclerAdapter; import org.gnucash.android.ui.util.widget.EmptyRecyclerView; +import org.gnucash.android.util.BackupManager; import java.util.List; @@ -354,6 +355,7 @@ public void onClick(View v) { public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.context_menu_delete: + BackupManager.backupActiveBook(); mTransactionsDbAdapter.deleteRecord(transactionId); WidgetConfigurationActivity.updateAllWidgets(getActivity()); refresh();