]> git.ktnx.net Git - mobile-ledger.git/commitdiff
make the position/padding currency parameters optional
authorDamyan Ivanov <dam+mobileledger@ktnx.net>
Fri, 17 Apr 2020 19:11:21 +0000 (22:11 +0300)
committerDamyan Ivanov <dam+mobileledger@ktnx.net>
Fri, 17 Apr 2020 19:11:21 +0000 (22:11 +0300)
app/src/main/java/net/ktnx/mobileledger/ui/CurrencySelectorFragment.java
app/src/main/java/net/ktnx/mobileledger/ui/CurrencySelectorModel.java
app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java

index 57c602b433be96ac73d9913966227ac184e9c472..d25db493f7b05b659bd6cb6c21f0989570737564 100644 (file)
@@ -55,10 +55,13 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment
         implements OnCurrencySelectedListener, OnCurrencyLongClickListener {
 
     public static final int DEFAULT_COLUMN_COUNT = 2;
-    private static final String ARG_COLUMN_COUNT = "column-count";
+    public static final String ARG_COLUMN_COUNT = "column-count";
+    public static final String ARG_SHOW_PARAMS = "show-params";
+    public static final boolean DEFAULT_SHOW_PARAMS = true;
     private int mColumnCount = DEFAULT_COLUMN_COUNT;
     private OnCurrencySelectedListener mListener;
     private CurrencySelectorModel model;
+    private boolean deferredShowPositionAndPadding;
 
     /**
      * Mandatory empty constructor for the fragment manager to instantiate the
@@ -68,12 +71,13 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment
     }
     @SuppressWarnings("unused")
     public static CurrencySelectorFragment newInstance() {
-        return newInstance(DEFAULT_COLUMN_COUNT);
+        return newInstance(DEFAULT_COLUMN_COUNT, DEFAULT_SHOW_PARAMS);
     }
-    public static CurrencySelectorFragment newInstance(int columnCount) {
+    public static CurrencySelectorFragment newInstance(int columnCount, boolean showParams) {
         CurrencySelectorFragment fragment = new CurrencySelectorFragment();
         Bundle args = new Bundle();
         args.putInt(ARG_COLUMN_COUNT, columnCount);
+        args.putBoolean(ARG_SHOW_PARAMS, showParams);
         fragment.setArguments(args);
         return fragment;
     }
@@ -182,6 +186,17 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment
             Data.currencyGap.setValue(checked);
         });
 
+        model.observePositionAndPaddingVisible(this, visible -> {
+            csd.findViewById(R.id.params_panel)
+               .setVisibility(visible ? View.VISIBLE : View.GONE);
+        });
+
+        if ((savedInstanceState != null) ? savedInstanceState.getBoolean(ARG_SHOW_PARAMS,
+                DEFAULT_SHOW_PARAMS) : DEFAULT_SHOW_PARAMS)
+            model.showPositionAndPadding();
+        else
+            model.hidePositionAndPadding();
+
         return csd;
     }
     public void setOnCurrencySelectedListener(OnCurrencySelectedListener listener) {
@@ -206,4 +221,10 @@ public class CurrencySelectorFragment extends AppCompatDialogFragment
         list.remove(item);
         model.currencies.setValue(list);
     }
+    public void showPositionAndPadding() {
+        deferredShowPositionAndPadding = true;
+    }
+    public void hidePositionAndPadding() {
+        deferredShowPositionAndPadding = false;
+    }
 }
index 10fea517ea5eaa6019c633e475001830b5299e1a..a2bc9ca4924526bfd20527cd8b8591b4680acb16 100644 (file)
@@ -17,7 +17,9 @@
 
 package net.ktnx.mobileledger.ui;
 
+import androidx.lifecycle.LifecycleOwner;
 import androidx.lifecycle.MutableLiveData;
+import androidx.lifecycle.Observer;
 import androidx.lifecycle.ViewModel;
 
 import net.ktnx.mobileledger.model.Currency;
@@ -26,7 +28,17 @@ import java.util.List;
 
 public class CurrencySelectorModel extends ViewModel {
     public final MutableLiveData<List<Currency>> currencies;
+    private final MutableLiveData<Boolean> positionAndPaddingVisible = new MutableLiveData<>(true);
     public CurrencySelectorModel() {
         this.currencies = new MutableLiveData<>();
     }
+    public void showPositionAndPadding() {
+        positionAndPaddingVisible.postValue(true);
+    }
+    public void hidePositionAndPadding() {
+        positionAndPaddingVisible.postValue(false);
+    }
+    public void observePositionAndPaddingVisible(LifecycleOwner activity, Observer<Boolean> observer) {
+        positionAndPaddingVisible.observe(activity, observer);
+    }
 }
index a72de5d09d12cc5b9ccb1d36aab98e91ab05fa90..89c887310296374f2e708828302aa4f69e898848 100644 (file)
@@ -226,6 +226,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder
         tvCurrency.setOnClickListener(v -> {
             CurrencySelectorFragment cpf = new CurrencySelectorFragment();
             cpf.setOnCurrencySelectedListener(this);
+            cpf.showPositionAndPadding();
             final AppCompatActivity activity = (AppCompatActivity) v.getContext();
             cpf.show(activity.getSupportFragmentManager(), "currency-selector");
         });