Change style of popup

kmm
Laurent 5 years ago
parent 81d8f5d8d9
commit 56a10395cc
  1. 13
      app/src/main/java/net/pokeranalytics/android/ui/modules/session/ResultCaptureSelectionPopup.kt
  2. 6
      app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt
  3. 15
      app/src/main/java/net/pokeranalytics/android/ui/view/BasePopupWindow.kt
  4. 5
      app/src/main/res/drawable/popup_background.xml
  5. 10
      app/src/main/res/layout/view_result_capture_method.xml

@ -2,12 +2,12 @@ package net.pokeranalytics.android.ui.modules.session
import android.app.Activity import android.app.Activity
import android.widget.Button 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.Chip
import com.google.android.material.chip.ChipGroup import com.google.android.material.chip.ChipGroup
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.PAIllegalStateException
import net.pokeranalytics.android.model.realm.ResultCaptureType import net.pokeranalytics.android.model.realm.ResultCaptureType
import net.pokeranalytics.android.ui.view.BasePopupWindow
interface ResultCaptureTypeDelegate { interface ResultCaptureTypeDelegate {
fun resultCaptureTypeSelected(resultCaptureType: ResultCaptureType, applyBankroll: Boolean) fun resultCaptureTypeSelected(resultCaptureType: ResultCaptureType, applyBankroll: Boolean)
@ -17,7 +17,7 @@ class ResultCaptureSelectionPopup(
private var delegate: ResultCaptureTypeDelegate, private var delegate: ResultCaptureTypeDelegate,
var type: ResultCaptureType?, var type: ResultCaptureType?,
activity: Activity activity: Activity
) : PopupWindow(activity) { ) : BasePopupWindow(activity) {
init { init {
@ -28,6 +28,9 @@ class ResultCaptureSelectionPopup(
this.contentView = view this.contentView = view
this.isFocusable = true this.isFocusable = true
val titleTextView = view.findViewById<TextView>(R.id.title)
titleTextView.text = activity.getString(R.string.change_result_capture_method).toUpperCase()
val netResultChip = view.findViewById<Chip>(R.id.chip_net_result) val netResultChip = view.findViewById<Chip>(R.id.chip_net_result)
netResultChip.isChecked = type == ResultCaptureType.NET_RESULT netResultChip.isChecked = type == ResultCaptureType.NET_RESULT
netResultChip.isCheckedIconVisible = true netResultChip.isCheckedIconVisible = true
@ -59,9 +62,11 @@ class ResultCaptureSelectionPopup(
val rct = when (chipGroup.checkedChipId) { val rct = when (chipGroup.checkedChipId) {
R.id.chip_net_result -> ResultCaptureType.NET_RESULT R.id.chip_net_result -> ResultCaptureType.NET_RESULT
R.id.chip_buyin_cashout -> ResultCaptureType.BUYIN_CASHEDOUT 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)
} }
}
} }

@ -7,6 +7,7 @@ import android.view.*
import android.view.animation.OvershootInterpolator import android.view.animation.OvershootInterpolator
import android.widget.Toast import android.widget.Toast
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.appcompat.content.res.AppCompatResources
import androidx.interpolator.view.animation.FastOutSlowInInterpolator import androidx.interpolator.view.animation.FastOutSlowInInterpolator
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
@ -156,7 +157,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr
R.id.new_hand_history -> addHandHistory() R.id.new_hand_history -> addHandHistory()
R.id.new_custom_field -> addNewCustomField() R.id.new_custom_field -> addNewCustomField()
R.id.restart -> restartTimer() R.id.restart -> restartTimer()
R.id.change_result_capture_method -> changeResultCaptureMethod() R.id.change_result_capture_method -> showResultCaptureMethodPopup()
R.id.delete -> deleteSession() R.id.delete -> deleteSession()
} }
return true return true
@ -444,9 +445,10 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate, StaticRowRepr
/*** /***
* Shows result capture method popup * Shows result capture method popup
*/ */
private fun changeResultCaptureMethod() { private fun showResultCaptureMethodPopup() {
val currentMethod = this.model.resultCaptureType ?: this.currentSession.bankroll?.resultCaptureType(requireContext()) val currentMethod = this.model.resultCaptureType ?: this.currentSession.bankroll?.resultCaptureType(requireContext())
val resultCaptureSelectionPopup = ResultCaptureSelectionPopup(this, currentMethod, requireActivity()) val resultCaptureSelectionPopup = ResultCaptureSelectionPopup(this, currentMethod, requireActivity())
resultCaptureSelectionPopup.setBackgroundDrawable(AppCompatResources.getDrawable(requireContext(), R.drawable.popup_background))
resultCaptureSelectionPopup.showAtLocation(this.view, Gravity.CENTER, 0, 0) resultCaptureSelectionPopup.showAtLocation(this.view, Gravity.CENTER, 0, 0)
} }

@ -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)
}
}

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<corners android:radius="16dp"/>
</shape>

@ -7,11 +7,13 @@
android:padding="16dp"> android:padding="16dp">
<TextView <TextView
android:id="@+id/message" android:id="@+id/title"
style="@style/PokerAnalyticsTheme.DefaultText" style="@style/PokerAnalyticsTheme.TextView.RowStatsTitle"
android:text="@string/change_result_capture_method" android:text="@string/change_result_capture_method"
android:textColor="@color/black"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:gravity="start"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/> app:layout_constraintEnd_toEndOf="parent"/>
@ -24,7 +26,7 @@
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
app:chipSpacing="8dp" app:chipSpacing="8dp"
app:singleSelection="true" app:singleSelection="true"
app:layout_constraintTop_toBottomOf="@+id/message" app:layout_constraintTop_toBottomOf="@+id/title"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"> app:layout_constraintEnd_toEndOf="parent">
@ -55,7 +57,6 @@
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/button_session_only" android:id="@+id/button_session_only"
android:text="@string/use_for_this_session" android:text="@string/use_for_this_session"
android:paddingHorizontal="8dp"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.Button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
@ -63,7 +64,6 @@
<com.google.android.material.button.MaterialButton <com.google.android.material.button.MaterialButton
android:id="@+id/button_session_bankroll" android:id="@+id/button_session_bankroll"
android:text="@string/use_apply_for_bankroll" android:text="@string/use_apply_for_bankroll"
android:paddingHorizontal="8dp"
style="@style/PokerAnalyticsTheme.Button" style="@style/PokerAnalyticsTheme.Button"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />

Loading…
Cancel
Save