]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionActivity.java
whitespace
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / NewTransactionActivity.java
index 9062f545540a5c9db23c6d7bd11f82f38808da79..cd3576ade95e7eb1dd0385d4f7266aae3ec0fc79 100644 (file)
@@ -19,7 +19,6 @@ package net.ktnx.mobileledger.ui.activity;
 
 import android.annotation.SuppressLint;
 import android.database.Cursor;
-import android.graphics.drawable.Drawable;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.text.Editable;
@@ -54,6 +53,7 @@ import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.model.LedgerTransaction;
 import net.ktnx.mobileledger.model.LedgerTransactionAccount;
 import net.ktnx.mobileledger.model.MobileLedgerProfile;
+import net.ktnx.mobileledger.ui.AutoCompleteTextViewWithClear;
 import net.ktnx.mobileledger.ui.DatePickerFragment;
 import net.ktnx.mobileledger.ui.OnSwipeTouchListener;
 import net.ktnx.mobileledger.utils.Globals;
@@ -103,9 +103,8 @@ public class NewTransactionActivity extends ProfileThemedActivity
         });
         tvDescription = findViewById(R.id.new_transaction_description);
         MLDB.hookAutocompletionAdapter(this, tvDescription, MLDB.DESCRIPTION_HISTORY_TABLE,
-                "description", false, findViewById(R.id.new_transaction_acc_1), this, mProfile);
+                "description", false, this, mProfile);
         hookTextChangeListener(tvDescription);
-        hookClearClickListener(tvDescription);
 
         progress = findViewById(R.id.save_transaction_progress);
         fab = findViewById(R.id.fab);
@@ -120,75 +119,6 @@ public class NewTransactionActivity extends ProfileThemedActivity
 
         check_transaction_submittable();
     }
-    private void hookClearClickListener(AutoCompleteTextView v) {
-        final TextWatcher w = new TextWatcher() {
-            private boolean hasText;
-            private boolean hadText;
-            @Override
-            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
-                hadText = s.length() > 0;
-            }
-            @Override
-            public void onTextChanged(CharSequence s, int start, int before, int count) {
-
-            }
-            @Override
-            public void afterTextChanged(Editable s) {
-                hasText = s.length() > 0;
-
-                if (hadText && !hasText) {
-                    v.setCompoundDrawablesRelative(null, null, null, null);
-                }
-                if (!hadText && hasText) {
-                    v.setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0,
-                            R.drawable.ic_clear_black_24dp, 0);
-                }
-            }
-        };
-        View.OnFocusChangeListener prevFocusListener = v.getOnFocusChangeListener();
-        v.setOnFocusChangeListener((v12, hasFocus) -> {
-            if (hasFocus) {
-                if (((TextView) v12).getText().length() > 0) {
-                    ((TextView) v12).setCompoundDrawablesRelativeWithIntrinsicBounds(0, 0,
-                            R.drawable.ic_clear_black_24dp, 0);
-                }
-                ((TextView) v12).addTextChangedListener(w);
-            }
-            else {
-                ((TextView) v12).removeTextChangedListener(w);
-                ((TextView) v12).setCompoundDrawables(null, null, null, null);
-            }
-
-            if (prevFocusListener != null) prevFocusListener.onFocusChange(v12, hasFocus);
-        });
-
-        v.setOnTouchListener((v1, event) -> {
-            if (event.getAction() == MotionEvent.ACTION_UP)
-                if (((TextView) v1).getText().length() > 0) {
-                    boolean clearClicked = false;
-                    final float x = event.getX();
-                    final int vw = v1.getWidth();
-                    // start, top, end, bottom (end == 2)
-                    Drawable dwb = ((TextView) v1).getCompoundDrawablesRelative()[2];
-                    if (dwb != null) {
-                        final int dw = dwb.getBounds().width();
-                        if (v1.getLayoutDirection() == View.LAYOUT_DIRECTION_LTR) {
-                            if ((x > vw - dw)) clearClicked = true;
-                        }
-                        else {
-                            if (x < vw - dw) clearClicked = true;
-                        }
-                        if (clearClicked) {
-                            ((TextView) v1).setText("");
-                            v1.requestFocus();
-                            return true;
-                        }
-                    }
-                }
-            v.performClick();
-            return false;
-        });
-    }
     @Override
     protected void initProfile() {
         String profileUUID = getIntent().getStringExtra("profile_uuid");
@@ -231,7 +161,8 @@ public class NewTransactionActivity extends ProfileThemedActivity
             Date date;
             if (dateString.isEmpty()) date = new Date();
             else date = Globals.parseLedgerDate(dateString);
-            LedgerTransaction tr = new LedgerTransaction(null, date, tvDescription.getText().toString(), mProfile);
+            LedgerTransaction tr =
+                    new LedgerTransaction(null, date, tvDescription.getText().toString(), mProfile);
 
             TableLayout table = findViewById(R.id.new_transaction_accounts_table);
             LedgerTransactionAccount emptyAmountAccount = null;
@@ -387,7 +318,7 @@ public class NewTransactionActivity extends ProfileThemedActivity
 
     }
     private TableRow doAddAccountRow(boolean focus) {
-        final AutoCompleteTextView acc = new AutoCompleteTextView(this);
+        final AutoCompleteTextView acc = new AutoCompleteTextViewWithClear(this);
         acc.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,
                 TableRow.LayoutParams.WRAP_CONTENT, 9f));
         acc.setHint(R.string.new_transaction_account_hint);
@@ -435,10 +366,9 @@ public class NewTransactionActivity extends ProfileThemedActivity
         if (focus) acc.requestFocus();
 
         hookSwipeListener(row);
-        MLDB.hookAutocompletionAdapter(this, acc, MLDB.ACCOUNTS_TABLE, "name", true, amt, null,
-                mProfile);
+        MLDB.hookAutocompletionAdapter(this, acc, MLDB.ACCOUNTS_TABLE, "name", true,
+                description -> amt.requestFocus(), mProfile);
         hookTextChangeListener(acc);
-        hookClearClickListener(acc);
         hookTextChangeListener(amt);
 
         return row;