diff --git a/app/src/main/java/net/pokeranalytics/android/model/LiveData.kt b/app/src/main/java/net/pokeranalytics/android/model/LiveData.kt index c5687eb8..83728288 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/LiveData.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/LiveData.kt @@ -62,7 +62,7 @@ enum class LiveData : Localizable { fun updateOrCreate(realm:Realm, primaryKey:String?): RealmObject { val proxyItem: RealmObject? = this.getData(realm, primaryKey) proxyItem?.let { - return proxyItem + return realm.copyFromRealm(it) } ?: run { return this.newEntity() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt index e9e61ae6..da324bcf 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableAdapter.kt @@ -3,7 +3,9 @@ package net.pokeranalytics.android.ui.adapter import android.os.Handler import android.view.ViewGroup import androidx.recyclerview.widget.DiffUtil +import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.RecyclerView +import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.ui.view.BindableHolder import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor import net.pokeranalytics.android.ui.view.RowRepresentable diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableRecyclerView.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableRecyclerView.kt new file mode 100644 index 00000000..43d3a789 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/RowRepresentableRecyclerView.kt @@ -0,0 +1,37 @@ +package net.pokeranalytics.android.ui.adapter + +import android.content.Context +import android.util.AttributeSet +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.DividerItemDecoration +import androidx.recyclerview.widget.RecyclerView +import net.pokeranalytics.android.R + + +class RowRepresentableRecyclerView : RecyclerView { + /** + * Constructors + */ + constructor(context: Context) : super(context) { + init() + } + + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) { + init() + } + + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { + init() + } + + /** + * Init + * + * @param attrs + */ + private fun init() { + val itemDecorator = DividerItemDecoration(this.context, DividerItemDecoration.VERTICAL) + itemDecorator.setDrawable(ContextCompat.getDrawable(this.context!!, R.drawable.separator)!!) + this.addItemDecoration(itemDecorator) + } +} \ 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 1c70e275..d5c7a5b7 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 @@ -4,7 +4,11 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast +import androidx.core.content.ContextCompat +import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView import kotlinx.android.synthetic.main.fragment_settings.* import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.activity.DataListActivity @@ -50,7 +54,14 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDataSource, } override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { - DataListActivity.newInstance(requireContext(), (row as SettingRow).ordinal) + + when (row) { + SettingRow.GDPR -> Toast.makeText(requireContext(), "Show GDPR", Toast.LENGTH_SHORT).show() + } + + row.relatedResultsRepresentable?.let { + DataListActivity.newInstance(requireContext(), (row as SettingRow).ordinal) + } } /** diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt index b182c79b..9e6be4a7 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/bottomsheet/BottomSheetEditTextFragment.kt @@ -27,7 +27,7 @@ class BottomSheetEditTextFragment : BottomSheetFragment() { } override fun getValue(): Any? { - return value + return value.trim() } /** @@ -56,7 +56,7 @@ class BottomSheetEditTextFragment : BottomSheetFragment() { editText1.setOnEditorActionListener { v, actionId, event -> if (actionId == EditorInfo.IME_ACTION_DONE) { - delegate.onRowValueChanged(value, row) + delegate.onRowValueChanged(getValue(), row) dismiss() true } else { diff --git a/app/src/main/res/drawable/separator.xml b/app/src/main/res/drawable/separator.xml new file mode 100644 index 00000000..0af99c11 --- /dev/null +++ b/app/src/main/res/drawable/separator.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 0d9b6d37..12edc3e2 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> -