X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FNewTransactionActivity.java;h=53cbc905d62cad18d25aa3abc7e4c2a3958a2882;hp=754d57f42ed15174c7a69bd91b8328e1c24b3586;hb=a62fd00f3bc04e39a97817e8eca0421dc962e4fd;hpb=6c0c5ecc16d86998a7968a9797981a3f31bd7ca5 diff --git a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java index 754d57f4..53cbc905 100644 --- a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java @@ -24,6 +24,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; +import android.view.inputmethod.EditorInfo; import android.widget.AutoCompleteTextView; import android.widget.EditText; import android.widget.FilterQueryProvider; @@ -93,6 +94,13 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal } } + @Override + protected + void onStart() { + super.onStart(); + if (text_descr.getText().toString().isEmpty()) text_descr.requestFocus(); + } + @Override public void finish() { super.finish(); @@ -137,6 +145,8 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal } private void toggle_all_editing(boolean enabled) { + text_date.setEnabled(enabled); + text_descr.setEnabled(enabled); TableLayout table = findViewById(R.id.new_transaction_accounts_table); for (int i = 0; i < table.getChildCount(); i++) { TableRow row = (TableRow) table.getChildAt(i); @@ -151,7 +161,26 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal public void onSwipeLeft() { // Log.d("swipe", "LEFT" + row.getId()); if (table.getChildCount() > 2) { + TableRow prev_row = (TableRow) table.getChildAt(table.indexOfChild(row) - 1); + TableRow next_row = (TableRow) table.getChildAt(table.indexOfChild(row) + 1); + TextView prev_amt = + (prev_row != null) ? (TextView) prev_row.getChildAt(1) : text_descr; + TextView next_acc = + (next_row != null) ? (TextView) next_row.getChildAt(0) : null; + + if (next_acc == null) { + prev_amt.setNextFocusRightId(R.id.none); + prev_amt.setNextFocusForwardId(R.id.none); + prev_amt.setImeOptions(EditorInfo.IME_ACTION_DONE); + } + else { + prev_amt.setNextFocusRightId(next_acc.getId()); + prev_amt.setNextFocusForwardId(next_acc.getId()); + prev_amt.setImeOptions(EditorInfo.IME_ACTION_NEXT); + } + table.removeView(row); + check_transaction_submittable(); // Toast.makeText(NewTransactionActivity.this, "LEFT", Toast.LENGTH_LONG).show(); } else { @@ -265,6 +294,7 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal acc.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 9f)); acc.setHint(R.string.new_transaction_account_hint); acc.setWidth(0); + acc.setImeOptions(EditorInfo.IME_ACTION_NEXT); final EditText amt = new EditText(this); amt.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, @@ -274,6 +304,16 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal amt.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED | InputType.TYPE_NUMBER_FLAG_DECIMAL ); amt.setMinWidth(dp2px(40)); amt.setTextAlignment(EditText.TEXT_ALIGNMENT_VIEW_END); + amt.setImeOptions(EditorInfo.IME_ACTION_DONE); + + // forward navigation support + final TableRow last_row = (TableRow) table.getChildAt(table.getChildCount() - 1); + final TextView last_amt = (TextView) last_row.getChildAt(1); + last_amt.setNextFocusForwardId(acc.getId()); + last_amt.setNextFocusRightId(acc.getId()); + last_amt.setImeOptions(EditorInfo.IME_ACTION_NEXT); + acc.setNextFocusForwardId(amt.getId()); + acc.setNextFocusRightId(amt.getId()); final TableRow row = new TableRow(this); row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT));