Add the functionality in TransactionsFragment to filter transactions by Equivalent Value range, taking into account the currency precision.
This commit is contained in:
parent
abfbed91f5
commit
d68b34f973
2 changed files with 18 additions and 9 deletions
|
@ -103,6 +103,8 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
|
|
||||||
private var mBalancesDetailsAdapter: BalancesDetailsAdapter? = null
|
private var mBalancesDetailsAdapter: BalancesDetailsAdapter? = null
|
||||||
|
|
||||||
|
private lateinit var mCurrency: Currency
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DatePicker message handler.
|
* DatePicker message handler.
|
||||||
*/
|
*/
|
||||||
|
@ -243,16 +245,20 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
llEquivalentValue.visibility = if(isChecked) View.GONE else View.VISIBLE }
|
llEquivalentValue.visibility = if(isChecked) View.GONE else View.VISIBLE }
|
||||||
cbEquivalentValue.isChecked = arguments!!.getBoolean(KEY_FILTER_EQUIVALENT_VALUE_ALL, true)
|
cbEquivalentValue.isChecked = arguments!!.getBoolean(KEY_FILTER_EQUIVALENT_VALUE_ALL, true)
|
||||||
|
|
||||||
|
// TODO obtain user selected currency
|
||||||
|
val currencySymbol = "usd"
|
||||||
|
mCurrency = Currency.getInstance(currencySymbol)
|
||||||
|
|
||||||
etFromEquivalentValue = view.findViewById(R.id.etFromEquivalentValue)
|
etFromEquivalentValue = view.findViewById(R.id.etFromEquivalentValue)
|
||||||
val fromEquivalentValue = arguments!!.getLong(KEY_FILTER_FROM_EQUIVALENT_VALUE, 0)
|
val fromEquivalentValue = arguments!!.getLong(KEY_FILTER_FROM_EQUIVALENT_VALUE, 0) /
|
||||||
|
Math.pow(10.0, mCurrency.defaultFractionDigits.toDouble()).toLong()
|
||||||
etFromEquivalentValue.setText("$fromEquivalentValue", TextView.BufferType.EDITABLE)
|
etFromEquivalentValue.setText("$fromEquivalentValue", TextView.BufferType.EDITABLE)
|
||||||
|
|
||||||
etToEquivalentValue = view.findViewById(R.id.etToEquivalentValue)
|
etToEquivalentValue = view.findViewById(R.id.etToEquivalentValue)
|
||||||
val toEquivalentValue = arguments!!.getLong(KEY_FILTER_TO_EQUIVALENT_VALUE, 0)
|
val toEquivalentValue = arguments!!.getLong(KEY_FILTER_TO_EQUIVALENT_VALUE, 0) /
|
||||||
|
Math.pow(10.0, mCurrency.defaultFractionDigits.toDouble()).toLong()
|
||||||
etToEquivalentValue.setText("$toEquivalentValue", TextView.BufferType.EDITABLE)
|
etToEquivalentValue.setText("$toEquivalentValue", TextView.BufferType.EDITABLE)
|
||||||
|
|
||||||
// TODO obtain user selected currency
|
|
||||||
val currencySymbol = "usd"
|
|
||||||
tvEquivalentValueSymbol = view.findViewById(R.id.tvEquivalentValueSymbol)
|
tvEquivalentValueSymbol = view.findViewById(R.id.tvEquivalentValueSymbol)
|
||||||
tvEquivalentValueSymbol.text = currencySymbol.toUpperCase()
|
tvEquivalentValueSymbol.text = currencySymbol.toUpperCase()
|
||||||
|
|
||||||
|
@ -317,9 +323,11 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
|
|
||||||
val filterEquivalentValueAll = cbEquivalentValue.isChecked
|
val filterEquivalentValueAll = cbEquivalentValue.isChecked
|
||||||
|
|
||||||
val filterFromEquivalentValue = etFromEquivalentValue.text.toString().toLong()
|
val filterFromEquivalentValue = etFromEquivalentValue.text.toString().toLong() *
|
||||||
|
Math.pow(10.0, mCurrency.defaultFractionDigits.toDouble()).toLong()
|
||||||
|
|
||||||
var filterToEquivalentValue = etToEquivalentValue.text.toString().toLong()
|
var filterToEquivalentValue = etToEquivalentValue.text.toString().toLong() *
|
||||||
|
Math.pow(10.0, mCurrency.defaultFractionDigits.toDouble()).toLong()
|
||||||
|
|
||||||
// Make sure ToEquivalentValue is at least 50 units bigger than FromEquivalentValue
|
// Make sure ToEquivalentValue is at least 50 units bigger than FromEquivalentValue
|
||||||
if (!filterEquivalentValueAll && filterToEquivalentValue < filterFromEquivalentValue + 50) {
|
if (!filterEquivalentValueAll && filterToEquivalentValue < filterFromEquivalentValue + 50) {
|
||||||
|
|
|
@ -53,7 +53,7 @@ class TransactionsFragment : Fragment(), FilterOptionsDialog.OnFilterOptionsSele
|
||||||
private var filterAsset = "BTS"
|
private var filterAsset = "BTS"
|
||||||
private var filterEquivalentValueAll = true
|
private var filterEquivalentValueAll = true
|
||||||
private var filterFromEquivalentValue = 0L
|
private var filterFromEquivalentValue = 0L
|
||||||
private var filterToEquivalentValue = 50L
|
private var filterToEquivalentValue = 5000L
|
||||||
private var filterAgoriseFees = true
|
private var filterAgoriseFees = true
|
||||||
|
|
||||||
private var mDisposables = CompositeDisposable()
|
private var mDisposables = CompositeDisposable()
|
||||||
|
@ -176,8 +176,9 @@ class TransactionsFragment : Fragment(), FilterOptionsDialog.OnFilterOptionsSele
|
||||||
continue
|
continue
|
||||||
|
|
||||||
// // Filter by equivalent value
|
// // Filter by equivalent value
|
||||||
// if (!filterEquivalentValueAll && (transferDetail.fiatAmount < filterFromEquivalentValue || transferDetail.fiatAmount > filterToEquivalentValue))
|
if (!filterEquivalentValueAll && ((transferDetail.fiatAmount ?: -1 ) < filterFromEquivalentValue
|
||||||
// continue
|
|| (transferDetail.fiatAmount ?: -1) > filterToEquivalentValue))
|
||||||
|
continue
|
||||||
|
|
||||||
// Filter transactions sent to agorise
|
// Filter transactions sent to agorise
|
||||||
if (filterAgoriseFees && transferDetail.to.equals("agorise"))
|
if (filterAgoriseFees && transferDetail.to.equals("agorise"))
|
||||||
|
|
Loading…
Reference in a new issue