From 17b4b8b2e22bb5d7cbda3b1745bbcf1407f1b10f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=80lex=20Magaz=20Gra=C3=A7a?= Date: Sun, 25 Jan 2015 12:38:34 +0100 Subject: [PATCH 01/10] Autoselect the default currency for the user in the first run dialog. Fixes https://github.com/codinguser/gnucash-android/issues/275 --- .../gnucash/android/ui/account/AccountsActivity.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/org/gnucash/android/ui/account/AccountsActivity.java b/app/src/org/gnucash/android/ui/account/AccountsActivity.java index e0ed799e2..a091f659d 100644 --- a/app/src/org/gnucash/android/ui/account/AccountsActivity.java +++ b/app/src/org/gnucash/android/ui/account/AccountsActivity.java @@ -61,6 +61,9 @@ import java.io.FileNotFoundException; import java.io.InputStream; import java.util.Arrays; +import java.util.Currency; +import java.util.List; +import java.util.Locale; /** * Manages actions related to accounts, displaying, exporting and creating new accounts @@ -443,11 +446,16 @@ public void onClick(DialogInterface dialog, int which) { AccountsActivity.this, android.R.layout.select_dialog_singlechoice, getResources().getStringArray(R.array.currency_names)); - adb.setAdapter(arrayAdapter, new DialogInterface.OnClickListener() { + final List currencyCodes = Arrays.asList( + getResources().getStringArray(R.array.key_currency_codes)); + String userCurrencyCode = Currency.getInstance(Locale.getDefault()).getCurrencyCode(); + int currencyIndex = currencyCodes.indexOf(userCurrencyCode.toUpperCase()); + + adb.setSingleChoiceItems(arrayAdapter, currencyIndex, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - String currency = Arrays.asList(getResources().getStringArray(R.array.key_currency_codes)).get(which); + String currency = currencyCodes.get(which); PreferenceManager.getDefaultSharedPreferences(AccountsActivity.this) .edit() .putString(getString(R.string.key_default_currency), currency) From f6a157cab18d2c8c0da8becf4f6a5318d4290771 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Fri, 6 Feb 2015 21:59:29 +0100 Subject: [PATCH 02/10] Updated Robotium tests Splits set default transaction type based on sign of amount --- app/res/layout/fragment_new_account.xml | 2 +- .../android/db/TransactionsDbAdapter.java | 26 ++- app/src/org/gnucash/android/model/Split.java | 1 + .../ui/account/AccountFormFragment.java | 2 +- .../android/ui/account/AccountsActivity.java | 4 + .../ui/transaction/TransactionsActivity.java | 23 ++- integration-tests/pom.xml | 2 +- integration-tests/res/values/strings.xml | 2 +- .../test/db/TransactionsDbAdapterTest.java | 37 ++-- .../android/test/ui/AccountsActivityTest.java | 148 ++++++-------- .../test/ui/ExportTransactionsTest.java | 25 +-- .../test/ui/TransactionsActivityTest.java | 190 +++++++++++------- .../android/test/util/ActionBarUtils.java | 2 +- 13 files changed, 269 insertions(+), 195 deletions(-) diff --git a/app/res/layout/fragment_new_account.xml b/app/res/layout/fragment_new_account.xml index 452f27e1c..ca13889fc 100644 --- a/app/res/layout/fragment_new_account.xml +++ b/app/res/layout/fragment_new_account.xml @@ -35,7 +35,7 @@ android:ellipsize="start" android:hint="@string/label_account_name" style="@style/ListItemText"> - + accountUID - * or for which this account is the origin account (double entry) - * i.e accountUID is double entry account UID + * Returns a cursor to a set of all transactions which have a split belonging to the accound with unique ID + * accountUID. * @param accountUID UID of the account whose transactions are to be retrieved * @return Cursor holding set of transactions for particular account * @throws java.lang.IllegalArgumentException if the accountUID is null @@ -521,8 +520,25 @@ public int getTransactionsCount(long accountId){ } return count; } - - /** + + /** + * Returns the number of transactions belonging to an account + * @param accountUID GUID of the account + * @return Number of transactions with splits in the account + */ + public int getTransactionsCount(String accountUID){ + Cursor cursor = fetchAllTransactionsForAccount(accountUID); + int count = 0; + if (cursor == null) + return count; + else { + count = cursor.getCount(); + cursor.close(); + } + return count; + } + + /** * Returns the total number of transactions in the database * regardless of what account they belong to * @return Number of transaction in the database diff --git a/app/src/org/gnucash/android/model/Split.java b/app/src/org/gnucash/android/model/Split.java index 9c99fb8e6..3a11e1c32 100644 --- a/app/src/org/gnucash/android/model/Split.java +++ b/app/src/org/gnucash/android/model/Split.java @@ -56,6 +56,7 @@ public Split(Money amount, String accountUID){ setAmount(amount); setAccountUID(accountUID); mUID = UUID.randomUUID().toString().replaceAll("-",""); + mSplitType = amount.isNegative() ? TransactionType.DEBIT : TransactionType.CREDIT; } /** diff --git a/app/src/org/gnucash/android/ui/account/AccountFormFragment.java b/app/src/org/gnucash/android/ui/account/AccountFormFragment.java index 2fb095f70..bca1a4026 100644 --- a/app/src/org/gnucash/android/ui/account/AccountFormFragment.java +++ b/app/src/org/gnucash/android/ui/account/AccountFormFragment.java @@ -241,7 +241,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, getSherlockActivity().getSupportActionBar().setTitle(R.string.title_add_account); mCurrencySpinner = (Spinner) view.findViewById(R.id.input_currency_spinner); mNameEditText = (EditText) view.findViewById(R.id.edit_text_account_name); - mNameEditText.requestFocus(); + //mNameEditText.requestFocus(); mAccountTypeSpinner = (Spinner) view.findViewById(R.id.input_account_type_spinner); mAccountTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { diff --git a/app/src/org/gnucash/android/ui/account/AccountsActivity.java b/app/src/org/gnucash/android/ui/account/AccountsActivity.java index a091f659d..13b3e4fb3 100644 --- a/app/src/org/gnucash/android/ui/account/AccountsActivity.java +++ b/app/src/org/gnucash/android/ui/account/AccountsActivity.java @@ -255,6 +255,10 @@ public void onCreate(Bundle savedInstanceState) { } + public void setTab(int index){ + mPager.setCurrentItem(index); + } + /** * Loads default setting for currency and performs app first-run initialization */ diff --git a/app/src/org/gnucash/android/ui/transaction/TransactionsActivity.java b/app/src/org/gnucash/android/ui/transaction/TransactionsActivity.java index 87d063945..c586dacd9 100644 --- a/app/src/org/gnucash/android/ui/transaction/TransactionsActivity.java +++ b/app/src/org/gnucash/android/ui/transaction/TransactionsActivity.java @@ -133,6 +133,8 @@ public class TransactionsActivity extends PassLockActivity implements private TextView mSectionHeaderTransactions; private TitlePageIndicator mTitlePageIndicator; + private ViewPager mPager; + private SparseArray mFragmentPageReferenceMap = new SparseArray(); private OnNavigationListener mTransactionListNavigationListener = new OnNavigationListener() { @@ -275,7 +277,7 @@ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_transactions); - ViewPager pager = (ViewPager) findViewById(R.id.pager); + mPager = (ViewPager) findViewById(R.id.pager); mTitlePageIndicator = (TitlePageIndicator) findViewById(R.id.titles); mSectionHeaderTransactions = (TextView) findViewById(R.id.section_header_transactions); @@ -286,7 +288,7 @@ protected void onCreate(Bundle savedInstanceState) { setupActionBarNavigation(); if (getIntent().getAction().equals(Intent.ACTION_INSERT_OR_EDIT)) { - pager.setVisibility(View.GONE); + mPager.setVisibility(View.GONE); mTitlePageIndicator.setVisibility(View.GONE); initializeCreateOrEditTransaction(); @@ -294,10 +296,10 @@ protected void onCreate(Bundle savedInstanceState) { mSectionHeaderTransactions.setVisibility(View.GONE); PagerAdapter pagerAdapter = new AccountViewPagerAdapter(getSupportFragmentManager()); - pager.setAdapter(pagerAdapter); - mTitlePageIndicator.setViewPager(pager); + mPager.setAdapter(pagerAdapter); + mTitlePageIndicator.setViewPager(mPager); - pager.setCurrentItem(INDEX_TRANSACTIONS_FRAGMENT); + mPager.setCurrentItem(INDEX_TRANSACTIONS_FRAGMENT); } // done creating, activity now running @@ -471,7 +473,16 @@ protected void onDestroy() { mAccountsCursor.close(); mAccountsDbAdapter.close(); } - + + /** + * Returns the current fragment (either sub-accounts, or transactions) displayed in the activity + * @return Current fragment displayed by the view pager + */ + public Fragment getCurrentPagerFragment(){ + int index = mPager.getCurrentItem(); + return (Fragment) mFragmentPageReferenceMap.get(index); + } + /** * Returns the global unique ID of the current account * @return GUID of the current account diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 372650d26..32b65c33c 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -27,7 +27,7 @@ Instrumentation tests for Gnucash for Android - 4.2 + 5.2.1 1.0.5 1.0.6 usb diff --git a/integration-tests/res/values/strings.xml b/integration-tests/res/values/strings.xml index 7d6e9f6ce..b32576cf9 100644 --- a/integration-tests/res/values/strings.xml +++ b/integration-tests/res/values/strings.xml @@ -2,6 +2,6 @@ Hello World! - GnucashMobileTest + GnuCash Android Integration Tests \ No newline at end of file diff --git a/integration-tests/src/org/gnucash/android/test/db/TransactionsDbAdapterTest.java b/integration-tests/src/org/gnucash/android/test/db/TransactionsDbAdapterTest.java index 304b29f46..fb7b662a5 100644 --- a/integration-tests/src/org/gnucash/android/test/db/TransactionsDbAdapterTest.java +++ b/integration-tests/src/org/gnucash/android/test/db/TransactionsDbAdapterTest.java @@ -3,6 +3,8 @@ import java.util.List; import org.gnucash.android.model.Account; +import org.gnucash.android.model.Money; +import org.gnucash.android.model.Split; import org.gnucash.android.model.Transaction; import org.gnucash.android.db.AccountsDbAdapter; import org.gnucash.android.db.TransactionsDbAdapter; @@ -10,10 +12,10 @@ import android.test.AndroidTestCase; public class TransactionsDbAdapterTest extends AndroidTestCase { - private static final String ALPHA_ACCOUNT_NAME = "Alpha"; - private static final String BRAVO_ACCOUNT_NAME = "Bravo"; - private static final String ALPHA_ACCOUNT_UID = "alpha-team"; - + private static final String ALPHA_ACCOUNT_NAME = "Alpha"; + private static final String BRAVO_ACCOUNT_NAME = "Bravo"; + private static final String ALPHA_ACCOUNT_UID = "alpha-team"; + private static final String BRAVO_ACCOUNT_UID = "bravo-team"; private TransactionsDbAdapter mAdapter; @Override @@ -23,19 +25,28 @@ protected void setUp() throws Exception { AccountsDbAdapter accountsAdapter = new AccountsDbAdapter(mContext); Account first = new Account(ALPHA_ACCOUNT_NAME); first.setUID(ALPHA_ACCOUNT_UID); + Account second = new Account(BRAVO_ACCOUNT_NAME); + second.setUID(BRAVO_ACCOUNT_UID); + + accountsAdapter.addAccount(first); + accountsAdapter.addAccount(second); + Transaction t1 = new Transaction("T800"); t1.setTime(System.currentTimeMillis() - 10000); + Split split = new Split(Money.getZeroInstance(), ALPHA_ACCOUNT_UID); + t1.addSplit(split); + t1.addSplit(split.createPair(BRAVO_ACCOUNT_UID)); + Transaction t2 = new Transaction( "T1000"); t2.setTime(System.currentTimeMillis()); - first.addTransaction(t1); - first.addTransaction(t2); - - Account second = new Account(BRAVO_ACCOUNT_NAME); - Transaction t = new Transaction( "buyout"); - second.addTransaction(t); - - accountsAdapter.addAccount(second); - accountsAdapter.addAccount(first); + Split split2 = new Split(new Money("23.50"), BRAVO_ACCOUNT_UID); + t2.addSplit(split2); + t2.addSplit(split2.createPair(ALPHA_ACCOUNT_UID)); + + TransactionsDbAdapter transactionsDbAdapter = new TransactionsDbAdapter(mContext); + transactionsDbAdapter.addTransaction(t1); + transactionsDbAdapter.addTransaction(t2); + } public void testTransactionsAreTimeSorted(){ diff --git a/integration-tests/src/org/gnucash/android/test/ui/AccountsActivityTest.java b/integration-tests/src/org/gnucash/android/test/ui/AccountsActivityTest.java index a173f31d4..bc33309c6 100644 --- a/integration-tests/src/org/gnucash/android/test/ui/AccountsActivityTest.java +++ b/integration-tests/src/org/gnucash/android/test/ui/AccountsActivityTest.java @@ -24,19 +24,17 @@ import android.test.ActivityInstrumentationTestCase2; import android.view.View; import android.widget.EditText; -import android.widget.ListView; -import android.widget.TextView; -import com.jayway.android.robotium.solo.Solo; +import com.robotium.solo.Solo; import org.gnucash.android.R; +import org.gnucash.android.db.AccountsDbAdapter; +import org.gnucash.android.db.TransactionsDbAdapter; import org.gnucash.android.model.Account; import org.gnucash.android.model.Money; +import org.gnucash.android.model.Split; import org.gnucash.android.model.Transaction; -import org.gnucash.android.db.AccountsDbAdapter; -import org.gnucash.android.db.TransactionsDbAdapter; import org.gnucash.android.test.util.ActionBarUtils; import org.gnucash.android.ui.account.AccountsActivity; import org.gnucash.android.ui.account.AccountsListFragment; -import org.gnucash.android.ui.transaction.TransactionsActivity; import java.util.Currency; import java.util.List; @@ -59,7 +57,7 @@ protected void setUp() throws Exception { editor.putBoolean(context.getString(R.string.key_first_run), false); editor.commit(); - mSolo = new Solo(getInstrumentation(), getActivity()); + mSolo = new Solo(getInstrumentation(), getActivity()); AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); Account account = new Account(DUMMY_ACCOUNT_NAME); @@ -68,14 +66,22 @@ protected void setUp() throws Exception { adapter.addAccount(account); adapter.close(); + getInstrumentation().runOnMainSync(new Runnable() { + @Override + public void run() { + getActivity().setTab(AccountsActivity.INDEX_TOP_LEVEL_ACCOUNTS_FRAGMENT); + } + }); + + //the What's new dialog is usually displayed on first run String dismissDialog = getActivity().getString(R.string.label_dismiss); - if (mSolo.waitForText(dismissDialog)){ + if (mSolo.waitForText(dismissDialog,1,1000)){ mSolo.clickOnText(dismissDialog); } } - +/* public void testDisplayAccountsList(){ final int NUMBER_OF_ACCOUNTS = 15; AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); @@ -88,13 +94,13 @@ public void testDisplayAccountsList(){ //there should exist a listview of accounts refreshAccountsList(); mSolo.waitForText("Acct"); + mSolo.scrollToBottom(); - ListView accountsListView = mSolo.getCurrentViews(ListView.class).get(0); + ListView accountsListView = (ListView) mSolo.getView(android.R.id.list); assertNotNull(accountsListView); - assertEquals(NUMBER_OF_ACCOUNTS + 1, accountsListView.getCount()); } - +*/ public void testSearchAccounts(){ String SEARCH_ACCOUNT_NAME = "Search Account"; @@ -125,14 +131,16 @@ public void testSearchAccounts(){ * Tests that an account can be created successfully and that the account list is sorted alphabetically. */ public void testCreateAccount(){ - mSolo.waitForFragmentByTag(AccountsActivity.FRAGMENT_ACCOUNTS_LIST); - mSolo.clickOnActionBarItem(R.id.menu_add_account); + mSolo.clickOnActionBarItem(R.id.menu_add_account); mSolo.waitForText(getActivity().getString(R.string.title_add_account)); + View checkbox = mSolo.getCurrentActivity().findViewById(R.id.checkbox_parent_account); //there already exists one eligible parent account in the system - assertThat(getActivity().findViewById(R.id.checkbox_parent_account)).isVisible(); + assertThat(checkbox).isVisible(); - EditText inputAccountName = (EditText) getActivity().findViewById(R.id.edit_text_account_name); + mSolo.clickOnCheckBox(0); + + EditText inputAccountName = (EditText) mSolo.getCurrentActivity().findViewById(R.id.edit_text_account_name); String NEW_ACCOUNT_NAME = "A New Account"; // mSolo.enterText(0, NEW_ACCOUNT_NAME); mSolo.enterText(inputAccountName, NEW_ACCOUNT_NAME); @@ -140,29 +148,50 @@ public void testCreateAccount(){ mSolo.waitForText(NEW_ACCOUNT_NAME); - ListView lv = mSolo.getCurrentViews(ListView.class).get(0); - assertNotNull(lv); - TextView v = (TextView) lv.getChildAt(0) //accounts are sorted alphabetically - .findViewById(R.id.primary_text); - - assertEquals(NEW_ACCOUNT_NAME, v.getText().toString()); AccountsDbAdapter accAdapter = new AccountsDbAdapter(getActivity()); - - List accounts = accAdapter.getAllAccounts(); + + List accounts = accAdapter.getAllAccounts(); //sorted alphabetically Account newestAccount = accounts.get(0); - + assertEquals(NEW_ACCOUNT_NAME, newestAccount.getName()); assertEquals(Money.DEFAULT_CURRENCY_CODE, newestAccount.getCurrency().getCurrencyCode()); - + assertTrue(newestAccount.isPlaceholderAccount()); accAdapter.close(); } + public void testChangeParentAccount(){ + AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); + final String accountName = "Euro Account"; + final String accountUID = "my-euro_account"; + Account account = new Account(accountName, Currency.getInstance("EUR")); + account.setUID(accountUID); + accountsDbAdapter.addAccount(account); + + refreshAccountsList(); + mSolo.waitForText(accountName); + + mSolo.clickLongOnText(accountName); + clickSherlockActionBarItem(R.id.context_menu_edit_accounts); + mSolo.waitForView(EditText.class); + + mSolo.clickOnCheckBox(1); + mSolo.pressSpinnerItem(2, 0); +// mSolo.clickOnText(DUMMY_ACCOUNT_NAME); + + clickSherlockActionBarItem(R.id.menu_save); + + mSolo.waitForText(getActivity().getString(R.string.title_accounts)); + Account editedAccount = accountsDbAdapter.getAccount(accountUID); + String parentUID = editedAccount.getParentUID(); + + assertNotNull(parentUID); + assertEquals(DUMMY_ACCOUNT_UID, parentUID); + + accountsDbAdapter.close(); + } + public void testEditAccount(){ - Fragment fragment = getActivity() - .getSupportFragmentManager() - .findFragmentByTag(AccountsActivity.FRAGMENT_ACCOUNTS_LIST); - ((AccountsListFragment) fragment).refresh(); - + refreshAccountsList(); mSolo.waitForText(DUMMY_ACCOUNT_NAME); String editedAccountName = "Edited Account"; @@ -181,17 +210,12 @@ public void testEditAccount(){ mSolo.waitForDialogToClose(2000); mSolo.waitForText("Accounts"); - ListView lv = mSolo.getCurrentViews(ListView.class).get(0); - TextView tv = (TextView) lv.getChildAt(0) - .findViewById(R.id.primary_text); - assertEquals(editedAccountName, tv.getText().toString()); - AccountsDbAdapter accAdapter = new AccountsDbAdapter(getActivity()); List accounts = accAdapter.getAllAccounts(); Account latest = accounts.get(0); //will be the first due to alphabetical sorting - assertEquals(latest.getName(), "Edited Account"); + assertEquals("Edited Account", latest.getName()); assertEquals(DUMMY_ACCOUNT_CURRENCY_CODE, latest.getCurrency().getCurrencyCode()); accAdapter.close(); } @@ -204,13 +228,12 @@ public void testDeleteAccount(){ acc.setUID(accountUidToDelete); Transaction transaction = new Transaction("hats"); + transaction.addSplit(new Split(Money.getZeroInstance(), accountUidToDelete)); acc.addTransaction(transaction); AccountsDbAdapter accDbAdapter = new AccountsDbAdapter(getActivity()); accDbAdapter.addAccount(acc); - Fragment fragment = getActivity() - .getSupportFragmentManager() - .findFragmentByTag(AccountsActivity.FRAGMENT_ACCOUNTS_LIST); + Fragment fragment = getActivity().getCurrentAccountListFragment(); assertNotNull(fragment); ((AccountsListFragment) fragment).refresh(); @@ -219,8 +242,7 @@ public void testDeleteAccount(){ clickSherlockActionBarItem(R.id.context_menu_delete); - String deleteConfirm = getActivity().getString(R.string.alert_dialog_ok_delete); - mSolo.clickOnText(deleteConfirm); + mSolo.clickOnView(mSolo.getView(android.R.id.button1)); mSolo.waitForDialogToClose(1000); mSolo.waitForText("Accounts"); @@ -230,50 +252,12 @@ public void testDeleteAccount(){ TransactionsDbAdapter transDbAdapter = new TransactionsDbAdapter(getActivity()); List transactions = transDbAdapter.getAllTransactionsForAccount(accountUidToDelete); - assertEquals(0, transactions.size()); accDbAdapter.close(); transDbAdapter.close(); } - public void testDisplayTransactionsList(){ - final int TRANSACTION_COUNT = 15; - //first create a couple of transations - TransactionsDbAdapter transactionsDbAdapter = new TransactionsDbAdapter(getActivity()); - for (int i = 0; i < TRANSACTION_COUNT; i++) { - Transaction transaction = new Transaction("Transaxion " + i); - transactionsDbAdapter.addTransaction(transaction); - } - transactionsDbAdapter.close(); - - Fragment fragment = getActivity() - .getSupportFragmentManager() - .findFragmentByTag(AccountsActivity.FRAGMENT_ACCOUNTS_LIST); - ((AccountsListFragment) fragment).refresh(); - - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - mSolo.clickOnText(DUMMY_ACCOUNT_NAME); - mSolo.waitForText("Transaxion"); - - mSolo.scrollDown(); - - String classname = mSolo.getCurrentActivity().getComponentName().getClassName(); - assertEquals(TransactionsActivity.class.getName(), classname); - - fragment = ((TransactionsActivity)mSolo.getCurrentActivity()) - .getSupportFragmentManager() - .findFragmentByTag(TransactionsActivity.FRAGMENT_TRANSACTIONS_LIST); - - assertNotNull(fragment); - - //there are two list views in the transactions activity, one for sub-accounts and another for transactions - assertEquals(2, mSolo.getCurrentViews(ListView.class).size()); - ListView listView = mSolo.getCurrentViews(ListView.class).get(1); - assertNotNull(listView); - assertEquals(TRANSACTION_COUNT, listView.getCount()); - - } public void testIntentAccountCreation(){ Intent intent = new Intent(Intent.ACTION_INSERT); @@ -324,9 +308,7 @@ private void clickSherlockActionBarItem(int id){ * Refresh the account list fragment */ private void refreshAccountsList(){ - Fragment fragment = getActivity() - .getSupportFragmentManager() - .findFragmentByTag(AccountsActivity.FRAGMENT_ACCOUNTS_LIST); + Fragment fragment = getActivity().getCurrentAccountListFragment(); ((AccountsListFragment)fragment).refresh(); } } diff --git a/integration-tests/src/org/gnucash/android/test/ui/ExportTransactionsTest.java b/integration-tests/src/org/gnucash/android/test/ui/ExportTransactionsTest.java index 6da6059b0..511b8ed77 100644 --- a/integration-tests/src/org/gnucash/android/test/ui/ExportTransactionsTest.java +++ b/integration-tests/src/org/gnucash/android/test/ui/ExportTransactionsTest.java @@ -16,22 +16,22 @@ package org.gnucash.android.test.ui; -import java.io.File; - +import android.os.Environment; +import android.test.ActivityInstrumentationTestCase2; +import android.widget.Spinner; +import com.robotium.solo.Solo; import org.gnucash.android.R; -import org.gnucash.android.export.Exporter; -import org.gnucash.android.model.Account; -import org.gnucash.android.model.Transaction; import org.gnucash.android.db.AccountsDbAdapter; import org.gnucash.android.db.TransactionsDbAdapter; import org.gnucash.android.export.ExportFormat; +import org.gnucash.android.export.Exporter; +import org.gnucash.android.model.Account; +import org.gnucash.android.model.Money; +import org.gnucash.android.model.Split; +import org.gnucash.android.model.Transaction; import org.gnucash.android.ui.account.AccountsActivity; -import android.os.Environment; -import android.test.ActivityInstrumentationTestCase2; -import android.widget.Spinner; - -import com.jayway.android.robotium.solo.Solo; +import java.io.File; public class ExportTransactionsTest extends ActivityInstrumentationTestCase2 { @@ -51,7 +51,8 @@ protected void setUp() throws Exception { Transaction transaction = new Transaction("Pizza"); transaction.setNote("What up?"); transaction.setTime(System.currentTimeMillis()); - + Split split = new Split(new Money("8.99", "USD"), account.getUID()); + transaction.addSplit(split); account.addTransaction(transaction); AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); @@ -118,7 +119,7 @@ public void testQifExport(){ File file = new File(Environment.getExternalStorageDirectory() + "/gnucash/" + filename); assertNotNull(file); - assertTrue(file.exists()); +// assertTrue(file.exists()); //if this is not deleted, we cannot be certain that the next test will pass on its own merits boolean isDeleted = file.delete(); diff --git a/integration-tests/src/org/gnucash/android/test/ui/TransactionsActivityTest.java b/integration-tests/src/org/gnucash/android/test/ui/TransactionsActivityTest.java index 974896b5e..3340e95b7 100644 --- a/integration-tests/src/org/gnucash/android/test/ui/TransactionsActivityTest.java +++ b/integration-tests/src/org/gnucash/android/test/ui/TransactionsActivityTest.java @@ -24,20 +24,19 @@ import android.support.v4.app.Fragment; import android.test.ActivityInstrumentationTestCase2; import android.view.View; -import android.widget.Spinner; -import android.widget.TextView; -import android.widget.ToggleButton; -import com.jayway.android.robotium.solo.Solo; +import android.widget.*; +import com.robotium.solo.Solo; import org.gnucash.android.R; -import org.gnucash.android.model.Account; -import org.gnucash.android.model.Money; -import org.gnucash.android.model.Transaction; import org.gnucash.android.db.AccountsDbAdapter; import org.gnucash.android.db.TransactionsDbAdapter; +import org.gnucash.android.model.*; import org.gnucash.android.ui.UxArgument; import org.gnucash.android.ui.transaction.TransactionFormFragment; import org.gnucash.android.ui.transaction.TransactionsActivity; +import org.gnucash.android.ui.transaction.TransactionsListFragment; +import org.gnucash.android.ui.util.TransactionTypeToggleButton; +import java.math.BigDecimal; import java.text.NumberFormat; import java.text.ParseException; import java.util.Currency; @@ -49,11 +48,16 @@ public class TransactionsActivityTest extends ActivityInstrumentationTestCase2 { - private static final String TRANSACTION_AMOUNT = "9.99"; + private static final String TRANSACTION_AMOUNT = "9.99"; private static final String TRANSACTION_NAME = "Pizza"; private static final String DUMMY_ACCOUNT_UID = "transactions-account"; private static final String DUMMY_ACCOUNT_NAME = "Transactions Account"; - private Solo mSolo; + + private static final String TRANSFER_ACCOUNT_NAME = "Transfer account"; + private static final String TRANSFER_ACCOUNT_UID = "transfer_account"; + public static final String CURRENCY_CODE = "USD"; + + private Solo mSolo; private Transaction mTransaction; private long mTransactionTimeMillis; @@ -66,21 +70,33 @@ protected void setUp() throws Exception { mTransactionTimeMillis = System.currentTimeMillis(); Account account = new Account(DUMMY_ACCOUNT_NAME); account.setUID(DUMMY_ACCOUNT_UID); - account.setCurrency(Currency.getInstance(Locale.getDefault())); + account.setCurrency(Currency.getInstance(CURRENCY_CODE)); + + Account account2 = new Account(TRANSFER_ACCOUNT_NAME); + account2.setUID(TRANSFER_ACCOUNT_UID); + account2.setCurrency(Currency.getInstance(CURRENCY_CODE)); + mTransaction = new Transaction(TRANSACTION_NAME); mTransaction.setNote("What up?"); mTransaction.setTime(mTransactionTimeMillis); + Split split = new Split(new Money(TRANSACTION_AMOUNT, CURRENCY_CODE), DUMMY_ACCOUNT_UID); + split.setType(TransactionType.DEBIT); + mTransaction.addSplit(split); + mTransaction.addSplit(split.createPair(TRANSFER_ACCOUNT_UID)); account.addTransaction(mTransaction); Context context = getInstrumentation().getTargetContext(); AccountsDbAdapter adapter = new AccountsDbAdapter(context); - long id = adapter.addAccount(account); + long id1 = adapter.addAccount(account); + long id2 = adapter.addAccount(account2); + adapter.close(); - assertTrue(id > 0); + assertTrue(id1 > 0); + assertTrue(id2 > 0); Intent intent = new Intent(Intent.ACTION_VIEW); - intent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, id); + intent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, DUMMY_ACCOUNT_UID); setActivityIntent(intent); mSolo = new Solo(getInstrumentation(), getActivity()); @@ -96,16 +112,13 @@ private void clickSherlockActionBarItem(int id){ } private void validateTransactionListDisplayed(){ - Fragment fragment = getActivity() - .getSupportFragmentManager() - .findFragmentByTag(TransactionsActivity.FRAGMENT_TRANSACTIONS_LIST); - + Fragment fragment = getActivity().getCurrentPagerFragment(); assertNotNull(fragment); } private int getTranscationCount(){ TransactionsDbAdapter transactionsDb = new TransactionsDbAdapter(getActivity()); - int count = transactionsDb.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID).size(); + int count = transactionsDb.fetchAllTransactionsForAccount(DUMMY_ACCOUNT_UID).getCount(); transactionsDb.close(); return count; } @@ -147,10 +160,11 @@ public void testAddTransactionShouldRequireAmount(){ private void validateEditTransactionFields(Transaction transaction){ - String name = mSolo.getEditText(0).getText().toString(); + String name = ((EditText)mSolo.getView(R.id.input_transaction_name)).getText().toString(); assertEquals(transaction.getDescription(), name); - - String amountString = mSolo.getEditText(1).getText().toString(); + + EditText amountEdittext = (EditText) mSolo.getView(R.id.input_transaction_amount); + String amountString = amountEdittext.getText().toString(); NumberFormat formatter = NumberFormat.getInstance(); try { amountString = formatter.parse(amountString).toString(); @@ -159,9 +173,10 @@ private void validateEditTransactionFields(Transaction transaction){ } Money amount = new Money(amountString, Currency.getInstance(Locale.getDefault()).getCurrencyCode()); assertEquals(transaction.getBalance(DUMMY_ACCOUNT_UID), amount); - - String description = mSolo.getEditText(2).getText().toString(); - assertEquals(transaction.getNote(), description); + + EditText notesEditText = (EditText) mSolo.getView(R.id.input_description); + String transactionNotes = notesEditText.getText().toString(); + assertEquals(transaction.getNote(), transactionNotes); String expectedValue = TransactionFormFragment.DATE_FORMATTER.format(transaction.getTimeMillis()); TextView dateView = (TextView) mSolo.getView(R.id.input_date); @@ -175,40 +190,55 @@ private void validateEditTransactionFields(Transaction transaction){ } public void testAddTransaction(){ - mSolo.waitForText(TRANSACTION_NAME); -// mSolo.waitForFragmentByTag(TransactionsActivity.FRAGMENT_TRANSACTIONS_LIST); + setDoubleEntryEnabled(true); + mSolo.waitForText(TRANSACTION_NAME); validateTransactionListDisplayed(); + clickSherlockActionBarItem(R.id.menu_add_transaction); -// mSolo.clickOnActionBarItem(R.id.menu_add_transaction); - clickSherlockActionBarItem(R.id.menu_add_transaction); + mSolo.waitForText("New transaction"); -// mSolo.waitForView(EditText.class); - mSolo.waitForText("New transaction"); + //validate creation of transaction + mSolo.enterText(0, "Lunch"); + mSolo.enterText(1, "899"); -// validateNewTransactionFields(); + TransactionTypeToggleButton typeToggleButton = (TransactionTypeToggleButton) mSolo.getView(R.id.input_transaction_type); + String text = typeToggleButton.getText().toString(); + assertTrue(mSolo.searchToggleButton(text)); + if (!mSolo.isToggleButtonChecked(0)){ + mSolo.clickOnToggleButton(text); + } - //validate creation of transaction - mSolo.enterText(0, "Lunch"); - mSolo.enterText(1, "899"); - //check that the amount is correctly converted in the input field - String value = mSolo.getEditText(1).getText().toString(); - String expectedValue = NumberFormat.getInstance().format(-8.99); - assertEquals(expectedValue, value); - - int transactionsCount = getTranscationCount(); - - //Android 2.2 cannot handle this for some reason -// mSolo.clickOnActionBarItem(R.id.menu_save); -// mSolo.clickOnImage(3); - clickSherlockActionBarItem(R.id.menu_save); + //check that the amount is correctly converted in the input field + String value = mSolo.getEditText(1).getText().toString(); + String expectedValue = NumberFormat.getInstance().format(-8.99); + assertEquals(expectedValue, value); - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - validateTransactionListDisplayed(); + int transactionsCount = getTranscationCount(); - assertEquals(transactionsCount + 1, getTranscationCount()); - } +// clickSherlockActionBarItem(R.id.menu_save); + mSolo.clickOnActionBarItem(R.id.menu_save); + + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + validateTransactionListDisplayed(); + + mSolo.sleep(1000); + + TransactionsDbAdapter transactionsDbAdapter = new TransactionsDbAdapter(getActivity()); + List transactions = transactionsDbAdapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); + assertEquals(2, transactions.size()); + Transaction transaction = transactions.get(0); + + assertEquals(2, transaction.getSplits().size()); + Split split = transaction.getSplits(TRANSFER_ACCOUNT_UID).get(0); + //the main account is a CASH account which has debit normal type, so a negative value means actually CREDIT + //so the other side of the split has to be a debit + assertEquals(TransactionType.DEBIT, split.getType()); + assertEquals(transactionsCount + 1, getTranscationCount()); + + transactionsDbAdapter.close(); + } public void testEditTransaction(){ //open transactions @@ -227,7 +257,14 @@ public void testEditTransaction(){ //if we see the text, then it was successfully created mSolo.waitForText("Pasta"); } - + + private void setDoubleEntryEnabled(boolean enabled){ + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + Editor editor = prefs.edit(); + editor.putBoolean(getActivity().getString(R.string.key_use_double_entry), enabled); + editor.commit(); + } + public void testDefaultTransactionType(){ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); Editor editor = prefs.edit(); @@ -238,7 +275,7 @@ public void testDefaultTransactionType(){ mSolo.waitForText(getActivity().getString(R.string.label_transaction_name)); ToggleButton transactionTypeButton = (ToggleButton) mSolo.getButton(0); - assertThat(transactionTypeButton).isNotChecked(); + assertThat(transactionTypeButton).isChecked(); clickSherlockActionBarItem(R.id.menu_cancel); @@ -251,7 +288,7 @@ public void testDefaultTransactionType(){ mSolo.waitForText(getActivity().getString(R.string.label_transaction_name)); transactionTypeButton = (ToggleButton) mSolo.getButton(0); - assertThat(transactionTypeButton).isChecked(); + assertThat(transactionTypeButton).isNotChecked(); clickSherlockActionBarItem(R.id.menu_cancel); mSolo.goBack(); } @@ -261,11 +298,19 @@ public void testToggleTransactionType(){ validateTransactionListDisplayed(); mSolo.clickOnText(TRANSACTION_NAME); - mSolo.waitForText("Note"); + mSolo.waitForText(getActivity().getString(R.string.title_edit_transaction)); validateEditTransactionFields(mTransaction); - - mSolo.clickOnButton(getActivity().getString(R.string.label_credit)); + + TransactionTypeToggleButton toggleButton = (TransactionTypeToggleButton) mSolo.getView(R.id.input_transaction_type); + assertThat(toggleButton).isVisible(); + + String label = toggleButton.getText().toString(); + assertTrue(mSolo.searchToggleButton(label)); + assertEquals(getActivity().getString(R.string.label_receive), label); + +// mSolo.clickOnButton(getActivity().getString(R.string.label_credit)); + mSolo.clickOnView(toggleButton); String amountString = mSolo.getEditText(1).getText().toString(); NumberFormat formatter = NumberFormat.getInstance(); try { @@ -327,14 +372,14 @@ public void testDeleteTransaction(){ mSolo.waitForText(DUMMY_ACCOUNT_NAME); mSolo.clickOnCheckBox(0); - clickSherlockActionBarItem(R.id.context_menu_delete); - - AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); - long id = accountsDbAdapter.getID(DUMMY_ACCOUNT_UID); - TransactionsDbAdapter adapter = new TransactionsDbAdapter(getActivity()); +// mSolo.clickOnActionBarItem(R.id.context_menu_delete); + clickSherlockActionBarItem(R.id.context_menu_delete); + + mSolo.sleep(500); + TransactionsDbAdapter adapter = new TransactionsDbAdapter(getInstrumentation().getTargetContext()); + long id = adapter.getAccountID(DUMMY_ACCOUNT_UID); assertEquals(0, adapter.getTransactionsCount(id)); - - accountsDbAdapter.close(); + adapter.close(); } @@ -368,7 +413,7 @@ public void testBulkMoveTransactions(){ mSolo.waitForDialogToClose(2000); - int targetCount = accountsDbAdapter.getAccount(account.getUID()).getTransactionCount(); + int targetCount = accountsDbAdapter.getAccount(account.getUID()).getTransactionCount(); assertEquals(1, targetCount); int afterOriginCount = accountsDbAdapter.getAccount(DUMMY_ACCOUNT_UID).getTransactionCount(); @@ -378,21 +423,24 @@ public void testBulkMoveTransactions(){ } - public void testIntentTransactionRecording(){ - TransactionsDbAdapter trxnAdapter = new TransactionsDbAdapter(getActivity()); - int beforeCount = trxnAdapter.getTransactionsCount(trxnAdapter.getAccountID(DUMMY_ACCOUNT_UID)); - Intent transactionIntent = new Intent(Intent.ACTION_INSERT); + public void testLegacyIntentTransactionRecording(){ + final Context context = getInstrumentation().getTargetContext(); + TransactionsDbAdapter trxnAdapter = new TransactionsDbAdapter(context); + int beforeCount = trxnAdapter.getTransactionsCount(DUMMY_ACCOUNT_UID); + + Intent transactionIntent = new Intent(Intent.ACTION_INSERT); transactionIntent.setType(Transaction.MIME_TYPE); transactionIntent.putExtra(Intent.EXTRA_TITLE, "Power intents"); transactionIntent.putExtra(Intent.EXTRA_TEXT, "Intents for sale"); - transactionIntent.putExtra(Transaction.EXTRA_AMOUNT, 4.99); + transactionIntent.putExtra(Transaction.EXTRA_AMOUNT, new BigDecimal(4.99)); transactionIntent.putExtra(Transaction.EXTRA_ACCOUNT_UID, DUMMY_ACCOUNT_UID); - - getActivity().sendBroadcast(transactionIntent); + transactionIntent.putExtra(Transaction.EXTRA_TRANSACTION_TYPE, TransactionType.DEBIT.name()); + + context.sendBroadcast(transactionIntent); mSolo.sleep(2000); - int afterCount = trxnAdapter.getTransactionsCount(trxnAdapter.getAccountID(DUMMY_ACCOUNT_UID)); + int afterCount = trxnAdapter.getTransactionsCount(DUMMY_ACCOUNT_UID); assertEquals(beforeCount + 1, afterCount); diff --git a/integration-tests/src/org/gnucash/android/test/util/ActionBarUtils.java b/integration-tests/src/org/gnucash/android/test/util/ActionBarUtils.java index a7603da41..7fe01ca82 100644 --- a/integration-tests/src/org/gnucash/android/test/util/ActionBarUtils.java +++ b/integration-tests/src/org/gnucash/android/test/util/ActionBarUtils.java @@ -17,7 +17,7 @@ package org.gnucash.android.test.util; import android.view.View; -import com.jayway.android.robotium.solo.Solo; +import com.robotium.solo.Solo; /** * @author Ngewi From f22f24c3cb90b65c0fc88ff058a4f0afde19e237 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Mon, 9 Feb 2015 16:54:10 +0100 Subject: [PATCH 03/10] Upgraded structure of repository to match latest Android conventions Upgraded android-maven-plugin to 4.1.1 Upgraded minimum maven version required to 1.1.1 Enabled Spoon testrunner during integration-test phase of build --- README.md | 4 +- app/pom.xml | 3 +- app/{ => src/main}/AndroidManifest.xml | 208 ++-- .../android/app/GnuCashApplication.java | 0 .../gnucash/android/db/AccountsDbAdapter.java | 0 .../gnucash/android/db/DatabaseAdapter.java | 0 .../android/db/DatabaseCursorLoader.java | 0 .../gnucash/android/db/DatabaseHelper.java | 0 .../gnucash/android/db/DatabaseSchema.java | 0 .../gnucash/android/db/MigrationHelper.java | 0 .../gnucash/android/db/SplitsDbAdapter.java | 0 .../android/db/TransactionsDbAdapter.java | 0 .../android/export/ExportDialogFragment.java | 0 .../gnucash/android/export/ExportFormat.java | 0 .../gnucash/android/export/ExportParams.java | 0 .../org/gnucash/android/export/Exporter.java | 0 .../android/export/ExporterAsyncTask.java | 0 .../android/export/ofx/OfxExporter.java | 0 .../gnucash/android/export/ofx/OfxHelper.java | 0 .../android/export/qif/QifExporter.java | 0 .../gnucash/android/export/qif/QifHelper.java | 0 .../android/export/xml/GncXmlExporter.java | 0 .../android/export/xml/GncXmlHelper.java | 0 .../android/importer/GncXmlHandler.java | 0 .../android/importer/GncXmlImporter.java | 0 .../android/importer/ImportAsyncTask.java | 0 .../org/gnucash/android/model/Account.java | 0 .../gnucash/android/model/AccountType.java | 0 .../org/gnucash/android/model/Money.java | 0 .../org/gnucash/android/model/Split.java | 0 .../gnucash/android/model/Transaction.java | 0 .../android/model/TransactionType.java | 0 .../android/receivers/AccountCreator.java | 0 .../TransactionAppWidgetProvider.java | 0 .../receivers/TransactionRecorder.java | 0 .../org/gnucash/android/ui/UxArgument.java | 0 .../ui/account/AccountFormFragment.java | 0 .../android/ui/account/AccountsActivity.java | 0 .../ui/account/AccountsListFragment.java | 0 .../ui/colorpicker/ColorPickerDialog.java | 0 .../ui/colorpicker/ColorPickerPalette.java | 0 .../ui/colorpicker/ColorPickerSwatch.java | 0 .../android/ui/colorpicker/ColorSquare.java | 0 .../ui/colorpicker/ColorStateDrawable.java | 0 .../ui/colorpicker/HsvColorComparator.java | 0 .../android/ui/passcode/KeyboardFragment.java | 0 .../android/ui/passcode/PassLockActivity.java | 0 .../passcode/PasscodeLockScreenActivity.java | 0 .../passcode/PasscodePreferenceActivity.java | 0 .../ui/settings/AboutPreferenceFragment.java | 0 .../settings/AccountPreferencesFragment.java | 0 .../DeleteAllAccountsConfirmationDialog.java | 0 ...eteAllTransacationsConfirmationDialog.java | 0 .../settings/GeneralPreferenceFragment.java | 0 .../settings/PasscodePreferenceFragment.java | 0 .../android/ui/settings/SettingsActivity.java | 0 .../TransactionsPreferenceFragment.java | 0 .../ScheduledTransactionsListFragment.java | 0 .../transaction/TransactionFormFragment.java | 0 .../ui/transaction/TransactionsActivity.java | 0 .../transaction/TransactionsListFragment.java | 0 .../dialog/BulkMoveDialogFragment.java | 0 .../dialog/DatePickerDialogFragment.java | 0 .../dialog/SplitEditorDialogFragment.java | 0 .../dialog/TimePickerDialogFragment.java | 0 ...tionsDeleteConfirmationDialogFragment.java | 0 .../android/ui/util/AccountBalanceTask.java | 0 .../android/ui/util/AmountInputFormatter.java | 0 .../ui/util/CheckableLinearLayout.java | 0 .../ui/util/OnAccountClickedListener.java | 0 .../ui/util/OnTransactionClickedListener.java | 0 .../gnucash/android/ui/util/Refreshable.java | 0 .../gnucash/android/ui/util/TaskDelegate.java | 0 .../ui/util/TransactionTypeToggleButton.java | 0 .../widget/WidgetConfigurationActivity.java | 456 ++++----- .../QualifiedAccountNameCursorAdapter.java | 0 .../res/drawable-hdpi-v14/appwidget_bg.9.png | Bin .../appwidget_bg_focused.9.png | Bin .../appwidget_bg_pressed.9.png | Bin .../drawable-hdpi-v14/appwidget_dark_bg.9.png | Bin .../appwidget_dark_bg_focused.9.png | Bin .../appwidget_inner_focused_c.9.png | Bin .../appwidget_inner_focused_l.9.png | Bin .../appwidget_inner_focused_r.9.png | Bin .../appwidget_inner_pressed_c.9.png | Bin .../appwidget_inner_pressed_l.9.png | Bin .../appwidget_inner_pressed_r.9.png | Bin .../main}/res/drawable-hdpi/action_about.png | Bin .../drawable-hdpi/action_about_holo_light.png | Bin .../main}/res/drawable-hdpi/action_help.png | Bin .../main}/res/drawable-hdpi/action_search.png | Bin .../res/drawable-hdpi/action_settings.png | Bin .../action_settings_holo_light.png | Bin .../res/drawable-hdpi/appwidget_bg.9.png | Bin .../drawable-hdpi/appwidget_bg_focused.9.png | Bin .../drawable-hdpi/appwidget_bg_pressed.9.png | Bin .../res/drawable-hdpi/appwidget_dark_bg.9.png | Bin .../appwidget_dark_bg_focused.9.png | Bin .../appwidget_dark_bg_pressed.9.png | Bin .../appwidget_inner_focused_c.9.png | Bin .../appwidget_inner_focused_l.9.png | Bin .../appwidget_inner_focused_r.9.png | Bin .../appwidget_inner_pressed_c.9.png | Bin .../appwidget_inner_pressed_l.9.png | Bin .../appwidget_inner_pressed_r.9.png | Bin .../drawable-hdpi/content_copy_holo_dark.png | Bin .../drawable-hdpi/content_copy_holo_light.png | Bin .../content_discard_holo_dark.png | Bin .../content_discard_holo_light.png | Bin .../drawable-hdpi/content_edit_holo_dark.png | Bin .../drawable-hdpi/content_edit_holo_light.png | Bin .../drawable-hdpi/content_event_holo_dark.png | Bin .../content_event_holo_light.png | Bin .../content_import_export_holo_dark.png | Bin .../content_import_export_holo_light.png | Bin .../drawable-hdpi/content_new_holo_dark.png | Bin .../drawable-hdpi/content_new_holo_light.png | Bin .../content_split_holo_light.png | Bin .../ic_colorpicker_swatch_selected.png | Bin .../main}/res/drawable-hdpi/ic_launcher.png | Bin .../navigation_accept_holo_dark.png | Bin .../navigation_accept_holo_light.png | Bin .../navigation_cancel_holo_dark.png | Bin .../navigation_cancel_holo_light.png | Bin .../main}/res/drawable-ldpi/clear_btn.png | Bin .../main}/res/drawable-ldpi/ic_launcher.png | Bin .../res/drawable-mdpi-v14/appwidget_bg.9.png | Bin .../appwidget_bg_focused.9.png | Bin .../appwidget_bg_pressed.9.png | Bin .../drawable-mdpi-v14/appwidget_dark_bg.9.png | Bin .../appwidget_dark_bg_focused.9.png | Bin .../appwidget_inner_focused_c.9.png | Bin .../appwidget_inner_focused_l.9.png | Bin .../appwidget_inner_focused_r.9.png | Bin .../appwidget_inner_pressed_c.9.png | Bin .../appwidget_inner_pressed_l.9.png | Bin .../appwidget_inner_pressed_r.9.png | Bin .../main}/res/drawable-mdpi/action_about.png | Bin .../drawable-mdpi/action_about_holo_light.png | Bin .../main}/res/drawable-mdpi/action_help.png | Bin .../main}/res/drawable-mdpi/action_search.png | Bin .../res/drawable-mdpi/action_settings.png | Bin .../action_settings_holo_light.png | Bin .../res/drawable-mdpi/appwidget_bg.9.png | Bin .../drawable-mdpi/appwidget_bg_focused.9.png | Bin .../drawable-mdpi/appwidget_bg_pressed.9.png | Bin .../res/drawable-mdpi/appwidget_dark_bg.9.png | Bin .../appwidget_dark_bg_focused.9.png | Bin .../appwidget_dark_bg_pressed.9.png | Bin .../appwidget_inner_focused_c.9.png | Bin .../appwidget_inner_focused_l.9.png | Bin .../appwidget_inner_focused_r.9.png | Bin .../appwidget_inner_pressed_c.9.png | Bin .../appwidget_inner_pressed_l.9.png | Bin .../appwidget_inner_pressed_r.9.png | Bin .../main}/res/drawable-mdpi/clear_btn.png | Bin .../drawable-mdpi/content_copy_holo_dark.png | Bin .../drawable-mdpi/content_copy_holo_light.png | Bin .../content_discard_holo_dark.png | Bin .../content_discard_holo_light.png | Bin .../drawable-mdpi/content_edit_holo_dark.png | Bin .../drawable-mdpi/content_edit_holo_light.png | Bin .../drawable-mdpi/content_event_holo_dark.png | Bin .../content_event_holo_light.png | Bin .../content_import_export_holo_dark.png | Bin .../content_import_export_holo_light.png | Bin .../drawable-mdpi/content_new_holo_dark.png | Bin .../drawable-mdpi/content_new_holo_light.png | Bin .../content_split_holo_light.png | Bin .../ic_colorpicker_swatch_selected.png | Bin .../main}/res/drawable-mdpi/ic_launcher.png | Bin .../navigation_accept_holo_dark.png | Bin .../navigation_accept_holo_light.png | Bin .../navigation_back_holo_dark.png | Bin .../navigation_cancel_holo_light.png | Bin .../res/drawable-nodpi/widget_preview.png.jpg | Bin .../res/drawable-xhdpi-v14/appwidget_bg.9.png | Bin .../appwidget_bg_focused.9.png | Bin .../appwidget_bg_pressed.9.png | Bin .../appwidget_dark_bg.9.png | Bin .../appwidget_dark_bg_focused.9.png | Bin .../appwidget_inner_focused_c.9.png | Bin .../appwidget_inner_focused_l.9.png | Bin .../appwidget_inner_focused_r.9.png | Bin .../appwidget_inner_pressed_c.9.png | Bin .../appwidget_inner_pressed_l.9.png | Bin .../appwidget_inner_pressed_r.9.png | Bin .../action_about_holo_light.png | Bin .../action_settings_holo_light.png | Bin .../drawable-xhdpi/content_copy_holo_dark.png | Bin .../content_copy_holo_light.png | Bin .../content_discard_holo_dark.png | Bin .../content_discard_holo_light.png | Bin .../drawable-xhdpi/content_edit_holo_dark.png | Bin .../content_edit_holo_light.png | Bin .../content_event_holo_dark.png | Bin .../content_event_holo_light.png | Bin .../content_import_export_holo_dark.png | Bin .../content_import_export_holo_light.png | Bin .../drawable-xhdpi/content_new_holo_dark.png | Bin .../drawable-xhdpi/content_new_holo_light.png | Bin .../content_split_holo_light.png | Bin .../ic_colorpicker_swatch_selected.png | Bin .../main}/res/drawable-xhdpi/ic_launcher.png | Bin .../navigation_accept_holo_dark.png | Bin .../navigation_accept_holo_light.png | Bin .../navigation_back_holo_dark.png | Bin .../navigation_back_holo_light.png | Bin .../res/drawable/appwidget_bg_clickable.xml | 0 .../res/drawable/appwidget_button_center.xml | 0 .../res/drawable/appwidget_button_left.xml | 0 .../res/drawable/appwidget_button_right.xml | 0 .../drawable/appwidget_dark_bg_clickable.xml | 0 .../res/drawable/color_picker_swatch.xml | 0 .../main}/res/drawable/color_square.xml | 0 .../main}/res/drawable/numeric_button.xml | 0 .../res/drawable/selected_background.xml | 0 .../main}/res/layout/activity_accounts.xml | 0 .../res/layout/activity_transactions.xml | 0 .../main}/res/layout/color_picker_dialog.xml | 0 .../main}/res/layout/color_picker_swatch.xml | 0 .../main}/res/layout/default_buttons.xml | 0 .../res/layout/dialog_account_delete.xml | 0 .../main}/res/layout/dialog_bulk_move.xml | 0 .../main}/res/layout/dialog_export.xml | 0 .../main}/res/layout/dialog_split_editor.xml | 0 .../res/layout/fragment_account_detail.xml | 0 .../res/layout/fragment_accounts_list.xml | 0 .../main}/res/layout/fragment_new_account.xml | 0 .../res/layout/fragment_new_transaction.xml | 0 .../res/layout/fragment_numeric_keyboard.xml | 0 .../fragment_recurring_transactions_list.xml | 0 .../res/layout/fragment_transactions_list.xml | 0 .../main}/res/layout/horizontal_line.xml | 0 .../main}/res/layout/item_split_entry.xml | 0 .../main}/res/layout/list_item_2_lines.xml | 0 .../main}/res/layout/list_item_account.xml | 0 .../res/layout/list_item_scheduled_trxn.xml | 0 .../res/layout/list_item_transaction.xml | 0 .../main}/res/layout/passcode_lockscreen.xml | 0 .../main}/res/layout/transactions_sum_bar.xml | 0 app/{ => src/main}/res/layout/widget_4x1.xml | 0 .../main}/res/layout/widget_configuration.xml | 0 .../main}/res/menu/account_actions.xml | 0 .../main}/res/menu/account_context_menu.xml | 0 .../main}/res/menu/default_save_actions.xml | 0 .../main}/res/menu/global_actions.xml | 0 .../main}/res/menu/sub_account_actions.xml | 0 .../res/menu/transactions_context_menu.xml | 0 .../res/menu/transactions_list_actions.xml | 0 .../res/raw-de-rAT/default_accounts.gnucash | 0 .../res/raw-de-rCH/default_accounts.gnucash | 0 .../res/raw-de-rDE/default_accounts.gnucash | 0 .../res/raw-el-rGR/default_accounts.gnucash | 0 .../res/raw-en-rGB/default_accounts.gnucash | 0 .../res/raw-es-rES/default_accounts.gnucash | 0 .../res/raw-es-rMX/default_accounts.gnucash | 0 .../res/raw-fr-rCA/default_accounts.gnucash | 0 .../res/raw-fr-rCH/default_accounts.gnucash | 0 .../res/raw-fr-rFR/default_accounts.gnucash | 0 .../res/raw-hu-rHU/default_accounts.gnucash | 0 .../res/raw-it-rIT/default_accounts.gnucash | 0 .../res/raw-nl-rNL/default_accounts.gnucash | 0 .../res/raw-pt-rBR/default_accounts.gnucash | 0 .../res/raw-ru-rRU/default_accounts.gnucash | 0 .../res/raw-zh-rCN/default_accounts.gnucash | 0 .../main}/res/raw/default_accounts.gnucash | 0 app/{ => src/main}/res/values-de/strings.xml | 0 app/{ => src/main}/res/values-el/strings.xml | 882 ++++++++-------- .../main}/res/values-es-rMX/strings.xml | 0 app/{ => src/main}/res/values-es/strings.xml | 846 ++++++++-------- app/{ => src/main}/res/values-fr/strings.xml | 846 ++++++++-------- app/{ => src/main}/res/values-hu/strings.xml | 852 ++++++++-------- app/{ => src/main}/res/values-it/strings.xml | 854 ++++++++-------- app/{ => src/main}/res/values-nb/strings.xml | 0 app/{ => src/main}/res/values-nl/strings.xml | 856 ++++++++-------- .../main}/res/values-pt-rBR/strings.xml | 0 app/{ => src/main}/res/values-ru/strings.xml | 0 app/{ => src/main}/res/values-v14/dimens.xml | 0 app/{ => src/main}/res/values-v14/styles.xml | 0 app/{ => src/main}/res/values-zh/strings.xml | 838 ++++++++-------- app/{ => src/main}/res/values/arrays.xml | 0 app/{ => src/main}/res/values/colors.xml | 0 app/{ => src/main}/res/values/dimens.xml | 0 app/{ => src/main}/res/values/key_strings.xml | 0 app/{ => src/main}/res/values/strings.xml | 888 ++++++++--------- app/{ => src/main}/res/values/styles.xml | 0 .../xml-v11/fragment_about_preferences.xml | 58 +- .../xml-v11/fragment_account_preferences.xml | 0 .../fragment_transaction_preferences.xml | 0 .../res/xml/fragment_about_preferences.xml | 60 +- .../res/xml/fragment_account_preferences.xml | 0 .../res/xml/fragment_general_preferences.xml | 0 .../res/xml/fragment_passcode_preferences.xml | 0 .../xml/fragment_transaction_preferences.xml | 0 .../main}/res/xml/preference_headers.xml | 0 .../res/xml/transaction_appwidget_info.xml | 0 integration-tests/pom.xml | 24 +- .../{ => src/main}/AndroidManifest.xml | 0 .../test/db/AccountsDbAdapterTest.java | 0 .../test/db/TransactionsDbAdapterTest.java | 0 .../android/test/ui/AccountsActivityTest.java | 628 ++++++------ .../test/ui/ExportTransactionsTest.java | 0 .../test/ui/TransactionsActivityTest.java | 938 +++++++++--------- .../android/test/unit/AccountTest.java | 0 .../gnucash/android/test/unit/MoneyTest.java | 0 .../android/test/unit/TransactionTest.java | 0 .../android/test/util/ActionBarUtils.java | 0 .../main}/res/drawable-hdpi/ic_launcher.png | Bin .../main}/res/drawable-ldpi/ic_launcher.png | Bin .../main}/res/drawable-mdpi/ic_launcher.png | Bin .../main}/res/drawable-xhdpi/ic_launcher.png | Bin .../{ => src/main}/res/layout/main.xml | 0 .../{ => src/main}/res/values/strings.xml | 0 pom.xml | 5 +- 315 files changed, 4631 insertions(+), 4615 deletions(-) rename app/{ => src/main}/AndroidManifest.xml (97%) rename app/src/{ => main/java}/org/gnucash/android/app/GnuCashApplication.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/AccountsDbAdapter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/DatabaseAdapter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/DatabaseCursorLoader.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/DatabaseHelper.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/DatabaseSchema.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/MigrationHelper.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/SplitsDbAdapter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/db/TransactionsDbAdapter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/ExportDialogFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/ExportFormat.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/ExportParams.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/Exporter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/ExporterAsyncTask.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/ofx/OfxExporter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/ofx/OfxHelper.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/qif/QifExporter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/qif/QifHelper.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/xml/GncXmlExporter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/export/xml/GncXmlHelper.java (100%) rename app/src/{ => main/java}/org/gnucash/android/importer/GncXmlHandler.java (100%) rename app/src/{ => main/java}/org/gnucash/android/importer/GncXmlImporter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/importer/ImportAsyncTask.java (100%) rename app/src/{ => main/java}/org/gnucash/android/model/Account.java (100%) rename app/src/{ => main/java}/org/gnucash/android/model/AccountType.java (100%) rename app/src/{ => main/java}/org/gnucash/android/model/Money.java (100%) rename app/src/{ => main/java}/org/gnucash/android/model/Split.java (100%) rename app/src/{ => main/java}/org/gnucash/android/model/Transaction.java (100%) rename app/src/{ => main/java}/org/gnucash/android/model/TransactionType.java (100%) rename app/src/{ => main/java}/org/gnucash/android/receivers/AccountCreator.java (100%) rename app/src/{ => main/java}/org/gnucash/android/receivers/TransactionAppWidgetProvider.java (100%) rename app/src/{ => main/java}/org/gnucash/android/receivers/TransactionRecorder.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/UxArgument.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/account/AccountFormFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/account/AccountsActivity.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/account/AccountsListFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/colorpicker/ColorPickerDialog.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/colorpicker/ColorPickerPalette.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/colorpicker/ColorPickerSwatch.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/colorpicker/ColorSquare.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/colorpicker/ColorStateDrawable.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/colorpicker/HsvColorComparator.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/passcode/KeyboardFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/passcode/PassLockActivity.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/passcode/PasscodeLockScreenActivity.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/passcode/PasscodePreferenceActivity.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/AboutPreferenceFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/AccountPreferencesFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/DeleteAllAccountsConfirmationDialog.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/DeleteAllTransacationsConfirmationDialog.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/GeneralPreferenceFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/PasscodePreferenceFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/SettingsActivity.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/settings/TransactionsPreferenceFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/TransactionFormFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/TransactionsActivity.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/TransactionsListFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/dialog/BulkMoveDialogFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/dialog/DatePickerDialogFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/dialog/SplitEditorDialogFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/dialog/TimePickerDialogFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/transaction/dialog/TransactionsDeleteConfirmationDialogFragment.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/AccountBalanceTask.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/AmountInputFormatter.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/CheckableLinearLayout.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/OnAccountClickedListener.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/OnTransactionClickedListener.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/Refreshable.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/TaskDelegate.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/util/TransactionTypeToggleButton.java (100%) rename app/src/{ => main/java}/org/gnucash/android/ui/widget/WidgetConfigurationActivity.java (97%) rename app/src/{ => main/java}/org/gnucash/android/util/QualifiedAccountNameCursorAdapter.java (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_bg.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_bg_pressed.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_dark_bg.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_dark_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_inner_focused_c.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_inner_focused_l.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_inner_focused_r.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_inner_pressed_c.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_inner_pressed_l.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi-v14/appwidget_inner_pressed_r.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/action_about.png (100%) rename app/{ => src/main}/res/drawable-hdpi/action_about_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/action_help.png (100%) rename app/{ => src/main}/res/drawable-hdpi/action_search.png (100%) rename app/{ => src/main}/res/drawable-hdpi/action_settings.png (100%) rename app/{ => src/main}/res/drawable-hdpi/action_settings_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_bg.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_bg_pressed.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_dark_bg.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_dark_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_dark_bg_pressed.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_inner_focused_c.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_inner_focused_l.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_inner_focused_r.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_inner_pressed_c.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_inner_pressed_l.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/appwidget_inner_pressed_r.9.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_copy_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_copy_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_discard_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_discard_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_edit_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_edit_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_event_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_event_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_import_export_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_import_export_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_new_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_new_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/content_split_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/ic_colorpicker_swatch_selected.png (100%) rename app/{ => src/main}/res/drawable-hdpi/ic_launcher.png (100%) rename app/{ => src/main}/res/drawable-hdpi/navigation_accept_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/navigation_accept_holo_light.png (100%) rename app/{ => src/main}/res/drawable-hdpi/navigation_cancel_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-hdpi/navigation_cancel_holo_light.png (100%) rename app/{ => src/main}/res/drawable-ldpi/clear_btn.png (100%) rename app/{ => src/main}/res/drawable-ldpi/ic_launcher.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_bg.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_bg_pressed.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_dark_bg.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_dark_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_inner_focused_c.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_inner_focused_l.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_inner_focused_r.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_inner_pressed_c.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_inner_pressed_l.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi-v14/appwidget_inner_pressed_r.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/action_about.png (100%) rename app/{ => src/main}/res/drawable-mdpi/action_about_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/action_help.png (100%) rename app/{ => src/main}/res/drawable-mdpi/action_search.png (100%) rename app/{ => src/main}/res/drawable-mdpi/action_settings.png (100%) rename app/{ => src/main}/res/drawable-mdpi/action_settings_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_bg.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_bg_pressed.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_dark_bg.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_dark_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_dark_bg_pressed.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_inner_focused_c.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_inner_focused_l.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_inner_focused_r.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_inner_pressed_c.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_inner_pressed_l.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/appwidget_inner_pressed_r.9.png (100%) rename app/{ => src/main}/res/drawable-mdpi/clear_btn.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_copy_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_copy_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_discard_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_discard_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_edit_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_edit_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_event_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_event_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_import_export_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_import_export_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_new_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_new_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/content_split_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/ic_colorpicker_swatch_selected.png (100%) rename app/{ => src/main}/res/drawable-mdpi/ic_launcher.png (100%) rename app/{ => src/main}/res/drawable-mdpi/navigation_accept_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/navigation_accept_holo_light.png (100%) rename app/{ => src/main}/res/drawable-mdpi/navigation_back_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-mdpi/navigation_cancel_holo_light.png (100%) rename app/{ => src/main}/res/drawable-nodpi/widget_preview.png.jpg (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_bg.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_bg_pressed.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_dark_bg.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_dark_bg_focused.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_inner_focused_c.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_inner_focused_l.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_inner_focused_r.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_inner_pressed_c.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_inner_pressed_l.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi-v14/appwidget_inner_pressed_r.9.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/action_about_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/action_settings_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_copy_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_copy_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_discard_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_discard_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_edit_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_edit_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_event_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_event_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_import_export_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_import_export_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_new_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_new_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/content_split_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/ic_colorpicker_swatch_selected.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/ic_launcher.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/navigation_accept_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/navigation_accept_holo_light.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/navigation_back_holo_dark.png (100%) rename app/{ => src/main}/res/drawable-xhdpi/navigation_back_holo_light.png (100%) rename app/{ => src/main}/res/drawable/appwidget_bg_clickable.xml (100%) rename app/{ => src/main}/res/drawable/appwidget_button_center.xml (100%) rename app/{ => src/main}/res/drawable/appwidget_button_left.xml (100%) rename app/{ => src/main}/res/drawable/appwidget_button_right.xml (100%) rename app/{ => src/main}/res/drawable/appwidget_dark_bg_clickable.xml (100%) rename app/{ => src/main}/res/drawable/color_picker_swatch.xml (100%) rename app/{ => src/main}/res/drawable/color_square.xml (100%) rename app/{ => src/main}/res/drawable/numeric_button.xml (100%) rename app/{ => src/main}/res/drawable/selected_background.xml (100%) rename app/{ => src/main}/res/layout/activity_accounts.xml (100%) rename app/{ => src/main}/res/layout/activity_transactions.xml (100%) rename app/{ => src/main}/res/layout/color_picker_dialog.xml (100%) rename app/{ => src/main}/res/layout/color_picker_swatch.xml (100%) rename app/{ => src/main}/res/layout/default_buttons.xml (100%) rename app/{ => src/main}/res/layout/dialog_account_delete.xml (100%) rename app/{ => src/main}/res/layout/dialog_bulk_move.xml (100%) rename app/{ => src/main}/res/layout/dialog_export.xml (100%) rename app/{ => src/main}/res/layout/dialog_split_editor.xml (100%) rename app/{ => src/main}/res/layout/fragment_account_detail.xml (100%) rename app/{ => src/main}/res/layout/fragment_accounts_list.xml (100%) rename app/{ => src/main}/res/layout/fragment_new_account.xml (100%) rename app/{ => src/main}/res/layout/fragment_new_transaction.xml (100%) rename app/{ => src/main}/res/layout/fragment_numeric_keyboard.xml (100%) rename app/{ => src/main}/res/layout/fragment_recurring_transactions_list.xml (100%) rename app/{ => src/main}/res/layout/fragment_transactions_list.xml (100%) rename app/{ => src/main}/res/layout/horizontal_line.xml (100%) rename app/{ => src/main}/res/layout/item_split_entry.xml (100%) rename app/{ => src/main}/res/layout/list_item_2_lines.xml (100%) rename app/{ => src/main}/res/layout/list_item_account.xml (100%) rename app/{ => src/main}/res/layout/list_item_scheduled_trxn.xml (100%) rename app/{ => src/main}/res/layout/list_item_transaction.xml (100%) rename app/{ => src/main}/res/layout/passcode_lockscreen.xml (100%) mode change 100755 => 100644 rename app/{ => src/main}/res/layout/transactions_sum_bar.xml (100%) rename app/{ => src/main}/res/layout/widget_4x1.xml (100%) rename app/{ => src/main}/res/layout/widget_configuration.xml (100%) rename app/{ => src/main}/res/menu/account_actions.xml (100%) rename app/{ => src/main}/res/menu/account_context_menu.xml (100%) rename app/{ => src/main}/res/menu/default_save_actions.xml (100%) rename app/{ => src/main}/res/menu/global_actions.xml (100%) rename app/{ => src/main}/res/menu/sub_account_actions.xml (100%) rename app/{ => src/main}/res/menu/transactions_context_menu.xml (100%) rename app/{ => src/main}/res/menu/transactions_list_actions.xml (100%) rename app/{ => src/main}/res/raw-de-rAT/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-de-rCH/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-de-rDE/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-el-rGR/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-en-rGB/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-es-rES/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-es-rMX/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-fr-rCA/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-fr-rCH/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-fr-rFR/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-hu-rHU/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-it-rIT/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-nl-rNL/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-pt-rBR/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-ru-rRU/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw-zh-rCN/default_accounts.gnucash (100%) rename app/{ => src/main}/res/raw/default_accounts.gnucash (100%) rename app/{ => src/main}/res/values-de/strings.xml (100%) rename app/{ => src/main}/res/values-el/strings.xml (98%) rename app/{ => src/main}/res/values-es-rMX/strings.xml (100%) rename app/{ => src/main}/res/values-es/strings.xml (98%) rename app/{ => src/main}/res/values-fr/strings.xml (98%) rename app/{ => src/main}/res/values-hu/strings.xml (97%) rename app/{ => src/main}/res/values-it/strings.xml (98%) rename app/{ => src/main}/res/values-nb/strings.xml (100%) rename app/{ => src/main}/res/values-nl/strings.xml (98%) rename app/{ => src/main}/res/values-pt-rBR/strings.xml (100%) rename app/{ => src/main}/res/values-ru/strings.xml (100%) rename app/{ => src/main}/res/values-v14/dimens.xml (100%) rename app/{ => src/main}/res/values-v14/styles.xml (100%) rename app/{ => src/main}/res/values-zh/strings.xml (98%) rename app/{ => src/main}/res/values/arrays.xml (100%) rename app/{ => src/main}/res/values/colors.xml (100%) rename app/{ => src/main}/res/values/dimens.xml (100%) rename app/{ => src/main}/res/values/key_strings.xml (100%) rename app/{ => src/main}/res/values/strings.xml (98%) rename app/{ => src/main}/res/values/styles.xml (100%) rename app/{ => src/main}/res/xml-v11/fragment_about_preferences.xml (97%) rename app/{ => src/main}/res/xml-v11/fragment_account_preferences.xml (100%) rename app/{ => src/main}/res/xml-v11/fragment_transaction_preferences.xml (100%) rename app/{ => src/main}/res/xml/fragment_about_preferences.xml (97%) rename app/{ => src/main}/res/xml/fragment_account_preferences.xml (100%) rename app/{ => src/main}/res/xml/fragment_general_preferences.xml (100%) rename app/{ => src/main}/res/xml/fragment_passcode_preferences.xml (100%) mode change 100755 => 100644 rename app/{ => src/main}/res/xml/fragment_transaction_preferences.xml (100%) rename app/{ => src/main}/res/xml/preference_headers.xml (100%) rename app/{ => src/main}/res/xml/transaction_appwidget_info.xml (100%) rename integration-tests/{ => src/main}/AndroidManifest.xml (100%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/db/AccountsDbAdapterTest.java (100%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/db/TransactionsDbAdapterTest.java (100%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/ui/AccountsActivityTest.java (97%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/ui/ExportTransactionsTest.java (100%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/ui/TransactionsActivityTest.java (97%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/unit/AccountTest.java (100%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/unit/MoneyTest.java (100%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/unit/TransactionTest.java (100%) rename integration-tests/src/{ => main/java}/org/gnucash/android/test/util/ActionBarUtils.java (100%) rename integration-tests/{ => src/main}/res/drawable-hdpi/ic_launcher.png (100%) rename integration-tests/{ => src/main}/res/drawable-ldpi/ic_launcher.png (100%) rename integration-tests/{ => src/main}/res/drawable-mdpi/ic_launcher.png (100%) rename integration-tests/{ => src/main}/res/drawable-xhdpi/ic_launcher.png (100%) rename integration-tests/{ => src/main}/res/layout/main.xml (100%) rename integration-tests/{ => src/main}/res/values/strings.xml (100%) diff --git a/README.md b/README.md index 31d28d93d..dbb27a6d4 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ There are different ways to get the Gnucash app for Android; through the app sto ## Building The build requires [Maven](http://maven.apache.org/download.html) -v3.0.3+ and the [Android SDK](http://developer.android.com/sdk/index.html) +v3.1.1+ and the [Android SDK](http://developer.android.com/sdk/index.html) to be installed in your development environment. In addition you'll need to set the `ANDROID_HOME` environment variable to the location of your SDK: @@ -51,7 +51,7 @@ You could as well contribute code, fixing bugs, new features or automated tests. Take a look at the [bug tracker](https://github.com/codinguser/gnucash-android/issues?state=open) for ideas where to start. -For development, it is recommended to use the IntelliJ IDEA 13+ IDE for development which is available as free +For development, it is recommended to use the IntelliJ IDEA 14+ IDE for development which is available as free community edition. Import the project into the IDE from an external (maven) model.The IDE will resolve dependencies automatically. #Licence diff --git a/app/pom.xml b/app/pom.xml index c9721db55..ba27486e0 100644 --- a/app/pom.xml +++ b/app/pom.xml @@ -53,10 +53,9 @@ - src - com.jayway.maven.plugins.android.generation2 + com.simpligility.maven.plugins android-maven-plugin diff --git a/app/AndroidManifest.xml b/app/src/main/AndroidManifest.xml similarity index 97% rename from app/AndroidManifest.xml rename to app/src/main/AndroidManifest.xml index e99eed7b6..62c5d6913 100644 --- a/app/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,105 +1,105 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/org/gnucash/android/app/GnuCashApplication.java b/app/src/main/java/org/gnucash/android/app/GnuCashApplication.java similarity index 100% rename from app/src/org/gnucash/android/app/GnuCashApplication.java rename to app/src/main/java/org/gnucash/android/app/GnuCashApplication.java diff --git a/app/src/org/gnucash/android/db/AccountsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/AccountsDbAdapter.java similarity index 100% rename from app/src/org/gnucash/android/db/AccountsDbAdapter.java rename to app/src/main/java/org/gnucash/android/db/AccountsDbAdapter.java diff --git a/app/src/org/gnucash/android/db/DatabaseAdapter.java b/app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java similarity index 100% rename from app/src/org/gnucash/android/db/DatabaseAdapter.java rename to app/src/main/java/org/gnucash/android/db/DatabaseAdapter.java diff --git a/app/src/org/gnucash/android/db/DatabaseCursorLoader.java b/app/src/main/java/org/gnucash/android/db/DatabaseCursorLoader.java similarity index 100% rename from app/src/org/gnucash/android/db/DatabaseCursorLoader.java rename to app/src/main/java/org/gnucash/android/db/DatabaseCursorLoader.java diff --git a/app/src/org/gnucash/android/db/DatabaseHelper.java b/app/src/main/java/org/gnucash/android/db/DatabaseHelper.java similarity index 100% rename from app/src/org/gnucash/android/db/DatabaseHelper.java rename to app/src/main/java/org/gnucash/android/db/DatabaseHelper.java diff --git a/app/src/org/gnucash/android/db/DatabaseSchema.java b/app/src/main/java/org/gnucash/android/db/DatabaseSchema.java similarity index 100% rename from app/src/org/gnucash/android/db/DatabaseSchema.java rename to app/src/main/java/org/gnucash/android/db/DatabaseSchema.java diff --git a/app/src/org/gnucash/android/db/MigrationHelper.java b/app/src/main/java/org/gnucash/android/db/MigrationHelper.java similarity index 100% rename from app/src/org/gnucash/android/db/MigrationHelper.java rename to app/src/main/java/org/gnucash/android/db/MigrationHelper.java diff --git a/app/src/org/gnucash/android/db/SplitsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/SplitsDbAdapter.java similarity index 100% rename from app/src/org/gnucash/android/db/SplitsDbAdapter.java rename to app/src/main/java/org/gnucash/android/db/SplitsDbAdapter.java diff --git a/app/src/org/gnucash/android/db/TransactionsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java similarity index 100% rename from app/src/org/gnucash/android/db/TransactionsDbAdapter.java rename to app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java diff --git a/app/src/org/gnucash/android/export/ExportDialogFragment.java b/app/src/main/java/org/gnucash/android/export/ExportDialogFragment.java similarity index 100% rename from app/src/org/gnucash/android/export/ExportDialogFragment.java rename to app/src/main/java/org/gnucash/android/export/ExportDialogFragment.java diff --git a/app/src/org/gnucash/android/export/ExportFormat.java b/app/src/main/java/org/gnucash/android/export/ExportFormat.java similarity index 100% rename from app/src/org/gnucash/android/export/ExportFormat.java rename to app/src/main/java/org/gnucash/android/export/ExportFormat.java diff --git a/app/src/org/gnucash/android/export/ExportParams.java b/app/src/main/java/org/gnucash/android/export/ExportParams.java similarity index 100% rename from app/src/org/gnucash/android/export/ExportParams.java rename to app/src/main/java/org/gnucash/android/export/ExportParams.java diff --git a/app/src/org/gnucash/android/export/Exporter.java b/app/src/main/java/org/gnucash/android/export/Exporter.java similarity index 100% rename from app/src/org/gnucash/android/export/Exporter.java rename to app/src/main/java/org/gnucash/android/export/Exporter.java diff --git a/app/src/org/gnucash/android/export/ExporterAsyncTask.java b/app/src/main/java/org/gnucash/android/export/ExporterAsyncTask.java similarity index 100% rename from app/src/org/gnucash/android/export/ExporterAsyncTask.java rename to app/src/main/java/org/gnucash/android/export/ExporterAsyncTask.java diff --git a/app/src/org/gnucash/android/export/ofx/OfxExporter.java b/app/src/main/java/org/gnucash/android/export/ofx/OfxExporter.java similarity index 100% rename from app/src/org/gnucash/android/export/ofx/OfxExporter.java rename to app/src/main/java/org/gnucash/android/export/ofx/OfxExporter.java diff --git a/app/src/org/gnucash/android/export/ofx/OfxHelper.java b/app/src/main/java/org/gnucash/android/export/ofx/OfxHelper.java similarity index 100% rename from app/src/org/gnucash/android/export/ofx/OfxHelper.java rename to app/src/main/java/org/gnucash/android/export/ofx/OfxHelper.java diff --git a/app/src/org/gnucash/android/export/qif/QifExporter.java b/app/src/main/java/org/gnucash/android/export/qif/QifExporter.java similarity index 100% rename from app/src/org/gnucash/android/export/qif/QifExporter.java rename to app/src/main/java/org/gnucash/android/export/qif/QifExporter.java diff --git a/app/src/org/gnucash/android/export/qif/QifHelper.java b/app/src/main/java/org/gnucash/android/export/qif/QifHelper.java similarity index 100% rename from app/src/org/gnucash/android/export/qif/QifHelper.java rename to app/src/main/java/org/gnucash/android/export/qif/QifHelper.java diff --git a/app/src/org/gnucash/android/export/xml/GncXmlExporter.java b/app/src/main/java/org/gnucash/android/export/xml/GncXmlExporter.java similarity index 100% rename from app/src/org/gnucash/android/export/xml/GncXmlExporter.java rename to app/src/main/java/org/gnucash/android/export/xml/GncXmlExporter.java diff --git a/app/src/org/gnucash/android/export/xml/GncXmlHelper.java b/app/src/main/java/org/gnucash/android/export/xml/GncXmlHelper.java similarity index 100% rename from app/src/org/gnucash/android/export/xml/GncXmlHelper.java rename to app/src/main/java/org/gnucash/android/export/xml/GncXmlHelper.java diff --git a/app/src/org/gnucash/android/importer/GncXmlHandler.java b/app/src/main/java/org/gnucash/android/importer/GncXmlHandler.java similarity index 100% rename from app/src/org/gnucash/android/importer/GncXmlHandler.java rename to app/src/main/java/org/gnucash/android/importer/GncXmlHandler.java diff --git a/app/src/org/gnucash/android/importer/GncXmlImporter.java b/app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java similarity index 100% rename from app/src/org/gnucash/android/importer/GncXmlImporter.java rename to app/src/main/java/org/gnucash/android/importer/GncXmlImporter.java diff --git a/app/src/org/gnucash/android/importer/ImportAsyncTask.java b/app/src/main/java/org/gnucash/android/importer/ImportAsyncTask.java similarity index 100% rename from app/src/org/gnucash/android/importer/ImportAsyncTask.java rename to app/src/main/java/org/gnucash/android/importer/ImportAsyncTask.java diff --git a/app/src/org/gnucash/android/model/Account.java b/app/src/main/java/org/gnucash/android/model/Account.java similarity index 100% rename from app/src/org/gnucash/android/model/Account.java rename to app/src/main/java/org/gnucash/android/model/Account.java diff --git a/app/src/org/gnucash/android/model/AccountType.java b/app/src/main/java/org/gnucash/android/model/AccountType.java similarity index 100% rename from app/src/org/gnucash/android/model/AccountType.java rename to app/src/main/java/org/gnucash/android/model/AccountType.java diff --git a/app/src/org/gnucash/android/model/Money.java b/app/src/main/java/org/gnucash/android/model/Money.java similarity index 100% rename from app/src/org/gnucash/android/model/Money.java rename to app/src/main/java/org/gnucash/android/model/Money.java diff --git a/app/src/org/gnucash/android/model/Split.java b/app/src/main/java/org/gnucash/android/model/Split.java similarity index 100% rename from app/src/org/gnucash/android/model/Split.java rename to app/src/main/java/org/gnucash/android/model/Split.java diff --git a/app/src/org/gnucash/android/model/Transaction.java b/app/src/main/java/org/gnucash/android/model/Transaction.java similarity index 100% rename from app/src/org/gnucash/android/model/Transaction.java rename to app/src/main/java/org/gnucash/android/model/Transaction.java diff --git a/app/src/org/gnucash/android/model/TransactionType.java b/app/src/main/java/org/gnucash/android/model/TransactionType.java similarity index 100% rename from app/src/org/gnucash/android/model/TransactionType.java rename to app/src/main/java/org/gnucash/android/model/TransactionType.java diff --git a/app/src/org/gnucash/android/receivers/AccountCreator.java b/app/src/main/java/org/gnucash/android/receivers/AccountCreator.java similarity index 100% rename from app/src/org/gnucash/android/receivers/AccountCreator.java rename to app/src/main/java/org/gnucash/android/receivers/AccountCreator.java diff --git a/app/src/org/gnucash/android/receivers/TransactionAppWidgetProvider.java b/app/src/main/java/org/gnucash/android/receivers/TransactionAppWidgetProvider.java similarity index 100% rename from app/src/org/gnucash/android/receivers/TransactionAppWidgetProvider.java rename to app/src/main/java/org/gnucash/android/receivers/TransactionAppWidgetProvider.java diff --git a/app/src/org/gnucash/android/receivers/TransactionRecorder.java b/app/src/main/java/org/gnucash/android/receivers/TransactionRecorder.java similarity index 100% rename from app/src/org/gnucash/android/receivers/TransactionRecorder.java rename to app/src/main/java/org/gnucash/android/receivers/TransactionRecorder.java diff --git a/app/src/org/gnucash/android/ui/UxArgument.java b/app/src/main/java/org/gnucash/android/ui/UxArgument.java similarity index 100% rename from app/src/org/gnucash/android/ui/UxArgument.java rename to app/src/main/java/org/gnucash/android/ui/UxArgument.java diff --git a/app/src/org/gnucash/android/ui/account/AccountFormFragment.java b/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/account/AccountFormFragment.java rename to app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java diff --git a/app/src/org/gnucash/android/ui/account/AccountsActivity.java b/app/src/main/java/org/gnucash/android/ui/account/AccountsActivity.java similarity index 100% rename from app/src/org/gnucash/android/ui/account/AccountsActivity.java rename to app/src/main/java/org/gnucash/android/ui/account/AccountsActivity.java diff --git a/app/src/org/gnucash/android/ui/account/AccountsListFragment.java b/app/src/main/java/org/gnucash/android/ui/account/AccountsListFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/account/AccountsListFragment.java rename to app/src/main/java/org/gnucash/android/ui/account/AccountsListFragment.java diff --git a/app/src/org/gnucash/android/ui/colorpicker/ColorPickerDialog.java b/app/src/main/java/org/gnucash/android/ui/colorpicker/ColorPickerDialog.java similarity index 100% rename from app/src/org/gnucash/android/ui/colorpicker/ColorPickerDialog.java rename to app/src/main/java/org/gnucash/android/ui/colorpicker/ColorPickerDialog.java diff --git a/app/src/org/gnucash/android/ui/colorpicker/ColorPickerPalette.java b/app/src/main/java/org/gnucash/android/ui/colorpicker/ColorPickerPalette.java similarity index 100% rename from app/src/org/gnucash/android/ui/colorpicker/ColorPickerPalette.java rename to app/src/main/java/org/gnucash/android/ui/colorpicker/ColorPickerPalette.java diff --git a/app/src/org/gnucash/android/ui/colorpicker/ColorPickerSwatch.java b/app/src/main/java/org/gnucash/android/ui/colorpicker/ColorPickerSwatch.java similarity index 100% rename from app/src/org/gnucash/android/ui/colorpicker/ColorPickerSwatch.java rename to app/src/main/java/org/gnucash/android/ui/colorpicker/ColorPickerSwatch.java diff --git a/app/src/org/gnucash/android/ui/colorpicker/ColorSquare.java b/app/src/main/java/org/gnucash/android/ui/colorpicker/ColorSquare.java similarity index 100% rename from app/src/org/gnucash/android/ui/colorpicker/ColorSquare.java rename to app/src/main/java/org/gnucash/android/ui/colorpicker/ColorSquare.java diff --git a/app/src/org/gnucash/android/ui/colorpicker/ColorStateDrawable.java b/app/src/main/java/org/gnucash/android/ui/colorpicker/ColorStateDrawable.java similarity index 100% rename from app/src/org/gnucash/android/ui/colorpicker/ColorStateDrawable.java rename to app/src/main/java/org/gnucash/android/ui/colorpicker/ColorStateDrawable.java diff --git a/app/src/org/gnucash/android/ui/colorpicker/HsvColorComparator.java b/app/src/main/java/org/gnucash/android/ui/colorpicker/HsvColorComparator.java similarity index 100% rename from app/src/org/gnucash/android/ui/colorpicker/HsvColorComparator.java rename to app/src/main/java/org/gnucash/android/ui/colorpicker/HsvColorComparator.java diff --git a/app/src/org/gnucash/android/ui/passcode/KeyboardFragment.java b/app/src/main/java/org/gnucash/android/ui/passcode/KeyboardFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/passcode/KeyboardFragment.java rename to app/src/main/java/org/gnucash/android/ui/passcode/KeyboardFragment.java diff --git a/app/src/org/gnucash/android/ui/passcode/PassLockActivity.java b/app/src/main/java/org/gnucash/android/ui/passcode/PassLockActivity.java similarity index 100% rename from app/src/org/gnucash/android/ui/passcode/PassLockActivity.java rename to app/src/main/java/org/gnucash/android/ui/passcode/PassLockActivity.java diff --git a/app/src/org/gnucash/android/ui/passcode/PasscodeLockScreenActivity.java b/app/src/main/java/org/gnucash/android/ui/passcode/PasscodeLockScreenActivity.java similarity index 100% rename from app/src/org/gnucash/android/ui/passcode/PasscodeLockScreenActivity.java rename to app/src/main/java/org/gnucash/android/ui/passcode/PasscodeLockScreenActivity.java diff --git a/app/src/org/gnucash/android/ui/passcode/PasscodePreferenceActivity.java b/app/src/main/java/org/gnucash/android/ui/passcode/PasscodePreferenceActivity.java similarity index 100% rename from app/src/org/gnucash/android/ui/passcode/PasscodePreferenceActivity.java rename to app/src/main/java/org/gnucash/android/ui/passcode/PasscodePreferenceActivity.java diff --git a/app/src/org/gnucash/android/ui/settings/AboutPreferenceFragment.java b/app/src/main/java/org/gnucash/android/ui/settings/AboutPreferenceFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/AboutPreferenceFragment.java rename to app/src/main/java/org/gnucash/android/ui/settings/AboutPreferenceFragment.java diff --git a/app/src/org/gnucash/android/ui/settings/AccountPreferencesFragment.java b/app/src/main/java/org/gnucash/android/ui/settings/AccountPreferencesFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/AccountPreferencesFragment.java rename to app/src/main/java/org/gnucash/android/ui/settings/AccountPreferencesFragment.java diff --git a/app/src/org/gnucash/android/ui/settings/DeleteAllAccountsConfirmationDialog.java b/app/src/main/java/org/gnucash/android/ui/settings/DeleteAllAccountsConfirmationDialog.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/DeleteAllAccountsConfirmationDialog.java rename to app/src/main/java/org/gnucash/android/ui/settings/DeleteAllAccountsConfirmationDialog.java diff --git a/app/src/org/gnucash/android/ui/settings/DeleteAllTransacationsConfirmationDialog.java b/app/src/main/java/org/gnucash/android/ui/settings/DeleteAllTransacationsConfirmationDialog.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/DeleteAllTransacationsConfirmationDialog.java rename to app/src/main/java/org/gnucash/android/ui/settings/DeleteAllTransacationsConfirmationDialog.java diff --git a/app/src/org/gnucash/android/ui/settings/GeneralPreferenceFragment.java b/app/src/main/java/org/gnucash/android/ui/settings/GeneralPreferenceFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/GeneralPreferenceFragment.java rename to app/src/main/java/org/gnucash/android/ui/settings/GeneralPreferenceFragment.java diff --git a/app/src/org/gnucash/android/ui/settings/PasscodePreferenceFragment.java b/app/src/main/java/org/gnucash/android/ui/settings/PasscodePreferenceFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/PasscodePreferenceFragment.java rename to app/src/main/java/org/gnucash/android/ui/settings/PasscodePreferenceFragment.java diff --git a/app/src/org/gnucash/android/ui/settings/SettingsActivity.java b/app/src/main/java/org/gnucash/android/ui/settings/SettingsActivity.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/SettingsActivity.java rename to app/src/main/java/org/gnucash/android/ui/settings/SettingsActivity.java diff --git a/app/src/org/gnucash/android/ui/settings/TransactionsPreferenceFragment.java b/app/src/main/java/org/gnucash/android/ui/settings/TransactionsPreferenceFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/settings/TransactionsPreferenceFragment.java rename to app/src/main/java/org/gnucash/android/ui/settings/TransactionsPreferenceFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/TransactionFormFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/TransactionFormFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/TransactionsActivity.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsActivity.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/TransactionsActivity.java rename to app/src/main/java/org/gnucash/android/ui/transaction/TransactionsActivity.java diff --git a/app/src/org/gnucash/android/ui/transaction/TransactionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/TransactionsListFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/TransactionsListFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/dialog/BulkMoveDialogFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/dialog/BulkMoveDialogFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/dialog/BulkMoveDialogFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/dialog/BulkMoveDialogFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/dialog/DatePickerDialogFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/dialog/DatePickerDialogFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/dialog/DatePickerDialogFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/dialog/DatePickerDialogFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/dialog/SplitEditorDialogFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/dialog/SplitEditorDialogFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/dialog/SplitEditorDialogFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/dialog/SplitEditorDialogFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/dialog/TimePickerDialogFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/dialog/TimePickerDialogFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/dialog/TimePickerDialogFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/dialog/TimePickerDialogFragment.java diff --git a/app/src/org/gnucash/android/ui/transaction/dialog/TransactionsDeleteConfirmationDialogFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/dialog/TransactionsDeleteConfirmationDialogFragment.java similarity index 100% rename from app/src/org/gnucash/android/ui/transaction/dialog/TransactionsDeleteConfirmationDialogFragment.java rename to app/src/main/java/org/gnucash/android/ui/transaction/dialog/TransactionsDeleteConfirmationDialogFragment.java diff --git a/app/src/org/gnucash/android/ui/util/AccountBalanceTask.java b/app/src/main/java/org/gnucash/android/ui/util/AccountBalanceTask.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/AccountBalanceTask.java rename to app/src/main/java/org/gnucash/android/ui/util/AccountBalanceTask.java diff --git a/app/src/org/gnucash/android/ui/util/AmountInputFormatter.java b/app/src/main/java/org/gnucash/android/ui/util/AmountInputFormatter.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/AmountInputFormatter.java rename to app/src/main/java/org/gnucash/android/ui/util/AmountInputFormatter.java diff --git a/app/src/org/gnucash/android/ui/util/CheckableLinearLayout.java b/app/src/main/java/org/gnucash/android/ui/util/CheckableLinearLayout.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/CheckableLinearLayout.java rename to app/src/main/java/org/gnucash/android/ui/util/CheckableLinearLayout.java diff --git a/app/src/org/gnucash/android/ui/util/OnAccountClickedListener.java b/app/src/main/java/org/gnucash/android/ui/util/OnAccountClickedListener.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/OnAccountClickedListener.java rename to app/src/main/java/org/gnucash/android/ui/util/OnAccountClickedListener.java diff --git a/app/src/org/gnucash/android/ui/util/OnTransactionClickedListener.java b/app/src/main/java/org/gnucash/android/ui/util/OnTransactionClickedListener.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/OnTransactionClickedListener.java rename to app/src/main/java/org/gnucash/android/ui/util/OnTransactionClickedListener.java diff --git a/app/src/org/gnucash/android/ui/util/Refreshable.java b/app/src/main/java/org/gnucash/android/ui/util/Refreshable.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/Refreshable.java rename to app/src/main/java/org/gnucash/android/ui/util/Refreshable.java diff --git a/app/src/org/gnucash/android/ui/util/TaskDelegate.java b/app/src/main/java/org/gnucash/android/ui/util/TaskDelegate.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/TaskDelegate.java rename to app/src/main/java/org/gnucash/android/ui/util/TaskDelegate.java diff --git a/app/src/org/gnucash/android/ui/util/TransactionTypeToggleButton.java b/app/src/main/java/org/gnucash/android/ui/util/TransactionTypeToggleButton.java similarity index 100% rename from app/src/org/gnucash/android/ui/util/TransactionTypeToggleButton.java rename to app/src/main/java/org/gnucash/android/ui/util/TransactionTypeToggleButton.java diff --git a/app/src/org/gnucash/android/ui/widget/WidgetConfigurationActivity.java b/app/src/main/java/org/gnucash/android/ui/widget/WidgetConfigurationActivity.java similarity index 97% rename from app/src/org/gnucash/android/ui/widget/WidgetConfigurationActivity.java rename to app/src/main/java/org/gnucash/android/ui/widget/WidgetConfigurationActivity.java index 39fe72660..9c70d7050 100644 --- a/app/src/org/gnucash/android/ui/widget/WidgetConfigurationActivity.java +++ b/app/src/main/java/org/gnucash/android/ui/widget/WidgetConfigurationActivity.java @@ -1,228 +1,228 @@ -/* - * Copyright (c) 2012 Ngewi Fet - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.gnucash.android.ui.widget; - -import java.util.Locale; - -import org.gnucash.android.R; -import org.gnucash.android.model.Account; -import org.gnucash.android.model.Money; -import org.gnucash.android.db.AccountsDbAdapter; -import org.gnucash.android.receivers.TransactionAppWidgetProvider; -import org.gnucash.android.ui.UxArgument; -import org.gnucash.android.ui.account.AccountsActivity; -import org.gnucash.android.ui.transaction.TransactionsActivity; - -import android.app.Activity; -import android.app.PendingIntent; -import android.appwidget.AppWidgetManager; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; -import android.database.Cursor; -import android.os.Bundle; -import android.preference.PreferenceManager; -import android.support.v4.widget.SimpleCursorAdapter; -import android.util.Log; -import android.view.View; -import android.widget.Button; -import android.widget.RemoteViews; -import android.widget.Spinner; -import android.widget.Toast; -import org.gnucash.android.util.QualifiedAccountNameCursorAdapter; - -/** - * Activity for configuration which account to display on a widget. - * The activity is opened each time a widget is added to the homescreen - * @author Ngewi Fet - */ -public class WidgetConfigurationActivity extends Activity { - private AccountsDbAdapter mAccountsDbAdapter; - private int mAppWidgetId; - - private Spinner mAccountsSpinner; - private Button mOkButton; - private Button mCancelButton; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.widget_configuration); - setResult(RESULT_CANCELED); - - mAccountsSpinner = (Spinner) findViewById(R.id.input_accounts_spinner); - mOkButton = (Button) findViewById(R.id.btn_save); - mCancelButton = (Button) findViewById(R.id.btn_cancel); - - mAccountsDbAdapter = new AccountsDbAdapter(this); - Cursor cursor = mAccountsDbAdapter.fetchAllRecordsOrderedByFullName(); - - if (cursor.getCount() <= 0){ - Toast.makeText(this, R.string.error_no_accounts, Toast.LENGTH_LONG).show(); - finish(); - } - - SimpleCursorAdapter cursorAdapter = new QualifiedAccountNameCursorAdapter(this, - android.R.layout.simple_spinner_item, - cursor); - cursorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); - mAccountsSpinner.setAdapter(cursorAdapter); - - bindListeners(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mAccountsDbAdapter.close(); - } - - /** - * Sets click listeners for the buttons in the dialog - */ - private void bindListeners() { - mOkButton.setOnClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - Intent intent = getIntent(); - Bundle extras = intent.getExtras(); - if (extras != null) { - mAppWidgetId = extras.getInt( - AppWidgetManager.EXTRA_APPWIDGET_ID, - AppWidgetManager.INVALID_APPWIDGET_ID); - } - - if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID){ - finish(); - return; - } - - long accountId = mAccountsSpinner.getSelectedItemId(); - String accountUID = mAccountsDbAdapter.getUID(accountId); - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(WidgetConfigurationActivity.this); - Editor editor = prefs.edit(); - editor.putString(UxArgument.SELECTED_ACCOUNT_UID + mAppWidgetId, accountUID); - editor.commit(); - - updateWidget(WidgetConfigurationActivity.this, mAppWidgetId, accountUID); - - Intent resultValue = new Intent(); - resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); - setResult(RESULT_OK, resultValue); - finish(); - } - }); - - mCancelButton.setOnClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - finish(); - } - }); - } - - /** - * Updates the widget with id appWidgetId with information from the - * account with record ID accountId - * If the account has been deleted, then a notice is posted in the widget - * @param appWidgetId ID of the widget to be updated - * @param accountUID GUID of the account tied to the widget - */ - public static void updateWidget(Context context, int appWidgetId, String accountUID) { - Log.i("WidgetConfiguration", "Updating widget: " + appWidgetId); - AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); - - AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(context); - Account account = accountsDbAdapter.getAccount(accountUID); - - - if (account == null){ - Log.i("WidgetConfiguration", "Account not found, resetting widget " + appWidgetId); - //if account has been deleted, let the user know - RemoteViews views = new RemoteViews(context.getPackageName(), - R.layout.widget_4x1); - views.setTextViewText(R.id.account_name, context.getString(R.string.toast_account_deleted)); - views.setTextViewText(R.id.transactions_summary, ""); - //set it to simply open the app - PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, - new Intent(context, AccountsActivity.class), 0); - views.setOnClickPendingIntent(R.id.widget_layout, pendingIntent); - views.setOnClickPendingIntent(R.id.btn_new_transaction, pendingIntent); - appWidgetManager.updateAppWidget(appWidgetId, views); - Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); - editor.remove(UxArgument.SELECTED_ACCOUNT_UID + appWidgetId); - editor.commit(); - return; - } - - RemoteViews views = new RemoteViews(context.getPackageName(), - R.layout.widget_4x1); - views.setTextViewText(R.id.account_name, account.getName()); - Money accountBalance = accountsDbAdapter.getAccountBalance(accountUID); - - views.setTextViewText(R.id.transactions_summary, - accountBalance.formattedString(Locale.getDefault())); - int color = account.getBalance().isNegative() ? R.color.debit_red : R.color.credit_green; - views.setTextColor(R.id.transactions_summary, context.getResources().getColor(color)); - - - - Intent accountViewIntent = new Intent(context, TransactionsActivity.class); - accountViewIntent.setAction(Intent.ACTION_VIEW); - accountViewIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK); - accountViewIntent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, accountUID); - PendingIntent accountPendingIntent = PendingIntent - .getActivity(context, appWidgetId, accountViewIntent, 0); - views.setOnClickPendingIntent(R.id.widget_layout, accountPendingIntent); - - Intent newTransactionIntent = new Intent(context, TransactionsActivity.class); - newTransactionIntent.setAction(Intent.ACTION_INSERT_OR_EDIT); - newTransactionIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK); - newTransactionIntent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, accountUID); - PendingIntent pendingIntent = PendingIntent - .getActivity(context, appWidgetId, newTransactionIntent, 0); - views.setOnClickPendingIntent(R.id.btn_new_transaction, pendingIntent); - - appWidgetManager.updateAppWidget(appWidgetId, views); - accountsDbAdapter.close(); - } - - /** - * Updates all widgets belonging to the application - * @param context Application context - */ - public static void updateAllWidgets(Context context){ - Log.i("WidgetConfiguration", "Updating all widgets"); - AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); - ComponentName componentName = new ComponentName(context, TransactionAppWidgetProvider.class); - int[] appWidgetIds = widgetManager.getAppWidgetIds(componentName); - - SharedPreferences defaultSharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - for (int widgetId : appWidgetIds) { - String accountUID = defaultSharedPrefs - .getString(UxArgument.SELECTED_ACCOUNT_UID + widgetId, null); - - if (accountUID == null) - continue; - updateWidget(context, widgetId, accountUID); - } - } -} +/* + * Copyright (c) 2012 Ngewi Fet + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.gnucash.android.ui.widget; + +import java.util.Locale; + +import org.gnucash.android.R; +import org.gnucash.android.model.Account; +import org.gnucash.android.model.Money; +import org.gnucash.android.db.AccountsDbAdapter; +import org.gnucash.android.receivers.TransactionAppWidgetProvider; +import org.gnucash.android.ui.UxArgument; +import org.gnucash.android.ui.account.AccountsActivity; +import org.gnucash.android.ui.transaction.TransactionsActivity; + +import android.app.Activity; +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +import android.database.Cursor; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v4.widget.SimpleCursorAdapter; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.RemoteViews; +import android.widget.Spinner; +import android.widget.Toast; +import org.gnucash.android.util.QualifiedAccountNameCursorAdapter; + +/** + * Activity for configuration which account to display on a widget. + * The activity is opened each time a widget is added to the homescreen + * @author Ngewi Fet + */ +public class WidgetConfigurationActivity extends Activity { + private AccountsDbAdapter mAccountsDbAdapter; + private int mAppWidgetId; + + private Spinner mAccountsSpinner; + private Button mOkButton; + private Button mCancelButton; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.widget_configuration); + setResult(RESULT_CANCELED); + + mAccountsSpinner = (Spinner) findViewById(R.id.input_accounts_spinner); + mOkButton = (Button) findViewById(R.id.btn_save); + mCancelButton = (Button) findViewById(R.id.btn_cancel); + + mAccountsDbAdapter = new AccountsDbAdapter(this); + Cursor cursor = mAccountsDbAdapter.fetchAllRecordsOrderedByFullName(); + + if (cursor.getCount() <= 0){ + Toast.makeText(this, R.string.error_no_accounts, Toast.LENGTH_LONG).show(); + finish(); + } + + SimpleCursorAdapter cursorAdapter = new QualifiedAccountNameCursorAdapter(this, + android.R.layout.simple_spinner_item, + cursor); + cursorAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + mAccountsSpinner.setAdapter(cursorAdapter); + + bindListeners(); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + mAccountsDbAdapter.close(); + } + + /** + * Sets click listeners for the buttons in the dialog + */ + private void bindListeners() { + mOkButton.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + Intent intent = getIntent(); + Bundle extras = intent.getExtras(); + if (extras != null) { + mAppWidgetId = extras.getInt( + AppWidgetManager.EXTRA_APPWIDGET_ID, + AppWidgetManager.INVALID_APPWIDGET_ID); + } + + if (mAppWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID){ + finish(); + return; + } + + long accountId = mAccountsSpinner.getSelectedItemId(); + String accountUID = mAccountsDbAdapter.getUID(accountId); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(WidgetConfigurationActivity.this); + Editor editor = prefs.edit(); + editor.putString(UxArgument.SELECTED_ACCOUNT_UID + mAppWidgetId, accountUID); + editor.commit(); + + updateWidget(WidgetConfigurationActivity.this, mAppWidgetId, accountUID); + + Intent resultValue = new Intent(); + resultValue.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mAppWidgetId); + setResult(RESULT_OK, resultValue); + finish(); + } + }); + + mCancelButton.setOnClickListener(new View.OnClickListener() { + + @Override + public void onClick(View v) { + finish(); + } + }); + } + + /** + * Updates the widget with id appWidgetId with information from the + * account with record ID accountId + * If the account has been deleted, then a notice is posted in the widget + * @param appWidgetId ID of the widget to be updated + * @param accountUID GUID of the account tied to the widget + */ + public static void updateWidget(Context context, int appWidgetId, String accountUID) { + Log.i("WidgetConfiguration", "Updating widget: " + appWidgetId); + AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context); + + AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(context); + Account account = accountsDbAdapter.getAccount(accountUID); + + + if (account == null){ + Log.i("WidgetConfiguration", "Account not found, resetting widget " + appWidgetId); + //if account has been deleted, let the user know + RemoteViews views = new RemoteViews(context.getPackageName(), + R.layout.widget_4x1); + views.setTextViewText(R.id.account_name, context.getString(R.string.toast_account_deleted)); + views.setTextViewText(R.id.transactions_summary, ""); + //set it to simply open the app + PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, + new Intent(context, AccountsActivity.class), 0); + views.setOnClickPendingIntent(R.id.widget_layout, pendingIntent); + views.setOnClickPendingIntent(R.id.btn_new_transaction, pendingIntent); + appWidgetManager.updateAppWidget(appWidgetId, views); + Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); + editor.remove(UxArgument.SELECTED_ACCOUNT_UID + appWidgetId); + editor.commit(); + return; + } + + RemoteViews views = new RemoteViews(context.getPackageName(), + R.layout.widget_4x1); + views.setTextViewText(R.id.account_name, account.getName()); + Money accountBalance = accountsDbAdapter.getAccountBalance(accountUID); + + views.setTextViewText(R.id.transactions_summary, + accountBalance.formattedString(Locale.getDefault())); + int color = account.getBalance().isNegative() ? R.color.debit_red : R.color.credit_green; + views.setTextColor(R.id.transactions_summary, context.getResources().getColor(color)); + + + + Intent accountViewIntent = new Intent(context, TransactionsActivity.class); + accountViewIntent.setAction(Intent.ACTION_VIEW); + accountViewIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK); + accountViewIntent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, accountUID); + PendingIntent accountPendingIntent = PendingIntent + .getActivity(context, appWidgetId, accountViewIntent, 0); + views.setOnClickPendingIntent(R.id.widget_layout, accountPendingIntent); + + Intent newTransactionIntent = new Intent(context, TransactionsActivity.class); + newTransactionIntent.setAction(Intent.ACTION_INSERT_OR_EDIT); + newTransactionIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_CLEAR_TASK); + newTransactionIntent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, accountUID); + PendingIntent pendingIntent = PendingIntent + .getActivity(context, appWidgetId, newTransactionIntent, 0); + views.setOnClickPendingIntent(R.id.btn_new_transaction, pendingIntent); + + appWidgetManager.updateAppWidget(appWidgetId, views); + accountsDbAdapter.close(); + } + + /** + * Updates all widgets belonging to the application + * @param context Application context + */ + public static void updateAllWidgets(Context context){ + Log.i("WidgetConfiguration", "Updating all widgets"); + AppWidgetManager widgetManager = AppWidgetManager.getInstance(context); + ComponentName componentName = new ComponentName(context, TransactionAppWidgetProvider.class); + int[] appWidgetIds = widgetManager.getAppWidgetIds(componentName); + + SharedPreferences defaultSharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); + for (int widgetId : appWidgetIds) { + String accountUID = defaultSharedPrefs + .getString(UxArgument.SELECTED_ACCOUNT_UID + widgetId, null); + + if (accountUID == null) + continue; + updateWidget(context, widgetId, accountUID); + } + } +} diff --git a/app/src/org/gnucash/android/util/QualifiedAccountNameCursorAdapter.java b/app/src/main/java/org/gnucash/android/util/QualifiedAccountNameCursorAdapter.java similarity index 100% rename from app/src/org/gnucash/android/util/QualifiedAccountNameCursorAdapter.java rename to app/src/main/java/org/gnucash/android/util/QualifiedAccountNameCursorAdapter.java diff --git a/app/res/drawable-hdpi-v14/appwidget_bg.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_bg.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_bg.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_bg.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_bg_focused.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_bg_focused.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_bg_focused.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_bg_focused.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_bg_pressed.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_bg_pressed.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_bg_pressed.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_bg_pressed.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_dark_bg.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_dark_bg.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_dark_bg.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_dark_bg.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_dark_bg_focused.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_dark_bg_focused.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_dark_bg_focused.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_dark_bg_focused.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_inner_focused_c.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_inner_focused_c.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_inner_focused_c.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_inner_focused_c.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_inner_focused_l.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_inner_focused_l.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_inner_focused_l.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_inner_focused_l.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_inner_focused_r.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_inner_focused_r.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_inner_focused_r.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_inner_focused_r.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_inner_pressed_c.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_inner_pressed_c.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_inner_pressed_c.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_inner_pressed_c.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_inner_pressed_l.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_inner_pressed_l.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_inner_pressed_l.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_inner_pressed_l.9.png diff --git a/app/res/drawable-hdpi-v14/appwidget_inner_pressed_r.9.png b/app/src/main/res/drawable-hdpi-v14/appwidget_inner_pressed_r.9.png similarity index 100% rename from app/res/drawable-hdpi-v14/appwidget_inner_pressed_r.9.png rename to app/src/main/res/drawable-hdpi-v14/appwidget_inner_pressed_r.9.png diff --git a/app/res/drawable-hdpi/action_about.png b/app/src/main/res/drawable-hdpi/action_about.png similarity index 100% rename from app/res/drawable-hdpi/action_about.png rename to app/src/main/res/drawable-hdpi/action_about.png diff --git a/app/res/drawable-hdpi/action_about_holo_light.png b/app/src/main/res/drawable-hdpi/action_about_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/action_about_holo_light.png rename to app/src/main/res/drawable-hdpi/action_about_holo_light.png diff --git a/app/res/drawable-hdpi/action_help.png b/app/src/main/res/drawable-hdpi/action_help.png similarity index 100% rename from app/res/drawable-hdpi/action_help.png rename to app/src/main/res/drawable-hdpi/action_help.png diff --git a/app/res/drawable-hdpi/action_search.png b/app/src/main/res/drawable-hdpi/action_search.png similarity index 100% rename from app/res/drawable-hdpi/action_search.png rename to app/src/main/res/drawable-hdpi/action_search.png diff --git a/app/res/drawable-hdpi/action_settings.png b/app/src/main/res/drawable-hdpi/action_settings.png similarity index 100% rename from app/res/drawable-hdpi/action_settings.png rename to app/src/main/res/drawable-hdpi/action_settings.png diff --git a/app/res/drawable-hdpi/action_settings_holo_light.png b/app/src/main/res/drawable-hdpi/action_settings_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/action_settings_holo_light.png rename to app/src/main/res/drawable-hdpi/action_settings_holo_light.png diff --git a/app/res/drawable-hdpi/appwidget_bg.9.png b/app/src/main/res/drawable-hdpi/appwidget_bg.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_bg.9.png rename to app/src/main/res/drawable-hdpi/appwidget_bg.9.png diff --git a/app/res/drawable-hdpi/appwidget_bg_focused.9.png b/app/src/main/res/drawable-hdpi/appwidget_bg_focused.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_bg_focused.9.png rename to app/src/main/res/drawable-hdpi/appwidget_bg_focused.9.png diff --git a/app/res/drawable-hdpi/appwidget_bg_pressed.9.png b/app/src/main/res/drawable-hdpi/appwidget_bg_pressed.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_bg_pressed.9.png rename to app/src/main/res/drawable-hdpi/appwidget_bg_pressed.9.png diff --git a/app/res/drawable-hdpi/appwidget_dark_bg.9.png b/app/src/main/res/drawable-hdpi/appwidget_dark_bg.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_dark_bg.9.png rename to app/src/main/res/drawable-hdpi/appwidget_dark_bg.9.png diff --git a/app/res/drawable-hdpi/appwidget_dark_bg_focused.9.png b/app/src/main/res/drawable-hdpi/appwidget_dark_bg_focused.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_dark_bg_focused.9.png rename to app/src/main/res/drawable-hdpi/appwidget_dark_bg_focused.9.png diff --git a/app/res/drawable-hdpi/appwidget_dark_bg_pressed.9.png b/app/src/main/res/drawable-hdpi/appwidget_dark_bg_pressed.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_dark_bg_pressed.9.png rename to app/src/main/res/drawable-hdpi/appwidget_dark_bg_pressed.9.png diff --git a/app/res/drawable-hdpi/appwidget_inner_focused_c.9.png b/app/src/main/res/drawable-hdpi/appwidget_inner_focused_c.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_inner_focused_c.9.png rename to app/src/main/res/drawable-hdpi/appwidget_inner_focused_c.9.png diff --git a/app/res/drawable-hdpi/appwidget_inner_focused_l.9.png b/app/src/main/res/drawable-hdpi/appwidget_inner_focused_l.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_inner_focused_l.9.png rename to app/src/main/res/drawable-hdpi/appwidget_inner_focused_l.9.png diff --git a/app/res/drawable-hdpi/appwidget_inner_focused_r.9.png b/app/src/main/res/drawable-hdpi/appwidget_inner_focused_r.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_inner_focused_r.9.png rename to app/src/main/res/drawable-hdpi/appwidget_inner_focused_r.9.png diff --git a/app/res/drawable-hdpi/appwidget_inner_pressed_c.9.png b/app/src/main/res/drawable-hdpi/appwidget_inner_pressed_c.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_inner_pressed_c.9.png rename to app/src/main/res/drawable-hdpi/appwidget_inner_pressed_c.9.png diff --git a/app/res/drawable-hdpi/appwidget_inner_pressed_l.9.png b/app/src/main/res/drawable-hdpi/appwidget_inner_pressed_l.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_inner_pressed_l.9.png rename to app/src/main/res/drawable-hdpi/appwidget_inner_pressed_l.9.png diff --git a/app/res/drawable-hdpi/appwidget_inner_pressed_r.9.png b/app/src/main/res/drawable-hdpi/appwidget_inner_pressed_r.9.png similarity index 100% rename from app/res/drawable-hdpi/appwidget_inner_pressed_r.9.png rename to app/src/main/res/drawable-hdpi/appwidget_inner_pressed_r.9.png diff --git a/app/res/drawable-hdpi/content_copy_holo_dark.png b/app/src/main/res/drawable-hdpi/content_copy_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/content_copy_holo_dark.png rename to app/src/main/res/drawable-hdpi/content_copy_holo_dark.png diff --git a/app/res/drawable-hdpi/content_copy_holo_light.png b/app/src/main/res/drawable-hdpi/content_copy_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/content_copy_holo_light.png rename to app/src/main/res/drawable-hdpi/content_copy_holo_light.png diff --git a/app/res/drawable-hdpi/content_discard_holo_dark.png b/app/src/main/res/drawable-hdpi/content_discard_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/content_discard_holo_dark.png rename to app/src/main/res/drawable-hdpi/content_discard_holo_dark.png diff --git a/app/res/drawable-hdpi/content_discard_holo_light.png b/app/src/main/res/drawable-hdpi/content_discard_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/content_discard_holo_light.png rename to app/src/main/res/drawable-hdpi/content_discard_holo_light.png diff --git a/app/res/drawable-hdpi/content_edit_holo_dark.png b/app/src/main/res/drawable-hdpi/content_edit_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/content_edit_holo_dark.png rename to app/src/main/res/drawable-hdpi/content_edit_holo_dark.png diff --git a/app/res/drawable-hdpi/content_edit_holo_light.png b/app/src/main/res/drawable-hdpi/content_edit_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/content_edit_holo_light.png rename to app/src/main/res/drawable-hdpi/content_edit_holo_light.png diff --git a/app/res/drawable-hdpi/content_event_holo_dark.png b/app/src/main/res/drawable-hdpi/content_event_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/content_event_holo_dark.png rename to app/src/main/res/drawable-hdpi/content_event_holo_dark.png diff --git a/app/res/drawable-hdpi/content_event_holo_light.png b/app/src/main/res/drawable-hdpi/content_event_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/content_event_holo_light.png rename to app/src/main/res/drawable-hdpi/content_event_holo_light.png diff --git a/app/res/drawable-hdpi/content_import_export_holo_dark.png b/app/src/main/res/drawable-hdpi/content_import_export_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/content_import_export_holo_dark.png rename to app/src/main/res/drawable-hdpi/content_import_export_holo_dark.png diff --git a/app/res/drawable-hdpi/content_import_export_holo_light.png b/app/src/main/res/drawable-hdpi/content_import_export_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/content_import_export_holo_light.png rename to app/src/main/res/drawable-hdpi/content_import_export_holo_light.png diff --git a/app/res/drawable-hdpi/content_new_holo_dark.png b/app/src/main/res/drawable-hdpi/content_new_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/content_new_holo_dark.png rename to app/src/main/res/drawable-hdpi/content_new_holo_dark.png diff --git a/app/res/drawable-hdpi/content_new_holo_light.png b/app/src/main/res/drawable-hdpi/content_new_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/content_new_holo_light.png rename to app/src/main/res/drawable-hdpi/content_new_holo_light.png diff --git a/app/res/drawable-hdpi/content_split_holo_light.png b/app/src/main/res/drawable-hdpi/content_split_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/content_split_holo_light.png rename to app/src/main/res/drawable-hdpi/content_split_holo_light.png diff --git a/app/res/drawable-hdpi/ic_colorpicker_swatch_selected.png b/app/src/main/res/drawable-hdpi/ic_colorpicker_swatch_selected.png similarity index 100% rename from app/res/drawable-hdpi/ic_colorpicker_swatch_selected.png rename to app/src/main/res/drawable-hdpi/ic_colorpicker_swatch_selected.png diff --git a/app/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png similarity index 100% rename from app/res/drawable-hdpi/ic_launcher.png rename to app/src/main/res/drawable-hdpi/ic_launcher.png diff --git a/app/res/drawable-hdpi/navigation_accept_holo_dark.png b/app/src/main/res/drawable-hdpi/navigation_accept_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/navigation_accept_holo_dark.png rename to app/src/main/res/drawable-hdpi/navigation_accept_holo_dark.png diff --git a/app/res/drawable-hdpi/navigation_accept_holo_light.png b/app/src/main/res/drawable-hdpi/navigation_accept_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/navigation_accept_holo_light.png rename to app/src/main/res/drawable-hdpi/navigation_accept_holo_light.png diff --git a/app/res/drawable-hdpi/navigation_cancel_holo_dark.png b/app/src/main/res/drawable-hdpi/navigation_cancel_holo_dark.png similarity index 100% rename from app/res/drawable-hdpi/navigation_cancel_holo_dark.png rename to app/src/main/res/drawable-hdpi/navigation_cancel_holo_dark.png diff --git a/app/res/drawable-hdpi/navigation_cancel_holo_light.png b/app/src/main/res/drawable-hdpi/navigation_cancel_holo_light.png similarity index 100% rename from app/res/drawable-hdpi/navigation_cancel_holo_light.png rename to app/src/main/res/drawable-hdpi/navigation_cancel_holo_light.png diff --git a/app/res/drawable-ldpi/clear_btn.png b/app/src/main/res/drawable-ldpi/clear_btn.png similarity index 100% rename from app/res/drawable-ldpi/clear_btn.png rename to app/src/main/res/drawable-ldpi/clear_btn.png diff --git a/app/res/drawable-ldpi/ic_launcher.png b/app/src/main/res/drawable-ldpi/ic_launcher.png similarity index 100% rename from app/res/drawable-ldpi/ic_launcher.png rename to app/src/main/res/drawable-ldpi/ic_launcher.png diff --git a/app/res/drawable-mdpi-v14/appwidget_bg.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_bg.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_bg.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_bg.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_bg_focused.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_bg_focused.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_bg_focused.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_bg_focused.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_bg_pressed.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_bg_pressed.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_bg_pressed.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_bg_pressed.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_dark_bg.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_dark_bg.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_dark_bg.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_dark_bg.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_dark_bg_focused.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_dark_bg_focused.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_dark_bg_focused.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_dark_bg_focused.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_inner_focused_c.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_inner_focused_c.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_inner_focused_c.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_inner_focused_c.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_inner_focused_l.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_inner_focused_l.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_inner_focused_l.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_inner_focused_l.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_inner_focused_r.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_inner_focused_r.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_inner_focused_r.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_inner_focused_r.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_inner_pressed_c.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_inner_pressed_c.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_inner_pressed_c.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_inner_pressed_c.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_inner_pressed_l.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_inner_pressed_l.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_inner_pressed_l.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_inner_pressed_l.9.png diff --git a/app/res/drawable-mdpi-v14/appwidget_inner_pressed_r.9.png b/app/src/main/res/drawable-mdpi-v14/appwidget_inner_pressed_r.9.png similarity index 100% rename from app/res/drawable-mdpi-v14/appwidget_inner_pressed_r.9.png rename to app/src/main/res/drawable-mdpi-v14/appwidget_inner_pressed_r.9.png diff --git a/app/res/drawable-mdpi/action_about.png b/app/src/main/res/drawable-mdpi/action_about.png similarity index 100% rename from app/res/drawable-mdpi/action_about.png rename to app/src/main/res/drawable-mdpi/action_about.png diff --git a/app/res/drawable-mdpi/action_about_holo_light.png b/app/src/main/res/drawable-mdpi/action_about_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/action_about_holo_light.png rename to app/src/main/res/drawable-mdpi/action_about_holo_light.png diff --git a/app/res/drawable-mdpi/action_help.png b/app/src/main/res/drawable-mdpi/action_help.png similarity index 100% rename from app/res/drawable-mdpi/action_help.png rename to app/src/main/res/drawable-mdpi/action_help.png diff --git a/app/res/drawable-mdpi/action_search.png b/app/src/main/res/drawable-mdpi/action_search.png similarity index 100% rename from app/res/drawable-mdpi/action_search.png rename to app/src/main/res/drawable-mdpi/action_search.png diff --git a/app/res/drawable-mdpi/action_settings.png b/app/src/main/res/drawable-mdpi/action_settings.png similarity index 100% rename from app/res/drawable-mdpi/action_settings.png rename to app/src/main/res/drawable-mdpi/action_settings.png diff --git a/app/res/drawable-mdpi/action_settings_holo_light.png b/app/src/main/res/drawable-mdpi/action_settings_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/action_settings_holo_light.png rename to app/src/main/res/drawable-mdpi/action_settings_holo_light.png diff --git a/app/res/drawable-mdpi/appwidget_bg.9.png b/app/src/main/res/drawable-mdpi/appwidget_bg.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_bg.9.png rename to app/src/main/res/drawable-mdpi/appwidget_bg.9.png diff --git a/app/res/drawable-mdpi/appwidget_bg_focused.9.png b/app/src/main/res/drawable-mdpi/appwidget_bg_focused.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_bg_focused.9.png rename to app/src/main/res/drawable-mdpi/appwidget_bg_focused.9.png diff --git a/app/res/drawable-mdpi/appwidget_bg_pressed.9.png b/app/src/main/res/drawable-mdpi/appwidget_bg_pressed.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_bg_pressed.9.png rename to app/src/main/res/drawable-mdpi/appwidget_bg_pressed.9.png diff --git a/app/res/drawable-mdpi/appwidget_dark_bg.9.png b/app/src/main/res/drawable-mdpi/appwidget_dark_bg.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_dark_bg.9.png rename to app/src/main/res/drawable-mdpi/appwidget_dark_bg.9.png diff --git a/app/res/drawable-mdpi/appwidget_dark_bg_focused.9.png b/app/src/main/res/drawable-mdpi/appwidget_dark_bg_focused.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_dark_bg_focused.9.png rename to app/src/main/res/drawable-mdpi/appwidget_dark_bg_focused.9.png diff --git a/app/res/drawable-mdpi/appwidget_dark_bg_pressed.9.png b/app/src/main/res/drawable-mdpi/appwidget_dark_bg_pressed.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_dark_bg_pressed.9.png rename to app/src/main/res/drawable-mdpi/appwidget_dark_bg_pressed.9.png diff --git a/app/res/drawable-mdpi/appwidget_inner_focused_c.9.png b/app/src/main/res/drawable-mdpi/appwidget_inner_focused_c.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_inner_focused_c.9.png rename to app/src/main/res/drawable-mdpi/appwidget_inner_focused_c.9.png diff --git a/app/res/drawable-mdpi/appwidget_inner_focused_l.9.png b/app/src/main/res/drawable-mdpi/appwidget_inner_focused_l.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_inner_focused_l.9.png rename to app/src/main/res/drawable-mdpi/appwidget_inner_focused_l.9.png diff --git a/app/res/drawable-mdpi/appwidget_inner_focused_r.9.png b/app/src/main/res/drawable-mdpi/appwidget_inner_focused_r.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_inner_focused_r.9.png rename to app/src/main/res/drawable-mdpi/appwidget_inner_focused_r.9.png diff --git a/app/res/drawable-mdpi/appwidget_inner_pressed_c.9.png b/app/src/main/res/drawable-mdpi/appwidget_inner_pressed_c.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_inner_pressed_c.9.png rename to app/src/main/res/drawable-mdpi/appwidget_inner_pressed_c.9.png diff --git a/app/res/drawable-mdpi/appwidget_inner_pressed_l.9.png b/app/src/main/res/drawable-mdpi/appwidget_inner_pressed_l.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_inner_pressed_l.9.png rename to app/src/main/res/drawable-mdpi/appwidget_inner_pressed_l.9.png diff --git a/app/res/drawable-mdpi/appwidget_inner_pressed_r.9.png b/app/src/main/res/drawable-mdpi/appwidget_inner_pressed_r.9.png similarity index 100% rename from app/res/drawable-mdpi/appwidget_inner_pressed_r.9.png rename to app/src/main/res/drawable-mdpi/appwidget_inner_pressed_r.9.png diff --git a/app/res/drawable-mdpi/clear_btn.png b/app/src/main/res/drawable-mdpi/clear_btn.png similarity index 100% rename from app/res/drawable-mdpi/clear_btn.png rename to app/src/main/res/drawable-mdpi/clear_btn.png diff --git a/app/res/drawable-mdpi/content_copy_holo_dark.png b/app/src/main/res/drawable-mdpi/content_copy_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/content_copy_holo_dark.png rename to app/src/main/res/drawable-mdpi/content_copy_holo_dark.png diff --git a/app/res/drawable-mdpi/content_copy_holo_light.png b/app/src/main/res/drawable-mdpi/content_copy_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/content_copy_holo_light.png rename to app/src/main/res/drawable-mdpi/content_copy_holo_light.png diff --git a/app/res/drawable-mdpi/content_discard_holo_dark.png b/app/src/main/res/drawable-mdpi/content_discard_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/content_discard_holo_dark.png rename to app/src/main/res/drawable-mdpi/content_discard_holo_dark.png diff --git a/app/res/drawable-mdpi/content_discard_holo_light.png b/app/src/main/res/drawable-mdpi/content_discard_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/content_discard_holo_light.png rename to app/src/main/res/drawable-mdpi/content_discard_holo_light.png diff --git a/app/res/drawable-mdpi/content_edit_holo_dark.png b/app/src/main/res/drawable-mdpi/content_edit_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/content_edit_holo_dark.png rename to app/src/main/res/drawable-mdpi/content_edit_holo_dark.png diff --git a/app/res/drawable-mdpi/content_edit_holo_light.png b/app/src/main/res/drawable-mdpi/content_edit_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/content_edit_holo_light.png rename to app/src/main/res/drawable-mdpi/content_edit_holo_light.png diff --git a/app/res/drawable-mdpi/content_event_holo_dark.png b/app/src/main/res/drawable-mdpi/content_event_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/content_event_holo_dark.png rename to app/src/main/res/drawable-mdpi/content_event_holo_dark.png diff --git a/app/res/drawable-mdpi/content_event_holo_light.png b/app/src/main/res/drawable-mdpi/content_event_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/content_event_holo_light.png rename to app/src/main/res/drawable-mdpi/content_event_holo_light.png diff --git a/app/res/drawable-mdpi/content_import_export_holo_dark.png b/app/src/main/res/drawable-mdpi/content_import_export_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/content_import_export_holo_dark.png rename to app/src/main/res/drawable-mdpi/content_import_export_holo_dark.png diff --git a/app/res/drawable-mdpi/content_import_export_holo_light.png b/app/src/main/res/drawable-mdpi/content_import_export_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/content_import_export_holo_light.png rename to app/src/main/res/drawable-mdpi/content_import_export_holo_light.png diff --git a/app/res/drawable-mdpi/content_new_holo_dark.png b/app/src/main/res/drawable-mdpi/content_new_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/content_new_holo_dark.png rename to app/src/main/res/drawable-mdpi/content_new_holo_dark.png diff --git a/app/res/drawable-mdpi/content_new_holo_light.png b/app/src/main/res/drawable-mdpi/content_new_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/content_new_holo_light.png rename to app/src/main/res/drawable-mdpi/content_new_holo_light.png diff --git a/app/res/drawable-mdpi/content_split_holo_light.png b/app/src/main/res/drawable-mdpi/content_split_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/content_split_holo_light.png rename to app/src/main/res/drawable-mdpi/content_split_holo_light.png diff --git a/app/res/drawable-mdpi/ic_colorpicker_swatch_selected.png b/app/src/main/res/drawable-mdpi/ic_colorpicker_swatch_selected.png similarity index 100% rename from app/res/drawable-mdpi/ic_colorpicker_swatch_selected.png rename to app/src/main/res/drawable-mdpi/ic_colorpicker_swatch_selected.png diff --git a/app/res/drawable-mdpi/ic_launcher.png b/app/src/main/res/drawable-mdpi/ic_launcher.png similarity index 100% rename from app/res/drawable-mdpi/ic_launcher.png rename to app/src/main/res/drawable-mdpi/ic_launcher.png diff --git a/app/res/drawable-mdpi/navigation_accept_holo_dark.png b/app/src/main/res/drawable-mdpi/navigation_accept_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/navigation_accept_holo_dark.png rename to app/src/main/res/drawable-mdpi/navigation_accept_holo_dark.png diff --git a/app/res/drawable-mdpi/navigation_accept_holo_light.png b/app/src/main/res/drawable-mdpi/navigation_accept_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/navigation_accept_holo_light.png rename to app/src/main/res/drawable-mdpi/navigation_accept_holo_light.png diff --git a/app/res/drawable-mdpi/navigation_back_holo_dark.png b/app/src/main/res/drawable-mdpi/navigation_back_holo_dark.png similarity index 100% rename from app/res/drawable-mdpi/navigation_back_holo_dark.png rename to app/src/main/res/drawable-mdpi/navigation_back_holo_dark.png diff --git a/app/res/drawable-mdpi/navigation_cancel_holo_light.png b/app/src/main/res/drawable-mdpi/navigation_cancel_holo_light.png similarity index 100% rename from app/res/drawable-mdpi/navigation_cancel_holo_light.png rename to app/src/main/res/drawable-mdpi/navigation_cancel_holo_light.png diff --git a/app/res/drawable-nodpi/widget_preview.png.jpg b/app/src/main/res/drawable-nodpi/widget_preview.png.jpg similarity index 100% rename from app/res/drawable-nodpi/widget_preview.png.jpg rename to app/src/main/res/drawable-nodpi/widget_preview.png.jpg diff --git a/app/res/drawable-xhdpi-v14/appwidget_bg.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_bg.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_bg.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_bg.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_bg_focused.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_bg_focused.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_bg_focused.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_bg_focused.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_bg_pressed.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_bg_pressed.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_bg_pressed.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_bg_pressed.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_dark_bg.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_dark_bg.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_dark_bg.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_dark_bg.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_dark_bg_focused.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_dark_bg_focused.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_dark_bg_focused.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_dark_bg_focused.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_inner_focused_c.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_inner_focused_c.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_inner_focused_c.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_inner_focused_c.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_inner_focused_l.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_inner_focused_l.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_inner_focused_l.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_inner_focused_l.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_inner_focused_r.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_inner_focused_r.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_inner_focused_r.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_inner_focused_r.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_inner_pressed_c.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_inner_pressed_c.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_inner_pressed_c.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_inner_pressed_c.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_inner_pressed_l.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_inner_pressed_l.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_inner_pressed_l.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_inner_pressed_l.9.png diff --git a/app/res/drawable-xhdpi-v14/appwidget_inner_pressed_r.9.png b/app/src/main/res/drawable-xhdpi-v14/appwidget_inner_pressed_r.9.png similarity index 100% rename from app/res/drawable-xhdpi-v14/appwidget_inner_pressed_r.9.png rename to app/src/main/res/drawable-xhdpi-v14/appwidget_inner_pressed_r.9.png diff --git a/app/res/drawable-xhdpi/action_about_holo_light.png b/app/src/main/res/drawable-xhdpi/action_about_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/action_about_holo_light.png rename to app/src/main/res/drawable-xhdpi/action_about_holo_light.png diff --git a/app/res/drawable-xhdpi/action_settings_holo_light.png b/app/src/main/res/drawable-xhdpi/action_settings_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/action_settings_holo_light.png rename to app/src/main/res/drawable-xhdpi/action_settings_holo_light.png diff --git a/app/res/drawable-xhdpi/content_copy_holo_dark.png b/app/src/main/res/drawable-xhdpi/content_copy_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/content_copy_holo_dark.png rename to app/src/main/res/drawable-xhdpi/content_copy_holo_dark.png diff --git a/app/res/drawable-xhdpi/content_copy_holo_light.png b/app/src/main/res/drawable-xhdpi/content_copy_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/content_copy_holo_light.png rename to app/src/main/res/drawable-xhdpi/content_copy_holo_light.png diff --git a/app/res/drawable-xhdpi/content_discard_holo_dark.png b/app/src/main/res/drawable-xhdpi/content_discard_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/content_discard_holo_dark.png rename to app/src/main/res/drawable-xhdpi/content_discard_holo_dark.png diff --git a/app/res/drawable-xhdpi/content_discard_holo_light.png b/app/src/main/res/drawable-xhdpi/content_discard_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/content_discard_holo_light.png rename to app/src/main/res/drawable-xhdpi/content_discard_holo_light.png diff --git a/app/res/drawable-xhdpi/content_edit_holo_dark.png b/app/src/main/res/drawable-xhdpi/content_edit_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/content_edit_holo_dark.png rename to app/src/main/res/drawable-xhdpi/content_edit_holo_dark.png diff --git a/app/res/drawable-xhdpi/content_edit_holo_light.png b/app/src/main/res/drawable-xhdpi/content_edit_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/content_edit_holo_light.png rename to app/src/main/res/drawable-xhdpi/content_edit_holo_light.png diff --git a/app/res/drawable-xhdpi/content_event_holo_dark.png b/app/src/main/res/drawable-xhdpi/content_event_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/content_event_holo_dark.png rename to app/src/main/res/drawable-xhdpi/content_event_holo_dark.png diff --git a/app/res/drawable-xhdpi/content_event_holo_light.png b/app/src/main/res/drawable-xhdpi/content_event_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/content_event_holo_light.png rename to app/src/main/res/drawable-xhdpi/content_event_holo_light.png diff --git a/app/res/drawable-xhdpi/content_import_export_holo_dark.png b/app/src/main/res/drawable-xhdpi/content_import_export_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/content_import_export_holo_dark.png rename to app/src/main/res/drawable-xhdpi/content_import_export_holo_dark.png diff --git a/app/res/drawable-xhdpi/content_import_export_holo_light.png b/app/src/main/res/drawable-xhdpi/content_import_export_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/content_import_export_holo_light.png rename to app/src/main/res/drawable-xhdpi/content_import_export_holo_light.png diff --git a/app/res/drawable-xhdpi/content_new_holo_dark.png b/app/src/main/res/drawable-xhdpi/content_new_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/content_new_holo_dark.png rename to app/src/main/res/drawable-xhdpi/content_new_holo_dark.png diff --git a/app/res/drawable-xhdpi/content_new_holo_light.png b/app/src/main/res/drawable-xhdpi/content_new_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/content_new_holo_light.png rename to app/src/main/res/drawable-xhdpi/content_new_holo_light.png diff --git a/app/res/drawable-xhdpi/content_split_holo_light.png b/app/src/main/res/drawable-xhdpi/content_split_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/content_split_holo_light.png rename to app/src/main/res/drawable-xhdpi/content_split_holo_light.png diff --git a/app/res/drawable-xhdpi/ic_colorpicker_swatch_selected.png b/app/src/main/res/drawable-xhdpi/ic_colorpicker_swatch_selected.png similarity index 100% rename from app/res/drawable-xhdpi/ic_colorpicker_swatch_selected.png rename to app/src/main/res/drawable-xhdpi/ic_colorpicker_swatch_selected.png diff --git a/app/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png similarity index 100% rename from app/res/drawable-xhdpi/ic_launcher.png rename to app/src/main/res/drawable-xhdpi/ic_launcher.png diff --git a/app/res/drawable-xhdpi/navigation_accept_holo_dark.png b/app/src/main/res/drawable-xhdpi/navigation_accept_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/navigation_accept_holo_dark.png rename to app/src/main/res/drawable-xhdpi/navigation_accept_holo_dark.png diff --git a/app/res/drawable-xhdpi/navigation_accept_holo_light.png b/app/src/main/res/drawable-xhdpi/navigation_accept_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/navigation_accept_holo_light.png rename to app/src/main/res/drawable-xhdpi/navigation_accept_holo_light.png diff --git a/app/res/drawable-xhdpi/navigation_back_holo_dark.png b/app/src/main/res/drawable-xhdpi/navigation_back_holo_dark.png similarity index 100% rename from app/res/drawable-xhdpi/navigation_back_holo_dark.png rename to app/src/main/res/drawable-xhdpi/navigation_back_holo_dark.png diff --git a/app/res/drawable-xhdpi/navigation_back_holo_light.png b/app/src/main/res/drawable-xhdpi/navigation_back_holo_light.png similarity index 100% rename from app/res/drawable-xhdpi/navigation_back_holo_light.png rename to app/src/main/res/drawable-xhdpi/navigation_back_holo_light.png diff --git a/app/res/drawable/appwidget_bg_clickable.xml b/app/src/main/res/drawable/appwidget_bg_clickable.xml similarity index 100% rename from app/res/drawable/appwidget_bg_clickable.xml rename to app/src/main/res/drawable/appwidget_bg_clickable.xml diff --git a/app/res/drawable/appwidget_button_center.xml b/app/src/main/res/drawable/appwidget_button_center.xml similarity index 100% rename from app/res/drawable/appwidget_button_center.xml rename to app/src/main/res/drawable/appwidget_button_center.xml diff --git a/app/res/drawable/appwidget_button_left.xml b/app/src/main/res/drawable/appwidget_button_left.xml similarity index 100% rename from app/res/drawable/appwidget_button_left.xml rename to app/src/main/res/drawable/appwidget_button_left.xml diff --git a/app/res/drawable/appwidget_button_right.xml b/app/src/main/res/drawable/appwidget_button_right.xml similarity index 100% rename from app/res/drawable/appwidget_button_right.xml rename to app/src/main/res/drawable/appwidget_button_right.xml diff --git a/app/res/drawable/appwidget_dark_bg_clickable.xml b/app/src/main/res/drawable/appwidget_dark_bg_clickable.xml similarity index 100% rename from app/res/drawable/appwidget_dark_bg_clickable.xml rename to app/src/main/res/drawable/appwidget_dark_bg_clickable.xml diff --git a/app/res/drawable/color_picker_swatch.xml b/app/src/main/res/drawable/color_picker_swatch.xml similarity index 100% rename from app/res/drawable/color_picker_swatch.xml rename to app/src/main/res/drawable/color_picker_swatch.xml diff --git a/app/res/drawable/color_square.xml b/app/src/main/res/drawable/color_square.xml similarity index 100% rename from app/res/drawable/color_square.xml rename to app/src/main/res/drawable/color_square.xml diff --git a/app/res/drawable/numeric_button.xml b/app/src/main/res/drawable/numeric_button.xml similarity index 100% rename from app/res/drawable/numeric_button.xml rename to app/src/main/res/drawable/numeric_button.xml diff --git a/app/res/drawable/selected_background.xml b/app/src/main/res/drawable/selected_background.xml similarity index 100% rename from app/res/drawable/selected_background.xml rename to app/src/main/res/drawable/selected_background.xml diff --git a/app/res/layout/activity_accounts.xml b/app/src/main/res/layout/activity_accounts.xml similarity index 100% rename from app/res/layout/activity_accounts.xml rename to app/src/main/res/layout/activity_accounts.xml diff --git a/app/res/layout/activity_transactions.xml b/app/src/main/res/layout/activity_transactions.xml similarity index 100% rename from app/res/layout/activity_transactions.xml rename to app/src/main/res/layout/activity_transactions.xml diff --git a/app/res/layout/color_picker_dialog.xml b/app/src/main/res/layout/color_picker_dialog.xml similarity index 100% rename from app/res/layout/color_picker_dialog.xml rename to app/src/main/res/layout/color_picker_dialog.xml diff --git a/app/res/layout/color_picker_swatch.xml b/app/src/main/res/layout/color_picker_swatch.xml similarity index 100% rename from app/res/layout/color_picker_swatch.xml rename to app/src/main/res/layout/color_picker_swatch.xml diff --git a/app/res/layout/default_buttons.xml b/app/src/main/res/layout/default_buttons.xml similarity index 100% rename from app/res/layout/default_buttons.xml rename to app/src/main/res/layout/default_buttons.xml diff --git a/app/res/layout/dialog_account_delete.xml b/app/src/main/res/layout/dialog_account_delete.xml similarity index 100% rename from app/res/layout/dialog_account_delete.xml rename to app/src/main/res/layout/dialog_account_delete.xml diff --git a/app/res/layout/dialog_bulk_move.xml b/app/src/main/res/layout/dialog_bulk_move.xml similarity index 100% rename from app/res/layout/dialog_bulk_move.xml rename to app/src/main/res/layout/dialog_bulk_move.xml diff --git a/app/res/layout/dialog_export.xml b/app/src/main/res/layout/dialog_export.xml similarity index 100% rename from app/res/layout/dialog_export.xml rename to app/src/main/res/layout/dialog_export.xml diff --git a/app/res/layout/dialog_split_editor.xml b/app/src/main/res/layout/dialog_split_editor.xml similarity index 100% rename from app/res/layout/dialog_split_editor.xml rename to app/src/main/res/layout/dialog_split_editor.xml diff --git a/app/res/layout/fragment_account_detail.xml b/app/src/main/res/layout/fragment_account_detail.xml similarity index 100% rename from app/res/layout/fragment_account_detail.xml rename to app/src/main/res/layout/fragment_account_detail.xml diff --git a/app/res/layout/fragment_accounts_list.xml b/app/src/main/res/layout/fragment_accounts_list.xml similarity index 100% rename from app/res/layout/fragment_accounts_list.xml rename to app/src/main/res/layout/fragment_accounts_list.xml diff --git a/app/res/layout/fragment_new_account.xml b/app/src/main/res/layout/fragment_new_account.xml similarity index 100% rename from app/res/layout/fragment_new_account.xml rename to app/src/main/res/layout/fragment_new_account.xml diff --git a/app/res/layout/fragment_new_transaction.xml b/app/src/main/res/layout/fragment_new_transaction.xml similarity index 100% rename from app/res/layout/fragment_new_transaction.xml rename to app/src/main/res/layout/fragment_new_transaction.xml diff --git a/app/res/layout/fragment_numeric_keyboard.xml b/app/src/main/res/layout/fragment_numeric_keyboard.xml similarity index 100% rename from app/res/layout/fragment_numeric_keyboard.xml rename to app/src/main/res/layout/fragment_numeric_keyboard.xml diff --git a/app/res/layout/fragment_recurring_transactions_list.xml b/app/src/main/res/layout/fragment_recurring_transactions_list.xml similarity index 100% rename from app/res/layout/fragment_recurring_transactions_list.xml rename to app/src/main/res/layout/fragment_recurring_transactions_list.xml diff --git a/app/res/layout/fragment_transactions_list.xml b/app/src/main/res/layout/fragment_transactions_list.xml similarity index 100% rename from app/res/layout/fragment_transactions_list.xml rename to app/src/main/res/layout/fragment_transactions_list.xml diff --git a/app/res/layout/horizontal_line.xml b/app/src/main/res/layout/horizontal_line.xml similarity index 100% rename from app/res/layout/horizontal_line.xml rename to app/src/main/res/layout/horizontal_line.xml diff --git a/app/res/layout/item_split_entry.xml b/app/src/main/res/layout/item_split_entry.xml similarity index 100% rename from app/res/layout/item_split_entry.xml rename to app/src/main/res/layout/item_split_entry.xml diff --git a/app/res/layout/list_item_2_lines.xml b/app/src/main/res/layout/list_item_2_lines.xml similarity index 100% rename from app/res/layout/list_item_2_lines.xml rename to app/src/main/res/layout/list_item_2_lines.xml diff --git a/app/res/layout/list_item_account.xml b/app/src/main/res/layout/list_item_account.xml similarity index 100% rename from app/res/layout/list_item_account.xml rename to app/src/main/res/layout/list_item_account.xml diff --git a/app/res/layout/list_item_scheduled_trxn.xml b/app/src/main/res/layout/list_item_scheduled_trxn.xml similarity index 100% rename from app/res/layout/list_item_scheduled_trxn.xml rename to app/src/main/res/layout/list_item_scheduled_trxn.xml diff --git a/app/res/layout/list_item_transaction.xml b/app/src/main/res/layout/list_item_transaction.xml similarity index 100% rename from app/res/layout/list_item_transaction.xml rename to app/src/main/res/layout/list_item_transaction.xml diff --git a/app/res/layout/passcode_lockscreen.xml b/app/src/main/res/layout/passcode_lockscreen.xml old mode 100755 new mode 100644 similarity index 100% rename from app/res/layout/passcode_lockscreen.xml rename to app/src/main/res/layout/passcode_lockscreen.xml diff --git a/app/res/layout/transactions_sum_bar.xml b/app/src/main/res/layout/transactions_sum_bar.xml similarity index 100% rename from app/res/layout/transactions_sum_bar.xml rename to app/src/main/res/layout/transactions_sum_bar.xml diff --git a/app/res/layout/widget_4x1.xml b/app/src/main/res/layout/widget_4x1.xml similarity index 100% rename from app/res/layout/widget_4x1.xml rename to app/src/main/res/layout/widget_4x1.xml diff --git a/app/res/layout/widget_configuration.xml b/app/src/main/res/layout/widget_configuration.xml similarity index 100% rename from app/res/layout/widget_configuration.xml rename to app/src/main/res/layout/widget_configuration.xml diff --git a/app/res/menu/account_actions.xml b/app/src/main/res/menu/account_actions.xml similarity index 100% rename from app/res/menu/account_actions.xml rename to app/src/main/res/menu/account_actions.xml diff --git a/app/res/menu/account_context_menu.xml b/app/src/main/res/menu/account_context_menu.xml similarity index 100% rename from app/res/menu/account_context_menu.xml rename to app/src/main/res/menu/account_context_menu.xml diff --git a/app/res/menu/default_save_actions.xml b/app/src/main/res/menu/default_save_actions.xml similarity index 100% rename from app/res/menu/default_save_actions.xml rename to app/src/main/res/menu/default_save_actions.xml diff --git a/app/res/menu/global_actions.xml b/app/src/main/res/menu/global_actions.xml similarity index 100% rename from app/res/menu/global_actions.xml rename to app/src/main/res/menu/global_actions.xml diff --git a/app/res/menu/sub_account_actions.xml b/app/src/main/res/menu/sub_account_actions.xml similarity index 100% rename from app/res/menu/sub_account_actions.xml rename to app/src/main/res/menu/sub_account_actions.xml diff --git a/app/res/menu/transactions_context_menu.xml b/app/src/main/res/menu/transactions_context_menu.xml similarity index 100% rename from app/res/menu/transactions_context_menu.xml rename to app/src/main/res/menu/transactions_context_menu.xml diff --git a/app/res/menu/transactions_list_actions.xml b/app/src/main/res/menu/transactions_list_actions.xml similarity index 100% rename from app/res/menu/transactions_list_actions.xml rename to app/src/main/res/menu/transactions_list_actions.xml diff --git a/app/res/raw-de-rAT/default_accounts.gnucash b/app/src/main/res/raw-de-rAT/default_accounts.gnucash similarity index 100% rename from app/res/raw-de-rAT/default_accounts.gnucash rename to app/src/main/res/raw-de-rAT/default_accounts.gnucash diff --git a/app/res/raw-de-rCH/default_accounts.gnucash b/app/src/main/res/raw-de-rCH/default_accounts.gnucash similarity index 100% rename from app/res/raw-de-rCH/default_accounts.gnucash rename to app/src/main/res/raw-de-rCH/default_accounts.gnucash diff --git a/app/res/raw-de-rDE/default_accounts.gnucash b/app/src/main/res/raw-de-rDE/default_accounts.gnucash similarity index 100% rename from app/res/raw-de-rDE/default_accounts.gnucash rename to app/src/main/res/raw-de-rDE/default_accounts.gnucash diff --git a/app/res/raw-el-rGR/default_accounts.gnucash b/app/src/main/res/raw-el-rGR/default_accounts.gnucash similarity index 100% rename from app/res/raw-el-rGR/default_accounts.gnucash rename to app/src/main/res/raw-el-rGR/default_accounts.gnucash diff --git a/app/res/raw-en-rGB/default_accounts.gnucash b/app/src/main/res/raw-en-rGB/default_accounts.gnucash similarity index 100% rename from app/res/raw-en-rGB/default_accounts.gnucash rename to app/src/main/res/raw-en-rGB/default_accounts.gnucash diff --git a/app/res/raw-es-rES/default_accounts.gnucash b/app/src/main/res/raw-es-rES/default_accounts.gnucash similarity index 100% rename from app/res/raw-es-rES/default_accounts.gnucash rename to app/src/main/res/raw-es-rES/default_accounts.gnucash diff --git a/app/res/raw-es-rMX/default_accounts.gnucash b/app/src/main/res/raw-es-rMX/default_accounts.gnucash similarity index 100% rename from app/res/raw-es-rMX/default_accounts.gnucash rename to app/src/main/res/raw-es-rMX/default_accounts.gnucash diff --git a/app/res/raw-fr-rCA/default_accounts.gnucash b/app/src/main/res/raw-fr-rCA/default_accounts.gnucash similarity index 100% rename from app/res/raw-fr-rCA/default_accounts.gnucash rename to app/src/main/res/raw-fr-rCA/default_accounts.gnucash diff --git a/app/res/raw-fr-rCH/default_accounts.gnucash b/app/src/main/res/raw-fr-rCH/default_accounts.gnucash similarity index 100% rename from app/res/raw-fr-rCH/default_accounts.gnucash rename to app/src/main/res/raw-fr-rCH/default_accounts.gnucash diff --git a/app/res/raw-fr-rFR/default_accounts.gnucash b/app/src/main/res/raw-fr-rFR/default_accounts.gnucash similarity index 100% rename from app/res/raw-fr-rFR/default_accounts.gnucash rename to app/src/main/res/raw-fr-rFR/default_accounts.gnucash diff --git a/app/res/raw-hu-rHU/default_accounts.gnucash b/app/src/main/res/raw-hu-rHU/default_accounts.gnucash similarity index 100% rename from app/res/raw-hu-rHU/default_accounts.gnucash rename to app/src/main/res/raw-hu-rHU/default_accounts.gnucash diff --git a/app/res/raw-it-rIT/default_accounts.gnucash b/app/src/main/res/raw-it-rIT/default_accounts.gnucash similarity index 100% rename from app/res/raw-it-rIT/default_accounts.gnucash rename to app/src/main/res/raw-it-rIT/default_accounts.gnucash diff --git a/app/res/raw-nl-rNL/default_accounts.gnucash b/app/src/main/res/raw-nl-rNL/default_accounts.gnucash similarity index 100% rename from app/res/raw-nl-rNL/default_accounts.gnucash rename to app/src/main/res/raw-nl-rNL/default_accounts.gnucash diff --git a/app/res/raw-pt-rBR/default_accounts.gnucash b/app/src/main/res/raw-pt-rBR/default_accounts.gnucash similarity index 100% rename from app/res/raw-pt-rBR/default_accounts.gnucash rename to app/src/main/res/raw-pt-rBR/default_accounts.gnucash diff --git a/app/res/raw-ru-rRU/default_accounts.gnucash b/app/src/main/res/raw-ru-rRU/default_accounts.gnucash similarity index 100% rename from app/res/raw-ru-rRU/default_accounts.gnucash rename to app/src/main/res/raw-ru-rRU/default_accounts.gnucash diff --git a/app/res/raw-zh-rCN/default_accounts.gnucash b/app/src/main/res/raw-zh-rCN/default_accounts.gnucash similarity index 100% rename from app/res/raw-zh-rCN/default_accounts.gnucash rename to app/src/main/res/raw-zh-rCN/default_accounts.gnucash diff --git a/app/res/raw/default_accounts.gnucash b/app/src/main/res/raw/default_accounts.gnucash similarity index 100% rename from app/res/raw/default_accounts.gnucash rename to app/src/main/res/raw/default_accounts.gnucash diff --git a/app/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml similarity index 100% rename from app/res/values-de/strings.xml rename to app/src/main/res/values-de/strings.xml diff --git a/app/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml similarity index 98% rename from app/res/values-el/strings.xml rename to app/src/main/res/values-el/strings.xml index 2fb48f702..9820a2b27 100644 --- a/app/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -1,441 +1,441 @@ - - - - - GnuCash - Δημιουργία Λογαριασμού - Επεξεργασία Λογαριασμού - Πληροφορίες - Εξαγωγή OFX - Προσθήκη μιας νέας συναλλαγής σε ένα λογαριασμό - Δεν υπάρχουν λογαριασμοί για εμφάνιση - Όνομα λογαριασμού - Ακύρωση - Αποθήκευση - Περιγραφή - Ποσό - Νέα συναλλαγή - Δεν υπάρχουν συναλλαγές για εμφάνιση - ΗΜΕΡΟΜΗΝΙΑ & ΩΡΑ - Λογιαριασμός - ΧΡΕΩΣΗ - ΠΙΣΤΩΣΗ - Λογαριασμοί - Συναλλαγές - ΔΙΑΓΡΑΦΗ - Διαγραφή - Ακύρωση - Ο λογαριασμός διαγράφηκε - Επιβεβαίωση διαγραφής - Όλες οι συναλλαγές αυτού λογαριασμού θα διαγραφούν επίσης. - Επεξεργασία Συναλλαγής - Σημείωση - ΜΕΤΑΚΙΝΗΣΗ - %1$d επιλέχθηκε - Προορισμός Εξαγωγής - Export transactions - Εξαγωγή όλων των συναλλαγών - Προεπιλεγμένα, μόνο οι νέες συναλλαγές από τη τελευταία εξαγωγή θα εξαχθούν. Ενεργοποίησε αυτή την επιλογή για την εξαγωγή όλων των συναλλαγών - Σφάλμα εξαγωγής δεδομένων %1$s - Εξαγωγή - Διαγραφή μετά την εξαγωγή - Όλες οι συναλλαγές που εξάγονται, θα διαγραφούν με την ολοκλήρωση της εξαγωγής - Ρυθμίσεις - - Μοίρασμα αρχείου… - Κάρτα SD - - Μετακίνηση - Μετακίνησε %1$d συναλλαγή(ες) - Λογιαριασμός Προορισμού - Πρόσβαση κάρτας SD - Αδυναμία μετακίνησης συναλλαγών.\nΟ λογαριασμός προορισμού χρησιμοποιεί διαφορετικό νόμισμα από το λογαριασμό προέλευσης - Γενικές - Πληροφορίες - Προεπιλογή νομίσματος - Προεπιλεγμένο νόμισμα - Προεπιλεγμένο νόμισμα για νέους λογαριασμούς - Ενεργοποίηση καταγραφής συναλλαγών στο GnuCash για Android - Ενεργοποίηση δημιουργίας λογαριασμών στο GnuCash για Android - Τα δεδομένα σας στο GnuCash - Ανάγνωση και επεξεργασία δεδομένων GnuCash - εγγραφή συναλλαγών - δημιουργία λογαριασμών - Εμφάνιση λογαριασμού - Δημιουργία Λογαριασμών - Επιλογή λογαριασμών για δημιουργία - - Afghani - Algerian Dinar - Argentine Peso - Armenian Dram - Aruban Florin - Australian Dollar - Azerbaijanian Manat - Bahamian Dollar - Bahraini Dinar - Baht - Balboa - Barbados Dollar - Belarussian Ruble - Belize Dollar - Bermudian Dollar - Bolivar Fuerte - Boliviano - Brazilian Real - Brunei Dollar - Bulgarian Lev - Burundi Franc - Canadian Dollar - Cape Verde Escudo - Cayman Islands Dollar - CFA Franc BCEAO - CFA Franc BEAC - CFP Franc - Chilean Peso - Δοκιμαστικό νόμισμα - Colombian Peso - Comoro Franc - Congolese Franc - Convertible Mark - Cordoba Oro - Costa Rican Colon - Croatian Kuna - Cuban Convertible Peso - Cuban Peso - Czech Koruna - Dalasi - Danish Krone - Denar - Djibouti Franc - Dobra - Dominican Peso - Dong - East Caribbean Dollar - Egyptian Pound - El Salvador Colon - Ethiopian Birr - Ευρώ - Falkland Islands Pound - Fiji Dollar - Forint - Ghana Cedi - Gibraltar Pound - Gold - Gourde - Guarani - Guinea Franc - Guyana Dollar - Hong Kong Dollar - Hryvnia - Iceland Krona - Indian Rupee - Iranian Rial - Iraqi Dinar - Jamaican Dollar - Jordanian Dinar - Kenyan Shilling - Kina - Kip - Kuwaiti Dinar - Kwacha - Kwanza - Kyat - Lari - Latvian Lats - Lebanese Pound - Lek - Lempira - Leone - Liberian Dollar - Libyan Dinar - Lilangeni - Lithuanian Litas - Loti - Malagasy Ariary - Malaysian Ringgit - Mauritius Rupee - Mexican Peso - Mexican Unidad de Inversion (UDI) - Moldovan Leu - Moroccan Dirham - Mozambique Metical - Mvdol - Naira - Nakfa - Namibia Dollar - Nepalese Rupee - Netherlands Antillean Guilder - New Israeli Sheqel - New Romanian Leu - New Taiwan Dollar - New Zealand Dollar - Ngultrum - North Korean Won - Norwegian Krone - Nuevo Sol - Ouguiya - Pa’anga - Pakistan Rupee - Palladium - Pataca - Philippine Peso - Platinum - Pound Sterling - Pula - Qatari Rial - Quetzal - Rand - Rial Omani - Riel - Rufiyaa - Rupiah - Russian Ruble - Rwanda Franc - Saint Helena Pound - Saudi Riyal - SDR (Special Drawing Right) - Serbian Dinar - Seychelles Rupee - Silver - Singapore Dollar - Solomon Islands Dollar - Som - Somali Shilling - Somoni - South Sudanese Pound - Sri Lanka Rupee - Sucre - Sudanese Pound - Surinam Dollar - Swedish Krona - Swiss Franc - Syrian Pound - Taka - Tala - Tanzanian Shilling - Tenge - Χωρίς νόμισμα - Trinidad and Tobago Dollar - Tugrik - Tunisian Dinar - Turkish Lira - Turkmenistan New Manat - UAE Dirham - Uganda Shilling - UIC-Franc - Unidad de Valor Real - Unidades de fomento - Uruguay Peso en Unidades Indexadas (URUIURUI) - Uruguayan Peso - US Dolar - Uzbekistan Sum - Vatu - WIR Euro - WIR Franc - Won - Yemeni Rial - Yen - Yuan Renminbi - Zambian Kwacha - Zimbabwe Dollar - Zloty - - - Έξοδα - Έσοδα - Πάγια - Καθαρή Αξία - Παθητικό - - Δεν υπάρχουν λογαριασμοί στο - GnuCash.\nΔημιουργήστε ενα λογαριασμό πριν προσθέσετε ένα γραφικό στοιχείο - Έκδοση - Άδεια χρήσης - Άδεια χρήσης Apache v2.0. Επιλέξτε για λεπτομέρειες - Γενικά - Επιλογή Λογαριασμού - Δεν υπάρχουν διαθέσιμες συναλλαγές για εξαγωγή - Πληροφορίες για GnuCash - Το GnuCash είναι μια εφαρμογή - παρακολούθησης εξόδων για κινητά Android.\nΕπιτρέπει ευέλικτη παρακολούθηση - εξόδων εν κινήσει τα οποία μπορούν να εξαχθούν σε μορφή Open Financial - eXchange (OFX) και να εισαχθούν στην εφαρμογή GnuCash για τον - υπολογιστή. - Πληροφορίες - Αρχείο %1$s εξήχθη σε:\n - Εξαγωγή GnuCash Android %1$s - Εξαγωγή GnuCash Android προς - Κινήσεις - Προτιμήσεις Κινήσεων - Προτιμήσεις Λογαριασμών - Προεπιλογή Τύπου Κίνησης - Ο προεπιλεγμένος τύπος κίνησης, ΠΙΣΤΩΣΗ ή ΧΡΕΩΣΗ - - ΠΙΣΤΩΣΗ - ΧΡΕΩΣΗ - - Σίγουρα θέλετε να διαγράψετε ΌΛΕΣ τις κινήσεις; - Σίγουρα θέλετε να διαγράψετε αυτή τη κίνηση; - Εξαγωγή - Εξαγωγή όλων των κινήσεων - Διαγραφή εξηγμένων κινήσεων - Προεπιλεγμένο email εξαγωγής - Η προεπιλεγμένη διεύθυνση email για αποστολή εξαγωγών. Μπορείτε να το αλλάξετε και κατα την εξαγωγή. - Λογαριασμός Μεταφοράς - Όλες οι κινήσεις θα μεταφερθούν από τον ένα λογαριασμό στον άλλο. - Ενεργοποίηση Διπλών Λογιστικών Εγγραφών - Υπόλοιπο - Εισαγωγή ονόματος λογαριασμού - για τη δημιουργία του - Νόμισμα - Γονικός λογαριασμός - Χρήση κεφαλίδας XML OFX - Ενεργοποίηση αυτής της επιλογής για εξαγωγή σε εφαρμογές τρίτων, εκτός του GnuCash για επιτραπέζιο υπολογιστή. - Τι νέο υπάρχει - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - Απόρριψη - Εισαγωγή ποσού για - αποθήκευση κίνησης - Εισαγωγή Λογαριασμών GnuCash - Εισαγωγή Λογαριασμών - Προέκυψε σφάλμα κατά την - εισαγωγή λογαριασμών GnuCash - Λογαριασμοί GnuCash - εισήχθησαν με επιτυχία - Το εισαγόμενο λογιστικό σχέδιο - εξήχθει από το GnuCash για επιτραπέζιους υπολογιστές - Εισαγωγή λογαριασμών GnuCash - Διαγραφή όλων των λογαριασμών - στη βάση δεδομένων. Όλες οι κινήσεις θα διαγραφούν επίσης. - - Διαγραφή όλων των λογαριασμών - Λογαριασμοί - Όλοι οι λογαριασμοί διαγράφηκαν - με επιτυχία - Σίγουρα θέλετε να διαγράψετε - όλους του λογαριασμούς και τις κινήσεις; \nΑυτή η ενέργεια δε μπορεί να αναιρεθεί! - - Τύπος Λογαριασμού - Όλες οι κινήσεις σε όλους - τους λογαριασμούς θα διαγραφούν! - Διαγραφή όλων των κινήσεων - Όλες οι κινήσεις διαγράφηκαν - με επιτυχία! - Εισαγωγή λογαριασμών - Πατήστε ξανά για επιβεβαίωση. ΌΛΕΣ οι καταχωρήσεις θα διαγραφούν!! - Κινήσεις - Υπο-Λογαριασμοί - Αναζήτηση - Προεπιλεγμένη Μορφή Εξόδου - Μορφή αρχείου για προεπιλεγμένη χρήση κατά την εξαγωγή κινήσεων. - Εξαγωγή κινήσεων… - Επαναλαμβανόμενη - - Imbalance - Εξαγωγή κινήσεων - Δεν υπάρχουν επαναλαμβανόμενες κινήσεις για εμφάνιση. - Επιτυχία διαγραφής επαναλαμβανόμενης κίνησης - Λογαριασμός κράτησης θέσης - Προεπιλεγμένος Λογαριασμός Μεταφοράς - Χρώμα Λογαριασμού & Τύπος - - %d υπο-λογαριασμός - %d υπο-λογαριασμοί - - - ΡΕΥΣΤΟ - ΤΡΑΠΕΖΑ - ΠΙΣΤΩΤΙΚΗ ΚΑΡΤΑ - ΠΑΓΙΟ - ΠΑΘΗΤΙΚΟ - ΕΣΟΔΟ - ΕΞΟΔΟ - ΠΛΗΡΩΤΕΟ - ΕΙΣΠΡΑΚΤΕΟ - ΚΑΘΑΡΗ ΑΞΙΑ - ΝΟΜΙΣΜΑ - ΜΕΤΟΧΗ - ΑΜΟΙΒΑΙΟ ΚΕΦΑΛΑΙΟ - TRADING - - - QIF - OFX - - - Επιλογή χρώματος - Διαγραφή υπο-λογαριασμών - Πρόσφατοι - Αγαπημένοι - Όλοι - Δημιουργία προεπιλεγμένης συχνά χρησιμοποιούμενης δομής λογαριασμών GnuCash - Δημιουργία προεπιλεγμένων λογαριασμών - Νέοι λογαριασμοί θα δημιουργηθούν επιπλέον της υπάρχουσας - δομής λογαριασμών.\n\nΕάν επιθυμείτε να αντικαταστήσετε υπάρχοντες λογαριασμούς, διαγράψτε τους πριν προχωρήσετε! - - Προγραμματισμένες Κινήσεις - GnuCash Android. Καλώς ήρθατε! \nΜπορείτε είτε να δημιουργήσετε - μια ιεραρχία συνηθισμένων λογαριασμών, ή να εισάγετε τη δική σας δομή λογαριασμών GnuCash. \n\nΚαι οι δύο επιλογές είναι επίσης - διαθέσιμες στις Επιλογές της εφαρμογής γι\' αυτό μπορείτε να αποφασίσετε αργότερα. - - - ΚΑΜΙΑ - ΗΜΕΡΗΣΙΑ - ΕΒΔΟΜΑΔΙΑΙΑ - ΜΗΝΙΑΙΑ - - Προγραμματισμένες Κινήσεις - Select destination for export - Memo - Spend - Receive - Withdrawal - Deposit - Payment - Charge - Decrease - Increase - Income - Rebate - Expense - Bill - Invoice - Buy - Sell - Repeats - Balance: - No recent backup found - Αρχικά υπόλοιπα - Καθαρή Θέση - Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions - - Save account opening balances - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split - + + + + + GnuCash + Δημιουργία Λογαριασμού + Επεξεργασία Λογαριασμού + Πληροφορίες + Εξαγωγή OFX + Προσθήκη μιας νέας συναλλαγής σε ένα λογαριασμό + Δεν υπάρχουν λογαριασμοί για εμφάνιση + Όνομα λογαριασμού + Ακύρωση + Αποθήκευση + Περιγραφή + Ποσό + Νέα συναλλαγή + Δεν υπάρχουν συναλλαγές για εμφάνιση + ΗΜΕΡΟΜΗΝΙΑ & ΩΡΑ + Λογιαριασμός + ΧΡΕΩΣΗ + ΠΙΣΤΩΣΗ + Λογαριασμοί + Συναλλαγές + ΔΙΑΓΡΑΦΗ + Διαγραφή + Ακύρωση + Ο λογαριασμός διαγράφηκε + Επιβεβαίωση διαγραφής + Όλες οι συναλλαγές αυτού λογαριασμού θα διαγραφούν επίσης. + Επεξεργασία Συναλλαγής + Σημείωση + ΜΕΤΑΚΙΝΗΣΗ + %1$d επιλέχθηκε + Προορισμός Εξαγωγής + Export transactions + Εξαγωγή όλων των συναλλαγών + Προεπιλεγμένα, μόνο οι νέες συναλλαγές από τη τελευταία εξαγωγή θα εξαχθούν. Ενεργοποίησε αυτή την επιλογή για την εξαγωγή όλων των συναλλαγών + Σφάλμα εξαγωγής δεδομένων %1$s + Εξαγωγή + Διαγραφή μετά την εξαγωγή + Όλες οι συναλλαγές που εξάγονται, θα διαγραφούν με την ολοκλήρωση της εξαγωγής + Ρυθμίσεις + + Μοίρασμα αρχείου… + Κάρτα SD + + Μετακίνηση + Μετακίνησε %1$d συναλλαγή(ες) + Λογιαριασμός Προορισμού + Πρόσβαση κάρτας SD + Αδυναμία μετακίνησης συναλλαγών.\nΟ λογαριασμός προορισμού χρησιμοποιεί διαφορετικό νόμισμα από το λογαριασμό προέλευσης + Γενικές + Πληροφορίες + Προεπιλογή νομίσματος + Προεπιλεγμένο νόμισμα + Προεπιλεγμένο νόμισμα για νέους λογαριασμούς + Ενεργοποίηση καταγραφής συναλλαγών στο GnuCash για Android + Ενεργοποίηση δημιουργίας λογαριασμών στο GnuCash για Android + Τα δεδομένα σας στο GnuCash + Ανάγνωση και επεξεργασία δεδομένων GnuCash + εγγραφή συναλλαγών + δημιουργία λογαριασμών + Εμφάνιση λογαριασμού + Δημιουργία Λογαριασμών + Επιλογή λογαριασμών για δημιουργία + + Afghani + Algerian Dinar + Argentine Peso + Armenian Dram + Aruban Florin + Australian Dollar + Azerbaijanian Manat + Bahamian Dollar + Bahraini Dinar + Baht + Balboa + Barbados Dollar + Belarussian Ruble + Belize Dollar + Bermudian Dollar + Bolivar Fuerte + Boliviano + Brazilian Real + Brunei Dollar + Bulgarian Lev + Burundi Franc + Canadian Dollar + Cape Verde Escudo + Cayman Islands Dollar + CFA Franc BCEAO + CFA Franc BEAC + CFP Franc + Chilean Peso + Δοκιμαστικό νόμισμα + Colombian Peso + Comoro Franc + Congolese Franc + Convertible Mark + Cordoba Oro + Costa Rican Colon + Croatian Kuna + Cuban Convertible Peso + Cuban Peso + Czech Koruna + Dalasi + Danish Krone + Denar + Djibouti Franc + Dobra + Dominican Peso + Dong + East Caribbean Dollar + Egyptian Pound + El Salvador Colon + Ethiopian Birr + Ευρώ + Falkland Islands Pound + Fiji Dollar + Forint + Ghana Cedi + Gibraltar Pound + Gold + Gourde + Guarani + Guinea Franc + Guyana Dollar + Hong Kong Dollar + Hryvnia + Iceland Krona + Indian Rupee + Iranian Rial + Iraqi Dinar + Jamaican Dollar + Jordanian Dinar + Kenyan Shilling + Kina + Kip + Kuwaiti Dinar + Kwacha + Kwanza + Kyat + Lari + Latvian Lats + Lebanese Pound + Lek + Lempira + Leone + Liberian Dollar + Libyan Dinar + Lilangeni + Lithuanian Litas + Loti + Malagasy Ariary + Malaysian Ringgit + Mauritius Rupee + Mexican Peso + Mexican Unidad de Inversion (UDI) + Moldovan Leu + Moroccan Dirham + Mozambique Metical + Mvdol + Naira + Nakfa + Namibia Dollar + Nepalese Rupee + Netherlands Antillean Guilder + New Israeli Sheqel + New Romanian Leu + New Taiwan Dollar + New Zealand Dollar + Ngultrum + North Korean Won + Norwegian Krone + Nuevo Sol + Ouguiya + Pa’anga + Pakistan Rupee + Palladium + Pataca + Philippine Peso + Platinum + Pound Sterling + Pula + Qatari Rial + Quetzal + Rand + Rial Omani + Riel + Rufiyaa + Rupiah + Russian Ruble + Rwanda Franc + Saint Helena Pound + Saudi Riyal + SDR (Special Drawing Right) + Serbian Dinar + Seychelles Rupee + Silver + Singapore Dollar + Solomon Islands Dollar + Som + Somali Shilling + Somoni + South Sudanese Pound + Sri Lanka Rupee + Sucre + Sudanese Pound + Surinam Dollar + Swedish Krona + Swiss Franc + Syrian Pound + Taka + Tala + Tanzanian Shilling + Tenge + Χωρίς νόμισμα + Trinidad and Tobago Dollar + Tugrik + Tunisian Dinar + Turkish Lira + Turkmenistan New Manat + UAE Dirham + Uganda Shilling + UIC-Franc + Unidad de Valor Real + Unidades de fomento + Uruguay Peso en Unidades Indexadas (URUIURUI) + Uruguayan Peso + US Dolar + Uzbekistan Sum + Vatu + WIR Euro + WIR Franc + Won + Yemeni Rial + Yen + Yuan Renminbi + Zambian Kwacha + Zimbabwe Dollar + Zloty + + + Έξοδα + Έσοδα + Πάγια + Καθαρή Αξία + Παθητικό + + Δεν υπάρχουν λογαριασμοί στο + GnuCash.\nΔημιουργήστε ενα λογαριασμό πριν προσθέσετε ένα γραφικό στοιχείο + Έκδοση + Άδεια χρήσης + Άδεια χρήσης Apache v2.0. Επιλέξτε για λεπτομέρειες + Γενικά + Επιλογή Λογαριασμού + Δεν υπάρχουν διαθέσιμες συναλλαγές για εξαγωγή + Πληροφορίες για GnuCash + Το GnuCash είναι μια εφαρμογή + παρακολούθησης εξόδων για κινητά Android.\nΕπιτρέπει ευέλικτη παρακολούθηση + εξόδων εν κινήσει τα οποία μπορούν να εξαχθούν σε μορφή Open Financial + eXchange (OFX) και να εισαχθούν στην εφαρμογή GnuCash για τον + υπολογιστή. + Πληροφορίες + Αρχείο %1$s εξήχθη σε:\n + Εξαγωγή GnuCash Android %1$s + Εξαγωγή GnuCash Android προς + Κινήσεις + Προτιμήσεις Κινήσεων + Προτιμήσεις Λογαριασμών + Προεπιλογή Τύπου Κίνησης + Ο προεπιλεγμένος τύπος κίνησης, ΠΙΣΤΩΣΗ ή ΧΡΕΩΣΗ + + ΠΙΣΤΩΣΗ + ΧΡΕΩΣΗ + + Σίγουρα θέλετε να διαγράψετε ΌΛΕΣ τις κινήσεις; + Σίγουρα θέλετε να διαγράψετε αυτή τη κίνηση; + Εξαγωγή + Εξαγωγή όλων των κινήσεων + Διαγραφή εξηγμένων κινήσεων + Προεπιλεγμένο email εξαγωγής + Η προεπιλεγμένη διεύθυνση email για αποστολή εξαγωγών. Μπορείτε να το αλλάξετε και κατα την εξαγωγή. + Λογαριασμός Μεταφοράς + Όλες οι κινήσεις θα μεταφερθούν από τον ένα λογαριασμό στον άλλο. + Ενεργοποίηση Διπλών Λογιστικών Εγγραφών + Υπόλοιπο + Εισαγωγή ονόματος λογαριασμού + για τη δημιουργία του + Νόμισμα + Γονικός λογαριασμός + Χρήση κεφαλίδας XML OFX + Ενεργοποίηση αυτής της επιλογής για εξαγωγή σε εφαρμογές τρίτων, εκτός του GnuCash για επιτραπέζιο υπολογιστή. + Τι νέο υπάρχει + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + Απόρριψη + Εισαγωγή ποσού για + αποθήκευση κίνησης + Εισαγωγή Λογαριασμών GnuCash + Εισαγωγή Λογαριασμών + Προέκυψε σφάλμα κατά την + εισαγωγή λογαριασμών GnuCash + Λογαριασμοί GnuCash + εισήχθησαν με επιτυχία + Το εισαγόμενο λογιστικό σχέδιο + εξήχθει από το GnuCash για επιτραπέζιους υπολογιστές + Εισαγωγή λογαριασμών GnuCash + Διαγραφή όλων των λογαριασμών + στη βάση δεδομένων. Όλες οι κινήσεις θα διαγραφούν επίσης. + + Διαγραφή όλων των λογαριασμών + Λογαριασμοί + Όλοι οι λογαριασμοί διαγράφηκαν + με επιτυχία + Σίγουρα θέλετε να διαγράψετε + όλους του λογαριασμούς και τις κινήσεις; \nΑυτή η ενέργεια δε μπορεί να αναιρεθεί! + + Τύπος Λογαριασμού + Όλες οι κινήσεις σε όλους + τους λογαριασμούς θα διαγραφούν! + Διαγραφή όλων των κινήσεων + Όλες οι κινήσεις διαγράφηκαν + με επιτυχία! + Εισαγωγή λογαριασμών + Πατήστε ξανά για επιβεβαίωση. ΌΛΕΣ οι καταχωρήσεις θα διαγραφούν!! + Κινήσεις + Υπο-Λογαριασμοί + Αναζήτηση + Προεπιλεγμένη Μορφή Εξόδου + Μορφή αρχείου για προεπιλεγμένη χρήση κατά την εξαγωγή κινήσεων. + Εξαγωγή κινήσεων… + Επαναλαμβανόμενη + + Imbalance + Εξαγωγή κινήσεων + Δεν υπάρχουν επαναλαμβανόμενες κινήσεις για εμφάνιση. + Επιτυχία διαγραφής επαναλαμβανόμενης κίνησης + Λογαριασμός κράτησης θέσης + Προεπιλεγμένος Λογαριασμός Μεταφοράς + Χρώμα Λογαριασμού & Τύπος + + %d υπο-λογαριασμός + %d υπο-λογαριασμοί + + + ΡΕΥΣΤΟ + ΤΡΑΠΕΖΑ + ΠΙΣΤΩΤΙΚΗ ΚΑΡΤΑ + ΠΑΓΙΟ + ΠΑΘΗΤΙΚΟ + ΕΣΟΔΟ + ΕΞΟΔΟ + ΠΛΗΡΩΤΕΟ + ΕΙΣΠΡΑΚΤΕΟ + ΚΑΘΑΡΗ ΑΞΙΑ + ΝΟΜΙΣΜΑ + ΜΕΤΟΧΗ + ΑΜΟΙΒΑΙΟ ΚΕΦΑΛΑΙΟ + TRADING + + + QIF + OFX + + + Επιλογή χρώματος + Διαγραφή υπο-λογαριασμών + Πρόσφατοι + Αγαπημένοι + Όλοι + Δημιουργία προεπιλεγμένης συχνά χρησιμοποιούμενης δομής λογαριασμών GnuCash + Δημιουργία προεπιλεγμένων λογαριασμών + Νέοι λογαριασμοί θα δημιουργηθούν επιπλέον της υπάρχουσας + δομής λογαριασμών.\n\nΕάν επιθυμείτε να αντικαταστήσετε υπάρχοντες λογαριασμούς, διαγράψτε τους πριν προχωρήσετε! + + Προγραμματισμένες Κινήσεις + GnuCash Android. Καλώς ήρθατε! \nΜπορείτε είτε να δημιουργήσετε + μια ιεραρχία συνηθισμένων λογαριασμών, ή να εισάγετε τη δική σας δομή λογαριασμών GnuCash. \n\nΚαι οι δύο επιλογές είναι επίσης + διαθέσιμες στις Επιλογές της εφαρμογής γι\' αυτό μπορείτε να αποφασίσετε αργότερα. + + + ΚΑΜΙΑ + ΗΜΕΡΗΣΙΑ + ΕΒΔΟΜΑΔΙΑΙΑ + ΜΗΝΙΑΙΑ + + Προγραμματισμένες Κινήσεις + Select destination for export + Memo + Spend + Receive + Withdrawal + Deposit + Payment + Charge + Decrease + Increase + Income + Rebate + Expense + Bill + Invoice + Buy + Sell + Repeats + Balance: + No recent backup found + Αρχικά υπόλοιπα + Καθαρή Θέση + Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions + + Save account opening balances + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split + diff --git a/app/res/values-es-rMX/strings.xml b/app/src/main/res/values-es-rMX/strings.xml similarity index 100% rename from app/res/values-es-rMX/strings.xml rename to app/src/main/res/values-es-rMX/strings.xml diff --git a/app/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml similarity index 98% rename from app/res/values-es/strings.xml rename to app/src/main/res/values-es/strings.xml index 025fe1050..bdf0fef88 100644 --- a/app/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -1,423 +1,423 @@ - - - - - GnuCash - Crear Cuenta - Editar Cuenta - Info - Exportar OFX - Añadir una nueva transacción a una cuenta - No hay cuentas que mostrar - Nombre de la cuenta - Cancelar - Guardar - Descripción - Importe - Nueva transacción - No hay transacciones - FECHA & HORA - Cuenta - CARGO - ABONO - Cuentas - Transacciones - BORRAR - Borrar - Cancelar - Cuenta borrada - Confirmar borrado - Todas las transacciones en esta cuenta serán también borradas - Editar Transacción - Nota - MOVER - %1$d seleccionado - Destino de la exportación - Export Transactions - Exportar todas las transacciones - Por defecto solo las nuevas transacciones desde la última exportación serán exportadas. Seleccione esta opción para exportar todas las transacciones - Error exportando datos %1$s - Exportar - Borrar después de exportar - Todas las transacciones exportadas serán borradas cuando la exportación haya terminado - Ajustes - - Compartir archivo… - Tarjeta SD - - Mover - Mover %1$d transacción(es) - Cuenta Destino - Acceder a la tarjeta SD - No se pueden mover las transacciones.\nLa cuenta destino utiliza una divisa distinta a la de la cuenta de origen - General - Acerca de - Elegir divisa por defecto - Divisa por defecto - Divisa por defecto para las nuevas cuentas - Permite almacenar transacciones en Gnucash para Android - Permite crear cuentas en Gnucash para Android - Sus datos GnuCash - Leer y modificar datos Gnucash - almacenar transacciones - crear cuentas - Mostrar cuentas - Crear Cuentas - Seleccionar cuentas a crear - - Afgani - Dinar Argelino - Peso Argentino - Dram Armenio - Florin Arubeño - Dolar Australiano - Manat Azerí - Dolar Bahameño - Dinar Bareiní - Baht Tailandés - Balboa Panameño - Dolar Barbadense - Rublo Bieloruso - Dolar Beliceño - Dolar Bermudeño - Bolivar Fuerte - Boliviano - Real Brasileño - Dolar Bruneano - Lev Búlgaro - Franco Burundés - Dolar Canadiense - Escudo caboverdiano - Dolar de las Íslas Caimán - Franco CFA de África Occidental - Franco CFA de África Central - Franco CFP - Peso Chileno - Moneda de prueba - Peso Colombiano - Franco Comorono - Franco Congolés - Marco Bosnioherzegovino - Córdoba Nicaragüense - Colón Costarricense - Kuna Croata - Peso convertible - Peso Cubano - Corona Checa - Dalasi - Corona Danesa - Denar Macedonio - Franco Yibutiano - Dobra santotomense - Peso dominicano - Dong vietnamita - Dólar del Caribe Oriental - Libra egipcia - Colón salvadoreño - Birr etíope - Euro - Libra malvinense - Dólar fiyiano - Forinto húngaro - Cedi - Libra gibraltareña - Oro - Gourde - Guarani - Franco guineano - Dólar guyanés - Dólar de Hong Kong - Grivna - Corona islandesa - Rupia india - Rial iraní - Dinar iraquí - Dólar jamaiquino - Dinar jodano - Chelín keniano - Kina - Kip - Dinar kuwaití - Kwacha - Kwanza angoleño - Kyat birmano - Lari georgiano - Lats letón - Libra libanesa - Lek albanés - Lempira hondureña - Leone - Dólar liberiano - Dinar libio - Lilangeni suazi - Litas lituana - Loti - Ariary malgache - Ringgit malayo - Rupia de Mauricio - Peso mexicano - Unidad de Inversión Mexicana (UDI) - Leu moldavo - Dírham marroquí - Metical mozambiqueño - Mvdol - Naira nigeriana - Nakfa - Dólar namibio - Rupia nepalí - Florín antillano neerlandés - Nuevo shéquel israelí - Nuevo leu rumano - Nuevo dólar taiwanés - Dólar neozelandés - Ngultrum butanés - Won norcoreano - Corona noruega - Nuevo Sol - Uguiya - Dólar tongano - Rupia pakistaní - Palladium - Pataca - Peso filipino - Platino - Libra esterlina - Pula - Riyal catarí - Quetzal - Rand sudafricano - Rial omaní - Riel - Rupia de Maldivas - Rupia indonesia - Rublo ruso - Franco ruandés - Libra de Santa Elena - Riyal saudí - Derechos Especiales de Giro (SDR) - Dinar serbio - Rupia de Seychelles - Plata - Dólar de Singapur - Dólar de las Islas Salomón - Som - Chelín somalí - Somoni tayiko - Libra sursudanesa - Rupia de Sri Lanka - Sucre - Libra sudanesa - Dólar surinamés - Corona sueca - Franco suizo - Libra siria - Taka - Tala samoana - Chelín tanzano - Tenge kazajo - Sin moneda - Dólar trinitense - Tugrik mongol - Dinar tunecino - Lira turca - Manat turkmeno - Dírham de los Emiratos Árabes Unidos - Chelín ugandés - Franco UIC - Unidad de Valor Real - Unidades de fomento - Peso uruguayo en Unidades Indexadas (URUIURUI) - Peso uruguayo - Dólar Estadounidense - Som uzbeko - Vatu - Euro WIR - Franco WIR - Won surcoreano - Rail yemení - Yen japonés - Yuan chino - Kwacha zambiano - Dólar zimbabuense - Zloty polaco - - - Gastos - Ingresos - Activos - Capital - Pasivo - - No hay cuentas en Gnucash.\nCree una cuenta antes de añadir un widget - Versión de compilación - Licencia - Apache License v2.0. Clic para más detalles - General - Seleccionar Cuenta - No hay transacciones disponibles para exportar - Acerca de Gnucash - GnucashMobile es una aplicación de registro de gastos financieros para Android.\nPermite un registro flexible de gastos en cualquier lugar que luego pueden ser exportados al formato Open Financial eXchange (OFX) e importados en la aplicación Gnucash para el escritorio. - Acerca de - Archivo %1$s exportado a:\n - Exportación %1$s de Gnucash Android - Exportación de Gnucash - Transacciones - Preferencias de transacciones - Preferencias de cuentas - Tipo de transacción por defecto - El tipo de transacción a utilizar por defecto: ABONO o CARGO - - ABONO - CARGO - - ¿Borrar TODAS las transacciones? - ¿Borrar esta transacción? - Exportación - Exportar todas las transacciones - Borrar las transacciones exportadas - Correo electrónico para exportar por defecto - La dirección de correo electrónico a la que enviar las exportaciones por defecto. Se puede cambiar en cada exportación. - Transferir Cuenta - Todas las transacciones serán transferidas de una cuenta a otra - Activar Doble Entrada - Saldo - Introduzca un nombre de cuenta para crear una cuenta - Divisa - Cuenta padre - Usar cabecera XML OFX - Active esta opción para exportar a otras aplicaciones distintas a GnuCash para escritorio - Novedades - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - Cerrar - Introduzca un importe para guardar la transacción - Importar cuenta de GnuCash - Importar cuentas - Ocurrió un error al importar las cuentas de GnuCash - Cuentas de GnuCash importadas con éxito - Importas estructura de cuentas exportada desde GnuCash para escritorio - Importas cuentas de GnuCash - Borrar todas las cuentas de la base de datos. Se borrarán también todas las transacciones. - - Borrar todas las cuentas - Cuentas - Todas las cuentas han sido borradas con éxito - ¿Borrar todas la cuentas y transacciones? \nEsta operación no se puede deshacer. - - Tipo de cuenta - Todas las transacciones en todas las cuentas serán borradas - Borrar todas las transacciones - Todas las transacciones han sido borradas con éxito - Importando cuentas - Toque otra vez para confirmar. ¡Todas las entradas serán borradas! - Transacciones - Sub-Cuentas - Buscar - Formato de exportación por defecto - Formato de archivo para usar por defecto al exportar transacciones - Exportar transacciones… - Recurrencia - - Descuadre - Exportando transacciones - No hay transacciones recurrentes que mostrar. - Transación recurrente borrada con éxito - Cuenta de referencia - Cuenta de transferencia por defecto - Color y tipo de cuenta - - %d sub-cuenta - %d sub-cuentas - - - EFECTIVO - BANCO - TARJETA DE CRÉDITO - ACTIVO - PASIVO - INGRESO - GASTO - A PAGAR - A COBRAR - CAPITAL - DIVISA - ACCIONES - FONDOS - TRADING - - - QIF - OFX - - - Seleccionar un color - Borrar sub-cuentas - Reciente - Favoritos - Todas - Crea una estructura por defecto de cuentas GnuCash comúnmente usadas - Crear cuentas por defecto - Se crearán nuevas cuentas por defecto además de la estructura ya existente.\n\nSi desea reemplazar las cuentas ya existentes bórrelas primero antes de seguir. - - ¡Bienvenido a GnuCash Android! \nPuede crear una jerarquía de cuentas comúnmente usadas o importar su propia estructura de cuentas GnuCash. \n\nAmbas opciones están disponibles en las opciones de la aplicació por si quiere decidirlo más tarde. - - - NINGUNO - DIARIO - SEMANAL - MENSUAL - - Transacciones Programadas - Transacciones Programadas - Seleccionar destino para exportar - Memo - Gastar - Recibir - Sacar - Depósito - Pago - Cargo - Disminuir - Aumentar - Ingreso - Descuento - Gasto - Recibo - Factura - Comprar - Vender - Repetir - Saldo: - No hay copias de seguridad recientes - Saldo de apertura - Resultado - Seleccionar para guardar el saldo actual (antes de borrar las transacciones) como nuevo saldo de apertura despues de borrar las transacciones - - Guardar saldos de apertura - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split - + + + + + GnuCash + Crear Cuenta + Editar Cuenta + Info + Exportar OFX + Añadir una nueva transacción a una cuenta + No hay cuentas que mostrar + Nombre de la cuenta + Cancelar + Guardar + Descripción + Importe + Nueva transacción + No hay transacciones + FECHA & HORA + Cuenta + CARGO + ABONO + Cuentas + Transacciones + BORRAR + Borrar + Cancelar + Cuenta borrada + Confirmar borrado + Todas las transacciones en esta cuenta serán también borradas + Editar Transacción + Nota + MOVER + %1$d seleccionado + Destino de la exportación + Export Transactions + Exportar todas las transacciones + Por defecto solo las nuevas transacciones desde la última exportación serán exportadas. Seleccione esta opción para exportar todas las transacciones + Error exportando datos %1$s + Exportar + Borrar después de exportar + Todas las transacciones exportadas serán borradas cuando la exportación haya terminado + Ajustes + + Compartir archivo… + Tarjeta SD + + Mover + Mover %1$d transacción(es) + Cuenta Destino + Acceder a la tarjeta SD + No se pueden mover las transacciones.\nLa cuenta destino utiliza una divisa distinta a la de la cuenta de origen + General + Acerca de + Elegir divisa por defecto + Divisa por defecto + Divisa por defecto para las nuevas cuentas + Permite almacenar transacciones en Gnucash para Android + Permite crear cuentas en Gnucash para Android + Sus datos GnuCash + Leer y modificar datos Gnucash + almacenar transacciones + crear cuentas + Mostrar cuentas + Crear Cuentas + Seleccionar cuentas a crear + + Afgani + Dinar Argelino + Peso Argentino + Dram Armenio + Florin Arubeño + Dolar Australiano + Manat Azerí + Dolar Bahameño + Dinar Bareiní + Baht Tailandés + Balboa Panameño + Dolar Barbadense + Rublo Bieloruso + Dolar Beliceño + Dolar Bermudeño + Bolivar Fuerte + Boliviano + Real Brasileño + Dolar Bruneano + Lev Búlgaro + Franco Burundés + Dolar Canadiense + Escudo caboverdiano + Dolar de las Íslas Caimán + Franco CFA de África Occidental + Franco CFA de África Central + Franco CFP + Peso Chileno + Moneda de prueba + Peso Colombiano + Franco Comorono + Franco Congolés + Marco Bosnioherzegovino + Córdoba Nicaragüense + Colón Costarricense + Kuna Croata + Peso convertible + Peso Cubano + Corona Checa + Dalasi + Corona Danesa + Denar Macedonio + Franco Yibutiano + Dobra santotomense + Peso dominicano + Dong vietnamita + Dólar del Caribe Oriental + Libra egipcia + Colón salvadoreño + Birr etíope + Euro + Libra malvinense + Dólar fiyiano + Forinto húngaro + Cedi + Libra gibraltareña + Oro + Gourde + Guarani + Franco guineano + Dólar guyanés + Dólar de Hong Kong + Grivna + Corona islandesa + Rupia india + Rial iraní + Dinar iraquí + Dólar jamaiquino + Dinar jodano + Chelín keniano + Kina + Kip + Dinar kuwaití + Kwacha + Kwanza angoleño + Kyat birmano + Lari georgiano + Lats letón + Libra libanesa + Lek albanés + Lempira hondureña + Leone + Dólar liberiano + Dinar libio + Lilangeni suazi + Litas lituana + Loti + Ariary malgache + Ringgit malayo + Rupia de Mauricio + Peso mexicano + Unidad de Inversión Mexicana (UDI) + Leu moldavo + Dírham marroquí + Metical mozambiqueño + Mvdol + Naira nigeriana + Nakfa + Dólar namibio + Rupia nepalí + Florín antillano neerlandés + Nuevo shéquel israelí + Nuevo leu rumano + Nuevo dólar taiwanés + Dólar neozelandés + Ngultrum butanés + Won norcoreano + Corona noruega + Nuevo Sol + Uguiya + Dólar tongano + Rupia pakistaní + Palladium + Pataca + Peso filipino + Platino + Libra esterlina + Pula + Riyal catarí + Quetzal + Rand sudafricano + Rial omaní + Riel + Rupia de Maldivas + Rupia indonesia + Rublo ruso + Franco ruandés + Libra de Santa Elena + Riyal saudí + Derechos Especiales de Giro (SDR) + Dinar serbio + Rupia de Seychelles + Plata + Dólar de Singapur + Dólar de las Islas Salomón + Som + Chelín somalí + Somoni tayiko + Libra sursudanesa + Rupia de Sri Lanka + Sucre + Libra sudanesa + Dólar surinamés + Corona sueca + Franco suizo + Libra siria + Taka + Tala samoana + Chelín tanzano + Tenge kazajo + Sin moneda + Dólar trinitense + Tugrik mongol + Dinar tunecino + Lira turca + Manat turkmeno + Dírham de los Emiratos Árabes Unidos + Chelín ugandés + Franco UIC + Unidad de Valor Real + Unidades de fomento + Peso uruguayo en Unidades Indexadas (URUIURUI) + Peso uruguayo + Dólar Estadounidense + Som uzbeko + Vatu + Euro WIR + Franco WIR + Won surcoreano + Rail yemení + Yen japonés + Yuan chino + Kwacha zambiano + Dólar zimbabuense + Zloty polaco + + + Gastos + Ingresos + Activos + Capital + Pasivo + + No hay cuentas en Gnucash.\nCree una cuenta antes de añadir un widget + Versión de compilación + Licencia + Apache License v2.0. Clic para más detalles + General + Seleccionar Cuenta + No hay transacciones disponibles para exportar + Acerca de Gnucash + GnucashMobile es una aplicación de registro de gastos financieros para Android.\nPermite un registro flexible de gastos en cualquier lugar que luego pueden ser exportados al formato Open Financial eXchange (OFX) e importados en la aplicación Gnucash para el escritorio. + Acerca de + Archivo %1$s exportado a:\n + Exportación %1$s de Gnucash Android + Exportación de Gnucash + Transacciones + Preferencias de transacciones + Preferencias de cuentas + Tipo de transacción por defecto + El tipo de transacción a utilizar por defecto: ABONO o CARGO + + ABONO + CARGO + + ¿Borrar TODAS las transacciones? + ¿Borrar esta transacción? + Exportación + Exportar todas las transacciones + Borrar las transacciones exportadas + Correo electrónico para exportar por defecto + La dirección de correo electrónico a la que enviar las exportaciones por defecto. Se puede cambiar en cada exportación. + Transferir Cuenta + Todas las transacciones serán transferidas de una cuenta a otra + Activar Doble Entrada + Saldo + Introduzca un nombre de cuenta para crear una cuenta + Divisa + Cuenta padre + Usar cabecera XML OFX + Active esta opción para exportar a otras aplicaciones distintas a GnuCash para escritorio + Novedades + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + Cerrar + Introduzca un importe para guardar la transacción + Importar cuenta de GnuCash + Importar cuentas + Ocurrió un error al importar las cuentas de GnuCash + Cuentas de GnuCash importadas con éxito + Importas estructura de cuentas exportada desde GnuCash para escritorio + Importas cuentas de GnuCash + Borrar todas las cuentas de la base de datos. Se borrarán también todas las transacciones. + + Borrar todas las cuentas + Cuentas + Todas las cuentas han sido borradas con éxito + ¿Borrar todas la cuentas y transacciones? \nEsta operación no se puede deshacer. + + Tipo de cuenta + Todas las transacciones en todas las cuentas serán borradas + Borrar todas las transacciones + Todas las transacciones han sido borradas con éxito + Importando cuentas + Toque otra vez para confirmar. ¡Todas las entradas serán borradas! + Transacciones + Sub-Cuentas + Buscar + Formato de exportación por defecto + Formato de archivo para usar por defecto al exportar transacciones + Exportar transacciones… + Recurrencia + + Descuadre + Exportando transacciones + No hay transacciones recurrentes que mostrar. + Transación recurrente borrada con éxito + Cuenta de referencia + Cuenta de transferencia por defecto + Color y tipo de cuenta + + %d sub-cuenta + %d sub-cuentas + + + EFECTIVO + BANCO + TARJETA DE CRÉDITO + ACTIVO + PASIVO + INGRESO + GASTO + A PAGAR + A COBRAR + CAPITAL + DIVISA + ACCIONES + FONDOS + TRADING + + + QIF + OFX + + + Seleccionar un color + Borrar sub-cuentas + Reciente + Favoritos + Todas + Crea una estructura por defecto de cuentas GnuCash comúnmente usadas + Crear cuentas por defecto + Se crearán nuevas cuentas por defecto además de la estructura ya existente.\n\nSi desea reemplazar las cuentas ya existentes bórrelas primero antes de seguir. + + ¡Bienvenido a GnuCash Android! \nPuede crear una jerarquía de cuentas comúnmente usadas o importar su propia estructura de cuentas GnuCash. \n\nAmbas opciones están disponibles en las opciones de la aplicació por si quiere decidirlo más tarde. + + + NINGUNO + DIARIO + SEMANAL + MENSUAL + + Transacciones Programadas + Transacciones Programadas + Seleccionar destino para exportar + Memo + Gastar + Recibir + Sacar + Depósito + Pago + Cargo + Disminuir + Aumentar + Ingreso + Descuento + Gasto + Recibo + Factura + Comprar + Vender + Repetir + Saldo: + No hay copias de seguridad recientes + Saldo de apertura + Resultado + Seleccionar para guardar el saldo actual (antes de borrar las transacciones) como nuevo saldo de apertura despues de borrar las transacciones + + Guardar saldos de apertura + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split + diff --git a/app/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml similarity index 98% rename from app/res/values-fr/strings.xml rename to app/src/main/res/values-fr/strings.xml index ed96e725f..d1bc0b220 100644 --- a/app/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1,423 +1,423 @@ - - - - - GnuCash - Créer un compte - Éditer le compte - Informations - Exporter en OFX - Ajoute une nouvelle transaction à un compte - Aucun compte à afficher - Nom de compte - Annuler - Sauvegarder - Description - Montant - Nouvelle transaction - Aucune transaction à afficher - DATE & HEURE - Compte - DÉBIT - CRÉDIT - Comptes - Transactions - SUPPRIMER - Supprimer - Annuler - Compte supprimé - Confirmer la suppression - Toutes les transactions dans ce compte seront aussi supprimées - Éditer la transaction - Note - DÉPLACER - %1$d sélectionné(s) - Destination d\'export - Exporter les transactions - Exporter toutes les transactions - Par défaut, seul les nouvelles transactions depuis le dernier export seront exportées. Cochez cette option pour exporter toutes les transactions - Erreur lors de l\'export des données en %1$s - Exporter - Supprimer après export - Toutes les transactions exportées seront supprimées aprés l\'export - Paramètres - - Partager le fichier… - Carte SD - - Déplacer - Déplacer %1$d transaction(s) - Compte de destination - Accés carte SD - Impossible de déplacer les transactions.\nLe compte de destination utilise une monnaie différente du compte d\'origine - Général - À propos - Choisisez une monnaie par défaut - Monnaie par défaut - Monnaie par défaut à assignée aux nouveau comptes - Permettre l\'enregistrement des transactions dans GnuCash pour Android - Permettre la création de comptes dans GnuCash pour Android - Vos données GnuCash - Lire et modifier les données GnuCash - enregistrer les transactions - créer les comptes - Afficher le compte - Créer les comptes - Choisisez les comptes à créés - - Afghani - Algerian Dinar - Argentine Peso - Armenian Dram - Aruban Florin - Australian Dollar - Azerbaijanian Manat - Bahamian Dollar - Bahraini Dinar - Baht - Balboa - Barbados Dollar - Belarussian Ruble - Belize Dollar - Bermudian Dollar - Bolivar Fuerte - Boliviano - Brazilian Real - Brunei Dollar - Bulgarian Lev - Burundi Franc - Canadian Dollar - Cape Verde Escudo - Cayman Islands Dollar - CFA Franc BCEAO - CFA Franc BEAC - CFP Franc - Chilean Peso - Testing currency - Colombian Peso - Comoro Franc - Congolese Franc - Convertible Mark - Cordoba Oro - Costa Rican Colon - Croatian Kuna - Cuban Convertible Peso - Cuban Peso - Czech Koruna - Dalasi - Danish Krone - Denar - Djibouti Franc - Dobra - Dominican Peso - Dong - East Caribbean Dollar - Egyptian Pound - El Salvador Colon - Ethiopian Birr - Euro - Falkland Islands Pound - Fiji Dollar - Forint - Ghana Cedi - Gibraltar Pound - Gold - Gourde - Guarani - Guinea Franc - Guyana Dollar - Hong Kong Dollar - Hryvnia - Iceland Krona - Indian Rupee - Iranian Rial - Iraqi Dinar - Jamaican Dollar - Jordanian Dinar - Kenyan Shilling - Kina - Kip - Kuwaiti Dinar - Kwacha - Kwanza - Kyat - Lari - Latvian Lats - Lebanese Pound - Lek - Lempira - Leone - Liberian Dollar - Libyan Dinar - Lilangeni - Lithuanian Litas - Loti - Malagasy Ariary - Malaysian Ringgit - Mauritius Rupee - Mexican Peso - Mexican Unidad de Inversion (UDI) - Moldovan Leu - Moroccan Dirham - Mozambique Metical - Mvdol - Naira - Nakfa - Namibia Dollar - Nepalese Rupee - Netherlands Antillean Guilder - New Israeli Sheqel - New Romanian Leu - New Taiwan Dollar - New Zealand Dollar - Ngultrum - North Korean Won - Norwegian Krone - Nuevo Sol - Ouguiya - Pa’anga - Pakistan Rupee - Palladium - Pataca - Philippine Peso - Platinum - Pound Sterling - Pula - Qatari Rial - Quetzal - Rand - Rial Omani - Riel - Rufiyaa - Rupiah - Russian Ruble - Rwanda Franc - Saint Helena Pound - Saudi Riyal - SDR (Special Drawing Right) - Serbian Dinar - Seychelles Rupee - Silver - Singapore Dollar - Solomon Islands Dollar - Som - Somali Shilling - Somoni - South Sudanese Pound - Sri Lanka Rupee - Sucre - Sudanese Pound - Surinam Dollar - Swedish Krona - Swiss Franc - Syrian Pound - Taka - Tala - Tanzanian Shilling - Tenge - No currency - Trinidad and Tobago Dollar - Tugrik - Tunisian Dinar - Turkish Lira - Turkmenistan New Manat - UAE Dirham - Uganda Shilling - UIC-Franc - Unidad de Valor Real - Unidades de fomento - Uruguay Peso en Unidades Indexadas (URUIURUI) - Uruguayan Peso - US Dollar - Uzbekistan Sum - Vatu - WIR Euro - WIR Franc - Won - Yemeni Rial - Yen - Yuan Renminbi - Zambian Kwacha - Zimbabwe Dollar - Zloty - - - Dépenses - Revenus - Actifs - Capitaux propres - Charges - - Aucun compte éxistant dans GnuCash.\nCréez un compte avant d\'ajouter un widget - Version logiciel - Licence - Apache License v2.0. Cliquez pour plus de détails - Général - Sélectionner un compte - Il n\'existe pas de transaction disponible pour l\'exportation - À propos de GnuCash - GnucashMobile est une application mobile de suivis de finance pour Android.\nElle permet un suivi simple des dépenses qui peut être exporté vers le format Open Financial eXchange (OFX) et importé dans GnuCash pour PC. - A propos - Fichier %1$s exporté en :\n - GnuCash Android %1$s export - GnuCash Android export de - Transactions - Préférences des transactions - Préférences du compte - Type de transaction par défaut - Le type de transaction à utiliser par défaut, CRÉDIT ou DÉBIT - - CRÉDIT - DÉBIT - - Êtes vous sûre de vouloir supprimer TOUTES les transactions ? - Êtes vous sûre de vouloir supprimer cette transaction ? - Export - Exporter toutes les transactions - Supprimer les transactions exportées - Email d\'export par défaut - Email par défaut pour les exports. Vous pourrez toujours le changer lors de votre prochain export. - Transfert entre comptes - Toutes les transactions seront transférées d\'un compte à l\'autre - Activer les doubles entrée - Balance - Entrer un nom de compte pour créer un compte - Monnaie - Compte parent - Utiliser l\'entête XML d\'OFX - Activez cette option lors d\'un export vers une application tierce autre que GnuCash pour PC - Nouveautées - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - Passer - Entrez un montant pour sauvegarder la transaction - Importer des comptes GnuCash - Import de comptes - Une érreur s\'est produite pendant l\'import de vos comptes GnuCash - Comptes GnuCash importés avec succès - Importe l\'organisation d\'un compte exporté depuis GnuCash pour PC - Importer des comptes GnuCash - Supprimer tous les comptes dans la base de données. Toutes les transactions seront également supprimés. - Supprimer tous les comptes - Comptes - Tous les comptes ont été supprimés avec succès - Êtes-vous sûr de vouloir supprimer tous les comptes et toutes les transactions?\nCette opération est définitive ! - Type de compte - Toutes les transactions sur tous les comptes seront supprimées ! - Supprimer toutes les transactions - Toutes les transactions ont été supprimées avec succès ! - Importation de comptes - Taper de nouveau pour confirmer. TOUTES les entrées seront supprimées ! - Transactions - Sous-comptes - Rechercher - Format d\'export par défaut - Format de fichier à utiliser par défaut pour l\'export des transactions - Exporter les transactions… - Récurrence - - Déséquilibre - Exportation des transactions - Pas de transactions récurrentes à afficher. - Transaction récurrente supprimée avec succès - Compte d\'espace réservé - Compte de transfert par défaut - Couleur de compte & Type - - %d sous-compte - %d sous-comptes - - - ARGENT - BANQUE - CARTE DE CREDIT - AVOIRS - DETTES - REVENUS - FRAIS - PAYABLE - RECEVABLE - FONDS - DEVISES - ACTIONS - FONDS COMMUNS - TRADING - - - QIF - OFX - - - Sélectionnez une couleur - Supprimer les sous-comptes - Récent - Favoris - Tous - Crée une structure de compte GnuCash par défaut couramment utilisé - Crée comptes par défaut - Les nouveaux comptes seront créés en plus de l\'existante - structure de compte.\n\n Si vous souhaitez remplacer des comptes existants, supprimez-les d\'abord avant de commencer ! - - Bienvenue sur GnuCash Android!\nVous pouvez soit créer - une hiérarchie de comptes couramment utilisés, importer votre propre structure de compte GnuCash.\n\nLes deux options sont également - disponibles dans les paramètres de l\'application de sorte que vous puissiez décider plus tard. - - AUCUN - QUOTIDIEN - SEMAINE - MENSUEL - - Transactions planifiées - Transactions planifiées - Selectionnez une destination pour l\'export - Memo - Dépense - Reçu - Retrait - Dépôt - Paiement - Charge - Diminuer - Augmenter - Revenu - Remboursement - Frais - Note - Facture - Achat - Vente - Solde: - Répétitions - Aucune sauvegarde récente trouvée - Soldes initiaux - Capitaux propres - Permet d\'enregistrer le solde du compte courant (avant la suppression des transactions) comme le nouveau solde d\'ouverture après la suppression des transactions - - Enregistrer les soldes des comptes d\'ouverture - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split - + + + + + GnuCash + Créer un compte + Éditer le compte + Informations + Exporter en OFX + Ajoute une nouvelle transaction à un compte + Aucun compte à afficher + Nom de compte + Annuler + Sauvegarder + Description + Montant + Nouvelle transaction + Aucune transaction à afficher + DATE & HEURE + Compte + DÉBIT + CRÉDIT + Comptes + Transactions + SUPPRIMER + Supprimer + Annuler + Compte supprimé + Confirmer la suppression + Toutes les transactions dans ce compte seront aussi supprimées + Éditer la transaction + Note + DÉPLACER + %1$d sélectionné(s) + Destination d\'export + Exporter les transactions + Exporter toutes les transactions + Par défaut, seul les nouvelles transactions depuis le dernier export seront exportées. Cochez cette option pour exporter toutes les transactions + Erreur lors de l\'export des données en %1$s + Exporter + Supprimer après export + Toutes les transactions exportées seront supprimées aprés l\'export + Paramètres + + Partager le fichier… + Carte SD + + Déplacer + Déplacer %1$d transaction(s) + Compte de destination + Accés carte SD + Impossible de déplacer les transactions.\nLe compte de destination utilise une monnaie différente du compte d\'origine + Général + À propos + Choisisez une monnaie par défaut + Monnaie par défaut + Monnaie par défaut à assignée aux nouveau comptes + Permettre l\'enregistrement des transactions dans GnuCash pour Android + Permettre la création de comptes dans GnuCash pour Android + Vos données GnuCash + Lire et modifier les données GnuCash + enregistrer les transactions + créer les comptes + Afficher le compte + Créer les comptes + Choisisez les comptes à créés + + Afghani + Algerian Dinar + Argentine Peso + Armenian Dram + Aruban Florin + Australian Dollar + Azerbaijanian Manat + Bahamian Dollar + Bahraini Dinar + Baht + Balboa + Barbados Dollar + Belarussian Ruble + Belize Dollar + Bermudian Dollar + Bolivar Fuerte + Boliviano + Brazilian Real + Brunei Dollar + Bulgarian Lev + Burundi Franc + Canadian Dollar + Cape Verde Escudo + Cayman Islands Dollar + CFA Franc BCEAO + CFA Franc BEAC + CFP Franc + Chilean Peso + Testing currency + Colombian Peso + Comoro Franc + Congolese Franc + Convertible Mark + Cordoba Oro + Costa Rican Colon + Croatian Kuna + Cuban Convertible Peso + Cuban Peso + Czech Koruna + Dalasi + Danish Krone + Denar + Djibouti Franc + Dobra + Dominican Peso + Dong + East Caribbean Dollar + Egyptian Pound + El Salvador Colon + Ethiopian Birr + Euro + Falkland Islands Pound + Fiji Dollar + Forint + Ghana Cedi + Gibraltar Pound + Gold + Gourde + Guarani + Guinea Franc + Guyana Dollar + Hong Kong Dollar + Hryvnia + Iceland Krona + Indian Rupee + Iranian Rial + Iraqi Dinar + Jamaican Dollar + Jordanian Dinar + Kenyan Shilling + Kina + Kip + Kuwaiti Dinar + Kwacha + Kwanza + Kyat + Lari + Latvian Lats + Lebanese Pound + Lek + Lempira + Leone + Liberian Dollar + Libyan Dinar + Lilangeni + Lithuanian Litas + Loti + Malagasy Ariary + Malaysian Ringgit + Mauritius Rupee + Mexican Peso + Mexican Unidad de Inversion (UDI) + Moldovan Leu + Moroccan Dirham + Mozambique Metical + Mvdol + Naira + Nakfa + Namibia Dollar + Nepalese Rupee + Netherlands Antillean Guilder + New Israeli Sheqel + New Romanian Leu + New Taiwan Dollar + New Zealand Dollar + Ngultrum + North Korean Won + Norwegian Krone + Nuevo Sol + Ouguiya + Pa’anga + Pakistan Rupee + Palladium + Pataca + Philippine Peso + Platinum + Pound Sterling + Pula + Qatari Rial + Quetzal + Rand + Rial Omani + Riel + Rufiyaa + Rupiah + Russian Ruble + Rwanda Franc + Saint Helena Pound + Saudi Riyal + SDR (Special Drawing Right) + Serbian Dinar + Seychelles Rupee + Silver + Singapore Dollar + Solomon Islands Dollar + Som + Somali Shilling + Somoni + South Sudanese Pound + Sri Lanka Rupee + Sucre + Sudanese Pound + Surinam Dollar + Swedish Krona + Swiss Franc + Syrian Pound + Taka + Tala + Tanzanian Shilling + Tenge + No currency + Trinidad and Tobago Dollar + Tugrik + Tunisian Dinar + Turkish Lira + Turkmenistan New Manat + UAE Dirham + Uganda Shilling + UIC-Franc + Unidad de Valor Real + Unidades de fomento + Uruguay Peso en Unidades Indexadas (URUIURUI) + Uruguayan Peso + US Dollar + Uzbekistan Sum + Vatu + WIR Euro + WIR Franc + Won + Yemeni Rial + Yen + Yuan Renminbi + Zambian Kwacha + Zimbabwe Dollar + Zloty + + + Dépenses + Revenus + Actifs + Capitaux propres + Charges + + Aucun compte éxistant dans GnuCash.\nCréez un compte avant d\'ajouter un widget + Version logiciel + Licence + Apache License v2.0. Cliquez pour plus de détails + Général + Sélectionner un compte + Il n\'existe pas de transaction disponible pour l\'exportation + À propos de GnuCash + GnucashMobile est une application mobile de suivis de finance pour Android.\nElle permet un suivi simple des dépenses qui peut être exporté vers le format Open Financial eXchange (OFX) et importé dans GnuCash pour PC. + A propos + Fichier %1$s exporté en :\n + GnuCash Android %1$s export + GnuCash Android export de + Transactions + Préférences des transactions + Préférences du compte + Type de transaction par défaut + Le type de transaction à utiliser par défaut, CRÉDIT ou DÉBIT + + CRÉDIT + DÉBIT + + Êtes vous sûre de vouloir supprimer TOUTES les transactions ? + Êtes vous sûre de vouloir supprimer cette transaction ? + Export + Exporter toutes les transactions + Supprimer les transactions exportées + Email d\'export par défaut + Email par défaut pour les exports. Vous pourrez toujours le changer lors de votre prochain export. + Transfert entre comptes + Toutes les transactions seront transférées d\'un compte à l\'autre + Activer les doubles entrée + Balance + Entrer un nom de compte pour créer un compte + Monnaie + Compte parent + Utiliser l\'entête XML d\'OFX + Activez cette option lors d\'un export vers une application tierce autre que GnuCash pour PC + Nouveautées + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + Passer + Entrez un montant pour sauvegarder la transaction + Importer des comptes GnuCash + Import de comptes + Une érreur s\'est produite pendant l\'import de vos comptes GnuCash + Comptes GnuCash importés avec succès + Importe l\'organisation d\'un compte exporté depuis GnuCash pour PC + Importer des comptes GnuCash + Supprimer tous les comptes dans la base de données. Toutes les transactions seront également supprimés. + Supprimer tous les comptes + Comptes + Tous les comptes ont été supprimés avec succès + Êtes-vous sûr de vouloir supprimer tous les comptes et toutes les transactions?\nCette opération est définitive ! + Type de compte + Toutes les transactions sur tous les comptes seront supprimées ! + Supprimer toutes les transactions + Toutes les transactions ont été supprimées avec succès ! + Importation de comptes + Taper de nouveau pour confirmer. TOUTES les entrées seront supprimées ! + Transactions + Sous-comptes + Rechercher + Format d\'export par défaut + Format de fichier à utiliser par défaut pour l\'export des transactions + Exporter les transactions… + Récurrence + + Déséquilibre + Exportation des transactions + Pas de transactions récurrentes à afficher. + Transaction récurrente supprimée avec succès + Compte d\'espace réservé + Compte de transfert par défaut + Couleur de compte & Type + + %d sous-compte + %d sous-comptes + + + ARGENT + BANQUE + CARTE DE CREDIT + AVOIRS + DETTES + REVENUS + FRAIS + PAYABLE + RECEVABLE + FONDS + DEVISES + ACTIONS + FONDS COMMUNS + TRADING + + + QIF + OFX + + + Sélectionnez une couleur + Supprimer les sous-comptes + Récent + Favoris + Tous + Crée une structure de compte GnuCash par défaut couramment utilisé + Crée comptes par défaut + Les nouveaux comptes seront créés en plus de l\'existante + structure de compte.\n\n Si vous souhaitez remplacer des comptes existants, supprimez-les d\'abord avant de commencer ! + + Bienvenue sur GnuCash Android!\nVous pouvez soit créer + une hiérarchie de comptes couramment utilisés, importer votre propre structure de compte GnuCash.\n\nLes deux options sont également + disponibles dans les paramètres de l\'application de sorte que vous puissiez décider plus tard. + + AUCUN + QUOTIDIEN + SEMAINE + MENSUEL + + Transactions planifiées + Transactions planifiées + Selectionnez une destination pour l\'export + Memo + Dépense + Reçu + Retrait + Dépôt + Paiement + Charge + Diminuer + Augmenter + Revenu + Remboursement + Frais + Note + Facture + Achat + Vente + Solde: + Répétitions + Aucune sauvegarde récente trouvée + Soldes initiaux + Capitaux propres + Permet d\'enregistrer le solde du compte courant (avant la suppression des transactions) comme le nouveau solde d\'ouverture après la suppression des transactions + + Enregistrer les soldes des comptes d\'ouverture + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split + diff --git a/app/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml similarity index 97% rename from app/res/values-hu/strings.xml rename to app/src/main/res/values-hu/strings.xml index 509bb15be..148f51a85 100644 --- a/app/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1,427 +1,427 @@ - - - - - GnuCash - Create Account - Edit Account - Info - Export OFX - Add a new transaction to an account - No accounts to display - Account name - Cancel - Save - Description - Amount - New transaction - No transactions to display - DATE & TIME - Account - DEBIT - CREDIT - Accounts - Transactions - DELETE - Delete - Cancel - Account deleted - Confirm delete - All transactions in this account will also be deleted - Edit Transaction - Note - MOVE - %1$d selected - Balance: - Export Destination - Export Transactions - Export all transactions - By default, only new transactions since last export will be exported. Check this option to export all transactions - Error exporting %1$s data - Export - Delete after export - All exported transactions will be deleted when exporting is completed - Settings - - Share file… - SD Card - - Move - Move %1$d transaction(s) - Destination Account - Access SD Card - Cannot move transactions.\nThe destination account uses a different currency from origin account - General - About - Choose default currency - Default currency - Default currency to assign to new accounts - Enables recording transactions in GnuCash for Android - Enables creation of accounts in GnuCash for Android - Your GnuCash data - Read and modify GnuCash data - record transactions - create accounts - Display account - Create Accounts - Select accounts to create - - Afghani - Algerian Dinar - Argentine Peso - Armenian Dram - Aruban Florin - Australian Dollar - Azerbaijanian Manat - Bahamian Dollar - Bahraini Dinar - Baht - Balboa - Barbados Dollar - Belarussian Ruble - Belize Dollar - Bermudian Dollar - Bolivar Fuerte - Boliviano - Brazilian Real - Brunei Dollar - Bulgarian Lev - Burundi Franc - Canadian Dollar - Cape Verde Escudo - Cayman Islands Dollar - CFA Franc BCEAO - CFA Franc BEAC - CFP Franc - Chilean Peso - Testing currency - Colombian Peso - Comoro Franc - Congolese Franc - Convertible Mark - Cordoba Oro - Costa Rican Colon - Croatian Kuna - Cuban Convertible Peso - Cuban Peso - Czech Koruna - Dalasi - Danish Krone - Denar - Djibouti Franc - Dobra - Dominican Peso - Dong - East Caribbean Dollar - Egyptian Pound - El Salvador Colon - Ethiopian Birr - Euro - Falkland Islands Pound - Fiji Dollar - Forint - Ghana Cedi - Gibraltar Pound - Gold - Gourde - Guarani - Guinea Franc - Guyana Dollar - Hong Kong Dollar - Hryvnia - Iceland Krona - Indian Rupee - Iranian Rial - Iraqi Dinar - Jamaican Dollar - Jordanian Dinar - Kenyan Shilling - Kina - Kip - Kuwaiti Dinar - Kwacha - Kwanza - Kyat - Lari - Latvian Lats - Lebanese Pound - Lek - Lempira - Leone - Liberian Dollar - Libyan Dinar - Lilangeni - Lithuanian Litas - Loti - Malagasy Ariary - Malaysian Ringgit - Mauritius Rupee - Mexican Peso - Mexican Unidad de Inversion (UDI) - Moldovan Leu - Moroccan Dirham - Mozambique Metical - Mvdol - Naira - Nakfa - Namibia Dollar - Nepalese Rupee - Netherlands Antillean Guilder - New Israeli Sheqel - New Romanian Leu - New Taiwan Dollar - New Zealand Dollar - Ngultrum - North Korean Won - Norwegian Krone - Nuevo Sol - Ouguiya - Pa’anga - Pakistan Rupee - Palladium - Pataca - Philippine Peso - Platinum - Pound Sterling - Pula - Qatari Rial - Quetzal - Rand - Rial Omani - Riel - Rufiyaa - Rupiah - Russian Ruble - Rwanda Franc - Saint Helena Pound - Saudi Riyal - SDR (Special Drawing Right) - Serbian Dinar - Seychelles Rupee - Silver - Singapore Dollar - Solomon Islands Dollar - Som - Somali Shilling - Somoni - South Sudanese Pound - Sri Lanka Rupee - Sucre - Sudanese Pound - Surinam Dollar - Swedish Krona - Swiss Franc - Syrian Pound - Taka - Tala - Tanzanian Shilling - Tenge - No currency - Trinidad and Tobago Dollar - Tugrik - Tunisian Dinar - Turkish Lira - Turkmenistan New Manat - UAE Dirham - Uganda Shilling - UIC-Franc - Unidad de Valor Real - Unidades de fomento - Uruguay Peso en Unidades Indexadas (URUIURUI) - Uruguayan Peso - US Dollar - Uzbekistan Sum - Vatu - WIR Euro - WIR Franc - Won - Yemeni Rial - Yen - Yuan Renminbi - Zambian Kwacha - Zimbabwe Dollar - Zloty - - - Expenses - Income - Assets - Equity - Liabilities - - No accounts exist in GnuCash.\nCreate an account before adding a widget - Build version - License - Apache License v2.0. Click for details - General Preferences - Select Account - There are no transactions available to export - About GnuCash - Gnucash is a mobile finance expense tracker application for Android.\nIt enables flexible tracking of expenses on-the-go which can be exported to the Open Financial eXchange (OFX) format and imported into GnuCash for the desktop. - About - %1$s file exported to:\n - GnuCash %1$s export - GnuCash Android Export from - Transactions - Transaction Preferences - Account Preferences - Default Transaction Type - The type of transaction to use by default, CREDIT or DEBIT - - CREDIT - DEBIT - - Are you sure you want to delete ALL transactions? - Are you sure you want to delete this transaction? - Export - Export all transactions - Delete exported transactions - Default export email - The default email address to send exports to. You can still change this when you export. - Transfer Account - All transactions will be a transfer from one account to another - Activate Double Entry - Balance - Enter an account name to create an account - Currency - Parent account - Use XML OFX header - Enable this option when exporting to third-party application other than GnuCash for desktop - What\'s New - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - Dismiss - Enter an amount to save the transaction - Import GnuCash Accounts - Import Accounts - An error occurred while importing the GnuCash accounts - GnuCash accounts successfully imported - Import account structure exported from GnuCash desktop - Import GnuCash accounts - Delete all accounts in the database. All transactions will be deleted as - well. - - Delete all accounts - Accounts - All accounts have been successfully deleted - Are you sure you want to delete all accounts and transactions? \nThis - operation cannot be undone! - - Account Type - All transactions in all accounts will be deleted! - Delete all transactions - All transactions successfully deleted! - Importing accounts - Tap again to confirm. ALL entries will be deleted!! - Transactions - Sub-Accounts - Search - Default Export Format - File format to use by default when exporting transactions - Export transactions… - Recurrence - - Imbalance - Exporting transactions - No recurring transactions to display. - Successfully deleted recurring transaction - Placeholder account - Default Transfer Account - Account Color & Type - - %d sub-account - %d sub-accounts - - - CASH - BANK - CREDIT CARD - ASSET - LIABILITY - INCOME - EXPENSE - PAYABLE - RECEIVABLE - EQUITY - CURRENCY - STOCK - MUTUAL FUND - TRADING - - - QIF - OFX - - - Select a Color - Delete sub-accounts - Recent - Favorites - All - Creates default GnuCash commonly-used account structure - Create default accounts - New accounts will be created in addition to the existing - account structure.\n\nIf you wish to replace currently existing accounts, delete them first before proceeding! - - Scheduled Transactions - Welcome to GnuCash Android! \nYou can either create - a hierarchy of commonly-used accounts, or import your own GnuCash account structure. \n\nBoth options are also - available in app Settings so you can decide later. - - - NONE - DAILY - WEEKLY - MONTHLY - - Scheduled Transactions - Select destination for export - Memo - Spend - Receive - Withdrawal - Deposit - Payment - Charge - Decrease - Increase - Income - Rebate - Expense - Bill - Invoice - Buy - Sell - Repeats - No recent backup found - Nyitóegyenlegek - Saját tőke - Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions - - Save account opening balances - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split + + + + + GnuCash + Create Account + Edit Account + Info + Export OFX + Add a new transaction to an account + No accounts to display + Account name + Cancel + Save + Description + Amount + New transaction + No transactions to display + DATE & TIME + Account + DEBIT + CREDIT + Accounts + Transactions + DELETE + Delete + Cancel + Account deleted + Confirm delete + All transactions in this account will also be deleted + Edit Transaction + Note + MOVE + %1$d selected + Balance: + Export Destination + Export Transactions + Export all transactions + By default, only new transactions since last export will be exported. Check this option to export all transactions + Error exporting %1$s data + Export + Delete after export + All exported transactions will be deleted when exporting is completed + Settings + + Share file… + SD Card + + Move + Move %1$d transaction(s) + Destination Account + Access SD Card + Cannot move transactions.\nThe destination account uses a different currency from origin account + General + About + Choose default currency + Default currency + Default currency to assign to new accounts + Enables recording transactions in GnuCash for Android + Enables creation of accounts in GnuCash for Android + Your GnuCash data + Read and modify GnuCash data + record transactions + create accounts + Display account + Create Accounts + Select accounts to create + + Afghani + Algerian Dinar + Argentine Peso + Armenian Dram + Aruban Florin + Australian Dollar + Azerbaijanian Manat + Bahamian Dollar + Bahraini Dinar + Baht + Balboa + Barbados Dollar + Belarussian Ruble + Belize Dollar + Bermudian Dollar + Bolivar Fuerte + Boliviano + Brazilian Real + Brunei Dollar + Bulgarian Lev + Burundi Franc + Canadian Dollar + Cape Verde Escudo + Cayman Islands Dollar + CFA Franc BCEAO + CFA Franc BEAC + CFP Franc + Chilean Peso + Testing currency + Colombian Peso + Comoro Franc + Congolese Franc + Convertible Mark + Cordoba Oro + Costa Rican Colon + Croatian Kuna + Cuban Convertible Peso + Cuban Peso + Czech Koruna + Dalasi + Danish Krone + Denar + Djibouti Franc + Dobra + Dominican Peso + Dong + East Caribbean Dollar + Egyptian Pound + El Salvador Colon + Ethiopian Birr + Euro + Falkland Islands Pound + Fiji Dollar + Forint + Ghana Cedi + Gibraltar Pound + Gold + Gourde + Guarani + Guinea Franc + Guyana Dollar + Hong Kong Dollar + Hryvnia + Iceland Krona + Indian Rupee + Iranian Rial + Iraqi Dinar + Jamaican Dollar + Jordanian Dinar + Kenyan Shilling + Kina + Kip + Kuwaiti Dinar + Kwacha + Kwanza + Kyat + Lari + Latvian Lats + Lebanese Pound + Lek + Lempira + Leone + Liberian Dollar + Libyan Dinar + Lilangeni + Lithuanian Litas + Loti + Malagasy Ariary + Malaysian Ringgit + Mauritius Rupee + Mexican Peso + Mexican Unidad de Inversion (UDI) + Moldovan Leu + Moroccan Dirham + Mozambique Metical + Mvdol + Naira + Nakfa + Namibia Dollar + Nepalese Rupee + Netherlands Antillean Guilder + New Israeli Sheqel + New Romanian Leu + New Taiwan Dollar + New Zealand Dollar + Ngultrum + North Korean Won + Norwegian Krone + Nuevo Sol + Ouguiya + Pa’anga + Pakistan Rupee + Palladium + Pataca + Philippine Peso + Platinum + Pound Sterling + Pula + Qatari Rial + Quetzal + Rand + Rial Omani + Riel + Rufiyaa + Rupiah + Russian Ruble + Rwanda Franc + Saint Helena Pound + Saudi Riyal + SDR (Special Drawing Right) + Serbian Dinar + Seychelles Rupee + Silver + Singapore Dollar + Solomon Islands Dollar + Som + Somali Shilling + Somoni + South Sudanese Pound + Sri Lanka Rupee + Sucre + Sudanese Pound + Surinam Dollar + Swedish Krona + Swiss Franc + Syrian Pound + Taka + Tala + Tanzanian Shilling + Tenge + No currency + Trinidad and Tobago Dollar + Tugrik + Tunisian Dinar + Turkish Lira + Turkmenistan New Manat + UAE Dirham + Uganda Shilling + UIC-Franc + Unidad de Valor Real + Unidades de fomento + Uruguay Peso en Unidades Indexadas (URUIURUI) + Uruguayan Peso + US Dollar + Uzbekistan Sum + Vatu + WIR Euro + WIR Franc + Won + Yemeni Rial + Yen + Yuan Renminbi + Zambian Kwacha + Zimbabwe Dollar + Zloty + + + Expenses + Income + Assets + Equity + Liabilities + + No accounts exist in GnuCash.\nCreate an account before adding a widget + Build version + License + Apache License v2.0. Click for details + General Preferences + Select Account + There are no transactions available to export + About GnuCash + Gnucash is a mobile finance expense tracker application for Android.\nIt enables flexible tracking of expenses on-the-go which can be exported to the Open Financial eXchange (OFX) format and imported into GnuCash for the desktop. + About + %1$s file exported to:\n + GnuCash %1$s export + GnuCash Android Export from + Transactions + Transaction Preferences + Account Preferences + Default Transaction Type + The type of transaction to use by default, CREDIT or DEBIT + + CREDIT + DEBIT + + Are you sure you want to delete ALL transactions? + Are you sure you want to delete this transaction? + Export + Export all transactions + Delete exported transactions + Default export email + The default email address to send exports to. You can still change this when you export. + Transfer Account + All transactions will be a transfer from one account to another + Activate Double Entry + Balance + Enter an account name to create an account + Currency + Parent account + Use XML OFX header + Enable this option when exporting to third-party application other than GnuCash for desktop + What\'s New + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + Dismiss + Enter an amount to save the transaction + Import GnuCash Accounts + Import Accounts + An error occurred while importing the GnuCash accounts + GnuCash accounts successfully imported + Import account structure exported from GnuCash desktop + Import GnuCash accounts + Delete all accounts in the database. All transactions will be deleted as + well. + + Delete all accounts + Accounts + All accounts have been successfully deleted + Are you sure you want to delete all accounts and transactions? \nThis + operation cannot be undone! + + Account Type + All transactions in all accounts will be deleted! + Delete all transactions + All transactions successfully deleted! + Importing accounts + Tap again to confirm. ALL entries will be deleted!! + Transactions + Sub-Accounts + Search + Default Export Format + File format to use by default when exporting transactions + Export transactions… + Recurrence + + Imbalance + Exporting transactions + No recurring transactions to display. + Successfully deleted recurring transaction + Placeholder account + Default Transfer Account + Account Color & Type + + %d sub-account + %d sub-accounts + + + CASH + BANK + CREDIT CARD + ASSET + LIABILITY + INCOME + EXPENSE + PAYABLE + RECEIVABLE + EQUITY + CURRENCY + STOCK + MUTUAL FUND + TRADING + + + QIF + OFX + + + Select a Color + Delete sub-accounts + Recent + Favorites + All + Creates default GnuCash commonly-used account structure + Create default accounts + New accounts will be created in addition to the existing + account structure.\n\nIf you wish to replace currently existing accounts, delete them first before proceeding! + + Scheduled Transactions + Welcome to GnuCash Android! \nYou can either create + a hierarchy of commonly-used accounts, or import your own GnuCash account structure. \n\nBoth options are also + available in app Settings so you can decide later. + + + NONE + DAILY + WEEKLY + MONTHLY + + Scheduled Transactions + Select destination for export + Memo + Spend + Receive + Withdrawal + Deposit + Payment + Charge + Decrease + Increase + Income + Rebate + Expense + Bill + Invoice + Buy + Sell + Repeats + No recent backup found + Nyitóegyenlegek + Saját tőke + Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions + + Save account opening balances + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split \ No newline at end of file diff --git a/app/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml similarity index 98% rename from app/res/values-it/strings.xml rename to app/src/main/res/values-it/strings.xml index 44db2251b..bdd964058 100644 --- a/app/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -1,427 +1,427 @@ - - - - - GnuCash - Crea conto - Modifica conto - Informazioni - Esporta OFX - Aggiungi una nuova transazione al conto - Nessun conto da visualizzare - Nome conto - Annulla - Salva - Descrizione - Importo - Nuova transazione - Nessuna transazione da visualizzare - DATA & ORA - Conto - DEBITO - CREDITO - Conti - Transazioni - ELIMINA - Elimina - Annulla - Conto eliminato - Conferma eliminazione - Verranno eliminate anche tutte le transazioni in questo conto - Modifica transazione - Nota - SPOSTA - %1$d selezionate - Somma totale: - Destinazione di esportazione - Esporta transazioni - Esporta tutte le transazioni - Di default, verranno esportate solo le transazioni dall\'ultima esportazione. Selezionare questa opzione per esportare tutte le transazioni - Errore nell\'esportazione dei dati %1$s - Esporta - Elimina dopo l\'esportazione - Tutte le transazioni esportate verranno eliminate al termine dell\'esportazione - Impostazioni - - Condividi file… - Scheda SD - - Sposta - Sposta %1$d transazioni - Conto di destinazione - Accedi alla scheda SD - Impossibile spostare le transazioni.\nIl conto di destinazione ha una valuta diversa dal conto di origine - Generali - Informazioni - Selezione della valuta predefinita - Valuta predefinita - Valuta predefinita da assegnare ai nuovi conti - Abilita la registrazione delle transazioni in GnuCash per Android - Abilita la creazione dei conti in GnuCash per Android - I propri dati di GnuCash - Legge e modifica i dati di GnuCash - registra transazione - crea conti - Visualizza conto - Crea conti - Selezione dei conti da creare - - Afghani - Algerian Dinar - Argentine Peso - Armenian Dram - Aruban Florin - Australian Dollar - Azerbaijanian Manat - Bahamian Dollar - Bahraini Dinar - Baht - Balboa - Barbados Dollar - Belarussian Ruble - Belize Dollar - Bermudian Dollar - Bolivar Fuerte - Boliviano - Brazilian Real - Brunei Dollar - Bulgarian Lev - Burundi Franc - Canadian Dollar - Cape Verde Escudo - Cayman Islands Dollar - CFA Franc BCEAO - CFA Franc BEAC - CFP Franc - Chilean Peso - Testing currency - Colombian Peso - Comoro Franc - Congolese Franc - Convertible Mark - Cordoba Oro - Costa Rican Colon - Croatian Kuna - Cuban Convertible Peso - Cuban Peso - Czech Koruna - Dalasi - Danish Krone - Denar - Djibouti Franc - Dobra - Dominican Peso - Dong - East Caribbean Dollar - Egyptian Pound - El Salvador Colon - Ethiopian Birr - Euro - Falkland Islands Pound - Fiji Dollar - Forint - Ghana Cedi - Gibraltar Pound - Gold - Gourde - Guarani - Guinea Franc - Guyana Dollar - Hong Kong Dollar - Hryvnia - Iceland Krona - Indian Rupee - Iranian Rial - Iraqi Dinar - Jamaican Dollar - Jordanian Dinar - Kenyan Shilling - Kina - Kip - Kuwaiti Dinar - Kwacha - Kwanza - Kyat - Lari - Latvian Lats - Lebanese Pound - Lek - Lempira - Leone - Liberian Dollar - Libyan Dinar - Lilangeni - Lithuanian Litas - Loti - Malagasy Ariary - Malaysian Ringgit - Mauritius Rupee - Mexican Peso - Mexican Unidad de Inversion (UDI) - Moldovan Leu - Moroccan Dirham - Mozambique Metical - Mvdol - Naira - Nakfa - Namibia Dollar - Nepalese Rupee - Netherlands Antillean Guilder - New Israeli Sheqel - New Romanian Leu - New Taiwan Dollar - New Zealand Dollar - Ngultrum - North Korean Won - Norwegian Krone - Nuevo Sol - Ouguiya - Pa’anga - Pakistan Rupee - Palladium - Pataca - Philippine Peso - Platinum - Pound Sterling - Pula - Qatari Rial - Quetzal - Rand - Rial Omani - Riel - Rufiyaa - Rupiah - Russian Ruble - Rwanda Franc - Saint Helena Pound - Saudi Riyal - SDR (Special Drawing Right) - Serbian Dinar - Seychelles Rupee - Silver - Singapore Dollar - Solomon Islands Dollar - Som - Somali Shilling - Somoni - South Sudanese Pound - Sri Lanka Rupee - Sucre - Sudanese Pound - Surinam Dollar - Swedish Krona - Swiss Franc - Syrian Pound - Taka - Tala - Tanzanian Shilling - Tenge - No currency - Trinidad and Tobago Dollar - Tugrik - Tunisian Dinar - Turkish Lira - Turkmenistan New Manat - UAE Dirham - Uganda Shilling - UIC-Franc - Unidad de Valor Real - Unidades de fomento - Uruguay Peso en Unidades Indexadas (URUIURUI) - Uruguayan Peso - US Dollar - Uzbekistan Sum - Vatu - WIR Euro - WIR Franc - Won - Yemeni Rial - Yen - Yuan Renminbi - Zambian Kwacha - Zimbabwe Dollar - Zloty - - - Uscite - Entrate - Attività - Capitali - Passività - - Non esiste alcun conto in GnuCash.\nCreare un conto prima di aggiungere il widget - Versione build - Licenza - Apache License v2.0. Fare clic per i dettagli - Generale - Seleziona conto - Non sono disponibili transazioni da esportare - Informazioni su GnuCash - GnuCashMobile è un\'applicazione Android per tenere traccia delle proprie spese.\nPermette di registrare le proprie uscite al volo, di esportarle in formato OFX (Open Financial eXchange) e di importarle nella versione desktop di GnuCash. - Informazioni - File %1$s esportato in:\n - Esportazione file %1$s di GnuCash - Esportazione di GnuCash Android con - Transazioni - Preferenze della transazione - Preferenze del conto - Tipo di transazione predefinita - Il tipo di transazione da usare come predefinita, CREDITO o DEBITO - - CREDITO - DEBITO - - Eliminare TUTTE le transazioni? - Eliminare davvero questa transazione? - Esporta - Esporta tutte le transazioni - Elimina le transazioni esportate - Email predefinita di esportazione - L\'indirizzo email predefinito a cui inviare i file esportati. É comunque possibile modificare l\'indirizzo quando si esporta - Conto di trasferimento - Tutte le transazioni consisteranno in un trasferimento di denaro da un conto a un altro - Abilita partita doppia - Saldo - Inserire un nome per creare il conto - Valuta - Conto principale - Usa header XML OFX - Abilitare questa opzione quando si esporta verso un\'applicazione diversa da GnuCash versione desktop - Novità - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - Chiudi - Inserire un importo per salvare la transazione - Importa conti di GnuCash - Importa conti - Si è verificato un errore nell\'importare i conti di GnuCash - I conti di GnuCash sono stati importati correttamente - Importa una struttura dei conti esportata da GnuCash versione desktop - Importa conti di GnuCash - Elimina tutti i conti nel database. Verranno eliminate anche tutte le transazioni. - - Elimina tutti i conti - Conti - Tutti i conti sono stati eliminati - Eliminare davvero tutti i conti e le transazioni? \nQuesta - operazione non può essere annullata! - - Tipo di conto - Verranno eliminate tutte le transazioni in tutti i conti - Elimina tutte le transazioni - Tutte le transazioni sono state eliminate! - Importazione dei conti - Premere di nuovo per confermare. Tutti gli elementi verranno rimossi!! - Transazioni - Sotto-conti - Cerca - Formato predefinito di esportazione - Formato di file predefinito da utilizzare per l\'esportazione delle transazioni - Esporta transazioni… - Ricorrenza - - Sbilancio - Esportazione transazioni - Nessuna transazione pianificata da visualizzare. - Transazione pianificata eliminata - Conto segnalibro - DConto predefinito di trasferimento - Tipo e colore del conto - - %d sotto-conto - %d sotto-conti - - - LIQUIDI - BANCA - CARTA DI CREDITO - ATTIVITÀ - PASSIVITÀ - ENTRATA - USCITA - PAYABLE - RECEIVABLE - CAPITALE - VALUTA - AZIONE - FONDO COMUNE - TRADING - - - QIF - OFX - - - Selezione del colore - Elimina i sottoconti - Recenti - Favoriti - Tutti - Crea la struttura predefinita dei conti comuni di GnuCash - Crea conti predefiniti - I nuovi conti saranno aggiunti alla struttura esistente.\n\n - Per sostituire i conti esistenti, occorre eliminarli prima di proseguire! - - Benvenuti in GnuCash per Android! \nÈ possibile - creare una struttura dei conti più comunemente utilizzati o importare la propria struttura da GnuCash. \n\nEntrambe le - Opzioni sono disponibili nelle impostazioni dell\'applicazione ed è quindi possibile decidere in seguito. - - - NESSUNA - QUOTIDIANO - SETTIMANALE - MENSILE - - Scheduled Transactions - Scheduled Transactions - Select destination for export - Memo - Spend - Receive - Withdrawal - Deposit - Payment - Charge - Decrease - Increase - Income - Rebate - Expense - Bill - Invoice - Buy - Sell - Repeats - No recent backup found - Bilanci d\'apertura - Capitali - Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions - - Save account opening balances - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split - + + + + + GnuCash + Crea conto + Modifica conto + Informazioni + Esporta OFX + Aggiungi una nuova transazione al conto + Nessun conto da visualizzare + Nome conto + Annulla + Salva + Descrizione + Importo + Nuova transazione + Nessuna transazione da visualizzare + DATA & ORA + Conto + DEBITO + CREDITO + Conti + Transazioni + ELIMINA + Elimina + Annulla + Conto eliminato + Conferma eliminazione + Verranno eliminate anche tutte le transazioni in questo conto + Modifica transazione + Nota + SPOSTA + %1$d selezionate + Somma totale: + Destinazione di esportazione + Esporta transazioni + Esporta tutte le transazioni + Di default, verranno esportate solo le transazioni dall\'ultima esportazione. Selezionare questa opzione per esportare tutte le transazioni + Errore nell\'esportazione dei dati %1$s + Esporta + Elimina dopo l\'esportazione + Tutte le transazioni esportate verranno eliminate al termine dell\'esportazione + Impostazioni + + Condividi file… + Scheda SD + + Sposta + Sposta %1$d transazioni + Conto di destinazione + Accedi alla scheda SD + Impossibile spostare le transazioni.\nIl conto di destinazione ha una valuta diversa dal conto di origine + Generali + Informazioni + Selezione della valuta predefinita + Valuta predefinita + Valuta predefinita da assegnare ai nuovi conti + Abilita la registrazione delle transazioni in GnuCash per Android + Abilita la creazione dei conti in GnuCash per Android + I propri dati di GnuCash + Legge e modifica i dati di GnuCash + registra transazione + crea conti + Visualizza conto + Crea conti + Selezione dei conti da creare + + Afghani + Algerian Dinar + Argentine Peso + Armenian Dram + Aruban Florin + Australian Dollar + Azerbaijanian Manat + Bahamian Dollar + Bahraini Dinar + Baht + Balboa + Barbados Dollar + Belarussian Ruble + Belize Dollar + Bermudian Dollar + Bolivar Fuerte + Boliviano + Brazilian Real + Brunei Dollar + Bulgarian Lev + Burundi Franc + Canadian Dollar + Cape Verde Escudo + Cayman Islands Dollar + CFA Franc BCEAO + CFA Franc BEAC + CFP Franc + Chilean Peso + Testing currency + Colombian Peso + Comoro Franc + Congolese Franc + Convertible Mark + Cordoba Oro + Costa Rican Colon + Croatian Kuna + Cuban Convertible Peso + Cuban Peso + Czech Koruna + Dalasi + Danish Krone + Denar + Djibouti Franc + Dobra + Dominican Peso + Dong + East Caribbean Dollar + Egyptian Pound + El Salvador Colon + Ethiopian Birr + Euro + Falkland Islands Pound + Fiji Dollar + Forint + Ghana Cedi + Gibraltar Pound + Gold + Gourde + Guarani + Guinea Franc + Guyana Dollar + Hong Kong Dollar + Hryvnia + Iceland Krona + Indian Rupee + Iranian Rial + Iraqi Dinar + Jamaican Dollar + Jordanian Dinar + Kenyan Shilling + Kina + Kip + Kuwaiti Dinar + Kwacha + Kwanza + Kyat + Lari + Latvian Lats + Lebanese Pound + Lek + Lempira + Leone + Liberian Dollar + Libyan Dinar + Lilangeni + Lithuanian Litas + Loti + Malagasy Ariary + Malaysian Ringgit + Mauritius Rupee + Mexican Peso + Mexican Unidad de Inversion (UDI) + Moldovan Leu + Moroccan Dirham + Mozambique Metical + Mvdol + Naira + Nakfa + Namibia Dollar + Nepalese Rupee + Netherlands Antillean Guilder + New Israeli Sheqel + New Romanian Leu + New Taiwan Dollar + New Zealand Dollar + Ngultrum + North Korean Won + Norwegian Krone + Nuevo Sol + Ouguiya + Pa’anga + Pakistan Rupee + Palladium + Pataca + Philippine Peso + Platinum + Pound Sterling + Pula + Qatari Rial + Quetzal + Rand + Rial Omani + Riel + Rufiyaa + Rupiah + Russian Ruble + Rwanda Franc + Saint Helena Pound + Saudi Riyal + SDR (Special Drawing Right) + Serbian Dinar + Seychelles Rupee + Silver + Singapore Dollar + Solomon Islands Dollar + Som + Somali Shilling + Somoni + South Sudanese Pound + Sri Lanka Rupee + Sucre + Sudanese Pound + Surinam Dollar + Swedish Krona + Swiss Franc + Syrian Pound + Taka + Tala + Tanzanian Shilling + Tenge + No currency + Trinidad and Tobago Dollar + Tugrik + Tunisian Dinar + Turkish Lira + Turkmenistan New Manat + UAE Dirham + Uganda Shilling + UIC-Franc + Unidad de Valor Real + Unidades de fomento + Uruguay Peso en Unidades Indexadas (URUIURUI) + Uruguayan Peso + US Dollar + Uzbekistan Sum + Vatu + WIR Euro + WIR Franc + Won + Yemeni Rial + Yen + Yuan Renminbi + Zambian Kwacha + Zimbabwe Dollar + Zloty + + + Uscite + Entrate + Attività + Capitali + Passività + + Non esiste alcun conto in GnuCash.\nCreare un conto prima di aggiungere il widget + Versione build + Licenza + Apache License v2.0. Fare clic per i dettagli + Generale + Seleziona conto + Non sono disponibili transazioni da esportare + Informazioni su GnuCash + GnuCashMobile è un\'applicazione Android per tenere traccia delle proprie spese.\nPermette di registrare le proprie uscite al volo, di esportarle in formato OFX (Open Financial eXchange) e di importarle nella versione desktop di GnuCash. + Informazioni + File %1$s esportato in:\n + Esportazione file %1$s di GnuCash + Esportazione di GnuCash Android con + Transazioni + Preferenze della transazione + Preferenze del conto + Tipo di transazione predefinita + Il tipo di transazione da usare come predefinita, CREDITO o DEBITO + + CREDITO + DEBITO + + Eliminare TUTTE le transazioni? + Eliminare davvero questa transazione? + Esporta + Esporta tutte le transazioni + Elimina le transazioni esportate + Email predefinita di esportazione + L\'indirizzo email predefinito a cui inviare i file esportati. É comunque possibile modificare l\'indirizzo quando si esporta + Conto di trasferimento + Tutte le transazioni consisteranno in un trasferimento di denaro da un conto a un altro + Abilita partita doppia + Saldo + Inserire un nome per creare il conto + Valuta + Conto principale + Usa header XML OFX + Abilitare questa opzione quando si esporta verso un\'applicazione diversa da GnuCash versione desktop + Novità + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + Chiudi + Inserire un importo per salvare la transazione + Importa conti di GnuCash + Importa conti + Si è verificato un errore nell\'importare i conti di GnuCash + I conti di GnuCash sono stati importati correttamente + Importa una struttura dei conti esportata da GnuCash versione desktop + Importa conti di GnuCash + Elimina tutti i conti nel database. Verranno eliminate anche tutte le transazioni. + + Elimina tutti i conti + Conti + Tutti i conti sono stati eliminati + Eliminare davvero tutti i conti e le transazioni? \nQuesta + operazione non può essere annullata! + + Tipo di conto + Verranno eliminate tutte le transazioni in tutti i conti + Elimina tutte le transazioni + Tutte le transazioni sono state eliminate! + Importazione dei conti + Premere di nuovo per confermare. Tutti gli elementi verranno rimossi!! + Transazioni + Sotto-conti + Cerca + Formato predefinito di esportazione + Formato di file predefinito da utilizzare per l\'esportazione delle transazioni + Esporta transazioni… + Ricorrenza + + Sbilancio + Esportazione transazioni + Nessuna transazione pianificata da visualizzare. + Transazione pianificata eliminata + Conto segnalibro + DConto predefinito di trasferimento + Tipo e colore del conto + + %d sotto-conto + %d sotto-conti + + + LIQUIDI + BANCA + CARTA DI CREDITO + ATTIVITÀ + PASSIVITÀ + ENTRATA + USCITA + PAYABLE + RECEIVABLE + CAPITALE + VALUTA + AZIONE + FONDO COMUNE + TRADING + + + QIF + OFX + + + Selezione del colore + Elimina i sottoconti + Recenti + Favoriti + Tutti + Crea la struttura predefinita dei conti comuni di GnuCash + Crea conti predefiniti + I nuovi conti saranno aggiunti alla struttura esistente.\n\n + Per sostituire i conti esistenti, occorre eliminarli prima di proseguire! + + Benvenuti in GnuCash per Android! \nÈ possibile + creare una struttura dei conti più comunemente utilizzati o importare la propria struttura da GnuCash. \n\nEntrambe le + Opzioni sono disponibili nelle impostazioni dell\'applicazione ed è quindi possibile decidere in seguito. + + + NESSUNA + QUOTIDIANO + SETTIMANALE + MENSILE + + Scheduled Transactions + Scheduled Transactions + Select destination for export + Memo + Spend + Receive + Withdrawal + Deposit + Payment + Charge + Decrease + Increase + Income + Rebate + Expense + Bill + Invoice + Buy + Sell + Repeats + No recent backup found + Bilanci d\'apertura + Capitali + Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions + + Save account opening balances + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split + diff --git a/app/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml similarity index 100% rename from app/res/values-nb/strings.xml rename to app/src/main/res/values-nb/strings.xml diff --git a/app/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml similarity index 98% rename from app/res/values-nl/strings.xml rename to app/src/main/res/values-nl/strings.xml index 9afc61d2d..e0fd9892a 100644 --- a/app/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -1,428 +1,428 @@ - - - - - GnuCash - Nieuw rekening - Rekening bewerken - Info - OFX exporteren - Nieuwe transactie in een rekening - Geen rekeningen beschikbaar - Rekeningnaam - Annuleren - Bewaren - Beschrijving - Bedrag - Nieuwe transactie - Geen transacties beschikbaar - Datum & Tijd - Rekening - Debet - Credit - Rekeningen - Transacties - Verwijderen - Verwijderen - Annuleren - De rekening werd verwijderd - Verwijderen bevestigen - Alle transacties in deze rekening zullen ook verwijderd worden - Transactie bewerken - Opmerking - Verplaatsen - %1$d gselecteerd - Export bestemming - OFX Exporteren - All transacties exporteren - Aanvinken om alle transacties te exporteren. Anders worden enkel de nieuwe transacties sinds de laatste export geëxporteerd. - Fout tijdens het exporteren van de %1$s data - Exporteer - Verwijderen na exporteren - Alle geëxporteerde transacties zullen verwijderd worden na de export - Instellingen - - Verzenden… - SD kaart - - Verplaatsen - %1$d transactie(s) verplaatsen - Bestemmingsrekening - SD kaart benaderen - Transacties kunnen niet verplaatst worden.\nDe munteenheden van de rekeningen zijn niet compatibel - Algemeen - Over - Standaard munteenheid kiezen - Standaard munteenheid - Standaard munteenheid voor nieuwe rekeningen - Staat het bewaren van transacties in GnuCash for Android toe - Staat het aanmaken van rekeningen in GnuCash for Android toe - Uw GnuCash data - GnuCash data lezen en bewerken - Transacties bewaren - Rekeningen aanmaken - Rekening tonen - Rekeningen aanmaken - Aan te maken rekeningen selecteren - - Afghani - Algerian Dinar - Argentine Peso - Armenian Dram - Aruban Florin - Australian Dollar - Azerbaijanian Manat - Bahamian Dollar - Bahraini Dinar - Baht - Balboa - Barbados Dollar - Belarussian Ruble - Belize Dollar - Bermudian Dollar - Bolivar Fuerte - Boliviano - Brazilian Real - Brunei Dollar - Bulgarian Lev - Burundi Franc - Canadian Dollar - Cape Verde Escudo - Cayman Islands Dollar - CFA Franc BCEAO - CFA Franc BEAC - CFP Franc - Chilean Peso - Testing currency - Colombian Peso - Comoro Franc - Congolese Franc - Convertible Mark - Cordoba Oro - Costa Rican Colon - Croatian Kuna - Cuban Convertible Peso - Cuban Peso - Czech Koruna - Dalasi - Danish Krone - Denar - Djibouti Franc - Dobra - Dominican Peso - Dong - East Caribbean Dollar - Egyptian Pound - El Salvador Colon - Ethiopian Birr - Euro - Falkland Islands Pound - Fiji Dollar - Forint - Ghana Cedi - Gibraltar Pound - Gold - Gourde - Guarani - Guinea Franc - Guyana Dollar - Hong Kong Dollar - Hryvnia - Iceland Krona - Indian Rupee - Iranian Rial - Iraqi Dinar - Jamaican Dollar - Jordanian Dinar - Kenyan Shilling - Kina - Kip - Kuwaiti Dinar - Kwacha - Kwanza - Kyat - Lari - Latvian Lats - Lebanese Pound - Lek - Lempira - Leone - Liberian Dollar - Libyan Dinar - Lilangeni - Lithuanian Litas - Loti - Malagasy Ariary - Malaysian Ringgit - Mauritius Rupee - Mexican Peso - Mexican Unidad de Inversion (UDI) - Moldovan Leu - Moroccan Dirham - Mozambique Metical - Mvdol - Naira - Nakfa - Namibia Dollar - Nepalese Rupee - Netherlands Antillean Guilder - New Israeli Sheqel - New Romanian Leu - New Taiwan Dollar - New Zealand Dollar - Ngultrum - North Korean Won - Norwegian Krone - Nuevo Sol - Ouguiya - Pa’anga - Pakistan Rupee - Palladium - Pataca - Philippine Peso - Platinum - Pound Sterling - Pula - Qatari Rial - Quetzal - Rand - Rial Omani - Riel - Rufiyaa - Rupiah - Russian Ruble - Rwanda Franc - Saint Helena Pound - Saudi Riyal - SDR (Special Drawing Right) - Serbian Dinar - Seychelles Rupee - Silver - Singapore Dollar - Solomon Islands Dollar - Som - Somali Shilling - Somoni - South Sudanese Pound - Sri Lanka Rupee - Sucre - Sudanese Pound - Surinam Dollar - Swedish Krona - Swiss Franc - Syrian Pound - Taka - Tala - Tanzanian Shilling - Tenge - No currency - Trinidad and Tobago Dollar - Tugrik - Tunisian Dinar - Turkish Lira - Turkmenistan New Manat - UAE Dirham - Uganda Shilling - UIC-Franc - Unidad de Valor Real - Unidades de fomento - Uruguay Peso en Unidades Indexadas (URUIURUI) - Uruguayan Peso - US Dollar - Uzbekistan Sum - Vatu - WIR Euro - WIR Franc - Won - Yemeni Rial - Yen - Yuan Renminbi - Zambian Kwacha - Zimbabwe Dollar - Zloty - - - Uitgaven - Inkomsten - Activa - Eigen Vermogen - Passiva - - Geen rekeningen beschikbaar.\nU moet een rekening aanmaken alvorens een widget toe te voegen - Versie - License - Apache License v2.0. Klik voor details - Algemeen - Account kiezen - Geen transacties beschikbaar om te exporteren - Over GnuCash - GnucashMobile is een mobiele uitgavebeheerstoepassing voor Android.\nHet laat onderweg een snelle en flexibele registratie van uitgaven toe, die als OFX gegevens geëxporteerd kunnen worden om in de GnuCash-toepassing op een desktop-computer te importeren. - Over - %1$s data geëexporteerd naar:\n - GnuCash Android %1$s export - GnuCash Android Export van - Transacties - Transactie voorkeuren - Account voorkeuren - Standaard Transactietype - Het standaard transactietype, CREDIT or DEBET - - CREDIT - DEBET - - Weet u zeker dat u alle transacties wil verwijderen? - Weet u zeker dat u deze transactie wil verwijderen? - Exporteer - Exporteer alle transacties - Verwijder geëxporteerde transacties - Standaard export emailadres - Het standaard emailaddress om geëxporteerde data heen te sturen. U kan dit emailadres nog wijzigen als u exporteerd. - Draag Account over - Alle transacties zullen worden overgedragen van het ene account naar de andere - Schakel dubbel boekhouden in - Saldo - Vul een accountnaam in - Munteenheid - Hoofdrekening - Gebruik XML OFX hoofding - Schakel deze optie in als u naar een applicatie anders dan GnuCash wil exporteren - Nieuw sinds de vorige versie - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - Wijs af - Vul een bedrag in om de transactie op te slaan. - GnuCash rekeningen importeren - Rekeningen importeren - Fout bij het importeren van de GnuCash rekeningen - GnuCash rekeningen met succes geïmporteerd - Rekeningstructuur uit desktop-GnuCash importeren - GnuCash rekeningen importeren - Alle rekeningen uit de database verwijderen. Alle transacties zullen ook - verwijderd worden. - - Alle rekeningen verwijderen - Rekeningen - Alle rekeningen werden met succes verwijderd - Weet je zeker dat je alle rekeningen en transacties wil verwijderen? \nDeze - verrichting kan niet ongedaan gemaakt worden! - - Rekening Type - Alle transacties in alle rekeningen zullen verwijderd worden! - Alle transacties verwijderen - Alle transacties werden met succes verwijderd! - Rekeningen importeren - Tap opnieuw op te bevestigen. ALLE regels zullen verwijderd worden!! - Transacties - Subrekeningen - Zoeken - Standaard Export Formaat - Bestandsformaat om standaard te gebruiken bij het experteren van transacties - Transacties exporteren… - Herhaling - - Imbalance - Transactions exporteren - Geen repetitieve transacties gevonden. - Repetitieve transactie met succes verwijderd - Aggregatie rekening - Standard tegenrekening - Rekening kleur & type - - %d subrekening - %d subrekeningen - - - CASH - BANK - CREDIT CARD - ASSET - LIABILITY - INCOME - EXPENSE - PAYABLE - RECEIVABLE - EQUITY - CURRENCY - STOCK - MUTUAL FUND - TRADING - - - QIF - OFX - - - Kies een kleur - Subrekeningen verwijderen - Recent - Favorieten - Alle - Creëert standaard GnuCash veelgebruikte rekeningstructuur - Standaard rekeningen creëren - Nieuwe rekeningen zullen toegevoegd worden aan de bestaande - rekeningstructuur.\n\nAls je de bestaande rekeningen wil vervangen, verwijder ze dan eerst voor verder te gaan! - - Welkom in GnuCash Android! \nJe kan een nieuwe structuur van - veel gebruikte rekeningen creëren, of je eigen GnuCash rekeningstructuur importeren. \n\nBeide opties zijn ook - beschikbaar in app Instellingen zodat je later kan beslissen. - - - GEEN - DAGELIJKS - WEKELIJKSE - MAANDELIJKS - - Vaste journaalposten - Vaste journaalposten - Select destination for export - Memo - Spend - Receive - Withdrawal - Deposit - Payment - Charge - Decrease - Increase - Income - Rebate - Expense - Bill - Invoice - Buy - Sell - Repeats - Balance: - No recent backup found - Openingsbalans - Eigen Vermogen - Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions - - Save account opening balances - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split - + + + + + GnuCash + Nieuw rekening + Rekening bewerken + Info + OFX exporteren + Nieuwe transactie in een rekening + Geen rekeningen beschikbaar + Rekeningnaam + Annuleren + Bewaren + Beschrijving + Bedrag + Nieuwe transactie + Geen transacties beschikbaar + Datum & Tijd + Rekening + Debet + Credit + Rekeningen + Transacties + Verwijderen + Verwijderen + Annuleren + De rekening werd verwijderd + Verwijderen bevestigen + Alle transacties in deze rekening zullen ook verwijderd worden + Transactie bewerken + Opmerking + Verplaatsen + %1$d gselecteerd + Export bestemming + OFX Exporteren + All transacties exporteren + Aanvinken om alle transacties te exporteren. Anders worden enkel de nieuwe transacties sinds de laatste export geëxporteerd. + Fout tijdens het exporteren van de %1$s data + Exporteer + Verwijderen na exporteren + Alle geëxporteerde transacties zullen verwijderd worden na de export + Instellingen + + Verzenden… + SD kaart + + Verplaatsen + %1$d transactie(s) verplaatsen + Bestemmingsrekening + SD kaart benaderen + Transacties kunnen niet verplaatst worden.\nDe munteenheden van de rekeningen zijn niet compatibel + Algemeen + Over + Standaard munteenheid kiezen + Standaard munteenheid + Standaard munteenheid voor nieuwe rekeningen + Staat het bewaren van transacties in GnuCash for Android toe + Staat het aanmaken van rekeningen in GnuCash for Android toe + Uw GnuCash data + GnuCash data lezen en bewerken + Transacties bewaren + Rekeningen aanmaken + Rekening tonen + Rekeningen aanmaken + Aan te maken rekeningen selecteren + + Afghani + Algerian Dinar + Argentine Peso + Armenian Dram + Aruban Florin + Australian Dollar + Azerbaijanian Manat + Bahamian Dollar + Bahraini Dinar + Baht + Balboa + Barbados Dollar + Belarussian Ruble + Belize Dollar + Bermudian Dollar + Bolivar Fuerte + Boliviano + Brazilian Real + Brunei Dollar + Bulgarian Lev + Burundi Franc + Canadian Dollar + Cape Verde Escudo + Cayman Islands Dollar + CFA Franc BCEAO + CFA Franc BEAC + CFP Franc + Chilean Peso + Testing currency + Colombian Peso + Comoro Franc + Congolese Franc + Convertible Mark + Cordoba Oro + Costa Rican Colon + Croatian Kuna + Cuban Convertible Peso + Cuban Peso + Czech Koruna + Dalasi + Danish Krone + Denar + Djibouti Franc + Dobra + Dominican Peso + Dong + East Caribbean Dollar + Egyptian Pound + El Salvador Colon + Ethiopian Birr + Euro + Falkland Islands Pound + Fiji Dollar + Forint + Ghana Cedi + Gibraltar Pound + Gold + Gourde + Guarani + Guinea Franc + Guyana Dollar + Hong Kong Dollar + Hryvnia + Iceland Krona + Indian Rupee + Iranian Rial + Iraqi Dinar + Jamaican Dollar + Jordanian Dinar + Kenyan Shilling + Kina + Kip + Kuwaiti Dinar + Kwacha + Kwanza + Kyat + Lari + Latvian Lats + Lebanese Pound + Lek + Lempira + Leone + Liberian Dollar + Libyan Dinar + Lilangeni + Lithuanian Litas + Loti + Malagasy Ariary + Malaysian Ringgit + Mauritius Rupee + Mexican Peso + Mexican Unidad de Inversion (UDI) + Moldovan Leu + Moroccan Dirham + Mozambique Metical + Mvdol + Naira + Nakfa + Namibia Dollar + Nepalese Rupee + Netherlands Antillean Guilder + New Israeli Sheqel + New Romanian Leu + New Taiwan Dollar + New Zealand Dollar + Ngultrum + North Korean Won + Norwegian Krone + Nuevo Sol + Ouguiya + Pa’anga + Pakistan Rupee + Palladium + Pataca + Philippine Peso + Platinum + Pound Sterling + Pula + Qatari Rial + Quetzal + Rand + Rial Omani + Riel + Rufiyaa + Rupiah + Russian Ruble + Rwanda Franc + Saint Helena Pound + Saudi Riyal + SDR (Special Drawing Right) + Serbian Dinar + Seychelles Rupee + Silver + Singapore Dollar + Solomon Islands Dollar + Som + Somali Shilling + Somoni + South Sudanese Pound + Sri Lanka Rupee + Sucre + Sudanese Pound + Surinam Dollar + Swedish Krona + Swiss Franc + Syrian Pound + Taka + Tala + Tanzanian Shilling + Tenge + No currency + Trinidad and Tobago Dollar + Tugrik + Tunisian Dinar + Turkish Lira + Turkmenistan New Manat + UAE Dirham + Uganda Shilling + UIC-Franc + Unidad de Valor Real + Unidades de fomento + Uruguay Peso en Unidades Indexadas (URUIURUI) + Uruguayan Peso + US Dollar + Uzbekistan Sum + Vatu + WIR Euro + WIR Franc + Won + Yemeni Rial + Yen + Yuan Renminbi + Zambian Kwacha + Zimbabwe Dollar + Zloty + + + Uitgaven + Inkomsten + Activa + Eigen Vermogen + Passiva + + Geen rekeningen beschikbaar.\nU moet een rekening aanmaken alvorens een widget toe te voegen + Versie + License + Apache License v2.0. Klik voor details + Algemeen + Account kiezen + Geen transacties beschikbaar om te exporteren + Over GnuCash + GnucashMobile is een mobiele uitgavebeheerstoepassing voor Android.\nHet laat onderweg een snelle en flexibele registratie van uitgaven toe, die als OFX gegevens geëxporteerd kunnen worden om in de GnuCash-toepassing op een desktop-computer te importeren. + Over + %1$s data geëexporteerd naar:\n + GnuCash Android %1$s export + GnuCash Android Export van + Transacties + Transactie voorkeuren + Account voorkeuren + Standaard Transactietype + Het standaard transactietype, CREDIT or DEBET + + CREDIT + DEBET + + Weet u zeker dat u alle transacties wil verwijderen? + Weet u zeker dat u deze transactie wil verwijderen? + Exporteer + Exporteer alle transacties + Verwijder geëxporteerde transacties + Standaard export emailadres + Het standaard emailaddress om geëxporteerde data heen te sturen. U kan dit emailadres nog wijzigen als u exporteerd. + Draag Account over + Alle transacties zullen worden overgedragen van het ene account naar de andere + Schakel dubbel boekhouden in + Saldo + Vul een accountnaam in + Munteenheid + Hoofdrekening + Gebruik XML OFX hoofding + Schakel deze optie in als u naar een applicatie anders dan GnuCash wil exporteren + Nieuw sinds de vorige versie + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + Wijs af + Vul een bedrag in om de transactie op te slaan. + GnuCash rekeningen importeren + Rekeningen importeren + Fout bij het importeren van de GnuCash rekeningen + GnuCash rekeningen met succes geïmporteerd + Rekeningstructuur uit desktop-GnuCash importeren + GnuCash rekeningen importeren + Alle rekeningen uit de database verwijderen. Alle transacties zullen ook + verwijderd worden. + + Alle rekeningen verwijderen + Rekeningen + Alle rekeningen werden met succes verwijderd + Weet je zeker dat je alle rekeningen en transacties wil verwijderen? \nDeze + verrichting kan niet ongedaan gemaakt worden! + + Rekening Type + Alle transacties in alle rekeningen zullen verwijderd worden! + Alle transacties verwijderen + Alle transacties werden met succes verwijderd! + Rekeningen importeren + Tap opnieuw op te bevestigen. ALLE regels zullen verwijderd worden!! + Transacties + Subrekeningen + Zoeken + Standaard Export Formaat + Bestandsformaat om standaard te gebruiken bij het experteren van transacties + Transacties exporteren… + Herhaling + + Imbalance + Transactions exporteren + Geen repetitieve transacties gevonden. + Repetitieve transactie met succes verwijderd + Aggregatie rekening + Standard tegenrekening + Rekening kleur & type + + %d subrekening + %d subrekeningen + + + CASH + BANK + CREDIT CARD + ASSET + LIABILITY + INCOME + EXPENSE + PAYABLE + RECEIVABLE + EQUITY + CURRENCY + STOCK + MUTUAL FUND + TRADING + + + QIF + OFX + + + Kies een kleur + Subrekeningen verwijderen + Recent + Favorieten + Alle + Creëert standaard GnuCash veelgebruikte rekeningstructuur + Standaard rekeningen creëren + Nieuwe rekeningen zullen toegevoegd worden aan de bestaande + rekeningstructuur.\n\nAls je de bestaande rekeningen wil vervangen, verwijder ze dan eerst voor verder te gaan! + + Welkom in GnuCash Android! \nJe kan een nieuwe structuur van + veel gebruikte rekeningen creëren, of je eigen GnuCash rekeningstructuur importeren. \n\nBeide opties zijn ook + beschikbaar in app Instellingen zodat je later kan beslissen. + + + GEEN + DAGELIJKS + WEKELIJKSE + MAANDELIJKS + + Vaste journaalposten + Vaste journaalposten + Select destination for export + Memo + Spend + Receive + Withdrawal + Deposit + Payment + Charge + Decrease + Increase + Income + Rebate + Expense + Bill + Invoice + Buy + Sell + Repeats + Balance: + No recent backup found + Openingsbalans + Eigen Vermogen + Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions + + Save account opening balances + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split + diff --git a/app/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml similarity index 100% rename from app/res/values-pt-rBR/strings.xml rename to app/src/main/res/values-pt-rBR/strings.xml diff --git a/app/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml similarity index 100% rename from app/res/values-ru/strings.xml rename to app/src/main/res/values-ru/strings.xml diff --git a/app/res/values-v14/dimens.xml b/app/src/main/res/values-v14/dimens.xml similarity index 100% rename from app/res/values-v14/dimens.xml rename to app/src/main/res/values-v14/dimens.xml diff --git a/app/res/values-v14/styles.xml b/app/src/main/res/values-v14/styles.xml similarity index 100% rename from app/res/values-v14/styles.xml rename to app/src/main/res/values-v14/styles.xml diff --git a/app/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml similarity index 98% rename from app/res/values-zh/strings.xml rename to app/src/main/res/values-zh/strings.xml index 086c538ad..d0ad504cb 100644 --- a/app/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1,419 +1,419 @@ - - - - GnuCash - 创建科目 - 修改科目 - 信息 - 导出OFX - 为科目增加交易 - 没有要显示的科目 - 科目名称 - 取消 - 保存 - 描述 - 金额 - 新交易 - 没有要显示的交易 - 日期时间 - 科目 - 借方 - 贷方 - 科目 - 交易 - 删除 - 删除 - 取消 - 科目已删除 - 确认删除 - 科目中的交易同时会被删除 - 修改交易 - 备注 - 移动 - %1$d 已选中 - 导出到 - 导出交易资料 - 导出所有交易 - 默认情况下,自上次导出后新增的交易才会被导出。选择此项后所有的交易都会被导出。 - 导出%1$s发生错误 - 导出 - 导出后删除交易 - 导出完成后现存所有交易都会被删除 - 设置 - - 分享… - SD卡 - - 移动 - 移动 %1$d 交易 - 目的科目 - 访问 SD Card - 不能移动交易。\n两个科目的货币设置不一样。 - 常规 - 关于 - 选择默认货币 - 默认货币 - 创建科目时默认的货币 - 允许添加交易 - 允许创建科目 - GnuCash的数据 - 读取并修改GnuCash数据 - 记录交易 - 创建科目 - 显示科目 - 创建科目 - 选择要创建的科目 - - 阿富汗尼 - 阿尔及利亚第纳尔 - 阿根廷比索 - 亚美尼亚德拉姆 - 阿鲁巴弗罗林 - 澳元 - 阿塞拜疆马纳特 - 巴哈马元 - 巴林第纳尔 - 泰铢 - 巴尔博亚 - 巴巴多斯元 - 白俄罗斯卢布 - 伯利兹元 - 百慕大元 - 博利瓦 - 玻利维亚诺 - 巴西雷亚尔 - 文莱元 - 保加利亚列弗 - 布隆迪法郎 - 加拿大元 - 佛得角埃斯库多 - 开曼群岛元 - 西非法郎 - 中非法郎 - 太平洋金融共同体法郎 - 智利比索 - 测试 - 哥伦比亚比索 - 科摩罗法郎 - 刚果法郎 - 可兑换马克 - 科多巴 - 哥斯达黎加科朗 - 克罗地亚库纳 - Cuban Convertible Peso - 古巴比索 - 捷克克朗 - 达拉斯 - 丹麦克朗 - 代纳尔 - 吉布提法郎 - 多布拉 - 多米尼加比索 - 越南盾 - 东加勒比元 - 埃及镑 - 萨尔瓦多科朗 - 埃塞俄比亚比尔 - 欧元 - 福克兰镑 - 斐济元 - 匈牙利福林 - 加纳塞地 - 直布罗陀庞德 - 黄金 - 海地古德 - 瓜拉尼 - 几内亚法郎 - 圭亚那元 - 港币 - 赫夫纳 - 冰岛克朗 - 印度卢布 - 伊朗里亚尔 - 伊拉克第纳尔 - 牙买加元 - 约旦第纳尔 - 肯尼亚先令 - 巴布亚新几内亚Kina - 老挝基普 - 科威特第纳尔 - 赞比亚克瓦查 - 安哥拉宽扎 - 缅甸元 - 格鲁吉亚拉里 - 拉脱维亚拉特 - 黎巴嫩镑 - 阿尔巴尼亚Lek - 洪都拉斯伦皮拉 - 塞拉利昂 - 利比里亚元 - 利比亚第纳尔 - 马兰吉尼 - 立陶宛立特 - 洛蒂 - 阿里亚 - 马来西亚林吉特 - 毛里求斯卢比 - 墨西哥比索 - Mexican Unidad de Inversion (UDI) - 摩尔多瓦列伊 - 摩洛哥迪拉姆 - 莫桑比克的梅蒂卡尔 - Mvdol - Naira - Nakfa - 纳米比亚元 - 尼泊尔卢比 - 荷兰安的列斯荷兰盾 - 以色列新谢克尔 - 新罗马尼亚列伊 - 新台币 - 新西兰元 - Ngultrum - 北韩元 - 挪威克朗 - 秘鲁 索尔 - Ouguiya - Pa’anga - 巴基斯坦卢比 - Palladium - Pataca - Philippine Peso - Platinum - Pound Sterling - Pula - Qatari Rial - Quetzal - Rand - Rial Omani - Riel - Rufiyaa - Rupiah - 俄罗斯卢布 - Rwanda Franc - Saint Helena Pound - Saudi Riyal - SDR (Special Drawing Right) - Serbian Dinar - Seychelles Rupee - - 新加坡元 - Solomon Islands Dollar - Som - Somali Shilling - Somoni - South Sudanese Pound - Sri Lanka Rupee - Sucre - Sudanese Pound - Surinam Dollar - Swedish Krona - Swiss Franc - Syrian Pound - Taka - Tala - Tanzanian Shilling - Tenge - - Trinidad and Tobago Dollar - Tugrik - Tunisian Dinar - Turkish Lira - Turkmenistan New Manat - UAE Dirham - Uganda Shilling - UIC-Franc - Unidad de Valor Real - Unidades de fomento - Uruguay Peso en Unidades Indexadas (URUIURUI) - Uruguayan Peso - 美元 - Uzbekistan Sum - Vatu - 世界投资报告”欧元 - “世界投资报告”法郎 - 韩元 - Yemeni Rial - 日元 - 人民币 - Zambian Kwacha - 津巴布韦元 - Zloty - - - 支出 - 收入 - 资产 - 所有者权益 - 负债 - - GnuCash里还没有科目信息。\n使用小部件前需要添加科目 - 版本号 - 授权许可 - Apache License v2.0,点击查看明细(将打开网页)。 - 常规 - 选择科目 - 没有需要导出的交易 - 关于GnuCash - Gnucash for android是一个移动版的财务管理软件。提供灵活的跟踪开支的功能,可以导出OFX格式(开放金融交易格式)数据,并导入到桌面版的 GnuCash中。 - 关于 - %1$s文件保存到:\n - GnuCash Android %1$s 导出 - GnuCash Android Export from - 交易 - 交易设置 - 科目设置 - 默认交易类型 - 默认的交易类型,借方或贷方 - - 贷方 - 借方 - - 确定删除所有交易? - 确定删除此项交易? - 导出设置 - 导出所有交易 - 删除已导出的交易 - email设置 - 默认发送导出的OFX文件到这个email地址,当然在导出过程时你仍然可以临时变更。 - 交易科目 - 所有交易会显示成两行,复式簿记 - 使用双行模式 - 帐户余额 - 需要输入科目名称 - 货币 - 上级科目 - 添加 XML OFX头 - 当导出数据到GnuCash桌面版以外的程序时需要开启这个选项。 - 新功能 - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - 知道了 - 输入金额才能保存交易 - 导入GnuCash科目 - 导入科目 - 导入 GnuCash 科目中发生错误。 - GnuCash 科目资料导入完成。 - 导入从GnuCash桌面版导出的科目设置 - 导入GnuCash科目 - 删除科目资料的同时其下的交易信息也会被删除。 - - 删除所有科目 - 科目 - 所有科目都已删除 - 确定删除所有科目和交易? \n这个操作不能撤销! - - 帐户类型 - 所有科目的所有的交易信息将被删除! - 删除所有交易 - 所有交易都已删除 - 导入科目 - 点击再次确认,所有条目都将删除。 - 交易 - 子科目 - 搜索 - 默认的导出格式 - 导出交易信息时使用的文件格式。 - 导出交易… - 重复 - - 不平衡的 - 正在导出交易信息 - 没有要显示的计划交易 - 计划交易已删除 - 占位符 - 默认的转账帐户 - 科目颜色和类型 - - %d 子科目 - - - 现金 - 银行 - 信用卡 - 资产 - 负债 - 收入 - 费用 - 应付账款 - 应收账款 - 所有者权益 - 货币 - 股票 - 共同基金 - TRADING - - - QIF - OFX - - - 选择一种颜色 - 删除子科目 - 最近的 - 已加星标 - 所有 - 创建通用的科目结构 - 创建默认科目 - 准备创建新的科目结构,这不会覆盖现有的科目,如果你想创建全新的科目结构请先删除旧的科目。 - - 计划的交易 - 欢迎使用GnuCash Android! \n你可以选择:1)创建常用的科目结构,2)导入自定义的科目结构。\或者稍后再决定,两种选择也能在设置中找到。 - - - - 每天 - 每周 - 每月 - - 计划的交易 - Select destination for export - 描述 - 花费 - 收到 - 取款 - 存款 - 支付 - 费用(charge) - 减少 - 增加 - 收入 - 回扣(Rebate) - 费用(Expense) - 支付 - 发票 - 买入 - 卖出 - 重复 - 还没有备份 - 期初余额 - 所有者权益 - 当删除所有交易后,还保持曾经的账户余额作为新的期初余额。 - 保存账户的期初余额 - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split - + + + + GnuCash + 创建科目 + 修改科目 + 信息 + 导出OFX + 为科目增加交易 + 没有要显示的科目 + 科目名称 + 取消 + 保存 + 描述 + 金额 + 新交易 + 没有要显示的交易 + 日期时间 + 科目 + 借方 + 贷方 + 科目 + 交易 + 删除 + 删除 + 取消 + 科目已删除 + 确认删除 + 科目中的交易同时会被删除 + 修改交易 + 备注 + 移动 + %1$d 已选中 + 导出到 + 导出交易资料 + 导出所有交易 + 默认情况下,自上次导出后新增的交易才会被导出。选择此项后所有的交易都会被导出。 + 导出%1$s发生错误 + 导出 + 导出后删除交易 + 导出完成后现存所有交易都会被删除 + 设置 + + 分享… + SD卡 + + 移动 + 移动 %1$d 交易 + 目的科目 + 访问 SD Card + 不能移动交易。\n两个科目的货币设置不一样。 + 常规 + 关于 + 选择默认货币 + 默认货币 + 创建科目时默认的货币 + 允许添加交易 + 允许创建科目 + GnuCash的数据 + 读取并修改GnuCash数据 + 记录交易 + 创建科目 + 显示科目 + 创建科目 + 选择要创建的科目 + + 阿富汗尼 + 阿尔及利亚第纳尔 + 阿根廷比索 + 亚美尼亚德拉姆 + 阿鲁巴弗罗林 + 澳元 + 阿塞拜疆马纳特 + 巴哈马元 + 巴林第纳尔 + 泰铢 + 巴尔博亚 + 巴巴多斯元 + 白俄罗斯卢布 + 伯利兹元 + 百慕大元 + 博利瓦 + 玻利维亚诺 + 巴西雷亚尔 + 文莱元 + 保加利亚列弗 + 布隆迪法郎 + 加拿大元 + 佛得角埃斯库多 + 开曼群岛元 + 西非法郎 + 中非法郎 + 太平洋金融共同体法郎 + 智利比索 + 测试 + 哥伦比亚比索 + 科摩罗法郎 + 刚果法郎 + 可兑换马克 + 科多巴 + 哥斯达黎加科朗 + 克罗地亚库纳 + Cuban Convertible Peso + 古巴比索 + 捷克克朗 + 达拉斯 + 丹麦克朗 + 代纳尔 + 吉布提法郎 + 多布拉 + 多米尼加比索 + 越南盾 + 东加勒比元 + 埃及镑 + 萨尔瓦多科朗 + 埃塞俄比亚比尔 + 欧元 + 福克兰镑 + 斐济元 + 匈牙利福林 + 加纳塞地 + 直布罗陀庞德 + 黄金 + 海地古德 + 瓜拉尼 + 几内亚法郎 + 圭亚那元 + 港币 + 赫夫纳 + 冰岛克朗 + 印度卢布 + 伊朗里亚尔 + 伊拉克第纳尔 + 牙买加元 + 约旦第纳尔 + 肯尼亚先令 + 巴布亚新几内亚Kina + 老挝基普 + 科威特第纳尔 + 赞比亚克瓦查 + 安哥拉宽扎 + 缅甸元 + 格鲁吉亚拉里 + 拉脱维亚拉特 + 黎巴嫩镑 + 阿尔巴尼亚Lek + 洪都拉斯伦皮拉 + 塞拉利昂 + 利比里亚元 + 利比亚第纳尔 + 马兰吉尼 + 立陶宛立特 + 洛蒂 + 阿里亚 + 马来西亚林吉特 + 毛里求斯卢比 + 墨西哥比索 + Mexican Unidad de Inversion (UDI) + 摩尔多瓦列伊 + 摩洛哥迪拉姆 + 莫桑比克的梅蒂卡尔 + Mvdol + Naira + Nakfa + 纳米比亚元 + 尼泊尔卢比 + 荷兰安的列斯荷兰盾 + 以色列新谢克尔 + 新罗马尼亚列伊 + 新台币 + 新西兰元 + Ngultrum + 北韩元 + 挪威克朗 + 秘鲁 索尔 + Ouguiya + Pa’anga + 巴基斯坦卢比 + Palladium + Pataca + Philippine Peso + Platinum + Pound Sterling + Pula + Qatari Rial + Quetzal + Rand + Rial Omani + Riel + Rufiyaa + Rupiah + 俄罗斯卢布 + Rwanda Franc + Saint Helena Pound + Saudi Riyal + SDR (Special Drawing Right) + Serbian Dinar + Seychelles Rupee + + 新加坡元 + Solomon Islands Dollar + Som + Somali Shilling + Somoni + South Sudanese Pound + Sri Lanka Rupee + Sucre + Sudanese Pound + Surinam Dollar + Swedish Krona + Swiss Franc + Syrian Pound + Taka + Tala + Tanzanian Shilling + Tenge + + Trinidad and Tobago Dollar + Tugrik + Tunisian Dinar + Turkish Lira + Turkmenistan New Manat + UAE Dirham + Uganda Shilling + UIC-Franc + Unidad de Valor Real + Unidades de fomento + Uruguay Peso en Unidades Indexadas (URUIURUI) + Uruguayan Peso + 美元 + Uzbekistan Sum + Vatu + 世界投资报告”欧元 + “世界投资报告”法郎 + 韩元 + Yemeni Rial + 日元 + 人民币 + Zambian Kwacha + 津巴布韦元 + Zloty + + + 支出 + 收入 + 资产 + 所有者权益 + 负债 + + GnuCash里还没有科目信息。\n使用小部件前需要添加科目 + 版本号 + 授权许可 + Apache License v2.0,点击查看明细(将打开网页)。 + 常规 + 选择科目 + 没有需要导出的交易 + 关于GnuCash + Gnucash for android是一个移动版的财务管理软件。提供灵活的跟踪开支的功能,可以导出OFX格式(开放金融交易格式)数据,并导入到桌面版的 GnuCash中。 + 关于 + %1$s文件保存到:\n + GnuCash Android %1$s 导出 + GnuCash Android Export from + 交易 + 交易设置 + 科目设置 + 默认交易类型 + 默认的交易类型,借方或贷方 + + 贷方 + 借方 + + 确定删除所有交易? + 确定删除此项交易? + 导出设置 + 导出所有交易 + 删除已导出的交易 + email设置 + 默认发送导出的OFX文件到这个email地址,当然在导出过程时你仍然可以临时变更。 + 交易科目 + 所有交易会显示成两行,复式簿记 + 使用双行模式 + 帐户余额 + 需要输入科目名称 + 货币 + 上级科目 + 添加 XML OFX头 + 当导出数据到GnuCash桌面版以外的程序时需要开启这个选项。 + 新功能 + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + 知道了 + 输入金额才能保存交易 + 导入GnuCash科目 + 导入科目 + 导入 GnuCash 科目中发生错误。 + GnuCash 科目资料导入完成。 + 导入从GnuCash桌面版导出的科目设置 + 导入GnuCash科目 + 删除科目资料的同时其下的交易信息也会被删除。 + + 删除所有科目 + 科目 + 所有科目都已删除 + 确定删除所有科目和交易? \n这个操作不能撤销! + + 帐户类型 + 所有科目的所有的交易信息将被删除! + 删除所有交易 + 所有交易都已删除 + 导入科目 + 点击再次确认,所有条目都将删除。 + 交易 + 子科目 + 搜索 + 默认的导出格式 + 导出交易信息时使用的文件格式。 + 导出交易… + 重复 + + 不平衡的 + 正在导出交易信息 + 没有要显示的计划交易 + 计划交易已删除 + 占位符 + 默认的转账帐户 + 科目颜色和类型 + + %d 子科目 + + + 现金 + 银行 + 信用卡 + 资产 + 负债 + 收入 + 费用 + 应付账款 + 应收账款 + 所有者权益 + 货币 + 股票 + 共同基金 + TRADING + + + QIF + OFX + + + 选择一种颜色 + 删除子科目 + 最近的 + 已加星标 + 所有 + 创建通用的科目结构 + 创建默认科目 + 准备创建新的科目结构,这不会覆盖现有的科目,如果你想创建全新的科目结构请先删除旧的科目。 + + 计划的交易 + 欢迎使用GnuCash Android! \n你可以选择:1)创建常用的科目结构,2)导入自定义的科目结构。\或者稍后再决定,两种选择也能在设置中找到。 + + + + 每天 + 每周 + 每月 + + 计划的交易 + Select destination for export + 描述 + 花费 + 收到 + 取款 + 存款 + 支付 + 费用(charge) + 减少 + 增加 + 收入 + 回扣(Rebate) + 费用(Expense) + 支付 + 发票 + 买入 + 卖出 + 重复 + 还没有备份 + 期初余额 + 所有者权益 + 当删除所有交易后,还保持曾经的账户余额作为新的期初余额。 + 保存账户的期初余额 + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split + diff --git a/app/res/values/arrays.xml b/app/src/main/res/values/arrays.xml similarity index 100% rename from app/res/values/arrays.xml rename to app/src/main/res/values/arrays.xml diff --git a/app/res/values/colors.xml b/app/src/main/res/values/colors.xml similarity index 100% rename from app/res/values/colors.xml rename to app/src/main/res/values/colors.xml diff --git a/app/res/values/dimens.xml b/app/src/main/res/values/dimens.xml similarity index 100% rename from app/res/values/dimens.xml rename to app/src/main/res/values/dimens.xml diff --git a/app/res/values/key_strings.xml b/app/src/main/res/values/key_strings.xml similarity index 100% rename from app/res/values/key_strings.xml rename to app/src/main/res/values/key_strings.xml diff --git a/app/res/values/strings.xml b/app/src/main/res/values/strings.xml similarity index 98% rename from app/res/values/strings.xml rename to app/src/main/res/values/strings.xml index 66baf61cc..1be28cc99 100644 --- a/app/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,444 +1,444 @@ - - - - - GnuCash - 1.5.3 - Create Account - Edit Account - Info - Export… - Add a new transaction to an account - No accounts to display - Account name - Cancel - Save - Enter Passcode - Wrong passcode, please try again - Passcode set - Please confirm your passcode - Invalid passcode confirmation. Please try again - Description - Amount - New transaction - No transactions to display - DATE & TIME - Account - DEBIT - CREDIT - Accounts - Transactions - DELETE - Delete - Cancel - Account deleted - Confirm delete - All transactions in this account will also be deleted - Edit Transaction - Note - MOVE - %1$d selected - Balance: - Export Destination - Export Transactions - Export all transactions - By default, only new transactions since last export will be exported. Check this option to export all transactions - Error exporting %1$s file - Export - Delete after export - All exported transactions will be deleted when exporting is completed - Settings - - Share file… - SD Card - - Move - Move %1$d transaction(s) - Destination Account - Access SD Card - Cannot move transactions.\nThe destination account uses a different currency from origin account - General - About - Choose default currency - Default currency - Default currency to assign to new accounts - Enables recording transactions in GnuCash for Android - Enables creation of accounts in GnuCash for Android - Your GnuCash data - Read and modify GnuCash data - record transactions - create accounts - Display account - Create Accounts - Select accounts to create - - Afghani - Algerian Dinar - Argentine Peso - Armenian Dram - Aruban Florin - Australian Dollar - Azerbaijanian Manat - Bahamian Dollar - Bahraini Dinar - Baht - Balboa - Barbados Dollar - Belarussian Ruble - Belize Dollar - Bermudian Dollar - Bolivar Fuerte - Boliviano - Brazilian Real - Brunei Dollar - Bulgarian Lev - Burundi Franc - Canadian Dollar - Cape Verde Escudo - Cayman Islands Dollar - CFA Franc BCEAO - CFA Franc BEAC - CFP Franc - Chilean Peso - Testing currency - Colombian Peso - Comoro Franc - Congolese Franc - Convertible Mark - Cordoba Oro - Costa Rican Colon - Croatian Kuna - Cuban Convertible Peso - Cuban Peso - Czech Koruna - Dalasi - Danish Krone - Denar - Djibouti Franc - Dobra - Dominican Peso - Dong - East Caribbean Dollar - Egyptian Pound - El Salvador Colon - Ethiopian Birr - Euro - Falkland Islands Pound - Fiji Dollar - Forint - Ghana Cedi - Gibraltar Pound - Gold - Gourde - Guarani - Guinea Franc - Guyana Dollar - Hong Kong Dollar - Hryvnia - Iceland Krona - Indian Rupee - Iranian Rial - Iraqi Dinar - Jamaican Dollar - Jordanian Dinar - Kenyan Shilling - Kina - Kip - Kuwaiti Dinar - Kwacha - Kwanza - Kyat - Lari - Latvian Lats - Lebanese Pound - Lek - Lempira - Leone - Liberian Dollar - Libyan Dinar - Lilangeni - Lithuanian Litas - Loti - Malagasy Ariary - Malaysian Ringgit - Mauritius Rupee - Mexican Peso - Mexican Unidad de Inversion (UDI) - Moldovan Leu - Moroccan Dirham - Mozambique Metical - Mvdol - Naira - Nakfa - Namibia Dollar - Nepalese Rupee - Netherlands Antillean Guilder - New Israeli Sheqel - New Romanian Leu - New Taiwan Dollar - New Zealand Dollar - Ngultrum - North Korean Won - Norwegian Krone - Nuevo Sol - Ouguiya - Pa’anga - Pakistan Rupee - Palladium - Pataca - Philippine Peso - Platinum - Pound Sterling - Pula - Qatari Rial - Quetzal - Rand - Rial Omani - Riel - Rufiyaa - Rupiah - Russian Ruble - Rwanda Franc - Saint Helena Pound - Saudi Riyal - SDR (Special Drawing Right) - Serbian Dinar - Seychelles Rupee - Silver - Singapore Dollar - Solomon Islands Dollar - Som - Somali Shilling - Somoni - South Sudanese Pound - Sri Lanka Rupee - Sucre - Sudanese Pound - Surinam Dollar - Swedish Krona - Swiss Franc - Syrian Pound - Taka - Tala - Tanzanian Shilling - Tenge - No currency - Trinidad and Tobago Dollar - Tugrik - Tunisian Dinar - Turkish Lira - Turkmenistan New Manat - UAE Dirham - Uganda Shilling - UIC-Franc - Unidad de Valor Real - Unidades de fomento - Uruguay Peso en Unidades Indexadas (URUIURUI) - Uruguayan peso - US Dollar - Uzbekistan Sum - Vatu - WIR Euro - WIR Franc - Won - Yemeni Rial - Yen - Yuan Renminbi - Zambian Kwacha - Zimbabwe Dollar - Zloty - - - Expenses - Income - Assets - Equity - Liabilities - - No accounts exist in GnuCash.\nCreate an account before adding a widget - Build version - License - Apache License v2.0. Click for details - General Preferences - Select Account - There are no transactions available to export - Passcode - Passcode Preferences - Passcode Turned On - Passcode Turned Off - Change Passcode - About GnuCash - Gnucash is a mobile finance expense tracker application for Android.\n - It enables flexible tracking of expenses on-the-go which can be exported to multiple formats (OFX, QIF) and imported into GnuCash for the desktop. - About - %1$s file exported to:\n - GnuCash Android %1$s export - GnuCash Android Export from - Transactions - Transaction Preferences - Account Preferences - Default Transaction Type - The type of transaction to use by default, CREDIT or DEBIT - - CREDIT - DEBIT - - Are you sure you want to delete ALL transactions? - Are you sure you want to delete this transaction? - Export - Export all transactions - Delete exported transactions - Default export email - The default email address to send exports to. You can still change this when you export. - Transfer Account - All transactions will be a transfer from one account to another - Activate Double Entry - Balance - Enter an account name to create an account - Currency - Parent account - Use XML OFX header - Enable this option when exporting to third-party application other than GnuCash for desktop - What\'s New - - - General resource and performance optimization\n - - Faster computation of account balances\n - - Set passcode to restrict access to app (in Settings)\n - - Export separate QIF files for each currency in use\n - - Use currencey settings when creating account hierarchy\n - - Multiple bug fixes and improvements\n - - Dismiss - Enter an amount to save the transaction - Multi-currency transactions cannot be modified - Import GnuCash Accounts - Import Accounts - An error occurred while importing the GnuCash accounts - GnuCash Accounts successfully imported - Import account structure exported from GnuCash desktop - Import GnuCash accounts - Delete all accounts in the database. All transactions will be deleted as - well. - - Delete all accounts - Accounts - All accounts have been successfully deleted - Are you sure you want to delete all accounts and transactions?\n\nThis - operation cannot be undone! - - Account Type - All transactions in all accounts will be deleted! - Delete all transactions - All transactions successfully deleted! - Importing accounts - Tap again to confirm. ALL entries will be deleted!! - Transactions - Sub-Accounts - Search - Default Export Format - File format to use by default when exporting transactions - Export transactions… - Recurrence - - Imbalance - Exporting transactions - No recurring transactions to display. - Successfully deleted recurring transaction - Placeholder account - Default Transfer Account - - %d sub-account - %d sub-accounts - - - CASH - BANK - CREDIT CARD - ASSET - LIABILITY - INCOME - EXPENSE - PAYABLE - RECEIVABLE - EQUITY - CURRENCY - STOCK - MUTUAL FUND - TRADING - - - QIF - OFX - - - NONE - DAILY - WEEKLY - MONTHLY - - - Select a Color - - Color %1$d - - Color %1$d selected - Account Color & Type - Delete sub-accounts - Recent - Favorites - All - Creates default GnuCash commonly-used account structure - Create default accounts - New accounts will be created in addition to the existing - account structure.\n\nIf you wish to replace currently existing accounts, delete them first before proceeding! - - Scheduled Transactions - Welcome to GnuCash Android! \nYou can either create - a hierarchy of commonly-used accounts, or import your own GnuCash account structure. \n\nBoth options are also - available in app Settings so you can decide later. - - Scheduled Transactions - Select destination for export - Memo - Spend - Receive - Withdrawal - Deposit - Payment - Charge - Decrease - Increase - Income - Rebate - Expense - Bill - Invoice - Buy - Sell - Repeats - No recent backup found - Opening Balances - Equity - Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions - - Save account opening balances - OFX does not support double-entry transactions - A separate QIF file will be generated for each currency in use - Transaction splits - Imbalance: - Add split - + + + + + GnuCash + 1.5.3 + Create Account + Edit Account + Info + Export… + Add a new transaction to an account + No accounts to display + Account name + Cancel + Save + Enter Passcode + Wrong passcode, please try again + Passcode set + Please confirm your passcode + Invalid passcode confirmation. Please try again + Description + Amount + New transaction + No transactions to display + DATE & TIME + Account + DEBIT + CREDIT + Accounts + Transactions + DELETE + Delete + Cancel + Account deleted + Confirm delete + All transactions in this account will also be deleted + Edit Transaction + Note + MOVE + %1$d selected + Balance: + Export Destination + Export Transactions + Export all transactions + By default, only new transactions since last export will be exported. Check this option to export all transactions + Error exporting %1$s file + Export + Delete after export + All exported transactions will be deleted when exporting is completed + Settings + + Share file… + SD Card + + Move + Move %1$d transaction(s) + Destination Account + Access SD Card + Cannot move transactions.\nThe destination account uses a different currency from origin account + General + About + Choose default currency + Default currency + Default currency to assign to new accounts + Enables recording transactions in GnuCash for Android + Enables creation of accounts in GnuCash for Android + Your GnuCash data + Read and modify GnuCash data + record transactions + create accounts + Display account + Create Accounts + Select accounts to create + + Afghani + Algerian Dinar + Argentine Peso + Armenian Dram + Aruban Florin + Australian Dollar + Azerbaijanian Manat + Bahamian Dollar + Bahraini Dinar + Baht + Balboa + Barbados Dollar + Belarussian Ruble + Belize Dollar + Bermudian Dollar + Bolivar Fuerte + Boliviano + Brazilian Real + Brunei Dollar + Bulgarian Lev + Burundi Franc + Canadian Dollar + Cape Verde Escudo + Cayman Islands Dollar + CFA Franc BCEAO + CFA Franc BEAC + CFP Franc + Chilean Peso + Testing currency + Colombian Peso + Comoro Franc + Congolese Franc + Convertible Mark + Cordoba Oro + Costa Rican Colon + Croatian Kuna + Cuban Convertible Peso + Cuban Peso + Czech Koruna + Dalasi + Danish Krone + Denar + Djibouti Franc + Dobra + Dominican Peso + Dong + East Caribbean Dollar + Egyptian Pound + El Salvador Colon + Ethiopian Birr + Euro + Falkland Islands Pound + Fiji Dollar + Forint + Ghana Cedi + Gibraltar Pound + Gold + Gourde + Guarani + Guinea Franc + Guyana Dollar + Hong Kong Dollar + Hryvnia + Iceland Krona + Indian Rupee + Iranian Rial + Iraqi Dinar + Jamaican Dollar + Jordanian Dinar + Kenyan Shilling + Kina + Kip + Kuwaiti Dinar + Kwacha + Kwanza + Kyat + Lari + Latvian Lats + Lebanese Pound + Lek + Lempira + Leone + Liberian Dollar + Libyan Dinar + Lilangeni + Lithuanian Litas + Loti + Malagasy Ariary + Malaysian Ringgit + Mauritius Rupee + Mexican Peso + Mexican Unidad de Inversion (UDI) + Moldovan Leu + Moroccan Dirham + Mozambique Metical + Mvdol + Naira + Nakfa + Namibia Dollar + Nepalese Rupee + Netherlands Antillean Guilder + New Israeli Sheqel + New Romanian Leu + New Taiwan Dollar + New Zealand Dollar + Ngultrum + North Korean Won + Norwegian Krone + Nuevo Sol + Ouguiya + Pa’anga + Pakistan Rupee + Palladium + Pataca + Philippine Peso + Platinum + Pound Sterling + Pula + Qatari Rial + Quetzal + Rand + Rial Omani + Riel + Rufiyaa + Rupiah + Russian Ruble + Rwanda Franc + Saint Helena Pound + Saudi Riyal + SDR (Special Drawing Right) + Serbian Dinar + Seychelles Rupee + Silver + Singapore Dollar + Solomon Islands Dollar + Som + Somali Shilling + Somoni + South Sudanese Pound + Sri Lanka Rupee + Sucre + Sudanese Pound + Surinam Dollar + Swedish Krona + Swiss Franc + Syrian Pound + Taka + Tala + Tanzanian Shilling + Tenge + No currency + Trinidad and Tobago Dollar + Tugrik + Tunisian Dinar + Turkish Lira + Turkmenistan New Manat + UAE Dirham + Uganda Shilling + UIC-Franc + Unidad de Valor Real + Unidades de fomento + Uruguay Peso en Unidades Indexadas (URUIURUI) + Uruguayan peso + US Dollar + Uzbekistan Sum + Vatu + WIR Euro + WIR Franc + Won + Yemeni Rial + Yen + Yuan Renminbi + Zambian Kwacha + Zimbabwe Dollar + Zloty + + + Expenses + Income + Assets + Equity + Liabilities + + No accounts exist in GnuCash.\nCreate an account before adding a widget + Build version + License + Apache License v2.0. Click for details + General Preferences + Select Account + There are no transactions available to export + Passcode + Passcode Preferences + Passcode Turned On + Passcode Turned Off + Change Passcode + About GnuCash + Gnucash is a mobile finance expense tracker application for Android.\n + It enables flexible tracking of expenses on-the-go which can be exported to multiple formats (OFX, QIF) and imported into GnuCash for the desktop. + About + %1$s file exported to:\n + GnuCash Android %1$s export + GnuCash Android Export from + Transactions + Transaction Preferences + Account Preferences + Default Transaction Type + The type of transaction to use by default, CREDIT or DEBIT + + CREDIT + DEBIT + + Are you sure you want to delete ALL transactions? + Are you sure you want to delete this transaction? + Export + Export all transactions + Delete exported transactions + Default export email + The default email address to send exports to. You can still change this when you export. + Transfer Account + All transactions will be a transfer from one account to another + Activate Double Entry + Balance + Enter an account name to create an account + Currency + Parent account + Use XML OFX header + Enable this option when exporting to third-party application other than GnuCash for desktop + What\'s New + + - General resource and performance optimization\n + - Faster computation of account balances\n + - Set passcode to restrict access to app (in Settings)\n + - Export separate QIF files for each currency in use\n + - Use currencey settings when creating account hierarchy\n + - Multiple bug fixes and improvements\n + + Dismiss + Enter an amount to save the transaction + Multi-currency transactions cannot be modified + Import GnuCash Accounts + Import Accounts + An error occurred while importing the GnuCash accounts + GnuCash Accounts successfully imported + Import account structure exported from GnuCash desktop + Import GnuCash accounts + Delete all accounts in the database. All transactions will be deleted as + well. + + Delete all accounts + Accounts + All accounts have been successfully deleted + Are you sure you want to delete all accounts and transactions?\n\nThis + operation cannot be undone! + + Account Type + All transactions in all accounts will be deleted! + Delete all transactions + All transactions successfully deleted! + Importing accounts + Tap again to confirm. ALL entries will be deleted!! + Transactions + Sub-Accounts + Search + Default Export Format + File format to use by default when exporting transactions + Export transactions… + Recurrence + + Imbalance + Exporting transactions + No recurring transactions to display. + Successfully deleted recurring transaction + Placeholder account + Default Transfer Account + + %d sub-account + %d sub-accounts + + + CASH + BANK + CREDIT CARD + ASSET + LIABILITY + INCOME + EXPENSE + PAYABLE + RECEIVABLE + EQUITY + CURRENCY + STOCK + MUTUAL FUND + TRADING + + + QIF + OFX + + + NONE + DAILY + WEEKLY + MONTHLY + + + Select a Color + + Color %1$d + + Color %1$d selected + Account Color & Type + Delete sub-accounts + Recent + Favorites + All + Creates default GnuCash commonly-used account structure + Create default accounts + New accounts will be created in addition to the existing + account structure.\n\nIf you wish to replace currently existing accounts, delete them first before proceeding! + + Scheduled Transactions + Welcome to GnuCash Android! \nYou can either create + a hierarchy of commonly-used accounts, or import your own GnuCash account structure. \n\nBoth options are also + available in app Settings so you can decide later. + + Scheduled Transactions + Select destination for export + Memo + Spend + Receive + Withdrawal + Deposit + Payment + Charge + Decrease + Increase + Income + Rebate + Expense + Bill + Invoice + Buy + Sell + Repeats + No recent backup found + Opening Balances + Equity + Enable to save the current account balance (before deleting transactions) as new opening balance after deleting transactions + + Save account opening balances + OFX does not support double-entry transactions + A separate QIF file will be generated for each currency in use + Transaction splits + Imbalance: + Add split + diff --git a/app/res/values/styles.xml b/app/src/main/res/values/styles.xml similarity index 100% rename from app/res/values/styles.xml rename to app/src/main/res/values/styles.xml diff --git a/app/res/xml-v11/fragment_about_preferences.xml b/app/src/main/res/xml-v11/fragment_about_preferences.xml similarity index 97% rename from app/res/xml-v11/fragment_about_preferences.xml rename to app/src/main/res/xml-v11/fragment_about_preferences.xml index de4a3b910..c6a2af93f 100644 --- a/app/res/xml-v11/fragment_about_preferences.xml +++ b/app/src/main/res/xml-v11/fragment_about_preferences.xml @@ -1,30 +1,30 @@ - - - - - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/app/res/xml-v11/fragment_account_preferences.xml b/app/src/main/res/xml-v11/fragment_account_preferences.xml similarity index 100% rename from app/res/xml-v11/fragment_account_preferences.xml rename to app/src/main/res/xml-v11/fragment_account_preferences.xml diff --git a/app/res/xml-v11/fragment_transaction_preferences.xml b/app/src/main/res/xml-v11/fragment_transaction_preferences.xml similarity index 100% rename from app/res/xml-v11/fragment_transaction_preferences.xml rename to app/src/main/res/xml-v11/fragment_transaction_preferences.xml diff --git a/app/res/xml/fragment_about_preferences.xml b/app/src/main/res/xml/fragment_about_preferences.xml similarity index 97% rename from app/res/xml/fragment_about_preferences.xml rename to app/src/main/res/xml/fragment_about_preferences.xml index e41a147bc..76986a7d0 100644 --- a/app/res/xml/fragment_about_preferences.xml +++ b/app/src/main/res/xml/fragment_about_preferences.xml @@ -1,31 +1,31 @@ - - - - - - - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/app/res/xml/fragment_account_preferences.xml b/app/src/main/res/xml/fragment_account_preferences.xml similarity index 100% rename from app/res/xml/fragment_account_preferences.xml rename to app/src/main/res/xml/fragment_account_preferences.xml diff --git a/app/res/xml/fragment_general_preferences.xml b/app/src/main/res/xml/fragment_general_preferences.xml similarity index 100% rename from app/res/xml/fragment_general_preferences.xml rename to app/src/main/res/xml/fragment_general_preferences.xml diff --git a/app/res/xml/fragment_passcode_preferences.xml b/app/src/main/res/xml/fragment_passcode_preferences.xml old mode 100755 new mode 100644 similarity index 100% rename from app/res/xml/fragment_passcode_preferences.xml rename to app/src/main/res/xml/fragment_passcode_preferences.xml diff --git a/app/res/xml/fragment_transaction_preferences.xml b/app/src/main/res/xml/fragment_transaction_preferences.xml similarity index 100% rename from app/res/xml/fragment_transaction_preferences.xml rename to app/src/main/res/xml/fragment_transaction_preferences.xml diff --git a/app/res/xml/preference_headers.xml b/app/src/main/res/xml/preference_headers.xml similarity index 100% rename from app/res/xml/preference_headers.xml rename to app/src/main/res/xml/preference_headers.xml diff --git a/app/res/xml/transaction_appwidget_info.xml b/app/src/main/res/xml/transaction_appwidget_info.xml similarity index 100% rename from app/res/xml/transaction_appwidget_info.xml rename to app/src/main/res/xml/transaction_appwidget_info.xml diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 32b65c33c..955c68586 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -28,8 +28,8 @@ 5.2.1 - 1.0.5 - 1.0.6 + 1.1.2 + 1.0.6 usb @@ -78,13 +78,29 @@ - src - com.jayway.maven.plugins.android.generation2 + com.simpligility.maven.plugins android-maven-plugin true + + com.squareup.spoon + spoon-maven-plugin + ${spoon-client.version} + + GnuCash Android Integration Tests + true + + + + integration-test + + run + + + + diff --git a/integration-tests/AndroidManifest.xml b/integration-tests/src/main/AndroidManifest.xml similarity index 100% rename from integration-tests/AndroidManifest.xml rename to integration-tests/src/main/AndroidManifest.xml diff --git a/integration-tests/src/org/gnucash/android/test/db/AccountsDbAdapterTest.java b/integration-tests/src/main/java/org/gnucash/android/test/db/AccountsDbAdapterTest.java similarity index 100% rename from integration-tests/src/org/gnucash/android/test/db/AccountsDbAdapterTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/db/AccountsDbAdapterTest.java diff --git a/integration-tests/src/org/gnucash/android/test/db/TransactionsDbAdapterTest.java b/integration-tests/src/main/java/org/gnucash/android/test/db/TransactionsDbAdapterTest.java similarity index 100% rename from integration-tests/src/org/gnucash/android/test/db/TransactionsDbAdapterTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/db/TransactionsDbAdapterTest.java diff --git a/integration-tests/src/org/gnucash/android/test/ui/AccountsActivityTest.java b/integration-tests/src/main/java/org/gnucash/android/test/ui/AccountsActivityTest.java similarity index 97% rename from integration-tests/src/org/gnucash/android/test/ui/AccountsActivityTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/ui/AccountsActivityTest.java index bc33309c6..9b368adb4 100644 --- a/integration-tests/src/org/gnucash/android/test/ui/AccountsActivityTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/ui/AccountsActivityTest.java @@ -1,314 +1,314 @@ -/* - * Copyright (c) 2012 Ngewi Fet - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.gnucash.android.test.ui; - -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences.Editor; -import android.preference.PreferenceManager; -import android.support.v4.app.Fragment; -import android.test.ActivityInstrumentationTestCase2; -import android.view.View; -import android.widget.EditText; -import com.robotium.solo.Solo; -import org.gnucash.android.R; -import org.gnucash.android.db.AccountsDbAdapter; -import org.gnucash.android.db.TransactionsDbAdapter; -import org.gnucash.android.model.Account; -import org.gnucash.android.model.Money; -import org.gnucash.android.model.Split; -import org.gnucash.android.model.Transaction; -import org.gnucash.android.test.util.ActionBarUtils; -import org.gnucash.android.ui.account.AccountsActivity; -import org.gnucash.android.ui.account.AccountsListFragment; - -import java.util.Currency; -import java.util.List; - -import static org.fest.assertions.api.ANDROID.assertThat; - -public class AccountsActivityTest extends ActivityInstrumentationTestCase2 { - private static final String DUMMY_ACCOUNT_CURRENCY_CODE = "USD"; - private static final String DUMMY_ACCOUNT_NAME = "Dummy account"; - public static final String DUMMY_ACCOUNT_UID = "dummy-account"; - private Solo mSolo; - - public AccountsActivityTest() { - super(AccountsActivity.class); - } - - protected void setUp() throws Exception { - Context context = getInstrumentation().getTargetContext(); - Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); - editor.putBoolean(context.getString(R.string.key_first_run), false); - editor.commit(); - - mSolo = new Solo(getInstrumentation(), getActivity()); - - AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); - Account account = new Account(DUMMY_ACCOUNT_NAME); - account.setUID(DUMMY_ACCOUNT_UID); - account.setCurrency(Currency.getInstance(DUMMY_ACCOUNT_CURRENCY_CODE)); - adapter.addAccount(account); - adapter.close(); - - getInstrumentation().runOnMainSync(new Runnable() { - @Override - public void run() { - getActivity().setTab(AccountsActivity.INDEX_TOP_LEVEL_ACCOUNTS_FRAGMENT); - } - }); - - - //the What's new dialog is usually displayed on first run - String dismissDialog = getActivity().getString(R.string.label_dismiss); - if (mSolo.waitForText(dismissDialog,1,1000)){ - mSolo.clickOnText(dismissDialog); - } - } - -/* - public void testDisplayAccountsList(){ - final int NUMBER_OF_ACCOUNTS = 15; - AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); - for (int i = 0; i < NUMBER_OF_ACCOUNTS; i++) { - Account account = new Account("Acct " + i); - accountsDbAdapter.addAccount(account); - } - accountsDbAdapter.close(); - - //there should exist a listview of accounts - refreshAccountsList(); - mSolo.waitForText("Acct"); - mSolo.scrollToBottom(); - - ListView accountsListView = (ListView) mSolo.getView(android.R.id.list); - assertNotNull(accountsListView); - assertEquals(NUMBER_OF_ACCOUNTS + 1, accountsListView.getCount()); - } -*/ - public void testSearchAccounts(){ - String SEARCH_ACCOUNT_NAME = "Search Account"; - - Account account = new Account(SEARCH_ACCOUNT_NAME); - account.setParentUID(DUMMY_ACCOUNT_UID); - AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); - accountsDbAdapter.addAccount(account); - accountsDbAdapter.close(); - - refreshAccountsList(); - - //enter search query - ActionBarUtils.clickSherlockActionBarItem(mSolo, R.id.menu_search); - mSolo.sleep(200); - mSolo.enterText(0, "Se"); - - boolean accountFound = mSolo.waitForText(SEARCH_ACCOUNT_NAME, 1, 2000); - assertTrue(accountFound); - - mSolo.clearEditText(0); - - //the child account should be hidden again - accountFound = mSolo.waitForText(SEARCH_ACCOUNT_NAME, 1, 2000); - assertFalse(accountFound); - } - - /** - * Tests that an account can be created successfully and that the account list is sorted alphabetically. - */ - public void testCreateAccount(){ - mSolo.clickOnActionBarItem(R.id.menu_add_account); - mSolo.waitForText(getActivity().getString(R.string.title_add_account)); - - View checkbox = mSolo.getCurrentActivity().findViewById(R.id.checkbox_parent_account); - //there already exists one eligible parent account in the system - assertThat(checkbox).isVisible(); - - mSolo.clickOnCheckBox(0); - - EditText inputAccountName = (EditText) mSolo.getCurrentActivity().findViewById(R.id.edit_text_account_name); - String NEW_ACCOUNT_NAME = "A New Account"; -// mSolo.enterText(0, NEW_ACCOUNT_NAME); - mSolo.enterText(inputAccountName, NEW_ACCOUNT_NAME); - mSolo.clickOnActionBarItem(R.id.menu_save); - - mSolo.waitForText(NEW_ACCOUNT_NAME); - - AccountsDbAdapter accAdapter = new AccountsDbAdapter(getActivity()); - - List accounts = accAdapter.getAllAccounts(); //sorted alphabetically - Account newestAccount = accounts.get(0); - - assertEquals(NEW_ACCOUNT_NAME, newestAccount.getName()); - assertEquals(Money.DEFAULT_CURRENCY_CODE, newestAccount.getCurrency().getCurrencyCode()); - assertTrue(newestAccount.isPlaceholderAccount()); - accAdapter.close(); - } - - public void testChangeParentAccount(){ - AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); - final String accountName = "Euro Account"; - final String accountUID = "my-euro_account"; - Account account = new Account(accountName, Currency.getInstance("EUR")); - account.setUID(accountUID); - accountsDbAdapter.addAccount(account); - - refreshAccountsList(); - mSolo.waitForText(accountName); - - mSolo.clickLongOnText(accountName); - clickSherlockActionBarItem(R.id.context_menu_edit_accounts); - mSolo.waitForView(EditText.class); - - mSolo.clickOnCheckBox(1); - mSolo.pressSpinnerItem(2, 0); -// mSolo.clickOnText(DUMMY_ACCOUNT_NAME); - - clickSherlockActionBarItem(R.id.menu_save); - - mSolo.waitForText(getActivity().getString(R.string.title_accounts)); - Account editedAccount = accountsDbAdapter.getAccount(accountUID); - String parentUID = editedAccount.getParentUID(); - - assertNotNull(parentUID); - assertEquals(DUMMY_ACCOUNT_UID, parentUID); - - accountsDbAdapter.close(); - } - - public void testEditAccount(){ - refreshAccountsList(); - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - String editedAccountName = "Edited Account"; - - mSolo.clickLongOnText(DUMMY_ACCOUNT_NAME); - - clickSherlockActionBarItem(R.id.context_menu_edit_accounts); - - mSolo.waitForView(EditText.class); - - mSolo.clearEditText(0); - mSolo.enterText(0, editedAccountName); - - clickSherlockActionBarItem(R.id.menu_save); - - mSolo.waitForDialogToClose(2000); - mSolo.waitForText("Accounts"); - - AccountsDbAdapter accAdapter = new AccountsDbAdapter(getActivity()); - - List accounts = accAdapter.getAllAccounts(); - Account latest = accounts.get(0); //will be the first due to alphabetical sorting - - assertEquals("Edited Account", latest.getName()); - assertEquals(DUMMY_ACCOUNT_CURRENCY_CODE, latest.getCurrency().getCurrencyCode()); - accAdapter.close(); - } - - public void testDeleteAccount(){ - final String accountNameToDelete = "TO BE DELETED"; - final String accountUidToDelete = "to-be-deleted"; - - Account acc = new Account(accountNameToDelete); - acc.setUID(accountUidToDelete); - - Transaction transaction = new Transaction("hats"); - transaction.addSplit(new Split(Money.getZeroInstance(), accountUidToDelete)); - acc.addTransaction(transaction); - AccountsDbAdapter accDbAdapter = new AccountsDbAdapter(getActivity()); - accDbAdapter.addAccount(acc); - - Fragment fragment = getActivity().getCurrentAccountListFragment(); - assertNotNull(fragment); - - ((AccountsListFragment) fragment).refresh(); - - mSolo.clickLongOnText(accountNameToDelete); - - clickSherlockActionBarItem(R.id.context_menu_delete); - - mSolo.clickOnView(mSolo.getView(android.R.id.button1)); - - mSolo.waitForDialogToClose(1000); - mSolo.waitForText("Accounts"); - - long id = accDbAdapter.getAccountID(accountUidToDelete); - assertEquals(-1, id); - - TransactionsDbAdapter transDbAdapter = new TransactionsDbAdapter(getActivity()); - List transactions = transDbAdapter.getAllTransactionsForAccount(accountUidToDelete); - assertEquals(0, transactions.size()); - - accDbAdapter.close(); - transDbAdapter.close(); - } - - - public void testIntentAccountCreation(){ - Intent intent = new Intent(Intent.ACTION_INSERT); - intent.putExtra(Intent.EXTRA_TITLE, "Intent Account"); - intent.putExtra(Intent.EXTRA_UID, "intent-account"); - intent.putExtra(Account.EXTRA_CURRENCY_CODE, "EUR"); - intent.setType(Account.MIME_TYPE); - getActivity().sendBroadcast(intent); - - //give time for the account to be created - synchronized (mSolo) { - try { - mSolo.wait(2000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - AccountsDbAdapter dbAdapter = new AccountsDbAdapter(getActivity()); - Account account = dbAdapter.getAccount("intent-account"); - dbAdapter.close(); - assertNotNull(account); - assertEquals("Intent Account", account.getName()); - assertEquals("intent-account", account.getUID()); - assertEquals("EUR", account.getCurrency().getCurrencyCode()); - } - - - protected void tearDown() throws Exception { - AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); - adapter.deleteAllRecords(); - adapter.close(); - - mSolo.finishOpenedActivities(); - super.tearDown(); - } - - /** - * Finds a view in the action bar and clicks it, since the native methods are not supported by ActionBarSherlock - * @param id - */ - private void clickSherlockActionBarItem(int id){ - View view = mSolo.getView(id); - mSolo.clickOnView(view); - } - - /** - * Refresh the account list fragment - */ - private void refreshAccountsList(){ - Fragment fragment = getActivity().getCurrentAccountListFragment(); - ((AccountsListFragment)fragment).refresh(); - } -} +/* + * Copyright (c) 2012 Ngewi Fet + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.gnucash.android.test.ui; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences.Editor; +import android.preference.PreferenceManager; +import android.support.v4.app.Fragment; +import android.test.ActivityInstrumentationTestCase2; +import android.view.View; +import android.widget.EditText; +import com.robotium.solo.Solo; +import org.gnucash.android.R; +import org.gnucash.android.db.AccountsDbAdapter; +import org.gnucash.android.db.TransactionsDbAdapter; +import org.gnucash.android.model.Account; +import org.gnucash.android.model.Money; +import org.gnucash.android.model.Split; +import org.gnucash.android.model.Transaction; +import org.gnucash.android.test.util.ActionBarUtils; +import org.gnucash.android.ui.account.AccountsActivity; +import org.gnucash.android.ui.account.AccountsListFragment; + +import java.util.Currency; +import java.util.List; + +import static org.fest.assertions.api.ANDROID.assertThat; + +public class AccountsActivityTest extends ActivityInstrumentationTestCase2 { + private static final String DUMMY_ACCOUNT_CURRENCY_CODE = "USD"; + private static final String DUMMY_ACCOUNT_NAME = "Dummy account"; + public static final String DUMMY_ACCOUNT_UID = "dummy-account"; + private Solo mSolo; + + public AccountsActivityTest() { + super(AccountsActivity.class); + } + + protected void setUp() throws Exception { + Context context = getInstrumentation().getTargetContext(); + Editor editor = PreferenceManager.getDefaultSharedPreferences(context).edit(); + editor.putBoolean(context.getString(R.string.key_first_run), false); + editor.commit(); + + mSolo = new Solo(getInstrumentation(), getActivity()); + + AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); + Account account = new Account(DUMMY_ACCOUNT_NAME); + account.setUID(DUMMY_ACCOUNT_UID); + account.setCurrency(Currency.getInstance(DUMMY_ACCOUNT_CURRENCY_CODE)); + adapter.addAccount(account); + adapter.close(); + + getInstrumentation().runOnMainSync(new Runnable() { + @Override + public void run() { + getActivity().setTab(AccountsActivity.INDEX_TOP_LEVEL_ACCOUNTS_FRAGMENT); + } + }); + + + //the What's new dialog is usually displayed on first run + String dismissDialog = getActivity().getString(R.string.label_dismiss); + if (mSolo.waitForText(dismissDialog,1,1000)){ + mSolo.clickOnText(dismissDialog); + } + } + +/* + public void testDisplayAccountsList(){ + final int NUMBER_OF_ACCOUNTS = 15; + AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); + for (int i = 0; i < NUMBER_OF_ACCOUNTS; i++) { + Account account = new Account("Acct " + i); + accountsDbAdapter.addAccount(account); + } + accountsDbAdapter.close(); + + //there should exist a listview of accounts + refreshAccountsList(); + mSolo.waitForText("Acct"); + mSolo.scrollToBottom(); + + ListView accountsListView = (ListView) mSolo.getView(android.R.id.list); + assertNotNull(accountsListView); + assertEquals(NUMBER_OF_ACCOUNTS + 1, accountsListView.getCount()); + } +*/ + public void testSearchAccounts(){ + String SEARCH_ACCOUNT_NAME = "Search Account"; + + Account account = new Account(SEARCH_ACCOUNT_NAME); + account.setParentUID(DUMMY_ACCOUNT_UID); + AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); + accountsDbAdapter.addAccount(account); + accountsDbAdapter.close(); + + refreshAccountsList(); + + //enter search query + ActionBarUtils.clickSherlockActionBarItem(mSolo, R.id.menu_search); + mSolo.sleep(200); + mSolo.enterText(0, "Se"); + + boolean accountFound = mSolo.waitForText(SEARCH_ACCOUNT_NAME, 1, 2000); + assertTrue(accountFound); + + mSolo.clearEditText(0); + + //the child account should be hidden again + accountFound = mSolo.waitForText(SEARCH_ACCOUNT_NAME, 1, 2000); + assertFalse(accountFound); + } + + /** + * Tests that an account can be created successfully and that the account list is sorted alphabetically. + */ + public void testCreateAccount(){ + mSolo.clickOnActionBarItem(R.id.menu_add_account); + mSolo.waitForText(getActivity().getString(R.string.title_add_account)); + + View checkbox = mSolo.getCurrentActivity().findViewById(R.id.checkbox_parent_account); + //there already exists one eligible parent account in the system + assertThat(checkbox).isVisible(); + + mSolo.clickOnCheckBox(0); + + EditText inputAccountName = (EditText) mSolo.getCurrentActivity().findViewById(R.id.edit_text_account_name); + String NEW_ACCOUNT_NAME = "A New Account"; +// mSolo.enterText(0, NEW_ACCOUNT_NAME); + mSolo.enterText(inputAccountName, NEW_ACCOUNT_NAME); + mSolo.clickOnActionBarItem(R.id.menu_save); + + mSolo.waitForText(NEW_ACCOUNT_NAME); + + AccountsDbAdapter accAdapter = new AccountsDbAdapter(getActivity()); + + List accounts = accAdapter.getAllAccounts(); //sorted alphabetically + Account newestAccount = accounts.get(0); + + assertEquals(NEW_ACCOUNT_NAME, newestAccount.getName()); + assertEquals(Money.DEFAULT_CURRENCY_CODE, newestAccount.getCurrency().getCurrencyCode()); + assertTrue(newestAccount.isPlaceholderAccount()); + accAdapter.close(); + } + + public void testChangeParentAccount(){ + AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); + final String accountName = "Euro Account"; + final String accountUID = "my-euro_account"; + Account account = new Account(accountName, Currency.getInstance("EUR")); + account.setUID(accountUID); + accountsDbAdapter.addAccount(account); + + refreshAccountsList(); + mSolo.waitForText(accountName); + + mSolo.clickLongOnText(accountName); + clickSherlockActionBarItem(R.id.context_menu_edit_accounts); + mSolo.waitForView(EditText.class); + + mSolo.clickOnCheckBox(1); + mSolo.pressSpinnerItem(2, 0); +// mSolo.clickOnText(DUMMY_ACCOUNT_NAME); + + clickSherlockActionBarItem(R.id.menu_save); + + mSolo.waitForText(getActivity().getString(R.string.title_accounts)); + Account editedAccount = accountsDbAdapter.getAccount(accountUID); + String parentUID = editedAccount.getParentUID(); + + assertNotNull(parentUID); + assertEquals(DUMMY_ACCOUNT_UID, parentUID); + + accountsDbAdapter.close(); + } + + public void testEditAccount(){ + refreshAccountsList(); + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + String editedAccountName = "Edited Account"; + + mSolo.clickLongOnText(DUMMY_ACCOUNT_NAME); + + clickSherlockActionBarItem(R.id.context_menu_edit_accounts); + + mSolo.waitForView(EditText.class); + + mSolo.clearEditText(0); + mSolo.enterText(0, editedAccountName); + + clickSherlockActionBarItem(R.id.menu_save); + + mSolo.waitForDialogToClose(2000); + mSolo.waitForText("Accounts"); + + AccountsDbAdapter accAdapter = new AccountsDbAdapter(getActivity()); + + List accounts = accAdapter.getAllAccounts(); + Account latest = accounts.get(0); //will be the first due to alphabetical sorting + + assertEquals("Edited Account", latest.getName()); + assertEquals(DUMMY_ACCOUNT_CURRENCY_CODE, latest.getCurrency().getCurrencyCode()); + accAdapter.close(); + } + + public void testDeleteAccount(){ + final String accountNameToDelete = "TO BE DELETED"; + final String accountUidToDelete = "to-be-deleted"; + + Account acc = new Account(accountNameToDelete); + acc.setUID(accountUidToDelete); + + Transaction transaction = new Transaction("hats"); + transaction.addSplit(new Split(Money.getZeroInstance(), accountUidToDelete)); + acc.addTransaction(transaction); + AccountsDbAdapter accDbAdapter = new AccountsDbAdapter(getActivity()); + accDbAdapter.addAccount(acc); + + Fragment fragment = getActivity().getCurrentAccountListFragment(); + assertNotNull(fragment); + + ((AccountsListFragment) fragment).refresh(); + + mSolo.clickLongOnText(accountNameToDelete); + + clickSherlockActionBarItem(R.id.context_menu_delete); + + mSolo.clickOnView(mSolo.getView(android.R.id.button1)); + + mSolo.waitForDialogToClose(1000); + mSolo.waitForText("Accounts"); + + long id = accDbAdapter.getAccountID(accountUidToDelete); + assertEquals(-1, id); + + TransactionsDbAdapter transDbAdapter = new TransactionsDbAdapter(getActivity()); + List transactions = transDbAdapter.getAllTransactionsForAccount(accountUidToDelete); + assertEquals(0, transactions.size()); + + accDbAdapter.close(); + transDbAdapter.close(); + } + + + public void testIntentAccountCreation(){ + Intent intent = new Intent(Intent.ACTION_INSERT); + intent.putExtra(Intent.EXTRA_TITLE, "Intent Account"); + intent.putExtra(Intent.EXTRA_UID, "intent-account"); + intent.putExtra(Account.EXTRA_CURRENCY_CODE, "EUR"); + intent.setType(Account.MIME_TYPE); + getActivity().sendBroadcast(intent); + + //give time for the account to be created + synchronized (mSolo) { + try { + mSolo.wait(2000); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + AccountsDbAdapter dbAdapter = new AccountsDbAdapter(getActivity()); + Account account = dbAdapter.getAccount("intent-account"); + dbAdapter.close(); + assertNotNull(account); + assertEquals("Intent Account", account.getName()); + assertEquals("intent-account", account.getUID()); + assertEquals("EUR", account.getCurrency().getCurrencyCode()); + } + + + protected void tearDown() throws Exception { + AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); + adapter.deleteAllRecords(); + adapter.close(); + + mSolo.finishOpenedActivities(); + super.tearDown(); + } + + /** + * Finds a view in the action bar and clicks it, since the native methods are not supported by ActionBarSherlock + * @param id + */ + private void clickSherlockActionBarItem(int id){ + View view = mSolo.getView(id); + mSolo.clickOnView(view); + } + + /** + * Refresh the account list fragment + */ + private void refreshAccountsList(){ + Fragment fragment = getActivity().getCurrentAccountListFragment(); + ((AccountsListFragment)fragment).refresh(); + } +} diff --git a/integration-tests/src/org/gnucash/android/test/ui/ExportTransactionsTest.java b/integration-tests/src/main/java/org/gnucash/android/test/ui/ExportTransactionsTest.java similarity index 100% rename from integration-tests/src/org/gnucash/android/test/ui/ExportTransactionsTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/ui/ExportTransactionsTest.java diff --git a/integration-tests/src/org/gnucash/android/test/ui/TransactionsActivityTest.java b/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java similarity index 97% rename from integration-tests/src/org/gnucash/android/test/ui/TransactionsActivityTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java index 3340e95b7..34cadf8ec 100644 --- a/integration-tests/src/org/gnucash/android/test/ui/TransactionsActivityTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java @@ -1,469 +1,469 @@ -/* - * Copyright (c) 2012 Ngewi Fet - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.gnucash.android.test.ui; - -import android.content.Context; -import android.content.Intent; -import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; -import android.preference.PreferenceManager; -import android.support.v4.app.Fragment; -import android.test.ActivityInstrumentationTestCase2; -import android.view.View; -import android.widget.*; -import com.robotium.solo.Solo; -import org.gnucash.android.R; -import org.gnucash.android.db.AccountsDbAdapter; -import org.gnucash.android.db.TransactionsDbAdapter; -import org.gnucash.android.model.*; -import org.gnucash.android.ui.UxArgument; -import org.gnucash.android.ui.transaction.TransactionFormFragment; -import org.gnucash.android.ui.transaction.TransactionsActivity; -import org.gnucash.android.ui.transaction.TransactionsListFragment; -import org.gnucash.android.ui.util.TransactionTypeToggleButton; - -import java.math.BigDecimal; -import java.text.NumberFormat; -import java.text.ParseException; -import java.util.Currency; -import java.util.Date; -import java.util.List; -import java.util.Locale; - -import static org.fest.assertions.api.ANDROID.assertThat; - -public class TransactionsActivityTest extends - ActivityInstrumentationTestCase2 { - private static final String TRANSACTION_AMOUNT = "9.99"; - private static final String TRANSACTION_NAME = "Pizza"; - private static final String DUMMY_ACCOUNT_UID = "transactions-account"; - private static final String DUMMY_ACCOUNT_NAME = "Transactions Account"; - - private static final String TRANSFER_ACCOUNT_NAME = "Transfer account"; - private static final String TRANSFER_ACCOUNT_UID = "transfer_account"; - public static final String CURRENCY_CODE = "USD"; - - private Solo mSolo; - private Transaction mTransaction; - private long mTransactionTimeMillis; - - public TransactionsActivityTest() { - super(TransactionsActivity.class); - } - - @Override - protected void setUp() throws Exception { - mTransactionTimeMillis = System.currentTimeMillis(); - Account account = new Account(DUMMY_ACCOUNT_NAME); - account.setUID(DUMMY_ACCOUNT_UID); - account.setCurrency(Currency.getInstance(CURRENCY_CODE)); - - Account account2 = new Account(TRANSFER_ACCOUNT_NAME); - account2.setUID(TRANSFER_ACCOUNT_UID); - account2.setCurrency(Currency.getInstance(CURRENCY_CODE)); - - mTransaction = new Transaction(TRANSACTION_NAME); - mTransaction.setNote("What up?"); - mTransaction.setTime(mTransactionTimeMillis); - Split split = new Split(new Money(TRANSACTION_AMOUNT, CURRENCY_CODE), DUMMY_ACCOUNT_UID); - split.setType(TransactionType.DEBIT); - - mTransaction.addSplit(split); - mTransaction.addSplit(split.createPair(TRANSFER_ACCOUNT_UID)); - account.addTransaction(mTransaction); - - Context context = getInstrumentation().getTargetContext(); - AccountsDbAdapter adapter = new AccountsDbAdapter(context); - long id1 = adapter.addAccount(account); - long id2 = adapter.addAccount(account2); - - adapter.close(); - assertTrue(id1 > 0); - assertTrue(id2 > 0); - - Intent intent = new Intent(Intent.ACTION_VIEW); - intent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, DUMMY_ACCOUNT_UID); - setActivityIntent(intent); - - mSolo = new Solo(getInstrumentation(), getActivity()); - } - - /** - * Finds a view in the action bar and clicks it, since the native methods are not supported by ActionBarSherlock - * @param id - */ - private void clickSherlockActionBarItem(int id){ - View view = mSolo.getView(id); - mSolo.clickOnView(view); - } - - private void validateTransactionListDisplayed(){ - Fragment fragment = getActivity().getCurrentPagerFragment(); - assertNotNull(fragment); - } - - private int getTranscationCount(){ - TransactionsDbAdapter transactionsDb = new TransactionsDbAdapter(getActivity()); - int count = transactionsDb.fetchAllTransactionsForAccount(DUMMY_ACCOUNT_UID).getCount(); - transactionsDb.close(); - return count; - } - - private void validateNewTransactionFields(){ - String expectedValue = TransactionFormFragment.DATE_FORMATTER.format(new Date(mTransactionTimeMillis)); - TextView dateView = (TextView) mSolo.getView(R.id.input_date); - String actualValue = dateView.getText().toString(); - assertEquals(expectedValue, actualValue); - - expectedValue = TransactionFormFragment.TIME_FORMATTER.format(new Date(mTransactionTimeMillis)); - TextView timeView = (TextView) mSolo.getView(R.id.input_time); - actualValue = timeView.getText().toString(); - assertEquals(expectedValue, actualValue); - - } - - public void testAddTransactionShouldRequireAmount(){ - mSolo.waitForText(TRANSACTION_NAME); - validateTransactionListDisplayed(); - - TransactionsDbAdapter adapter = new TransactionsDbAdapter(getActivity()); - int beforeCount = adapter.getTransactionsCount(adapter.getAccountID(DUMMY_ACCOUNT_UID)); - clickSherlockActionBarItem(R.id.menu_add_transaction); - mSolo.waitForText("Description"); - mSolo.enterText(0, "Lunch"); - - clickSherlockActionBarItem(R.id.menu_save); - String toastAmountRequired = getActivity().getString(R.string.toast_transanction_amount_required); - boolean toastFound = mSolo.waitForText(toastAmountRequired); - assertTrue(toastFound); - - int afterCount = adapter.getTransactionsCount(adapter.getAccountID(DUMMY_ACCOUNT_UID)); - assertEquals(beforeCount, afterCount); - - adapter.close(); - mSolo.goBack(); - } - - private void validateEditTransactionFields(Transaction transaction){ - - String name = ((EditText)mSolo.getView(R.id.input_transaction_name)).getText().toString(); - assertEquals(transaction.getDescription(), name); - - EditText amountEdittext = (EditText) mSolo.getView(R.id.input_transaction_amount); - String amountString = amountEdittext.getText().toString(); - NumberFormat formatter = NumberFormat.getInstance(); - try { - amountString = formatter.parse(amountString).toString(); - } catch (ParseException e) { - e.printStackTrace(); - } - Money amount = new Money(amountString, Currency.getInstance(Locale.getDefault()).getCurrencyCode()); - assertEquals(transaction.getBalance(DUMMY_ACCOUNT_UID), amount); - - EditText notesEditText = (EditText) mSolo.getView(R.id.input_description); - String transactionNotes = notesEditText.getText().toString(); - assertEquals(transaction.getNote(), transactionNotes); - - String expectedValue = TransactionFormFragment.DATE_FORMATTER.format(transaction.getTimeMillis()); - TextView dateView = (TextView) mSolo.getView(R.id.input_date); - String actualValue = dateView.getText().toString(); //mSolo.getText(6).getText().toString(); - assertEquals(expectedValue, actualValue); - - expectedValue = TransactionFormFragment.TIME_FORMATTER.format(transaction.getTimeMillis()); - TextView timeView = (TextView) mSolo.getView(R.id.input_time); - actualValue = timeView.getText().toString();// mSolo.getText(7).getText().toString(); - assertEquals(expectedValue, actualValue); - } - - public void testAddTransaction(){ - setDoubleEntryEnabled(true); - mSolo.waitForText(TRANSACTION_NAME); - - validateTransactionListDisplayed(); - clickSherlockActionBarItem(R.id.menu_add_transaction); - - mSolo.waitForText("New transaction"); - - //validate creation of transaction - mSolo.enterText(0, "Lunch"); - mSolo.enterText(1, "899"); - - TransactionTypeToggleButton typeToggleButton = (TransactionTypeToggleButton) mSolo.getView(R.id.input_transaction_type); - String text = typeToggleButton.getText().toString(); - - assertTrue(mSolo.searchToggleButton(text)); - if (!mSolo.isToggleButtonChecked(0)){ - mSolo.clickOnToggleButton(text); - } - - //check that the amount is correctly converted in the input field - String value = mSolo.getEditText(1).getText().toString(); - String expectedValue = NumberFormat.getInstance().format(-8.99); - assertEquals(expectedValue, value); - - int transactionsCount = getTranscationCount(); - -// clickSherlockActionBarItem(R.id.menu_save); - mSolo.clickOnActionBarItem(R.id.menu_save); - - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - validateTransactionListDisplayed(); - - mSolo.sleep(1000); - - TransactionsDbAdapter transactionsDbAdapter = new TransactionsDbAdapter(getActivity()); - List transactions = transactionsDbAdapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); - assertEquals(2, transactions.size()); - Transaction transaction = transactions.get(0); - - assertEquals(2, transaction.getSplits().size()); - Split split = transaction.getSplits(TRANSFER_ACCOUNT_UID).get(0); - //the main account is a CASH account which has debit normal type, so a negative value means actually CREDIT - //so the other side of the split has to be a debit - assertEquals(TransactionType.DEBIT, split.getType()); - assertEquals(transactionsCount + 1, getTranscationCount()); - - transactionsDbAdapter.close(); - } - - public void testEditTransaction(){ - //open transactions - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - validateTransactionListDisplayed(); - - mSolo.clickOnText(TRANSACTION_NAME); - mSolo.waitForText("Note"); - - validateEditTransactionFields(mTransaction); - - mSolo.enterText(0, "Pasta"); - clickSherlockActionBarItem(R.id.menu_save); - - //if we see the text, then it was successfully created - mSolo.waitForText("Pasta"); - } - - private void setDoubleEntryEnabled(boolean enabled){ - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); - Editor editor = prefs.edit(); - editor.putBoolean(getActivity().getString(R.string.key_use_double_entry), enabled); - editor.commit(); - } - - public void testDefaultTransactionType(){ - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); - Editor editor = prefs.edit(); - editor.putString(getActivity().getString(R.string.key_default_transaction_type), "CREDIT"); - editor.commit(); - - clickSherlockActionBarItem(R.id.menu_add_transaction); - mSolo.waitForText(getActivity().getString(R.string.label_transaction_name)); - - ToggleButton transactionTypeButton = (ToggleButton) mSolo.getButton(0); - assertThat(transactionTypeButton).isChecked(); - - clickSherlockActionBarItem(R.id.menu_cancel); - - //now validate the other case - editor = prefs.edit(); - editor.putString(getActivity().getString(R.string.key_default_transaction_type), "DEBIT"); - editor.commit(); - - clickSherlockActionBarItem(R.id.menu_add_transaction); - mSolo.waitForText(getActivity().getString(R.string.label_transaction_name)); - - transactionTypeButton = (ToggleButton) mSolo.getButton(0); - assertThat(transactionTypeButton).isNotChecked(); - clickSherlockActionBarItem(R.id.menu_cancel); - mSolo.goBack(); - } - - public void testToggleTransactionType(){ - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - validateTransactionListDisplayed(); - mSolo.clickOnText(TRANSACTION_NAME); - mSolo.waitForText(getActivity().getString(R.string.title_edit_transaction)); - - validateEditTransactionFields(mTransaction); - - TransactionTypeToggleButton toggleButton = (TransactionTypeToggleButton) mSolo.getView(R.id.input_transaction_type); - assertThat(toggleButton).isVisible(); - - String label = toggleButton.getText().toString(); - assertTrue(mSolo.searchToggleButton(label)); - assertEquals(getActivity().getString(R.string.label_receive), label); - -// mSolo.clickOnButton(getActivity().getString(R.string.label_credit)); - mSolo.clickOnView(toggleButton); - String amountString = mSolo.getEditText(1).getText().toString(); - NumberFormat formatter = NumberFormat.getInstance(); - try { - amountString = formatter.parse(amountString).toString(); - } catch (ParseException e) { - e.printStackTrace(); - } - Money amount = new Money(amountString, Currency.getInstance(Locale.getDefault()).getCurrencyCode()); - assertEquals("-9.99", amount.toPlainString()); - - clickSherlockActionBarItem(R.id.menu_save); - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - TransactionsDbAdapter adapter = new TransactionsDbAdapter(getActivity()); - List transactions = adapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); - - assertEquals(1, transactions.size()); - Transaction trx = transactions.get(0); - assertTrue(trx.getBalance(DUMMY_ACCOUNT_UID).isNegative()); - - mSolo.goBack(); - } - - public void testOpenTransactionEditShouldNotModifyTransaction(){ - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - validateTransactionListDisplayed(); - - mSolo.clickOnText(TRANSACTION_NAME); - mSolo.waitForText("Edit transaction"); - - validateNewTransactionFields(); - - clickSherlockActionBarItem(R.id.menu_save); - - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - TransactionsDbAdapter adapter = new TransactionsDbAdapter(getActivity()); - List transactions = adapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); - - assertEquals(1, transactions.size()); - Transaction trx = transactions.get(0); - assertEquals(TRANSACTION_NAME, trx.getDescription()); - Date expectedDate = new Date(mTransactionTimeMillis); - Date trxDate = new Date(trx.getTimeMillis()); - assertEquals(TransactionFormFragment.DATE_FORMATTER.format(expectedDate), - TransactionFormFragment.DATE_FORMATTER.format(trxDate)); - assertEquals(TransactionFormFragment.TIME_FORMATTER.format(expectedDate), - TransactionFormFragment.TIME_FORMATTER.format(trxDate)); - - //FIXME: for some reason, the expected time is higher (in the future) than the actual time - //this should not be the case since the transaction was created with the expected time - //I guess it has to do with the time precision and the fact that the time is repeatedly - //converted to Date objects and back. But just validating the printable date and time should be ok - // assertEquals(mTransactionTimeMillis, trx.getTimeMillis()); - } - - public void testDeleteTransaction(){ - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - mSolo.clickOnCheckBox(0); -// mSolo.clickOnActionBarItem(R.id.context_menu_delete); - clickSherlockActionBarItem(R.id.context_menu_delete); - - mSolo.sleep(500); - TransactionsDbAdapter adapter = new TransactionsDbAdapter(getInstrumentation().getTargetContext()); - long id = adapter.getAccountID(DUMMY_ACCOUNT_UID); - assertEquals(0, adapter.getTransactionsCount(id)); - - adapter.close(); - - } - - public void testBulkMoveTransactions(){ - String targetAccountName = "Target"; - Account account = new Account(targetAccountName); - account.setCurrency(Currency.getInstance(Locale.getDefault())); - AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); - accountsDbAdapter.addAccount(account); - - int beforeOriginCount = accountsDbAdapter.getAccount(DUMMY_ACCOUNT_UID).getTransactionCount(); - - mSolo.waitForText(DUMMY_ACCOUNT_NAME); - - validateTransactionListDisplayed(); - - mSolo.clickOnCheckBox(0); - mSolo.waitForText(getActivity().getString(R.string.title_selected, 1)); - //initiate bulk move - clickSherlockActionBarItem(R.id.context_menu_move_transactions); - - mSolo.waitForDialogToClose(2000); - - Spinner spinner = mSolo.getCurrentViews(Spinner.class).get(0); - mSolo.clickOnView(spinner); - mSolo.sleep(500); - mSolo.clickOnText(targetAccountName); - mSolo.clickOnButton(1); -// mSolo.clickOnText(getActivity().getString(R.string.btn_move)); - - mSolo.waitForDialogToClose(2000); - - int targetCount = accountsDbAdapter.getAccount(account.getUID()).getTransactionCount(); - assertEquals(1, targetCount); - - int afterOriginCount = accountsDbAdapter.getAccount(DUMMY_ACCOUNT_UID).getTransactionCount(); - assertEquals(beforeOriginCount-1, afterOriginCount); - - accountsDbAdapter.close(); - - } - - public void testLegacyIntentTransactionRecording(){ - final Context context = getInstrumentation().getTargetContext(); - TransactionsDbAdapter trxnAdapter = new TransactionsDbAdapter(context); - int beforeCount = trxnAdapter.getTransactionsCount(DUMMY_ACCOUNT_UID); - - Intent transactionIntent = new Intent(Intent.ACTION_INSERT); - transactionIntent.setType(Transaction.MIME_TYPE); - transactionIntent.putExtra(Intent.EXTRA_TITLE, "Power intents"); - transactionIntent.putExtra(Intent.EXTRA_TEXT, "Intents for sale"); - transactionIntent.putExtra(Transaction.EXTRA_AMOUNT, new BigDecimal(4.99)); - transactionIntent.putExtra(Transaction.EXTRA_ACCOUNT_UID, DUMMY_ACCOUNT_UID); - transactionIntent.putExtra(Transaction.EXTRA_TRANSACTION_TYPE, TransactionType.DEBIT.name()); - - context.sendBroadcast(transactionIntent); - - mSolo.sleep(2000); - - int afterCount = trxnAdapter.getTransactionsCount(DUMMY_ACCOUNT_UID); - - assertEquals(beforeCount + 1, afterCount); - - List transactions = trxnAdapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); - - for (Transaction transaction : transactions) { - if (transaction.getDescription().equals("Power intents")){ - assertEquals("Intents for sale", transaction.getNote()); - assertEquals(4.99, transaction.getBalance(DUMMY_ACCOUNT_UID).asDouble()); - } - } - - trxnAdapter.close(); - } - - @Override - protected void tearDown() throws Exception { - AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); - adapter.deleteAllRecords(); - adapter.close(); - - mSolo.finishOpenedActivities(); - - super.tearDown(); - } -} +/* + * Copyright (c) 2012 Ngewi Fet + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.gnucash.android.test.ui; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; +import android.preference.PreferenceManager; +import android.support.v4.app.Fragment; +import android.test.ActivityInstrumentationTestCase2; +import android.view.View; +import android.widget.*; +import com.robotium.solo.Solo; +import org.gnucash.android.R; +import org.gnucash.android.db.AccountsDbAdapter; +import org.gnucash.android.db.TransactionsDbAdapter; +import org.gnucash.android.model.*; +import org.gnucash.android.ui.UxArgument; +import org.gnucash.android.ui.transaction.TransactionFormFragment; +import org.gnucash.android.ui.transaction.TransactionsActivity; +import org.gnucash.android.ui.transaction.TransactionsListFragment; +import org.gnucash.android.ui.util.TransactionTypeToggleButton; + +import java.math.BigDecimal; +import java.text.NumberFormat; +import java.text.ParseException; +import java.util.Currency; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +import static org.fest.assertions.api.ANDROID.assertThat; + +public class TransactionsActivityTest extends + ActivityInstrumentationTestCase2 { + private static final String TRANSACTION_AMOUNT = "9.99"; + private static final String TRANSACTION_NAME = "Pizza"; + private static final String DUMMY_ACCOUNT_UID = "transactions-account"; + private static final String DUMMY_ACCOUNT_NAME = "Transactions Account"; + + private static final String TRANSFER_ACCOUNT_NAME = "Transfer account"; + private static final String TRANSFER_ACCOUNT_UID = "transfer_account"; + public static final String CURRENCY_CODE = "USD"; + + private Solo mSolo; + private Transaction mTransaction; + private long mTransactionTimeMillis; + + public TransactionsActivityTest() { + super(TransactionsActivity.class); + } + + @Override + protected void setUp() throws Exception { + mTransactionTimeMillis = System.currentTimeMillis(); + Account account = new Account(DUMMY_ACCOUNT_NAME); + account.setUID(DUMMY_ACCOUNT_UID); + account.setCurrency(Currency.getInstance(CURRENCY_CODE)); + + Account account2 = new Account(TRANSFER_ACCOUNT_NAME); + account2.setUID(TRANSFER_ACCOUNT_UID); + account2.setCurrency(Currency.getInstance(CURRENCY_CODE)); + + mTransaction = new Transaction(TRANSACTION_NAME); + mTransaction.setNote("What up?"); + mTransaction.setTime(mTransactionTimeMillis); + Split split = new Split(new Money(TRANSACTION_AMOUNT, CURRENCY_CODE), DUMMY_ACCOUNT_UID); + split.setType(TransactionType.DEBIT); + + mTransaction.addSplit(split); + mTransaction.addSplit(split.createPair(TRANSFER_ACCOUNT_UID)); + account.addTransaction(mTransaction); + + Context context = getInstrumentation().getTargetContext(); + AccountsDbAdapter adapter = new AccountsDbAdapter(context); + long id1 = adapter.addAccount(account); + long id2 = adapter.addAccount(account2); + + adapter.close(); + assertTrue(id1 > 0); + assertTrue(id2 > 0); + + Intent intent = new Intent(Intent.ACTION_VIEW); + intent.putExtra(UxArgument.SELECTED_ACCOUNT_UID, DUMMY_ACCOUNT_UID); + setActivityIntent(intent); + + mSolo = new Solo(getInstrumentation(), getActivity()); + } + + /** + * Finds a view in the action bar and clicks it, since the native methods are not supported by ActionBarSherlock + * @param id + */ + private void clickSherlockActionBarItem(int id){ + View view = mSolo.getView(id); + mSolo.clickOnView(view); + } + + private void validateTransactionListDisplayed(){ + Fragment fragment = getActivity().getCurrentPagerFragment(); + assertNotNull(fragment); + } + + private int getTranscationCount(){ + TransactionsDbAdapter transactionsDb = new TransactionsDbAdapter(getActivity()); + int count = transactionsDb.fetchAllTransactionsForAccount(DUMMY_ACCOUNT_UID).getCount(); + transactionsDb.close(); + return count; + } + + private void validateNewTransactionFields(){ + String expectedValue = TransactionFormFragment.DATE_FORMATTER.format(new Date(mTransactionTimeMillis)); + TextView dateView = (TextView) mSolo.getView(R.id.input_date); + String actualValue = dateView.getText().toString(); + assertEquals(expectedValue, actualValue); + + expectedValue = TransactionFormFragment.TIME_FORMATTER.format(new Date(mTransactionTimeMillis)); + TextView timeView = (TextView) mSolo.getView(R.id.input_time); + actualValue = timeView.getText().toString(); + assertEquals(expectedValue, actualValue); + + } + + public void testAddTransactionShouldRequireAmount(){ + mSolo.waitForText(TRANSACTION_NAME); + validateTransactionListDisplayed(); + + TransactionsDbAdapter adapter = new TransactionsDbAdapter(getActivity()); + int beforeCount = adapter.getTransactionsCount(adapter.getAccountID(DUMMY_ACCOUNT_UID)); + clickSherlockActionBarItem(R.id.menu_add_transaction); + mSolo.waitForText("Description"); + mSolo.enterText(0, "Lunch"); + + clickSherlockActionBarItem(R.id.menu_save); + String toastAmountRequired = getActivity().getString(R.string.toast_transanction_amount_required); + boolean toastFound = mSolo.waitForText(toastAmountRequired); + assertTrue(toastFound); + + int afterCount = adapter.getTransactionsCount(adapter.getAccountID(DUMMY_ACCOUNT_UID)); + assertEquals(beforeCount, afterCount); + + adapter.close(); + mSolo.goBack(); + } + + private void validateEditTransactionFields(Transaction transaction){ + + String name = ((EditText)mSolo.getView(R.id.input_transaction_name)).getText().toString(); + assertEquals(transaction.getDescription(), name); + + EditText amountEdittext = (EditText) mSolo.getView(R.id.input_transaction_amount); + String amountString = amountEdittext.getText().toString(); + NumberFormat formatter = NumberFormat.getInstance(); + try { + amountString = formatter.parse(amountString).toString(); + } catch (ParseException e) { + e.printStackTrace(); + } + Money amount = new Money(amountString, Currency.getInstance(Locale.getDefault()).getCurrencyCode()); + assertEquals(transaction.getBalance(DUMMY_ACCOUNT_UID), amount); + + EditText notesEditText = (EditText) mSolo.getView(R.id.input_description); + String transactionNotes = notesEditText.getText().toString(); + assertEquals(transaction.getNote(), transactionNotes); + + String expectedValue = TransactionFormFragment.DATE_FORMATTER.format(transaction.getTimeMillis()); + TextView dateView = (TextView) mSolo.getView(R.id.input_date); + String actualValue = dateView.getText().toString(); //mSolo.getText(6).getText().toString(); + assertEquals(expectedValue, actualValue); + + expectedValue = TransactionFormFragment.TIME_FORMATTER.format(transaction.getTimeMillis()); + TextView timeView = (TextView) mSolo.getView(R.id.input_time); + actualValue = timeView.getText().toString();// mSolo.getText(7).getText().toString(); + assertEquals(expectedValue, actualValue); + } + + public void testAddTransaction(){ + setDoubleEntryEnabled(true); + mSolo.waitForText(TRANSACTION_NAME); + + validateTransactionListDisplayed(); + clickSherlockActionBarItem(R.id.menu_add_transaction); + + mSolo.waitForText("New transaction"); + + //validate creation of transaction + mSolo.enterText(0, "Lunch"); + mSolo.enterText(1, "899"); + + TransactionTypeToggleButton typeToggleButton = (TransactionTypeToggleButton) mSolo.getView(R.id.input_transaction_type); + String text = typeToggleButton.getText().toString(); + + assertTrue(mSolo.searchToggleButton(text)); + if (!mSolo.isToggleButtonChecked(0)){ + mSolo.clickOnToggleButton(text); + } + + //check that the amount is correctly converted in the input field + String value = mSolo.getEditText(1).getText().toString(); + String expectedValue = NumberFormat.getInstance().format(-8.99); + assertEquals(expectedValue, value); + + int transactionsCount = getTranscationCount(); + +// clickSherlockActionBarItem(R.id.menu_save); + mSolo.clickOnActionBarItem(R.id.menu_save); + + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + validateTransactionListDisplayed(); + + mSolo.sleep(1000); + + TransactionsDbAdapter transactionsDbAdapter = new TransactionsDbAdapter(getActivity()); + List transactions = transactionsDbAdapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); + assertEquals(2, transactions.size()); + Transaction transaction = transactions.get(0); + + assertEquals(2, transaction.getSplits().size()); + Split split = transaction.getSplits(TRANSFER_ACCOUNT_UID).get(0); + //the main account is a CASH account which has debit normal type, so a negative value means actually CREDIT + //so the other side of the split has to be a debit + assertEquals(TransactionType.DEBIT, split.getType()); + assertEquals(transactionsCount + 1, getTranscationCount()); + + transactionsDbAdapter.close(); + } + + public void testEditTransaction(){ + //open transactions + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + validateTransactionListDisplayed(); + + mSolo.clickOnText(TRANSACTION_NAME); + mSolo.waitForText("Note"); + + validateEditTransactionFields(mTransaction); + + mSolo.enterText(0, "Pasta"); + clickSherlockActionBarItem(R.id.menu_save); + + //if we see the text, then it was successfully created + mSolo.waitForText("Pasta"); + } + + private void setDoubleEntryEnabled(boolean enabled){ + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + Editor editor = prefs.edit(); + editor.putBoolean(getActivity().getString(R.string.key_use_double_entry), enabled); + editor.commit(); + } + + public void testDefaultTransactionType(){ + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); + Editor editor = prefs.edit(); + editor.putString(getActivity().getString(R.string.key_default_transaction_type), "CREDIT"); + editor.commit(); + + clickSherlockActionBarItem(R.id.menu_add_transaction); + mSolo.waitForText(getActivity().getString(R.string.label_transaction_name)); + + ToggleButton transactionTypeButton = (ToggleButton) mSolo.getButton(0); + assertThat(transactionTypeButton).isChecked(); + + clickSherlockActionBarItem(R.id.menu_cancel); + + //now validate the other case + editor = prefs.edit(); + editor.putString(getActivity().getString(R.string.key_default_transaction_type), "DEBIT"); + editor.commit(); + + clickSherlockActionBarItem(R.id.menu_add_transaction); + mSolo.waitForText(getActivity().getString(R.string.label_transaction_name)); + + transactionTypeButton = (ToggleButton) mSolo.getButton(0); + assertThat(transactionTypeButton).isNotChecked(); + clickSherlockActionBarItem(R.id.menu_cancel); + mSolo.goBack(); + } + + public void testToggleTransactionType(){ + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + validateTransactionListDisplayed(); + mSolo.clickOnText(TRANSACTION_NAME); + mSolo.waitForText(getActivity().getString(R.string.title_edit_transaction)); + + validateEditTransactionFields(mTransaction); + + TransactionTypeToggleButton toggleButton = (TransactionTypeToggleButton) mSolo.getView(R.id.input_transaction_type); + assertThat(toggleButton).isVisible(); + + String label = toggleButton.getText().toString(); + assertTrue(mSolo.searchToggleButton(label)); + assertEquals(getActivity().getString(R.string.label_receive), label); + +// mSolo.clickOnButton(getActivity().getString(R.string.label_credit)); + mSolo.clickOnView(toggleButton); + String amountString = mSolo.getEditText(1).getText().toString(); + NumberFormat formatter = NumberFormat.getInstance(); + try { + amountString = formatter.parse(amountString).toString(); + } catch (ParseException e) { + e.printStackTrace(); + } + Money amount = new Money(amountString, Currency.getInstance(Locale.getDefault()).getCurrencyCode()); + assertEquals("-9.99", amount.toPlainString()); + + clickSherlockActionBarItem(R.id.menu_save); + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + TransactionsDbAdapter adapter = new TransactionsDbAdapter(getActivity()); + List transactions = adapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); + + assertEquals(1, transactions.size()); + Transaction trx = transactions.get(0); + assertTrue(trx.getBalance(DUMMY_ACCOUNT_UID).isNegative()); + + mSolo.goBack(); + } + + public void testOpenTransactionEditShouldNotModifyTransaction(){ + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + validateTransactionListDisplayed(); + + mSolo.clickOnText(TRANSACTION_NAME); + mSolo.waitForText("Edit transaction"); + + validateNewTransactionFields(); + + clickSherlockActionBarItem(R.id.menu_save); + + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + TransactionsDbAdapter adapter = new TransactionsDbAdapter(getActivity()); + List transactions = adapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); + + assertEquals(1, transactions.size()); + Transaction trx = transactions.get(0); + assertEquals(TRANSACTION_NAME, trx.getDescription()); + Date expectedDate = new Date(mTransactionTimeMillis); + Date trxDate = new Date(trx.getTimeMillis()); + assertEquals(TransactionFormFragment.DATE_FORMATTER.format(expectedDate), + TransactionFormFragment.DATE_FORMATTER.format(trxDate)); + assertEquals(TransactionFormFragment.TIME_FORMATTER.format(expectedDate), + TransactionFormFragment.TIME_FORMATTER.format(trxDate)); + + //FIXME: for some reason, the expected time is higher (in the future) than the actual time + //this should not be the case since the transaction was created with the expected time + //I guess it has to do with the time precision and the fact that the time is repeatedly + //converted to Date objects and back. But just validating the printable date and time should be ok + // assertEquals(mTransactionTimeMillis, trx.getTimeMillis()); + } + + public void testDeleteTransaction(){ + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + mSolo.clickOnCheckBox(0); +// mSolo.clickOnActionBarItem(R.id.context_menu_delete); + clickSherlockActionBarItem(R.id.context_menu_delete); + + mSolo.sleep(500); + TransactionsDbAdapter adapter = new TransactionsDbAdapter(getInstrumentation().getTargetContext()); + long id = adapter.getAccountID(DUMMY_ACCOUNT_UID); + assertEquals(0, adapter.getTransactionsCount(id)); + + adapter.close(); + + } + + public void testBulkMoveTransactions(){ + String targetAccountName = "Target"; + Account account = new Account(targetAccountName); + account.setCurrency(Currency.getInstance(Locale.getDefault())); + AccountsDbAdapter accountsDbAdapter = new AccountsDbAdapter(getActivity()); + accountsDbAdapter.addAccount(account); + + int beforeOriginCount = accountsDbAdapter.getAccount(DUMMY_ACCOUNT_UID).getTransactionCount(); + + mSolo.waitForText(DUMMY_ACCOUNT_NAME); + + validateTransactionListDisplayed(); + + mSolo.clickOnCheckBox(0); + mSolo.waitForText(getActivity().getString(R.string.title_selected, 1)); + //initiate bulk move + clickSherlockActionBarItem(R.id.context_menu_move_transactions); + + mSolo.waitForDialogToClose(2000); + + Spinner spinner = mSolo.getCurrentViews(Spinner.class).get(0); + mSolo.clickOnView(spinner); + mSolo.sleep(500); + mSolo.clickOnText(targetAccountName); + mSolo.clickOnButton(1); +// mSolo.clickOnText(getActivity().getString(R.string.btn_move)); + + mSolo.waitForDialogToClose(2000); + + int targetCount = accountsDbAdapter.getAccount(account.getUID()).getTransactionCount(); + assertEquals(1, targetCount); + + int afterOriginCount = accountsDbAdapter.getAccount(DUMMY_ACCOUNT_UID).getTransactionCount(); + assertEquals(beforeOriginCount-1, afterOriginCount); + + accountsDbAdapter.close(); + + } + + public void testLegacyIntentTransactionRecording(){ + final Context context = getInstrumentation().getTargetContext(); + TransactionsDbAdapter trxnAdapter = new TransactionsDbAdapter(context); + int beforeCount = trxnAdapter.getTransactionsCount(DUMMY_ACCOUNT_UID); + + Intent transactionIntent = new Intent(Intent.ACTION_INSERT); + transactionIntent.setType(Transaction.MIME_TYPE); + transactionIntent.putExtra(Intent.EXTRA_TITLE, "Power intents"); + transactionIntent.putExtra(Intent.EXTRA_TEXT, "Intents for sale"); + transactionIntent.putExtra(Transaction.EXTRA_AMOUNT, new BigDecimal(4.99)); + transactionIntent.putExtra(Transaction.EXTRA_ACCOUNT_UID, DUMMY_ACCOUNT_UID); + transactionIntent.putExtra(Transaction.EXTRA_TRANSACTION_TYPE, TransactionType.DEBIT.name()); + + context.sendBroadcast(transactionIntent); + + mSolo.sleep(2000); + + int afterCount = trxnAdapter.getTransactionsCount(DUMMY_ACCOUNT_UID); + + assertEquals(beforeCount + 1, afterCount); + + List transactions = trxnAdapter.getAllTransactionsForAccount(DUMMY_ACCOUNT_UID); + + for (Transaction transaction : transactions) { + if (transaction.getDescription().equals("Power intents")){ + assertEquals("Intents for sale", transaction.getNote()); + assertEquals(4.99, transaction.getBalance(DUMMY_ACCOUNT_UID).asDouble()); + } + } + + trxnAdapter.close(); + } + + @Override + protected void tearDown() throws Exception { + AccountsDbAdapter adapter = new AccountsDbAdapter(getActivity()); + adapter.deleteAllRecords(); + adapter.close(); + + mSolo.finishOpenedActivities(); + + super.tearDown(); + } +} diff --git a/integration-tests/src/org/gnucash/android/test/unit/AccountTest.java b/integration-tests/src/main/java/org/gnucash/android/test/unit/AccountTest.java similarity index 100% rename from integration-tests/src/org/gnucash/android/test/unit/AccountTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/unit/AccountTest.java diff --git a/integration-tests/src/org/gnucash/android/test/unit/MoneyTest.java b/integration-tests/src/main/java/org/gnucash/android/test/unit/MoneyTest.java similarity index 100% rename from integration-tests/src/org/gnucash/android/test/unit/MoneyTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/unit/MoneyTest.java diff --git a/integration-tests/src/org/gnucash/android/test/unit/TransactionTest.java b/integration-tests/src/main/java/org/gnucash/android/test/unit/TransactionTest.java similarity index 100% rename from integration-tests/src/org/gnucash/android/test/unit/TransactionTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/unit/TransactionTest.java diff --git a/integration-tests/src/org/gnucash/android/test/util/ActionBarUtils.java b/integration-tests/src/main/java/org/gnucash/android/test/util/ActionBarUtils.java similarity index 100% rename from integration-tests/src/org/gnucash/android/test/util/ActionBarUtils.java rename to integration-tests/src/main/java/org/gnucash/android/test/util/ActionBarUtils.java diff --git a/integration-tests/res/drawable-hdpi/ic_launcher.png b/integration-tests/src/main/res/drawable-hdpi/ic_launcher.png similarity index 100% rename from integration-tests/res/drawable-hdpi/ic_launcher.png rename to integration-tests/src/main/res/drawable-hdpi/ic_launcher.png diff --git a/integration-tests/res/drawable-ldpi/ic_launcher.png b/integration-tests/src/main/res/drawable-ldpi/ic_launcher.png similarity index 100% rename from integration-tests/res/drawable-ldpi/ic_launcher.png rename to integration-tests/src/main/res/drawable-ldpi/ic_launcher.png diff --git a/integration-tests/res/drawable-mdpi/ic_launcher.png b/integration-tests/src/main/res/drawable-mdpi/ic_launcher.png similarity index 100% rename from integration-tests/res/drawable-mdpi/ic_launcher.png rename to integration-tests/src/main/res/drawable-mdpi/ic_launcher.png diff --git a/integration-tests/res/drawable-xhdpi/ic_launcher.png b/integration-tests/src/main/res/drawable-xhdpi/ic_launcher.png similarity index 100% rename from integration-tests/res/drawable-xhdpi/ic_launcher.png rename to integration-tests/src/main/res/drawable-xhdpi/ic_launcher.png diff --git a/integration-tests/res/layout/main.xml b/integration-tests/src/main/res/layout/main.xml similarity index 100% rename from integration-tests/res/layout/main.xml rename to integration-tests/src/main/res/layout/main.xml diff --git a/integration-tests/res/values/strings.xml b/integration-tests/src/main/res/values/strings.xml similarity index 100% rename from integration-tests/res/values/strings.xml rename to integration-tests/src/main/res/values/strings.xml diff --git a/pom.xml b/pom.xml index 5fc8a0a85..79b5421ab 100644 --- a/pom.xml +++ b/pom.xml @@ -32,15 +32,16 @@ UTF-8 4.1.1.4 + 4.1.1 - com.jayway.maven.plugins.android.generation2 + com.simpligility.maven.plugins android-maven-plugin - 3.6.0 + ${android.maven.plugin.version} true From 5d13458052bb00166a470d30aa6610205f0b829b Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Mon, 9 Feb 2015 18:13:24 +0100 Subject: [PATCH 04/10] Fixed: crash when deleting scheduled transactions --- .../java/org/gnucash/android/db/TransactionsDbAdapter.java | 1 + app/src/main/java/org/gnucash/android/model/Split.java | 2 +- .../main/java/org/gnucash/android/model/Transaction.java | 7 ++++++- .../ui/transaction/ScheduledTransactionsListFragment.java | 3 ++- .../android/ui/transaction/TransactionFormFragment.java | 2 +- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java index ff7be8604..143a4b0d5 100644 --- a/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java +++ b/app/src/main/java/org/gnucash/android/db/TransactionsDbAdapter.java @@ -464,6 +464,7 @@ public String getUID(long transactionId){ @Override public boolean deleteRecord(long rowId){ Log.d(TAG, "Delete transaction with record Id: " + rowId); + //the splits db adapter handles deletion of the transaction return mSplitsDbAdapter.deleteSplitsForTransaction(rowId); } diff --git a/app/src/main/java/org/gnucash/android/model/Split.java b/app/src/main/java/org/gnucash/android/model/Split.java index 3a11e1c32..f83435457 100644 --- a/app/src/main/java/org/gnucash/android/model/Split.java +++ b/app/src/main/java/org/gnucash/android/model/Split.java @@ -164,7 +164,7 @@ public String toString() { * @return */ public String toCsv(){ - String splitString = mAmount.toString() + ";" + mAmount.getCurrency().getCurrencyCode() + ";" + String splitString = mAmount.asString() + ";" + mAmount.getCurrency().getCurrencyCode() + ";" + mAccountUID + ";" + mSplitType.name(); if (mMemo != null){ splitString = splitString + ";" + mMemo; diff --git a/app/src/main/java/org/gnucash/android/model/Transaction.java b/app/src/main/java/org/gnucash/android/model/Transaction.java index e993c9554..e6883ec41 100644 --- a/app/src/main/java/org/gnucash/android/model/Transaction.java +++ b/app/src/main/java/org/gnucash/android/model/Transaction.java @@ -139,10 +139,15 @@ public Transaction(Transaction transaction, boolean generateNewUID){ initDefaults(); setDescription(transaction.getDescription()); setNote(transaction.getNote()); + setTime(transaction.getTimeMillis()); + mCurrencyCode = transaction.mCurrencyCode; + mRecurrencePeriod = transaction.mRecurrencePeriod; + //exported flag is left at default value of false + for (Split split : transaction.mSplitList) { addSplit(new Split(split, true)); } - setTime(transaction.getTimeMillis()); + if (!generateNewUID){ setUID(transaction.getUID()); } diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java index 005a8e92e..3d58bb4a5 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/ScheduledTransactionsListFragment.java @@ -112,9 +112,10 @@ public boolean onActionItemClicked(ActionMode mode, MenuItem item) { Toast.makeText(getActivity(), R.string.toast_recurring_transaction_deleted, Toast.LENGTH_SHORT).show(); } } - refreshList(); mode.finish(); WidgetConfigurationActivity.updateAllWidgets(getActivity()); + getLoaderManager().destroyLoader(0); + refreshList(); return true; default: diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java index f2d28c3a1..ba36be527 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java @@ -861,7 +861,7 @@ public AmountTextWatcher(EditText amountInput) { @Override public void afterTextChanged(Editable s) { String value = s.toString(); - if (mTransactionTypeButton.isChecked()){ + if (value.length() > 0 && mTransactionTypeButton.isChecked()){ if (s.charAt(0) != '-'){ s = Editable.Factory.getInstance().newEditable("-" + value); } From a6ed26e1c35611fd44d0ea7d2af1e0b7600a0547 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Mon, 9 Feb 2015 18:21:28 +0100 Subject: [PATCH 05/10] Renamed model unit tests package --- .../org/gnucash/android/test/{unit => model}/AccountTest.java | 2 +- .../org/gnucash/android/test/{unit => model}/MoneyTest.java | 2 +- .../gnucash/android/test/{unit => model}/TransactionTest.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename integration-tests/src/main/java/org/gnucash/android/test/{unit => model}/AccountTest.java (94%) rename integration-tests/src/main/java/org/gnucash/android/test/{unit => model}/MoneyTest.java (99%) rename integration-tests/src/main/java/org/gnucash/android/test/{unit => model}/TransactionTest.java (78%) diff --git a/integration-tests/src/main/java/org/gnucash/android/test/unit/AccountTest.java b/integration-tests/src/main/java/org/gnucash/android/test/model/AccountTest.java similarity index 94% rename from integration-tests/src/main/java/org/gnucash/android/test/unit/AccountTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/model/AccountTest.java index c6421e1d5..3979d927b 100644 --- a/integration-tests/src/main/java/org/gnucash/android/test/unit/AccountTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/model/AccountTest.java @@ -1,4 +1,4 @@ -package org.gnucash.android.test.unit; +package org.gnucash.android.test.model; import org.gnucash.android.model.Account; diff --git a/integration-tests/src/main/java/org/gnucash/android/test/unit/MoneyTest.java b/integration-tests/src/main/java/org/gnucash/android/test/model/MoneyTest.java similarity index 99% rename from integration-tests/src/main/java/org/gnucash/android/test/unit/MoneyTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/model/MoneyTest.java index a8f836f91..bdf4a878a 100644 --- a/integration-tests/src/main/java/org/gnucash/android/test/unit/MoneyTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/model/MoneyTest.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.gnucash.android.test.unit; +package org.gnucash.android.test.model; import java.math.BigDecimal; import java.util.Currency; diff --git a/integration-tests/src/main/java/org/gnucash/android/test/unit/TransactionTest.java b/integration-tests/src/main/java/org/gnucash/android/test/model/TransactionTest.java similarity index 78% rename from integration-tests/src/main/java/org/gnucash/android/test/unit/TransactionTest.java rename to integration-tests/src/main/java/org/gnucash/android/test/model/TransactionTest.java index 62cec0548..27069a7e8 100644 --- a/integration-tests/src/main/java/org/gnucash/android/test/unit/TransactionTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/model/TransactionTest.java @@ -1,4 +1,4 @@ -package org.gnucash.android.test.unit; +package org.gnucash.android.test.model; import junit.framework.TestCase; From 2b05d008333a62d7cabe5fb5d971d8cbc8af9059 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Wed, 11 Feb 2015 11:27:00 +0100 Subject: [PATCH 06/10] Updated properties file and improved some tests --- app/project.properties | 5 +++-- .../org/gnucash/android/test/model/SplitTest.java | 11 +++++++++++ .../android/test/ui/ExportTransactionsTest.java | 2 +- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 integration-tests/src/main/java/org/gnucash/android/test/model/SplitTest.java diff --git a/app/project.properties b/app/project.properties index 81617486f..2325cfe94 100644 --- a/app/project.properties +++ b/app/project.properties @@ -11,6 +11,7 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-15 -android.library.reference.1=gen-external-apklibs/com.actionbarsherlock_actionbarsherlock_4.2.0 +target=android-16 +android.library.reference.1=gen-external-apklibs/com.actionbarsherlock_actionbarsherlock_4.4.0 +android.library.reference.2=gen-external-apklibs/com.viewpagerindicator_library_2.4.1 diff --git a/integration-tests/src/main/java/org/gnucash/android/test/model/SplitTest.java b/integration-tests/src/main/java/org/gnucash/android/test/model/SplitTest.java new file mode 100644 index 000000000..7fe017911 --- /dev/null +++ b/integration-tests/src/main/java/org/gnucash/android/test/model/SplitTest.java @@ -0,0 +1,11 @@ +package org.gnucash.android.test.model; + +import junit.framework.TestCase; + +/** + * Date: 09.02.2015 + * + * @author Ngewi + */ +public class SplitTest extends TestCase { +} diff --git a/integration-tests/src/main/java/org/gnucash/android/test/ui/ExportTransactionsTest.java b/integration-tests/src/main/java/org/gnucash/android/test/ui/ExportTransactionsTest.java index 511b8ed77..b137ec811 100644 --- a/integration-tests/src/main/java/org/gnucash/android/test/ui/ExportTransactionsTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/ui/ExportTransactionsTest.java @@ -84,7 +84,7 @@ public void testOfxExport(){ String filename = Exporter.buildExportFilename(ExportFormat.OFX); mSolo.waitForDialogToClose(2000); - mSolo.sleep(2000); + mSolo.sleep(5000); File file = new File(Environment.getExternalStorageDirectory() + "/gnucash/" + filename); From 7c4087c6d5f83bc51b5b6b2e08e807d128cd0838 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Wed, 11 Feb 2015 11:49:52 +0100 Subject: [PATCH 07/10] Fixed: transactions not saved when double-entry enabled but no transfer account specified Fixes #277 --- .../ui/transaction/TransactionFormFragment.java | 10 ++++++++-- .../android/test/ui/TransactionsActivityTest.java | 4 +++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java index ba36be527..0408d663c 100644 --- a/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/transaction/TransactionFormFragment.java @@ -742,8 +742,14 @@ public boolean onOptionsItemSelected(MenuItem item) { } else if (mAmountEditText.getText().length() == 0) { Toast.makeText(getActivity(), R.string.toast_transanction_amount_required, Toast.LENGTH_SHORT).show(); - } else - saveNewTransaction(); + } else if (mUseDoubleEntry && mDoubleAccountSpinner.getCount() == 0){ + //TODO: Or automatically create an imbalance account + Toast.makeText(getActivity(), + "Create & specify a transfer account OR disable double-entry in settings to save the transaction", + Toast.LENGTH_LONG).show(); + } else { + saveNewTransaction(); + } return true; default: diff --git a/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java b/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java index 34cadf8ec..5ad713caf 100644 --- a/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java +++ b/integration-tests/src/main/java/org/gnucash/android/test/ui/TransactionsActivityTest.java @@ -188,7 +188,9 @@ private void validateEditTransactionFields(Transaction transaction){ actualValue = timeView.getText().toString();// mSolo.getText(7).getText().toString(); assertEquals(expectedValue, actualValue); } - + + //TODO: Add test for only one account but with double-entry enabled + public void testAddTransaction(){ setDoubleEntryEnabled(true); mSolo.waitForText(TRANSACTION_NAME); From 0fdb76ce28dc08ea4f98b9543d3ac694e8526680 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Wed, 11 Feb 2015 11:59:11 +0100 Subject: [PATCH 08/10] Fixed: crash when creating TRADING accounts --- .../org/gnucash/android/ui/account/AccountFormFragment.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java b/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java index bca1a4026..82073aebd 100644 --- a/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java @@ -598,7 +598,7 @@ private String getAllowedParentAccountTypes(AccountType type) { case INCOME: case EXPENSE: - return "'" + AccountType.EXPENSE + "', '" + AccountType.INCOME + "'"; + return "'" + AccountType.EXPENSE.name() + "', '" + AccountType.INCOME.name() + "'"; case CASH: case BANK: @@ -618,6 +618,9 @@ private String getAllowedParentAccountTypes(AccountType type) { return "'" + TextUtils.join("','", accountTypeStrings) + "'"; } + case TRADING: + return "'" + AccountType.TRADING.name() + "'"; + case ROOT: default: return Arrays.toString(AccountType.values()).replaceAll("\\[|]", ""); From 8fd7813b9ea6a26ebc6ddd1bd4ff1390899cb9d8 Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Wed, 11 Feb 2015 12:20:18 +0100 Subject: [PATCH 09/10] Fixed: cyclic account hierarchies created by accounts setting parent to self --- .../org/gnucash/android/ui/account/AccountFormFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java b/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java index 82073aebd..186bd14fa 100644 --- a/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java +++ b/app/src/main/java/org/gnucash/android/ui/account/AccountFormFragment.java @@ -559,9 +559,9 @@ private void loadParentAccountList(AccountType accountType){ if (mAccount != null){ //if editing an account mDescendantAccountUIDs = mAccountsDbAdapter.getDescendantAccountUIDs(mAccount.getUID(), null, null); + mDescendantAccountUIDs.add(mAccountsDbAdapter.getGnuCashRootAccountUID()); // limit cyclic account hierarchies. - condition += " AND (" + DatabaseSchema.AccountEntry.COLUMN_PARENT_ACCOUNT_UID + " IS NULL " - + " OR " + DatabaseSchema.AccountEntry.COLUMN_UID + " NOT IN ( '" + condition += " AND (" + DatabaseSchema.AccountEntry.COLUMN_UID + " NOT IN ( '" + TextUtils.join("','", mDescendantAccountUIDs) + "','" + mAccountUID + "' ) )"; } From 0a134d1b59bc398a9f5cfca48e1d44ca3dd1839f Mon Sep 17 00:00:00 2001 From: Ngewi Fet Date: Wed, 11 Feb 2015 17:02:22 +0100 Subject: [PATCH 10/10] Updated strings for v1.5.4 release Fixed: crash when creating transactions --- CHANGELOG.md | 10 ++++++++++ CONTRIBUTORS | 3 ++- app/pom.xml | 2 +- app/project.properties | 2 +- app/src/main/AndroidManifest.xml | 4 ++-- .../android/ui/account/AccountFormFragment.java | 4 +++- app/src/main/res/values/strings.xml | 2 +- integration-tests/pom.xml | 2 +- integration-tests/project.properties | 2 +- integration-tests/src/main/AndroidManifest.xml | 2 +- pom.xml | 4 ++-- 11 files changed, 25 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37a96c68b..cee757f79 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ Change Log =============================================================================== +Version 1.5.4 *(2015-02-16)* +---------------------------- +* Fixed: Crash when creating TRADING accounts +* Fixed: Crash when deleting scheduled transactions +* Fixed: Account parent can be set to self, creating a cyclic hierarchy +* Fixed: Transactions not saved when double-entry is enabled but no transfer account is specified +* Improved: Auto-select the device locale currency in the account-creation dialog +* Improved: Upgraded structure of repository to match latest Android conventions +* Improved: Updated instrumentation tests and enabled better test reporting with Spoon + Version 1.5.3 *(2015-02-02)* ---------------------------- * Fixed: Unable to edit double-entry transactions diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 914ec14b7..d2b648f04 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -21,4 +21,5 @@ Lei Xiao Bao Yongxin Wang Matthew Hague Spanti Nicola -Jesse Shieh \ No newline at end of file +Jesse Shieh +Àlex Magaz Graça \ No newline at end of file diff --git a/app/pom.xml b/app/pom.xml index ba27486e0..f3f51363a 100644 --- a/app/pom.xml +++ b/app/pom.xml @@ -22,7 +22,7 @@ Gnucash Android companion application - 1.5.3-SNAPSHOT + 1.5.4-SNAPSHOT org.gnucash.android gnucash-android-parent diff --git a/app/project.properties b/app/project.properties index 2325cfe94..b1dd044be 100644 --- a/app/project.properties +++ b/app/project.properties @@ -11,7 +11,7 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-16 +target=android-18 android.library.reference.1=gen-external-apklibs/com.actionbarsherlock_actionbarsherlock_4.4.0 android.library.reference.2=gen-external-apklibs/com.viewpagerindicator_library_2.4.1 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 62c5d6913..7ab2ed5ee 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,10 +17,10 @@ - + GnuCash - 1.5.3 + 1.5.4 Create Account Edit Account Info diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml index 955c68586..74ce5c4af 100644 --- a/integration-tests/pom.xml +++ b/integration-tests/pom.xml @@ -17,7 +17,7 @@ 4.0.0 - 1.5.3-SNAPSHOT + 1.5.4-SNAPSHOT org.gnucash.android gnucash-android-parent diff --git a/integration-tests/project.properties b/integration-tests/project.properties index 9b84a6b4b..ce39f2d0a 100644 --- a/integration-tests/project.properties +++ b/integration-tests/project.properties @@ -11,4 +11,4 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-16 +target=android-18 diff --git a/integration-tests/src/main/AndroidManifest.xml b/integration-tests/src/main/AndroidManifest.xml index 4af4c04ca..9d914bab3 100644 --- a/integration-tests/src/main/AndroidManifest.xml +++ b/integration-tests/src/main/AndroidManifest.xml @@ -4,7 +4,7 @@ android:versionCode="3" android:versionName="1.2.4" > - + diff --git a/pom.xml b/pom.xml index 79b5421ab..b32f2dbf4 100644 --- a/pom.xml +++ b/pom.xml @@ -17,7 +17,7 @@ 4.0.0 - 1.5.3-SNAPSHOT + 1.5.4-SNAPSHOT org.gnucash.android gnucash-android-parent GnuCash Android parent @@ -46,7 +46,7 @@ ${env.ANDROID_HOME} - 16 + 19 true