From d50e71bd80483a37f6312a8e5f0c0d710e9922ad Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Wed, 13 Feb 2019 11:45:15 +0100 Subject: [PATCH] data manager xml --- app/src/main/AndroidManifest.xml | 1 + .../ui/activity/DataManagementActivity.kt | 13 ++-- .../android/ui/adapter/DataManagerAdapter.kt | 48 +++++++++++++ .../android/ui/adapter/SettingsAdapter.kt | 4 +- .../ui/fragment/DataManagerFragment.kt | 69 +++++++++++++++++++ .../android/ui/fragment/SettingsFragment.kt | 4 ++ .../main/res/layout/activity_data_manager.xml | 13 ++++ .../main/res/layout/fragment_data_manager.xml | 21 ++++++ 8 files changed, 164 insertions(+), 9 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/adapter/DataManagerAdapter.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/DataManagerFragment.kt create mode 100644 app/src/main/res/layout/activity_data_manager.xml create mode 100644 app/src/main/res/layout/fragment_data_manager.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2fc1179a..df424857 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,6 +23,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/DataManagementActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/DataManagementActivity.kt index ce23a658..86666129 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/DataManagementActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/DataManagementActivity.kt @@ -3,7 +3,9 @@ package net.pokeranalytics.android.ui.activity import android.content.Context import android.content.Intent import android.os.Bundle +import kotlinx.android.synthetic.main.activity_data_manager.* import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.fragment.DataManagerFragment import net.pokeranalytics.android.util.PokerAnalyticsActivity class DataManagementActivity: PokerAnalyticsActivity() { @@ -18,7 +20,7 @@ class DataManagementActivity: PokerAnalyticsActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) -// setContentView(R.layout.activity_data_management) + setContentView(R.layout.activity_data_manager) initUI() } @@ -28,9 +30,9 @@ class DataManagementActivity: PokerAnalyticsActivity() { */ private fun initUI() { - val isTournament = intent.getIntExtra("dataType", 0) -// val fragment = newSessionFragment as NewSessionFragment -// fragment.setData(isTournament) + val dataType = intent.getIntExtra("dataType", 0) + val fragment = dataManagerFragment as DataManagerFragment + fragment.setData(dataType) } @@ -38,9 +40,6 @@ class DataManagementActivity: PokerAnalyticsActivity() { * Init data */ private fun initData() { - - - } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/DataManagerAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/DataManagerAdapter.kt new file mode 100644 index 00000000..4e7aa663 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/DataManagerAdapter.kt @@ -0,0 +1,48 @@ +package net.pokeranalytics.android.ui.adapter + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import io.realm.RealmObject +import io.realm.RealmResults +import kotlinx.android.synthetic.main.row_history_session.view.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.ui.view.SessionRowView +import timber.log.Timber + +class DataManagerAdapter(private var items: RealmResults) : RecyclerView.Adapter() { + + companion object { + const val ROW_DATA: Int = 100 + } + + inner class RowDataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + fun bind() { + } + } + + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { + when (viewType) { + ROW_DATA -> return RowDataViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.row_data_cell, parent, false)) + else -> throw IllegalStateException("Need to implement type $viewType in DataManager") + } + } + + override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { + when (getItemViewType(position)) { + ROW_DATA -> (holder as DataManagerAdapter.RowDataViewHolder).bind() + } + } + + override fun getItemCount(): Int { + return items.size + } + + override fun getItemViewType(position: Int): Int { + return ROW_DATA + } + + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt index ff7d8e5f..1ecf3062 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/SettingsAdapter.kt @@ -43,13 +43,13 @@ class SettingsAdapter() : RecyclerView.Adapter() { } } - var onClickOnData: ((position: Int, dataType: DataType) -> Unit)? = null + var onClickOnData: ((position: Int, dataType: Int) -> Unit)? = null inner class RowDataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { fun bind(dataType: DataType) { itemView.dataRow.setData(dataType.localizedName()) itemView.dataRow.setOnClickListener { - onClickOnData?.invoke(adapterPosition, dataType) + onClickOnData?.invoke(adapterPosition, dataType.ordinal) } } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataManagerFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataManagerFragment.kt new file mode 100644 index 00000000..4a8ff3da --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataManagerFragment.kt @@ -0,0 +1,69 @@ +package net.pokeranalytics.android.ui.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.Toast +import androidx.recyclerview.widget.LinearLayoutManager +import io.realm.Realm +import io.realm.RealmResults +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.adapter.DataManagerAdapter +import net.pokeranalytics.android.util.PokerAnalyticsFragment +import timber.log.Timber +import java.util.* + +class DataManagerFragment : PokerAnalyticsFragment() { + + companion object { + fun newInstance(): DataManagerFragment { + val fragment = DataManagerFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + } + + private lateinit var dataManagerAdapter: DataManagerAdapter + private var realmSessions: RealmResults? = null + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_data_manager, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initUI() + initData() + } + + override fun onDestroyView() { + super.onDestroyView() + realmSessions?.removeAllChangeListeners() + } + + /** + * Init UI + */ + private fun initUI() { + } + + /** + * Init data + */ + private fun initData() { + + } + + /** + * Set fragment data + */ + fun setData(dataType: Int) { +} + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt index 4923fbdf..7259a810 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt @@ -7,6 +7,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.activity.DataManagementActivity import net.pokeranalytics.android.ui.adapter.SettingsAdapter import net.pokeranalytics.android.util.PokerAnalyticsFragment @@ -44,6 +45,9 @@ class SettingsFragment : PokerAnalyticsFragment() { val viewManager = LinearLayoutManager(requireContext()) settingsAdapter = SettingsAdapter() + settingsAdapter.onClickOnData = { position, dataType -> + DataManagementActivity.newInstance(requireContext(), 0) + } recyclerView.apply { setHasFixedSize(true) diff --git a/app/src/main/res/layout/activity_data_manager.xml b/app/src/main/res/layout/activity_data_manager.xml new file mode 100644 index 00000000..31d9a675 --- /dev/null +++ b/app/src/main/res/layout/activity_data_manager.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_data_manager.xml b/app/src/main/res/layout/fragment_data_manager.xml new file mode 100644 index 00000000..9e79794d --- /dev/null +++ b/app/src/main/res/layout/fragment_data_manager.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file