X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FNewTransactionActivity.java;h=ca2407db85fc5e2967031a7581e0e3d3ddf8fd0b;hb=3d7346ab18d1050328ec030d9e1aef41a2a73d79;hp=5b382873aa6b9a02a0f174dd72f63a6ae3e5da25;hpb=cc080f415ad546183c7d92d8f58dddefb60560fe;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java index 5b382873..ca2407db 100644 --- a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java @@ -18,6 +18,7 @@ import android.text.InputType; import android.text.TextWatcher; import android.util.Log; import android.util.TypedValue; +import android.view.Gravity; import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; @@ -37,15 +38,12 @@ import java.util.Objects; * TODO: auto-fill of transaction description * if Android O's implementation won't work, add a custom one * TODO: nicer progress while transaction is submitted - * TODO: periodic and manual refresh of available accounts - * (now done forcibly each time the main activity is started) * TODO: latest transactions, maybe with browsing further in the past? * TODO: reports * TODO: get rid of the custom session/cookie and auth code? * (the last problem with the POST was the missing content-length header) * TODO: app icon * TODO: nicer swiping removal with visual feedback - * TODO: activity with current balance * TODO: setup wizard * TODO: update accounts/check settings upon change of backend settings * */ @@ -66,6 +64,13 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal setSupportActionBar(toolbar); text_date = findViewById(R.id.new_transaction_date); + text_date.setOnFocusChangeListener(new View.OnFocusChangeListener() { + @Override + public + void onFocusChange(View v, boolean hasFocus) { + if (hasFocus) pickTransactionDate(v); + } + }); text_descr = findViewById(R.id.new_transaction_description); hook_autocompletion_adapter(text_descr, MobileLedgerDB.DESCRIPTION_HISTORY_TABLE, "description"); @@ -73,16 +78,9 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true); table = findViewById(R.id.new_transaction_accounts_table); - for (int i = 0; i < table.getChildCount(); i++) { - TableRow row = (TableRow) table.getChildAt(i); - AutoCompleteTextView acc_name_view = (AutoCompleteTextView) row.getChildAt(0); - TextView amount_view = (TextView) row.getChildAt(1); - hook_swipe_listener(row); - hook_autocompletion_adapter(acc_name_view, MobileLedgerDB.ACCOUNTS_TABLE, "name"); - hook_text_change_listener(acc_name_view); - hook_text_change_listener(amount_view); -// Log.d("swipe", "hooked to row "+i); - } + table.removeAllViews(); + do_add_account_row(false); + do_add_account_row(false); } @Override @@ -236,6 +234,8 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal mSave = menu.findItem(R.id.action_submit_transaction); if (mSave == null) throw new AssertionError(); + check_transaction_submittable(); + return true; } @@ -255,7 +255,8 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal acc.setWidth(0); final EditText amt = new EditText(this); - amt.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 1f)); + amt.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, + TableRow.LayoutParams.MATCH_PARENT, 1f)); amt.setHint(R.string.new_transaction_amount_hint); amt.setWidth(0); amt.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED | InputType.TYPE_NUMBER_FLAG_DECIMAL ); @@ -264,6 +265,7 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal final TableRow row = new TableRow(this); row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT)); + row.setGravity(Gravity.BOTTOM); row.addView(acc); row.addView(amt); table.addView(row);