@ -85,12 +85,12 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
deleteSelectedTransaction ( )
deleteSelectedTransaction ( )
}
}
} else if ( requestCode == FilterActivityRequestCode . CREATE _FILTER . ordinal && resultCode == RESULT _OK ) {
} else if ( requestCode == FilterActivityRequestCode . CREATE _FILTER . ordinal && resultCode == RESULT _OK ) {
data ?. let {
data ?. let {
this . saveFilter ( this . requireContext ( ) , it . getStringExtra ( FiltersActivity . IntentKey . FILTER _ID . keyName ) )
this . saveFilter ( this . requireContext ( ) , it . getStringExtra ( FiltersActivity . IntentKey . FILTER _ID . keyName ) )
}
}
}
}
}
}
override fun onDestroyView ( ) {
override fun onDestroyView ( ) {
super . onDestroyView ( )
super . onDestroyView ( )
@ -116,7 +116,12 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
is Transaction -> {
is Transaction -> {
selectedTransaction = row
selectedTransaction = row
selectedTransactionPosition = position
selectedTransactionPosition = position
EditableDataActivity . newInstanceForResult ( this , LiveData . TRANSACTION , row . id , REQUEST _CODE _TRANSACTION _DETAILS )
EditableDataActivity . newInstanceForResult (
this ,
LiveData . TRANSACTION ,
row . id ,
REQUEST _CODE _TRANSACTION _DETAILS
)
}
}
}
}
}
}
@ -149,13 +154,13 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
override fun onTabSelected ( tab : TabLayout . Tab ) {
override fun onTabSelected ( tab : TabLayout . Tab ) {
when ( tab . position ) {
when ( tab . position ) {
0 -> {
0 -> {
currentFilterable = FilterableType . SESSION
currentFilterable = FilterableType . SESSION
recyclerView . adapter = feedSessionAdapter
recyclerView . adapter = feedSessionAdapter
}
}
1 -> {
1 -> {
currentFilterable = FilterableType . TRANSACTION
currentFilterable = FilterableType . TRANSACTION
recyclerView . adapter = feedTransactionAdapter
recyclerView . adapter = feedTransactionAdapter
}
}
}
}
}
}
@ -173,63 +178,73 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
* /
* /
private fun initData ( ) {
private fun initData ( ) {
val sdf = SimpleDateFormat ( " dd/M/yyyy hh:mm " , Locale . getDefault ( ) )
val sdf = SimpleDateFormat ( " dd/M/yyyy hh:mm " , Locale . getDefault ( ) )
betaLimitDate = sdf . parse ( " 17/7/2019 10:00 " )
betaLimitDate = sdf . parse ( " 17/7/2019 10:00 " )
val viewManager = SmoothScrollLinearLayoutManager ( requireContext ( ) )
val viewManager = SmoothScrollLinearLayoutManager ( requireContext ( ) )
recyclerView . apply {
recyclerView . apply {
setHasFixedSize ( true )
setHasFixedSize ( true )
layoutManager = viewManager
layoutManager = viewManager
}
}
applyFilter ( )
applyFilter ( )
}
}
private fun loadSessions ( filter : Filter ? = null ) {
private fun loadSessions ( filter : Filter ? = null ) {
val sessionFilter : Filter ? = filter ?. let {
val sessionFilter : Filter ? = filter ?. let {
if ( it . filterableType == FilterableType . SESSION ) {
if ( it . filterableType == FilterableType . SESSION ) {
it
it
} else {
} else {
null
null
}
}
}
}
// Sessions
// Sessions
this . realmSessions = sessionFilter ?. results ( ) ?: run { getRealm ( ) . where < Session > ( ) . findAll ( ) }
this . realmSessions = sessionFilter ?. results ( ) ?: run { getRealm ( ) . where < Session > ( ) . isNotNull ( " startDate " ) . findAll ( ) }
this . realmSessions = this . realmSessions . sort ( " startDate " , Sort . DESCENDING )
this . realmSessions = this . realmSessions . sort ( " startDate " , Sort . DESCENDING )
this . realmSessions . addChangeListener { _ , _ ->
this . realmSessions . addChangeListener { _ , _ ->
this . feedSessionAdapter . refreshData ( )
this . feedSessionAdapter . refreshData ( )
this . feedSessionAdapter . notifyDataSetChanged ( )
this . feedSessionAdapter . notifyDataSetChanged ( )
}
}
val pendingSessions = sessionFilter ?. let { getRealm ( ) . where < Session > ( ) . alwaysFalse ( ) . findAll ( ) } ?: run { getRealm ( ) . where < Session > ( ) . isNull ( " year " ) . isNull ( " month " ) . findAll ( ) . sort ( " startDate " , Sort . DESCENDING ) }
val pendingSessions = sessionFilter ?. let {
var distinctDateSessions = sessionFilter ?. results ( " year " , " month " ) ?: run { getRealm ( ) . where < Session > ( ) . distinct ( " year " , " month " ) . findAll ( ) }
getRealm ( ) . where < Session > ( ) . alwaysFalse ( ) . findAll ( )
distinctDateSessions = distinctDateSessions . sort ( " startDate " , Sort . DESCENDING )
} ?: run {
this . feedSessionAdapter = FeedSessionRowRepresentableAdapter ( this , realmSessions , pendingSessions , distinctDateSessions )
getRealm ( ) . where < Session > ( ) . isNull ( " year " ) . isNull ( " month " ) . findAll ( ) . sort ( " startDate " , Sort . DESCENDING )
}
}
var distinctDateSessions = sessionFilter ?. results ( " year " , " month " ) ?: run {
getRealm ( ) . where < Session > ( ) . distinct ( " year " , " month " ) . findAll ( )
}
distinctDateSessions = distinctDateSessions . sort ( " startDate " , Sort . DESCENDING )
this . feedSessionAdapter =
FeedSessionRowRepresentableAdapter ( this , realmSessions , pendingSessions , distinctDateSessions )
}
private fun loadTransactions ( filter : Filter ? = null ) {
private fun loadTransactions ( filter : Filter ? = null ) {
val transactionFilter : Filter ? = filter ?. let {
val transactionFilter : Filter ? = filter ?. let {
if ( it . filterableType == FilterableType . TRANSACTION ) {
if ( it . filterableType == FilterableType . TRANSACTION ) {
it
it
} else {
} else {
null
null
}
}
}
}
// Transactions
// Transactions
this . realmTransactions = transactionFilter ?. results ( ) ?: run { getRealm ( ) . where < Transaction > ( ) . findAll ( ) }
this . realmTransactions = transactionFilter ?. results ( ) ?: run { getRealm ( ) . where < Transaction > ( ) . findAll ( ) }
this . realmTransactions = this . realmTransactions . sort ( " date " , Sort . DESCENDING )
this . realmTransactions = this . realmTransactions . sort ( " date " , Sort . DESCENDING )
this . realmTransactions . addChangeListener { _ , _ ->
this . realmTransactions . addChangeListener { _ , _ ->
this . feedTransactionAdapter . refreshData ( )
this . feedTransactionAdapter . refreshData ( )
this . feedTransactionAdapter . notifyDataSetChanged ( )
this . feedTransactionAdapter . notifyDataSetChanged ( )
}
}
var distinctDateTransactions = transactionFilter ?. results ( " year " , " month " ) ?: run { getRealm ( ) . where < Transaction > ( ) . distinct ( " year " , " month " ) . findAll ( ) }
var distinctDateTransactions = transactionFilter ?. results ( " year " , " month " ) ?: run {
distinctDateTransactions = distinctDateTransactions . sort ( " date " , Sort . DESCENDING )
getRealm ( ) . where < Transaction > ( ) . distinct ( " year " , " month " ) . findAll ( )
this . feedTransactionAdapter = FeedTransactionRowRepresentableAdapter ( this , realmTransactions , distinctDateTransactions )
}
distinctDateTransactions = distinctDateTransactions . sort ( " date " , Sort . DESCENDING )
this . feedTransactionAdapter =
FeedTransactionRowRepresentableAdapter ( this , realmTransactions , distinctDateTransactions )
}
}
/ * *
/ * *
* Create a new cash game
* Create a new cash game
@ -280,45 +295,49 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
* Show end of beta message
* Show end of beta message
* /
* /
private fun showEndOfBetaMessage ( ) {
private fun showEndOfBetaMessage ( ) {
Toast . makeText ( context , " Beta has ended. Thanks a lot for your participation! Please update with the Google Play version to continue using the app " , Toast . LENGTH _LONG ) . show ( )
Toast . makeText (
context ,
" Beta has ended. Thanks a lot for your participation! Please update with the Google Play version to continue using the app " ,
Toast . LENGTH _LONG
) . show ( )
}
}
// Filter Handler
// Filter Handler
override fun applyFilter ( ) {
override fun applyFilter ( ) {
super . applyFilter ( )
super . applyFilter ( )
val filter : Filter ? = this . currentFilter ( this . requireContext ( ) , getRealm ( ) )
val filter : Filter ? = this . currentFilter ( this . requireContext ( ) , getRealm ( ) )
this . loadSessions ( filter )
this . loadSessions ( filter )
this . loadTransactions ( filter )
this . loadTransactions ( filter )
filter ?. let {
filter ?. let {
if ( it . filterableType == FilterableType . SESSION ) {
if ( it . filterableType == FilterableType . SESSION ) {
recyclerView . adapter = feedSessionAdapter
recyclerView . adapter = feedSessionAdapter
} else {
} else {
recyclerView . adapter = feedTransactionAdapter
recyclerView . adapter = feedTransactionAdapter
}
}
adapterHasBeenSet = true
adapterHasBeenSet = true
}
}
if ( ! adapterHasBeenSet ) {
if ( ! adapterHasBeenSet ) {
adapterHasBeenSet = true
adapterHasBeenSet = true
recyclerView . adapter = feedSessionAdapter
recyclerView . adapter = feedSessionAdapter
}
}
}
}
override fun removeFilter ( ) {
override fun removeFilter ( ) {
super . removeFilter ( )
super . removeFilter ( )
this . loadSessions ( )
this . loadSessions ( )
this . loadTransactions ( )
this . loadTransactions ( )
if ( currentFilterable == FilterableType . SESSION ) {
if ( currentFilterable == FilterableType . SESSION ) {
recyclerView . adapter = feedSessionAdapter
recyclerView . adapter = feedSessionAdapter
} else {
} else {
recyclerView . adapter = feedTransactionAdapter
recyclerView . adapter = feedTransactionAdapter
}
}
}
}
override var currentFilterable : FilterableType = FilterableType . SESSION
override var currentFilterable : FilterableType = FilterableType . SESSION
}
}