|
|
|
|
@ -18,10 +18,13 @@ import kotlinx.coroutines.GlobalScope |
|
|
|
|
import kotlinx.coroutines.delay |
|
|
|
|
import kotlinx.coroutines.launch |
|
|
|
|
import net.pokeranalytics.android.R |
|
|
|
|
import net.pokeranalytics.android.model.LiveData |
|
|
|
|
import net.pokeranalytics.android.model.interfaces.Deletable |
|
|
|
|
import net.pokeranalytics.android.model.interfaces.Identifiable |
|
|
|
|
import net.pokeranalytics.android.model.realm.Filter |
|
|
|
|
import net.pokeranalytics.android.ui.activity.DataListActivity |
|
|
|
|
import net.pokeranalytics.android.ui.activity.EditableDataActivity |
|
|
|
|
import net.pokeranalytics.android.ui.activity.FiltersActivity |
|
|
|
|
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.LiveRowRepresentableDataSource |
|
|
|
|
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter |
|
|
|
|
@ -30,8 +33,6 @@ import net.pokeranalytics.android.ui.fragment.components.RealmFragment |
|
|
|
|
import net.pokeranalytics.android.ui.helpers.SwipeToDeleteCallback |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
import net.pokeranalytics.android.ui.view.RowViewType |
|
|
|
|
import net.pokeranalytics.android.ui.view.rowrepresentable.SettingRow |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class DataListFragment : RealmFragment(), LiveRowRepresentableDataSource, RowRepresentableDelegate { |
|
|
|
|
|
|
|
|
|
@ -39,7 +40,7 @@ class DataListFragment : RealmFragment(), LiveRowRepresentableDataSource, RowRep |
|
|
|
|
const val REQUEST_CODE_DETAILS = 1000 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private lateinit var dataType: SettingRow |
|
|
|
|
private lateinit var dataType: LiveData |
|
|
|
|
private lateinit var items: RealmResults<*> |
|
|
|
|
private lateinit var dataListAdapter: RowRepresentableAdapter |
|
|
|
|
|
|
|
|
|
@ -93,7 +94,13 @@ class DataListFragment : RealmFragment(), LiveRowRepresentableDataSource, RowRep |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { |
|
|
|
|
this.dataType.relatedResultsRepresentable?.let { |
|
|
|
|
this.dataType?.let { |
|
|
|
|
if (it == LiveData.FILTER) { |
|
|
|
|
val intent = Intent() |
|
|
|
|
intent.putExtra(FiltersActivity.IntentKey.FILTER_ID.keyName, (row as Filter).id) |
|
|
|
|
activity?.setResult(Activity.RESULT_OK, intent) |
|
|
|
|
activity?.finish() |
|
|
|
|
} else { |
|
|
|
|
lastItemClickedPosition = position |
|
|
|
|
EditableDataActivity.newInstanceForResult( |
|
|
|
|
this, |
|
|
|
|
@ -103,6 +110,7 @@ class DataListFragment : RealmFragment(), LiveRowRepresentableDataSource, RowRep |
|
|
|
|
) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Init UI |
|
|
|
|
@ -135,7 +143,7 @@ class DataListFragment : RealmFragment(), LiveRowRepresentableDataSource, RowRep |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.addButton.setOnClickListener { |
|
|
|
|
this.dataType.relatedResultsRepresentable?.let { |
|
|
|
|
this.dataType?.let { |
|
|
|
|
EditableDataActivity.newInstance( |
|
|
|
|
requireContext(), |
|
|
|
|
dataType = it.ordinal, |
|
|
|
|
@ -199,9 +207,9 @@ class DataListFragment : RealmFragment(), LiveRowRepresentableDataSource, RowRep |
|
|
|
|
* Set fragment data |
|
|
|
|
*/ |
|
|
|
|
fun setData(dataType: Int) { |
|
|
|
|
this.dataType = SettingRow.values()[dataType] |
|
|
|
|
this.dataType = LiveData.values()[dataType] |
|
|
|
|
this.toolbar.title = this.dataType.localizedTitle(requireContext()) |
|
|
|
|
this.dataType.relatedResultsRepresentable?.let { |
|
|
|
|
this.dataType?.let { |
|
|
|
|
this.items = it.items(getRealm()) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|