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=8bad687e59c95cb8a8a7062b15ab36cc4f9b19ba;hb=edb190a8c0bd40e63f6c3c2e328cc0391849eade;hpb=efe6a714113224593aa76c0010b893914afbf54e diff --git a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java index 8bad687e..a35c472c 100644 --- a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java @@ -7,8 +7,10 @@ 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; @@ -18,6 +20,7 @@ import android.widget.TableRow; import java.util.Objects; public class NewTransactionActivity extends AppCompatActivity { + private TableLayout table; @Override protected void onCreate(Bundle savedInstanceState) { @@ -26,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) { @@ -35,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) { @@ -51,6 +82,9 @@ 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) { final AutoCompleteTextView acc = new AutoCompleteTextView(this); acc.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT, 9f)); @@ -62,10 +96,9 @@ public class NewTransactionActivity extends AppCompatActivity { 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(64); + amt.setMinWidth(dp2px(40)); amt.setTextAlignment(EditText.TEXT_ALIGNMENT_VIEW_END); - final TableLayout table = findViewById(R.id.new_transaction_accounts_table); final TableRow row = new TableRow(this); row.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.MATCH_PARENT)); row.addView(acc); @@ -73,6 +106,8 @@ public class NewTransactionActivity extends AppCompatActivity { table.addView(row); acc.requestFocus(); + + hook_swipe_listener(row); } }