From 56a10395cc50e114fc73976a220e69612de59072 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 5 Oct 2020 16:50:30 +0200 Subject: [PATCH] Change style of popup --- .../session/ResultCaptureSelectionPopup.kt | 15 ++++++++++----- .../android/ui/modules/session/SessionFragment.kt | 6 ++++-- .../android/ui/view/BasePopupWindow.kt | 15 +++++++++++++++ app/src/main/res/drawable/popup_background.xml | 5 +++++ .../res/layout/view_result_capture_method.xml | 10 +++++----- 5 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/view/BasePopupWindow.kt create mode 100644 app/src/main/res/drawable/popup_background.xml diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/ResultCaptureSelectionPopup.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/ResultCaptureSelectionPopup.kt index 91da6338..c7db54f1 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/ResultCaptureSelectionPopup.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/ResultCaptureSelectionPopup.kt @@ -2,12 +2,12 @@ package net.pokeranalytics.android.ui.modules.session import android.app.Activity import android.widget.Button -import android.widget.PopupWindow +import android.widget.TextView import com.google.android.material.chip.Chip import com.google.android.material.chip.ChipGroup import net.pokeranalytics.android.R -import net.pokeranalytics.android.exceptions.PAIllegalStateException import net.pokeranalytics.android.model.realm.ResultCaptureType +import net.pokeranalytics.android.ui.view.BasePopupWindow interface ResultCaptureTypeDelegate { fun resultCaptureTypeSelected(resultCaptureType: ResultCaptureType, applyBankroll: Boolean) @@ -17,7 +17,7 @@ class ResultCaptureSelectionPopup( private var delegate: ResultCaptureTypeDelegate, var type: ResultCaptureType?, activity: Activity -) : PopupWindow(activity) { +) : BasePopupWindow(activity) { init { @@ -28,6 +28,9 @@ class ResultCaptureSelectionPopup( this.contentView = view this.isFocusable = true + val titleTextView = view.findViewById(R.id.title) + titleTextView.text = activity.getString(R.string.change_result_capture_method).toUpperCase() + val netResultChip = view.findViewById(R.id.chip_net_result) netResultChip.isChecked = type == ResultCaptureType.NET_RESULT netResultChip.isCheckedIconVisible = true @@ -59,9 +62,11 @@ class ResultCaptureSelectionPopup( val rct = when (chipGroup.checkedChipId) { R.id.chip_net_result -> ResultCaptureType.NET_RESULT R.id.chip_buyin_cashout -> ResultCaptureType.BUYIN_CASHEDOUT - else -> throw PAIllegalStateException("cannot happen / not managed") + else -> null + } + rct?.let { + this.delegate.resultCaptureTypeSelected(rct, applyBankroll) } - this.delegate.resultCaptureTypeSelected(rct, applyBankroll) } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt index ab78b8d8..569f2872 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt @@ -7,6 +7,7 @@ import android.view.* import android.view.animation.OvershootInterpolator import android.widget.Toast import androidx.appcompat.app.AlertDialog +import androidx.appcompat.content.res.AppCompatResources import androidx.interpolator.view.animation.FastOutSlowInInterpolator import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.DiffUtil @@ -156,7 +157,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr R.id.new_hand_history -> addHandHistory() R.id.new_custom_field -> addNewCustomField() R.id.restart -> restartTimer() - R.id.change_result_capture_method -> changeResultCaptureMethod() + R.id.change_result_capture_method -> showResultCaptureMethodPopup() R.id.delete -> deleteSession() } return true @@ -444,9 +445,10 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr /*** * Shows result capture method popup */ - private fun changeResultCaptureMethod() { + private fun showResultCaptureMethodPopup() { val currentMethod = this.model.resultCaptureType ?: this.currentSession.bankroll?.resultCaptureType(requireContext()) val resultCaptureSelectionPopup = ResultCaptureSelectionPopup(this, currentMethod, requireActivity()) + resultCaptureSelectionPopup.setBackgroundDrawable(AppCompatResources.getDrawable(requireContext(), R.drawable.popup_background)) resultCaptureSelectionPopup.showAtLocation(this.view, Gravity.CENTER, 0, 0) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/BasePopupWindow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/BasePopupWindow.kt new file mode 100644 index 00000000..e7b26676 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/BasePopupWindow.kt @@ -0,0 +1,15 @@ +package net.pokeranalytics.android.ui.view + +import android.content.Context +import android.widget.PopupWindow +import androidx.appcompat.content.res.AppCompatResources +import net.pokeranalytics.android.R + +open class BasePopupWindow(context: Context) : PopupWindow(context) { + + init { + val drawable = AppCompatResources.getDrawable(context, R.drawable.popup_background) + setBackgroundDrawable(drawable) + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/popup_background.xml b/app/src/main/res/drawable/popup_background.xml new file mode 100644 index 00000000..2b6c8440 --- /dev/null +++ b/app/src/main/res/drawable/popup_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/view_result_capture_method.xml b/app/src/main/res/layout/view_result_capture_method.xml index 7640286b..eb860776 100644 --- a/app/src/main/res/layout/view_result_capture_method.xml +++ b/app/src/main/res/layout/view_result_capture_method.xml @@ -7,11 +7,13 @@ android:padding="16dp"> @@ -24,7 +26,7 @@ android:layout_marginTop="16dp" app:chipSpacing="8dp" app:singleSelection="true" - app:layout_constraintTop_toBottomOf="@+id/message" + app:layout_constraintTop_toBottomOf="@+id/title" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"> @@ -55,7 +57,6 @@ @@ -63,7 +64,6 @@