Player selection improvements

hh
Laurent 6 years ago
parent bbc7d154ca
commit 105f56ce0a
  1. 4
      app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt
  2. 9
      app/src/main/java/net/pokeranalytics/android/ui/activity/components/Codes.kt
  3. 7
      app/src/main/java/net/pokeranalytics/android/ui/fragment/data/DataManagerFragment.kt
  4. 16
      app/src/main/java/net/pokeranalytics/android/ui/modules/datalist/DataListActivity.kt
  5. 50
      app/src/main/java/net/pokeranalytics/android/ui/modules/datalist/DataListFragment.kt
  6. 3
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryAdapter.kt
  7. 6
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/HandHistoryFragment.kt
  8. 4
      app/src/main/java/net/pokeranalytics/android/ui/modules/handhistory/model/HandHistoryViewModel.kt
  9. 20
      app/src/main/java/net/pokeranalytics/android/ui/view/PlayerImageView.kt
  10. 2
      app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt
  11. 2
      build.gradle
  12. 4
      gradle/wrapper/gradle-wrapper.properties

@ -22,9 +22,9 @@ class EditableDataActivity : MediaActivity() {
/** /**
* Default constructor * Default constructor
*/ */
fun newInstance(context: Context, dataType: Int, primaryKey: String? = null) { fun newInstance(context: Context, dataType: LiveData, primaryKey: String? = null) {
val intent = Intent(context, EditableDataActivity::class.java) val intent = Intent(context, EditableDataActivity::class.java)
intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType) intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType.ordinal)
primaryKey?.let { primaryKey?.let {
intent.putExtra(IntentKey.PRIMARY_KEY.keyName, it) intent.putExtra(IntentKey.PRIMARY_KEY.keyName, it)
} }

@ -8,10 +8,11 @@ enum class RequestCode(var value: Int) {
BANKROLL_DETAILS(700), BANKROLL_DETAILS(700),
BANKROLL_CREATE(701), BANKROLL_CREATE(701),
BANKROLL_EDIT(702), BANKROLL_EDIT(702),
NEW_SESSION(800), NEW_DATA(800),
NEW_TRANSACTION(801), NEW_SESSION(801),
NEW_REPORT(802), NEW_TRANSACTION(802),
NEW_HAND_HISTORY(803), NEW_REPORT(803),
NEW_HAND_HISTORY(804),
IMPORT(900), IMPORT(900),
SUBSCRIPTION(901), SUBSCRIPTION(901),
CURRENCY(902), CURRENCY(902),

@ -13,9 +13,9 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.ConfigurationException import net.pokeranalytics.android.exceptions.ConfigurationException
import net.pokeranalytics.android.model.interfaces.Savable import net.pokeranalytics.android.model.interfaces.Savable
import net.pokeranalytics.android.model.interfaces.SaveValidityStatus import net.pokeranalytics.android.model.interfaces.SaveValidityStatus
import net.pokeranalytics.android.ui.modules.datalist.DataListActivity
import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.fragment.components.RealmFragment import net.pokeranalytics.android.ui.fragment.components.RealmFragment
import net.pokeranalytics.android.ui.modules.datalist.DataListActivity
import net.pokeranalytics.android.ui.viewmodel.DataManagerViewModel import net.pokeranalytics.android.ui.viewmodel.DataManagerViewModel
open class DataManagerFragment : RealmFragment() { open class DataManagerFragment : RealmFragment() {
@ -41,7 +41,6 @@ open class DataManagerFragment : RealmFragment() {
this.updateMenuUI() this.updateMenuUI()
} }
private var editableMenu: Menu? = null private var editableMenu: Menu? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -58,8 +57,8 @@ open class DataManagerFragment : RealmFragment() {
} }
/** /**
* Update menu UI * Update menu UI
*/ */
private fun updateMenuUI() { private fun updateMenuUI() {
editableMenu?.findItem(R.id.delete)?.isVisible = this.deleteButtonShouldAppear editableMenu?.findItem(R.id.delete)?.isVisible = this.deleteButtonShouldAppear
editableMenu?.findItem(R.id.save)?.isVisible = this.saveButtonShouldAppear editableMenu?.findItem(R.id.save)?.isVisible = this.saveButtonShouldAppear

@ -53,14 +53,20 @@ class DataListActivity : BaseActivity() {
getIntent( getIntent(
context, context,
dataType.ordinal, dataType.ordinal,
false, showAddButton = true,
true, dialog = true,
selection, selection = selection,
itemIds itemIds = itemIds
), RequestCode.PLAYER_SELECTION.ordinal) ), RequestCode.PLAYER_SELECTION.ordinal)
} }
private fun getIntent(context: Context, dataType: Int, showAddButton: Boolean = true, dialog: Boolean = false, selection: Boolean = false, itemIds: Array<String>? = null): Intent { private fun getIntent(context: Context,
dataType: Int,
showAddButton: Boolean = true,
dialog: Boolean = false,
selection: Boolean = false,
itemIds: Array<String>? = null): Intent {
val intent = Intent(context, DataListActivity::class.java) val intent = Intent(context, DataListActivity::class.java)
intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType) intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType)
intent.putExtra(IntentKey.SHOW_ADD_BUTTON.keyName, showAddButton) intent.putExtra(IntentKey.SHOW_ADD_BUTTON.keyName, showAddButton)

@ -20,6 +20,7 @@ import net.pokeranalytics.android.model.interfaces.Identifiable
import net.pokeranalytics.android.model.realm.Filter import net.pokeranalytics.android.model.realm.Filter
import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.EditableDataActivity
import net.pokeranalytics.android.ui.activity.FiltersActivity import net.pokeranalytics.android.ui.activity.FiltersActivity
import net.pokeranalytics.android.ui.activity.components.RequestCode
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.extensions.removeMargins import net.pokeranalytics.android.ui.extensions.removeMargins
@ -113,11 +114,19 @@ open class DataListFragment : DeletableItemFragment(), RowRepresentableDelegate
} }
this.addButton.setOnClickListener { this.addButton.setOnClickListener {
EditableDataActivity.newInstance(
requireContext(), EditableDataActivity.newInstanceForResult(this,
dataType = this.model.dataType.ordinal, dataType = this.model.dataType,
primaryKey = null primaryKey = null,
) requestCode = RequestCode.NEW_DATA.value
)
// EditableDataActivity.newInstance(
// requireContext(),
// dataType = this.model.dataType,
// primaryKey = null
// )
} }
this.addButton.isVisible = this.model.showAddButton this.addButton.isVisible = this.model.showAddButton
@ -154,14 +163,37 @@ open class DataListFragment : DeletableItemFragment(), RowRepresentableDelegate
super.onCreateOptionsMenu(menu, inflater) super.onCreateOptionsMenu(menu, inflater)
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RequestCode.NEW_DATA.value -> {
if (this.model.isSelectionInstance) {
data?.getStringExtra(BundleKey.PRIMARY_KEY.value)?.let { id ->
finishActivityWithSelection(id)
} ?: throw PAIllegalStateException("identifier not found")
}
}
}
}
private fun finishActivityWithSelection(identifier: String) {
val intent = Intent()
intent.putExtra(BundleKey.PRIMARY_KEY.value, identifier)
this.activity?.setResult(Activity.RESULT_OK, intent)
this.activity?.finish()
}
override fun onRowSelected(position: Int, row: RowRepresentable, tag: Int) { override fun onRowSelected(position: Int, row: RowRepresentable, tag: Int) {
if (this.model.isSelectionInstance) { // Ends the activity and go back to previous screen if (this.model.isSelectionInstance) { // Ends the activity and go back to previous screen
val identifier = (row as Identifiable).id val identifier = (row as Identifiable).id
val intent = Intent() finishActivityWithSelection(identifier)
intent.putExtra(BundleKey.PRIMARY_KEY.value, identifier) // val intent = Intent()
this.activity?.setResult(Activity.RESULT_OK, intent) // intent.putExtra(BundleKey.PRIMARY_KEY.value, identifier)
this.activity?.finish() // this.activity?.setResult(Activity.RESULT_OK, intent)
// this.activity?.finish()
} else { } else {
when (this.model.dataType) { when (this.model.dataType) {

@ -35,6 +35,7 @@ import net.pokeranalytics.android.ui.extensions.px
import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType import net.pokeranalytics.android.ui.fragment.components.bottomsheet.BottomSheetType
import net.pokeranalytics.android.ui.modules.handhistory.model.* import net.pokeranalytics.android.ui.modules.handhistory.model.*
import net.pokeranalytics.android.ui.modules.handhistory.views.PositionAdapter import net.pokeranalytics.android.ui.modules.handhistory.views.PositionAdapter
import net.pokeranalytics.android.ui.view.PlayerImageView
import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowRepresentable
import net.pokeranalytics.android.ui.view.holder.RowViewHolder import net.pokeranalytics.android.ui.view.holder.RowViewHolder
import net.pokeranalytics.android.ui.view.rowrepresentable.ViewIdentifier import net.pokeranalytics.android.ui.view.rowrepresentable.ViewIdentifier
@ -534,7 +535,7 @@ class HandHistoryAdapter(
} }
itemView.playerImage.setOnImageClickListener(listener) itemView.playerImage.setOnImageClickListener(listener)
row.playerSetup?.player?.let { player -> row.playerSetup?.player?.let { player ->
itemView.playerImage.setPlayer(player, isClickable = true) itemView.playerImage.setPlayer(player, PlayerImageView.Size.SMALL)
} }
// Title // Title

@ -91,9 +91,9 @@ class HandHistoryFragment : RealmFragment(), RowRepresentableDelegate, KeyboardL
initData() initData()
initUI() initUI()
if (this.model.isEdited) { // if (this.model.isEdited) {
this.findNextActionToEdit(0) // this.findNextActionToEdit(0)
} // }
} }

@ -930,7 +930,9 @@ class HandHistoryViewModel : ViewModel(), RowRepresentableDataSource, CardCentra
when (val row = this.rowRepresentables[position]) { when (val row = this.rowRepresentables[position]) {
is PlayerSetupRow -> { is PlayerSetupRow -> {
val playerSetup = row.playerSetup ?: this.handHistory.createPlayerSetup(position) val playerSetup = row.playerSetup ?: this.handHistory.createPlayerSetup(position)
playerSetup.player = player player.realm.executeTransaction {
playerSetup.player = player
}
} }
} }

@ -75,7 +75,7 @@ class PlayerImageView : FrameLayout {
/** /**
* Set the session data to the view * Set the session data to the view
*/ */
fun setPlayer(player: Player, size: Size = Size.NORMAL, isClickable: Boolean = true) { fun setPlayer(player: Player, size: Size = Size.NORMAL) {
// Initial // Initial
val playerInitial = if (player.name.isNotEmpty()) { val playerInitial = if (player.name.isNotEmpty()) {
@ -119,18 +119,17 @@ class PlayerImageView : FrameLayout {
} }
// Stroke & initial // Stroke & initial
val drawable = playerImageView.playerStroke.background as GradientDrawable? val drawable = this.playerImageView.playerStroke.background as GradientDrawable?
drawable?.setStroke(size.getStrokeSize(), color) drawable?.setStroke(size.getStrokeSize(), color)
playerImageView.playerInitial.setTextColor(color) this.playerImageView.playerInitial.setTextColor(color)
// Click listener // Click listener
if (isClickable) { if (this.onImageClickListener != null) {
playerImageView.playerImageSelection.setOnClickListener { this.playerImageView.playerImageSelection.setOnClickListener {
onImageClickListener?.onClick(it) this.onImageClickListener?.onClick(it)
} }
} else { } else {
playerImageView.playerImageSelection.background = null this.playerImageView.playerImageSelection.background = null
} }
} }
@ -139,6 +138,11 @@ class PlayerImageView : FrameLayout {
*/ */
fun setOnImageClickListener(onImageClickListener: OnClickListener) { fun setOnImageClickListener(onImageClickListener: OnClickListener) {
this.onImageClickListener = onImageClickListener this.onImageClickListener = onImageClickListener
this.playerImageView.playerImageSelection.setOnClickListener {
this.onImageClickListener?.onClick(it)
}
} }
} }

@ -533,7 +533,7 @@ enum class RowViewType(private var layoutRes: Int) : ViewIdentifier {
if (row is Player) { if (row is Player) {
itemView.findViewById<PlayerImageView?>(R.id.playerImage)?.let { playerImageView -> itemView.findViewById<PlayerImageView?>(R.id.playerImage)?.let { playerImageView ->
playerImageView.setPlayer(row, PlayerImageView.Size.SMALL, false) playerImageView.setPlayer(row, PlayerImageView.Size.SMALL)
} }
itemView.findViewById<AppCompatTextView?>(R.id.playerName)?.let { textView -> itemView.findViewById<AppCompatTextView?>(R.id.playerName)?.let { textView ->
textView.text = row.name textView.text = row.name

@ -10,7 +10,7 @@ buildscript {
} }
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.5.3' classpath 'com.android.tools.build:gradle:3.6.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'io.realm:realm-gradle-plugin:5.8.0' classpath 'io.realm:realm-gradle-plugin:5.8.0'
classpath 'com.google.gms:google-services:4.2.0' classpath 'com.google.gms:google-services:4.2.0'

@ -1,6 +1,6 @@
#Mon Aug 26 10:00:03 CEST 2019 #Wed Mar 04 11:24:53 CET 2020
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip

Loading…
Cancel
Save