Skip to content

Commit

Permalink
Import accounts in an asynchronous task
Browse files Browse the repository at this point in the history
Show progress dialog while importing accounts
  • Loading branch information
codinguser committed Jun 21, 2013
1 parent 7c0e778 commit 677f939
Show file tree
Hide file tree
Showing 15 changed files with 75 additions and 19 deletions.
1 change: 1 addition & 0 deletions app/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@
<string name="summary_delete_all_transactions">All transactions in all accounts will be deleted!</string>
<string name="title_delete_all_transactions">Delete all transactions</string>
<string name="toast_all_transactions_deleted">All transactions successfully deleted!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d Unterkonto</item>
<item quantity="other">%d Unterkonten</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-el/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,7 @@
<string name="title_delete_all_transactions">Διαγραφή όλων των κινήσεων</string>
<string name="toast_all_transactions_deleted">Όλες οι κινήσεις διαγράφηκαν
με επιτυχία!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d υπο-λογαριασμός</item>
<item quantity="other">%d υπο-λογαριασμοί</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-es-rMX/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,7 @@
<string name="summary_delete_all_transactions">&#161;Todas las transaccipnes en todas las cuentas ser&#225;n borradas!</string>
<string name="title_delete_all_transactions">Borrar todas las transacciones</string>
<string name="toast_all_transactions_deleted">&#161;Todas las transacciones han sido borradas con exit&#243;samente!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d subcuenta</item>
<item quantity="other">%d subcuentas</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -335,6 +335,7 @@
<string name="summary_delete_all_transactions">Todas las transaccipnes en todas las cuentas ser&#225;n borradas</string>
<string name="title_delete_all_transactions">Borrar todas las transacciones</string>
<string name="toast_all_transactions_deleted">Todas las transacciones han sido borradas con &#233;xito</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d sub-cuenta</item>
<item quantity="other">%d sub-cuentas</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@
<string name="summary_delete_all_transactions">Toutes les transactions sur tous les comptes seront supprim&#233;s!</string>
<string name="title_delete_all_transactions">Supprimer toutes les transactions</string>
<string name="toast_all_transactions_deleted">Toutes les transactions ont &#233;t&#233; supprim&#233;es avec succ&#232;s!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d sous-compte</item>
<item quantity="other">%d sous-comptes</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-hu/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@
<string name="summary_delete_all_transactions">All transactions in all accounts will be deleted!</string>
<string name="title_delete_all_transactions">Delete all transactions</string>
<string name="toast_all_transactions_deleted">All transactions successfully deleted!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d sub-account</item>
<item quantity="other">%d sub-accounts</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@
<string name="summary_delete_all_transactions">Verranno eliminate tutte le transazioni in tutti i conti</string>
<string name="title_delete_all_transactions">Elimina tutte le transazioni</string>
<string name="toast_all_transactions_deleted">Tutte le transazioni sono state eliminate!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d sotto-conto</item>
<item quantity="other">%d sotto-conti</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-nb/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -338,6 +338,7 @@ format og importeres i regnskapsprogrammet GnuCash for PC.</string>
<string name="summary_delete_all_transactions">Alle transaksjoner i alle kontoer vil bli slettet!</string>
<string name="title_delete_all_transactions">Slette alle transaksjoner</string>
<string name="toast_all_transactions_deleted">Alle transaksjoner slettet!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d under-konto</item>
<item quantity="other">%d under-kontoer</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-nl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -337,6 +337,7 @@
<string name="summary_delete_all_transactions">All transactions in all accounts will be deleted!</string>
<string name="title_delete_all_transactions">Delete all transactions</string>
<string name="toast_all_transactions_deleted">All transactions successfully deleted!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d sub-account</item>
<item quantity="other">%d sub-accounts</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,7 @@
<string name="summary_delete_all_transactions">All transactions in all accounts will be deleted!</string>
<string name="title_delete_all_transactions">Delete all transactions</string>
<string name="toast_all_transactions_deleted">All transactions successfully deleted!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d sub-account</item>
<item quantity="other">%d sub-accounts</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -333,6 +333,7 @@
<string name="summary_delete_all_transactions">Все проводки во всех счетах будут удалены!</string>
<string name="title_delete_all_transactions">Удалить все проводки</string>
<string name="toast_all_transactions_deleted">Все проводки удалены!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d дочерний счёт</item>
<item quantity="other">%d шт. дочерних счетов</item>
Expand Down
1 change: 1 addition & 0 deletions app/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -533,6 +533,7 @@
<string name="summary_delete_all_transactions">All transactions in all accounts will be deleted!</string>
<string name="title_delete_all_transactions">Delete all transactions</string>
<string name="toast_all_transactions_deleted">All transactions successfully deleted!</string>
<string name="title_progress_importing_accounts">Importing accounts</string>
<plurals name="label_sub_accounts">
<item quantity="one">%d sub-account</item>
<item quantity="other">%d sub-accounts</item>
Expand Down
67 changes: 60 additions & 7 deletions app/src/org/gnucash/android/ui/accounts/AccountsActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,16 @@
package org.gnucash.android.ui.accounts;

