In the FilterOptionsDialog, add the option to filter by Asset, where the user can select to see transactions involving all assets or only a specific one that can be selected in a Spinner. This selection is communicated back to the TransactionsFragment to respond and show the transactions matching with the user selected criteria.
This commit is contained in:
parent
f62286747c
commit
bd0b74eeaf
4 changed files with 104 additions and 97 deletions
|
@ -9,7 +9,9 @@ import android.widget.TextView
|
||||||
import cy.agorise.bitsybitshareswallet.database.joins.BalanceDetail
|
import cy.agorise.bitsybitshareswallet.database.joins.BalanceDetail
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adapter used to populate a Spinner with a list of [BalanceDetail] items.
|
||||||
|
*/
|
||||||
class BalancesDetailsAdapter(context: Context, resource: Int, data: List<BalanceDetail>) :
|
class BalancesDetailsAdapter(context: Context, resource: Int, data: List<BalanceDetail>) :
|
||||||
ArrayAdapter<BalanceDetail>(context, resource, data) {
|
ArrayAdapter<BalanceDetail>(context, resource, data) {
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,12 @@ import androidx.fragment.app.DialogFragment
|
||||||
import android.widget.*
|
import android.widget.*
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
|
import androidx.lifecycle.ViewModelProviders
|
||||||
|
import androidx.lifecycle.Observer
|
||||||
import cy.agorise.bitsybitshareswallet.R
|
import cy.agorise.bitsybitshareswallet.R
|
||||||
|
import cy.agorise.bitsybitshareswallet.adapters.BalancesDetailsAdapter
|
||||||
|
import cy.agorise.bitsybitshareswallet.database.joins.BalanceDetail
|
||||||
|
import cy.agorise.bitsybitshareswallet.viewmodels.BalanceDetailViewModel
|
||||||
import cy.agorise.bitsybitshareswallet.views.DatePickerFragment
|
import cy.agorise.bitsybitshareswallet.views.DatePickerFragment
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
@ -24,18 +29,56 @@ import kotlin.ClassCastException
|
||||||
*/
|
*/
|
||||||
class FilterOptionsDialog : DialogFragment() {
|
class FilterOptionsDialog : DialogFragment() {
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
|
||||||
|
const val KEY_FILTER_TRANSACTION_DIRECTION = "key_filter_transaction_direction"
|
||||||
|
const val KEY_FILTER_DATE_RANGE_ALL = "key_filter_date_range_all"
|
||||||
|
const val KEY_FILTER_START_DATE = "key_filter_start_date"
|
||||||
|
const val KEY_FILTER_END_DATE = "key_filter_end_date"
|
||||||
|
const val KEY_FILTER_ASSET_ALL = "key_filter_asset_all"
|
||||||
|
const val KEY_FILTER_ASSET = "key_filter_asset"
|
||||||
|
const val KEY_FILTER_FIAT_AMOUNT_ALL = "key_filter_fiat_amount_all"
|
||||||
|
const val KEY_FILTER_FROM_FIAT_AMOUNT = "filter_from_fiat_amount"
|
||||||
|
const val KEY_FILTER_TO_FIAT_AMOUNT = "filter_to_fiat_amount"
|
||||||
|
|
||||||
|
const val KEY_TIMESTAMP = "key_timestamp"
|
||||||
|
|
||||||
|
const val START_DATE_PICKER = 0
|
||||||
|
const val END_DATE_PICKER = 1
|
||||||
|
|
||||||
|
fun newInstance(filterTransactionsDirection: Int, filterDateRangeAll: Boolean,
|
||||||
|
filterStartDate: Long, filterEndDate: Long, filterAssetAll: Boolean,
|
||||||
|
filterAsset: String, filterFiatAmountAll: Boolean,
|
||||||
|
filterFromFiatAmount: Long, filterToFiatAmount: Long): FilterOptionsDialog {
|
||||||
|
val frag = FilterOptionsDialog()
|
||||||
|
val args = Bundle()
|
||||||
|
args.putInt(KEY_FILTER_TRANSACTION_DIRECTION, filterTransactionsDirection)
|
||||||
|
args.putBoolean(KEY_FILTER_DATE_RANGE_ALL, filterDateRangeAll)
|
||||||
|
args.putLong(KEY_FILTER_START_DATE, filterStartDate)
|
||||||
|
args.putLong(KEY_FILTER_END_DATE, filterEndDate)
|
||||||
|
args.putBoolean(KEY_FILTER_ASSET_ALL, filterAssetAll)
|
||||||
|
args.putString(KEY_FILTER_ASSET, filterAsset)
|
||||||
|
args.putBoolean(KEY_FILTER_FIAT_AMOUNT_ALL, filterFiatAmountAll)
|
||||||
|
args.putLong(KEY_FILTER_FROM_FIAT_AMOUNT, filterFromFiatAmount)
|
||||||
|
args.putLong(KEY_FILTER_TO_FIAT_AMOUNT, filterToFiatAmount)
|
||||||
|
frag.arguments = args
|
||||||
|
return frag
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// Widgets TODO use android-kotlin-extensions {onViewCreated}
|
// Widgets TODO use android-kotlin-extensions {onViewCreated}
|
||||||
lateinit var rbTransactionAll: RadioButton
|
private lateinit var rbTransactionAll: RadioButton
|
||||||
lateinit var rbTransactionSent: RadioButton
|
private lateinit var rbTransactionSent: RadioButton
|
||||||
lateinit var rbTransactionReceived: RadioButton
|
private lateinit var rbTransactionReceived: RadioButton
|
||||||
lateinit var cbDateRange: CheckBox
|
private lateinit var cbDateRange: CheckBox
|
||||||
lateinit var llDateRange: LinearLayout
|
private lateinit var llDateRange: LinearLayout
|
||||||
lateinit var tvStartDate: TextView
|
private lateinit var tvStartDate: TextView
|
||||||
lateinit var tvEndDate: TextView
|
private lateinit var tvEndDate: TextView
|
||||||
lateinit var cbCryptocurrency: CheckBox
|
private lateinit var cbAsset: CheckBox
|
||||||
lateinit var sCryptocurrency: Spinner
|
private lateinit var sAsset: Spinner
|
||||||
lateinit var cbFiatAmount: CheckBox
|
private lateinit var cbFiatAmount: CheckBox
|
||||||
lateinit var llFiatAmount: LinearLayout
|
private lateinit var llFiatAmount: LinearLayout
|
||||||
// lateinit var etFromFiatAmount: CurrencyEditText
|
// lateinit var etFromFiatAmount: CurrencyEditText
|
||||||
// lateinit var etToFiatAmount: CurrencyEditText
|
// lateinit var etToFiatAmount: CurrencyEditText
|
||||||
|
|
||||||
|
@ -54,43 +97,9 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
// */
|
// */
|
||||||
// private val mUserCurrency = RuntimeData.EXTERNAL_CURRENCY
|
// private val mUserCurrency = RuntimeData.EXTERNAL_CURRENCY
|
||||||
|
|
||||||
companion object {
|
private lateinit var mBalanceDetailViewModel: BalanceDetailViewModel
|
||||||
|
|
||||||
const val KEY_FILTER_TRANSACTION_DIRECTION = "key_filter_transaction_direction"
|
private var mBalancesDetailsAdapter: BalancesDetailsAdapter? = null
|
||||||
const val KEY_FILTER_DATE_RANGE_ALL = "key_filter_date_range_all"
|
|
||||||
const val KEY_FILTER_START_DATE = "key_filter_start_date"
|
|
||||||
const val KEY_FILTER_END_DATE = "key_filter_end_date"
|
|
||||||
const val KEY_FILTER_CRYPTOCURRENCY_ALL = "key_filter_cryptocurrency_all"
|
|
||||||
const val KEY_FILTER_CRYPTOCURRENCY = "key_filter_cryptocurrency"
|
|
||||||
const val KEY_FILTER_FIAT_AMOUNT_ALL = "key_filter_fiat_amount_all"
|
|
||||||
const val KEY_FILTER_FROM_FIAT_AMOUNT = "filter_from_fiat_amount"
|
|
||||||
const val KEY_FILTER_TO_FIAT_AMOUNT = "filter_to_fiat_amount"
|
|
||||||
|
|
||||||
const val KEY_TIMESTAMP = "key_timestamp"
|
|
||||||
|
|
||||||
const val START_DATE_PICKER = 0
|
|
||||||
const val END_DATE_PICKER = 1
|
|
||||||
|
|
||||||
fun newInstance(filterTransactionsDirection: Int, filterDateRangeAll: Boolean,
|
|
||||||
filterStartDate: Long, filterEndDate: Long, filterCryptocurrencyAll: Boolean,
|
|
||||||
filterCryptocurrency: String, filterFiatAmountAll: Boolean,
|
|
||||||
filterFromFiatAmount: Long, filterToFiatAmount: Long): FilterOptionsDialog {
|
|
||||||
val frag = FilterOptionsDialog()
|
|
||||||
val args = Bundle()
|
|
||||||
args.putInt(KEY_FILTER_TRANSACTION_DIRECTION, filterTransactionsDirection)
|
|
||||||
args.putBoolean(KEY_FILTER_DATE_RANGE_ALL, filterDateRangeAll)
|
|
||||||
args.putLong(KEY_FILTER_START_DATE, filterStartDate)
|
|
||||||
args.putLong(KEY_FILTER_END_DATE, filterEndDate)
|
|
||||||
args.putBoolean(KEY_FILTER_CRYPTOCURRENCY_ALL, filterCryptocurrencyAll)
|
|
||||||
args.putString(KEY_FILTER_CRYPTOCURRENCY, filterCryptocurrency)
|
|
||||||
args.putBoolean(KEY_FILTER_FIAT_AMOUNT_ALL, filterFiatAmountAll)
|
|
||||||
args.putLong(KEY_FILTER_FROM_FIAT_AMOUNT, filterFromFiatAmount)
|
|
||||||
args.putLong(KEY_FILTER_TO_FIAT_AMOUNT, filterToFiatAmount)
|
|
||||||
frag.arguments = args
|
|
||||||
return frag
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DatePicker message handler.
|
* DatePicker message handler.
|
||||||
|
@ -141,8 +150,8 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
filterDateRangeAll: Boolean,
|
filterDateRangeAll: Boolean,
|
||||||
filterStartDate: Long,
|
filterStartDate: Long,
|
||||||
filterEndDate: Long,
|
filterEndDate: Long,
|
||||||
filterCryptocurrencyAll: Boolean,
|
filterAssetAll: Boolean,
|
||||||
filterCryptocurrency: String,
|
filterAsset: String,
|
||||||
filterFiatAmountAll: Boolean,
|
filterFiatAmountAll: Boolean,
|
||||||
filterFromFiatAmount: Long,
|
filterFromFiatAmount: Long,
|
||||||
filterToFiatAmount: Long)
|
filterToFiatAmount: Long)
|
||||||
|
@ -193,16 +202,31 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
|
|
||||||
updateDateTextViews()
|
updateDateTextViews()
|
||||||
|
|
||||||
// Initialize Cryptocurrency
|
// Initialize Asset
|
||||||
cbCryptocurrency = view.findViewById(R.id.cbCryptocurrency)
|
cbAsset = view.findViewById(R.id.cbAsset)
|
||||||
// sCryptocurrency = view.findViewById(R.id.sCryptocurrency)
|
sAsset = view.findViewById(R.id.sAsset)
|
||||||
// cbCryptocurrency.setOnCheckedChangeListener { _, isChecked ->
|
cbAsset.setOnCheckedChangeListener { _, isChecked ->
|
||||||
// sCryptocurrency.visibility = if(isChecked) View.GONE else View.VISIBLE }
|
sAsset.visibility = if(isChecked) View.GONE else View.VISIBLE
|
||||||
cbCryptocurrency.isChecked = arguments!!.getBoolean(KEY_FILTER_CRYPTOCURRENCY_ALL, true)
|
}
|
||||||
|
cbAsset.isChecked = arguments!!.getBoolean(KEY_FILTER_ASSET_ALL, true)
|
||||||
|
|
||||||
// sCryptocurrency = view.findViewById(R.id.sCryptocurrency)
|
// Configure BalanceDetailViewModel to obtain the user's Balances
|
||||||
// initializeCryptocurrencySpinner()
|
mBalanceDetailViewModel = ViewModelProviders.of(this).get(BalanceDetailViewModel::class.java)
|
||||||
|
|
||||||
|
mBalanceDetailViewModel.getAll().observe(this, Observer<List<BalanceDetail>> { balancesDetails ->
|
||||||
|
mBalancesDetailsAdapter = BalancesDetailsAdapter(context!!, android.R.layout.simple_spinner_item, balancesDetails!!)
|
||||||
|
sAsset.adapter = mBalancesDetailsAdapter
|
||||||
|
|
||||||
|
val assetSelected = arguments!!.getString(KEY_FILTER_ASSET)
|
||||||
|
|
||||||
|
// Try to select the selectedAssetSymbol
|
||||||
|
for (i in 0 until mBalancesDetailsAdapter!!.count) {
|
||||||
|
if (mBalancesDetailsAdapter!!.getItem(i)!!.symbol == assetSelected) {
|
||||||
|
sAsset.setSelection(i)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// Initialize Fiat amount
|
// Initialize Fiat amount
|
||||||
cbFiatAmount = view.findViewById(R.id.cbFiatAmount)
|
cbFiatAmount = view.findViewById(R.id.cbFiatAmount)
|
||||||
|
@ -240,25 +264,6 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// private fun initializeCryptocurrencySpinner() {
|
|
||||||
// val cryptoCurrencyList = database!!.getSortedCryptoCurrencies(false,
|
|
||||||
// SortType.DESCENDING, true)
|
|
||||||
//
|
|
||||||
// val cryptocurrencySpinnerAdapter = CryptocurrencySpinnerAdapter(context!!,
|
|
||||||
// R.layout.item_cryptocurrency,
|
|
||||||
// R.id.tvCryptocurrencyName,
|
|
||||||
// cryptoCurrencyList)
|
|
||||||
//
|
|
||||||
// sCryptocurrency.adapter = cryptocurrencySpinnerAdapter
|
|
||||||
//
|
|
||||||
// val cryptocurrencySelected = arguments!!.getString(KEY_FILTER_CRYPTOCURRENCY)
|
|
||||||
//
|
|
||||||
// val index = Math.max(cryptocurrencySpinnerAdapter.getPosition(database!!.getCryptocurrencyBySymbol(
|
|
||||||
// cryptocurrencySelected)), 0)
|
|
||||||
//
|
|
||||||
// sCryptocurrency.setSelection(index)
|
|
||||||
// }
|
|
||||||
|
|
||||||
private val mDateClickListener = View.OnClickListener { v ->
|
private val mDateClickListener = View.OnClickListener { v ->
|
||||||
val calendar = Calendar.getInstance()
|
val calendar = Calendar.getInstance()
|
||||||
|
|
||||||
|
@ -293,9 +298,9 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
|
|
||||||
val filterDateRangeAll = cbDateRange.isChecked
|
val filterDateRangeAll = cbDateRange.isChecked
|
||||||
|
|
||||||
val filterCryptocurrencyAll = cbCryptocurrency.isChecked
|
val filterAssetAll = cbAsset.isChecked
|
||||||
|
|
||||||
val filterCryptocurrency = "" //(sCryptocurrency.selectedItem as CryptoCurrency).symbol
|
val filterAsset = (sAsset.selectedItem as BalanceDetail).symbol
|
||||||
|
|
||||||
val filterFiatAmountAll = cbFiatAmount.isChecked
|
val filterFiatAmountAll = cbFiatAmount.isChecked
|
||||||
|
|
||||||
|
@ -312,7 +317,7 @@ class FilterOptionsDialog : DialogFragment() {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
mCallback!!.onFilterOptionsSelected(filterTransactionsDirection, filterDateRangeAll,
|
mCallback!!.onFilterOptionsSelected(filterTransactionsDirection, filterDateRangeAll,
|
||||||
startDate, endDate, filterCryptocurrencyAll, filterCryptocurrency, filterFiatAmountAll,
|
startDate, endDate, filterAssetAll, filterAsset, filterFiatAmountAll,
|
||||||
filterFromFiatAmount, filterToFiatAmount)
|
filterFromFiatAmount, filterToFiatAmount)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -39,8 +39,8 @@ class TransactionsFragment : Fragment(), FilterOptionsDialog.OnFilterOptionsSele
|
||||||
private var filterDateRangeAll = true
|
private var filterDateRangeAll = true
|
||||||
private var filterStartDate = 0L
|
private var filterStartDate = 0L
|
||||||
private var filterEndDate = 0L
|
private var filterEndDate = 0L
|
||||||
private var filterCryptocurrencyAll = true
|
private var filterAssetAll = true
|
||||||
private var filterCryptocurrency = "BTS"
|
private var filterAsset = "BTS"
|
||||||
private var filterFiatAmountAll = true
|
private var filterFiatAmountAll = true
|
||||||
private var filterFromFiatAmount = 0L
|
private var filterFromFiatAmount = 0L
|
||||||
private var filterToFiatAmount = 500L
|
private var filterToFiatAmount = 500L
|
||||||
|
@ -110,7 +110,7 @@ class TransactionsFragment : Fragment(), FilterOptionsDialog.OnFilterOptionsSele
|
||||||
R.id.menu_filter -> {
|
R.id.menu_filter -> {
|
||||||
val filterOptionsDialog = FilterOptionsDialog.newInstance(
|
val filterOptionsDialog = FilterOptionsDialog.newInstance(
|
||||||
filterTransactionsDirection, filterDateRangeAll, filterStartDate * 1000,
|
filterTransactionsDirection, filterDateRangeAll, filterStartDate * 1000,
|
||||||
filterEndDate * 1000, filterCryptocurrencyAll, filterCryptocurrency,
|
filterEndDate * 1000, filterAssetAll, filterAsset,
|
||||||
filterFiatAmountAll, filterFromFiatAmount, filterToFiatAmount
|
filterFiatAmountAll, filterFromFiatAmount, filterToFiatAmount
|
||||||
)
|
)
|
||||||
filterOptionsDialog.show(childFragmentManager, "filter-options-tag")
|
filterOptionsDialog.show(childFragmentManager, "filter-options-tag")
|
||||||
|
@ -160,8 +160,8 @@ class TransactionsFragment : Fragment(), FilterOptionsDialog.OnFilterOptionsSele
|
||||||
if (!filterDateRangeAll && (transferDetail.date < filterStartDate || transferDetail.date > filterEndDate))
|
if (!filterDateRangeAll && (transferDetail.date < filterStartDate || transferDetail.date > filterEndDate))
|
||||||
continue
|
continue
|
||||||
|
|
||||||
// Filter by cryptocurrency
|
// Filter by asset
|
||||||
if (!filterCryptocurrencyAll && transferDetail.cryptoSymbol != filterCryptocurrency)
|
if (!filterAssetAll && transferDetail.cryptoSymbol != filterAsset)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
// // Filter by fiat amount
|
// // Filter by fiat amount
|
||||||
|
@ -183,15 +183,15 @@ class TransactionsFragment : Fragment(), FilterOptionsDialog.OnFilterOptionsSele
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
* Gets called when the user selects some filter options in the [FilterOptionsDialog] and wants to apply them.
|
||||||
*/
|
*/
|
||||||
override fun onFilterOptionsSelected(
|
override fun onFilterOptionsSelected(
|
||||||
filterTransactionsDirection: Int,
|
filterTransactionsDirection: Int,
|
||||||
filterDateRangeAll: Boolean,
|
filterDateRangeAll: Boolean,
|
||||||
filterStartDate: Long,
|
filterStartDate: Long,
|
||||||
filterEndDate: Long,
|
filterEndDate: Long,
|
||||||
filterCryptocurrencyAll: Boolean,
|
filterAssetAll: Boolean,
|
||||||
filterCryptocurrency: String,
|
filterAsset: String,
|
||||||
filterFiatAmountAll: Boolean,
|
filterFiatAmountAll: Boolean,
|
||||||
filterFromFiatAmount: Long,
|
filterFromFiatAmount: Long,
|
||||||
filterToFiatAmount: Long
|
filterToFiatAmount: Long
|
||||||
|
@ -200,8 +200,8 @@ class TransactionsFragment : Fragment(), FilterOptionsDialog.OnFilterOptionsSele
|
||||||
this.filterDateRangeAll = filterDateRangeAll
|
this.filterDateRangeAll = filterDateRangeAll
|
||||||
this.filterStartDate = filterStartDate / 1000
|
this.filterStartDate = filterStartDate / 1000
|
||||||
this.filterEndDate = filterEndDate / 1000
|
this.filterEndDate = filterEndDate / 1000
|
||||||
this.filterCryptocurrencyAll = filterCryptocurrencyAll
|
this.filterAssetAll = filterAssetAll
|
||||||
this.filterCryptocurrency = filterCryptocurrency
|
this.filterAsset = filterAsset
|
||||||
this.filterFiatAmountAll = filterFiatAmountAll
|
this.filterFiatAmountAll = filterFiatAmountAll
|
||||||
this.filterFromFiatAmount = filterFromFiatAmount
|
this.filterFromFiatAmount = filterFromFiatAmount
|
||||||
this.filterToFiatAmount = filterToFiatAmount
|
this.filterToFiatAmount = filterToFiatAmount
|
||||||
|
|
|
@ -100,19 +100,19 @@
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<!-- Cryptocurrency -->
|
<!-- Asset -->
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:text="Cryptocurrency"
|
android:text="Asset"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
app:layout_constraintTop_toTopOf="@id/cbCryptocurrency"
|
app:layout_constraintTop_toTopOf="@id/cbAsset"
|
||||||
app:layout_constraintStart_toStartOf="parent"/>
|
app:layout_constraintStart_toStartOf="parent"/>
|
||||||
|
|
||||||
<CheckBox
|
<CheckBox
|
||||||
android:id="@+id/cbCryptocurrency"
|
android:id="@+id/cbAsset"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/spacing_different_topic"
|
android:layout_marginTop="@dimen/spacing_different_topic"
|
||||||
|
@ -121,11 +121,11 @@
|
||||||
app:layout_constraintEnd_toEndOf="parent"/>
|
app:layout_constraintEnd_toEndOf="parent"/>
|
||||||
|
|
||||||
<Spinner
|
<Spinner
|
||||||
android:id="@+id/sCryptocurrency"
|
android:id="@+id/sAsset"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
tools:listitem="@android:layout/simple_list_item_1"
|
tools:listitem="@android:layout/simple_list_item_1"
|
||||||
app:layout_constraintTop_toBottomOf="@id/cbCryptocurrency"/>
|
app:layout_constraintTop_toBottomOf="@id/cbAsset"/>
|
||||||
|
|
||||||
<!-- Fiat Amount -->
|
<!-- Fiat Amount -->
|
||||||
|
|
||||||
|
@ -145,7 +145,7 @@
|
||||||
android:layout_marginTop="@dimen/spacing_same_topic"
|
android:layout_marginTop="@dimen/spacing_same_topic"
|
||||||
android:text="All"
|
android:text="All"
|
||||||
android:enabled="false"
|
android:enabled="false"
|
||||||
app:layout_constraintTop_toBottomOf="@id/sCryptocurrency"
|
app:layout_constraintTop_toBottomOf="@id/sAsset"
|
||||||
app:layout_constraintEnd_toEndOf="parent"/>
|
app:layout_constraintEnd_toEndOf="parent"/>
|
||||||
|
|
||||||
<!--<LinearLayout-->
|
<!--<LinearLayout-->
|
||||||
|
|
Loading…
Reference in a new issue