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=a35c472c66bb70daeb8338784631d69ecc89d84a;hp=12e8b69eecdb4b98287999cb67f0351fa7205041;hb=edb190a8c0bd40e63f6c3c2e328cc0391849eade;hpb=64c5e27bab910eb9d0730ecafc7933ed4c6963f6 diff --git a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java index 12e8b69e..a35c472c 100644 --- a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java @@ -6,13 +6,21 @@ import android.support.design.widget.Snackbar; import android.support.v4.app.DialogFragment; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; +import android.text.InputType; +import android.util.TypedValue; import android.view.Menu; import android.view.MenuItem; +import android.view.MotionEvent; import android.view.View; +import android.widget.AutoCompleteTextView; +import android.widget.EditText; +import android.widget.TableLayout; +import android.widget.TableRow; import java.util.Objects; public class NewTransactionActivity extends AppCompatActivity { + private TableLayout table; @Override protected void onCreate(Bundle savedInstanceState) { @@ -21,7 +29,7 @@ public class NewTransactionActivity extends AppCompatActivity { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + FloatingActionButton fab = findViewById(R.id.fab); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -30,6 +38,34 @@ public class NewTransactionActivity extends AppCompatActivity { } }); Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true); + table = findViewById(R.id.new_transaction_accounts_table); + for (int i = 0; i < table.getChildCount(); i++) { + hook_swipe_listener((TableRow)table.getChildAt(i)); +// Log.d("swipe", "hooked to row "+i); + } + } + + private void hook_swipe_listener(final TableRow row) { + row.getChildAt(0).setOnTouchListener(new OnSwipeTouchListener(this) { + public void onSwipeLeft() { +// Log.d("swipe", "LEFT" + row.getId()); + if (table.getChildCount() > 2) { + table.removeView(row); +// Toast.makeText(NewTransactionActivity.this, "LEFT", Toast.LENGTH_LONG).show(); + } + else { + Snackbar.make(table, R.string.msg_at_least_two_accounts_are_required, Snackbar.LENGTH_LONG) + .setAction("Action", null).show(); + } + } +// @Override +// public boolean performClick(View view, MotionEvent m) { +// return true; +// } + public boolean onTouch(View view, MotionEvent m) { + return gestureDetector.onTouchEvent(m); + } + }); } public boolean onCreateOptionsMenu(Menu menu) { @@ -46,9 +82,32 @@ public class NewTransactionActivity extends AppCompatActivity { // .setAction("Action", null).show(); } + public int dp2px(float dp) { + return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics())); + } public void addTransactionAccountFromMenu(MenuItem item) { - Snackbar.make(getCurrentFocus(), "Not implemented yet", Snackbar.LENGTH_LONG) - .setAction("Action", null).show(); + final AutoCompleteTextView acc = new AutoCompleteTextView(this); + 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); + + final EditText amt = new EditText(this); + amt.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT, 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 ); + amt.setMinWidth(dp2px(40)); + amt.setTextAlignment(EditText.TEXT_ALIGNMENT_VIEW_END); + + final TableRow row = new TableRow(this); + row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT)); + row.addView(acc); + row.addView(amt); + table.addView(row); + + acc.requestFocus(); + + hook_swipe_listener(row); } }