import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.Fragment;
Expand All @@ -46,6 +50,7 @@
import org.gnucash.android.util.OnAccountClickedListener;

import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Currency;
import java.util.Locale;
Expand Down Expand Up @@ -384,17 +389,22 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {

switch (requestCode){
case AccountsListFragment.REQUEST_PICK_ACCOUNTS_FILE:
try {
GnucashAccountXmlHandler.parse(this, getContentResolver().openInputStream(data.getData()));
Toast.makeText(this, R.string.toast_success_importing_accounts, Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
Toast.makeText(this, R.string.toast_error_importing_accounts, Toast.LENGTH_LONG).show();
e.printStackTrace();
}
new AccountImporterTask(this).execute(data.getData());
break;
}
}

/**
* Starts the AccountsActivity and clears the activity stack
* @param context Application context
*/
public static void start(Context context){
Intent accountsActivityIntent = new Intent(context, AccountsActivity.class);
accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(accountsActivityIntent);
}

@Override
public void accountSelected(long accountRowId) {
Intent intent = new Intent(this, TransactionsActivity.class);
Expand All @@ -414,4 +424,47 @@ private void removeFirstRunFlag(){
editor.commit();
}

/**
* Imports a GnuCash (desktop) account file and displays a progress dialog.
* The AccountsActivity is opened when importing is done.
*/
public static class AccountImporterTask extends AsyncTask<Uri, Void, Boolean>{
private final Context context;
private ProgressDialog progressDialog;

public AccountImporterTask(Context context){
this.context = context;
}

@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(context);
progressDialog.setTitle(R.string.title_progress_importing_accounts);
progressDialog.setIndeterminate(true);
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
progressDialog.show();
}

@Override
protected Boolean doInBackground(Uri... uris) {
try {
GnucashAccountXmlHandler.parse(context, context.getContentResolver().openInputStream(uris[0]));
} catch (Exception exception){
exception.printStackTrace();
return false;
}
return true;
}

@Override
protected void onPostExecute(Boolean importSuccess) {
progressDialog.dismiss();

int message = importSuccess ? R.string.toast_success_importing_accounts : R.string.toast_error_importing_accounts;
Toast.makeText(context, message, Toast.LENGTH_LONG).show();

AccountsActivity.start(context);
}
}
}
10 changes: 2 additions & 8 deletions app/src/org/gnucash/android/ui/settings/SettingsActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import com.actionbarsherlock.view.MenuItem;
import org.gnucash.android.R;
import org.gnucash.android.data.Money;
import org.gnucash.android.ui.accounts.AccountsActivity;
import org.gnucash.android.ui.accounts.AccountsListFragment;
import org.gnucash.android.util.GnucashAccountXmlHandler;

Expand Down Expand Up @@ -167,14 +168,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {

switch (requestCode){
case AccountsListFragment.REQUEST_PICK_ACCOUNTS_FILE:
try {
GnucashAccountXmlHandler.parse(this, getContentResolver().openInputStream(data.getData()));

Toast.makeText(this, R.string.toast_success_importing_accounts, Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
Toast.makeText(this, R.string.toast_error_importing_accounts, Toast.LENGTH_LONG).show();
e.printStackTrace();
}
new AccountsActivity.AccountImporterTask(this).execute(data.getData());
break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -248,10 +248,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
if (fm.getBackStackEntryCount() > 0) {
fm.popBackStack();
} else {
Intent accountsActivityIntent = new Intent(this, AccountsActivity.class);
accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
accountsActivityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(accountsActivityIntent);
AccountsActivity.start(this);
finish();
}
return true;
Expand Down

0 comments on commit 677f939

Please sign in to comment.