]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java
fixed min amount width of 40dp (abt. 6 digits)
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / NewTransactionActivity.java
index 8bad687e59c95cb8a8a7062b15ab36cc4f9b19ba..a35c472c66bb70daeb8338784631d69ecc89d84a 100644 (file)
@@ -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);
     }
 
 }