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. 3
      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. 46
      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. 2
      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
*/
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)
intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType)
intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType.ordinal)
primaryKey?.let {
intent.putExtra(IntentKey.PRIMARY_KEY.keyName, it)
}

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

@ -13,9 +13,9 @@ import net.pokeranalytics.android.R
import net.pokeranalytics.android.exceptions.ConfigurationException
import net.pokeranalytics.android.model.interfaces.Savable
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.fragment.components.RealmFragment
import net.pokeranalytics.android.ui.modules.datalist.DataListActivity
import net.pokeranalytics.android.ui.viewmodel.DataManagerViewModel
open class DataManagerFragment : RealmFragment() {
@ -41,7 +41,6 @@ open class DataManagerFragment : RealmFragment() {
this.updateMenuUI()
}
private var editableMenu: Menu? = null
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {

@ -53,14 +53,20 @@ class DataListActivity : BaseActivity() {
getIntent(
context,
dataType.ordinal,
false,
true,
selection,
itemIds
showAddButton = true,
dialog = true,
selection = selection,
itemIds = itemIds
), 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)
intent.putExtra(IntentKey.DATA_TYPE.keyName, dataType)
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.ui.activity.EditableDataActivity
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.RowRepresentableDelegate
import net.pokeranalytics.android.ui.extensions.removeMargins
@ -113,11 +114,19 @@ open class DataListFragment : DeletableItemFragment(), RowRepresentableDelegate
}
this.addButton.setOnClickListener {
EditableDataActivity.newInstance(
requireContext(),
dataType = this.model.dataType.ordinal,
primaryKey = null
EditableDataActivity.newInstanceForResult(this,
dataType = this.model.dataType,
primaryKey = null,
requestCode = RequestCode.NEW_DATA.value
)
// EditableDataActivity.newInstance(
// requireContext(),
// dataType = this.model.dataType,
// primaryKey = null
// )
}
this.addButton.isVisible = this.model.showAddButton
@ -154,14 +163,37 @@ open class DataListFragment : DeletableItemFragment(), RowRepresentableDelegate
super.onCreateOptionsMenu(menu, inflater)
}
override fun onRowSelected(position: Int, row: RowRepresentable, tag: Int) {
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when (requestCode) {
RequestCode.NEW_DATA.value -> {
if (this.model.isSelectionInstance) {
if (this.model.isSelectionInstance) { // Ends the activity and go back to previous screen
val identifier = (row as Identifiable).id
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) {
if (this.model.isSelectionInstance) { // Ends the activity and go back to previous screen
val identifier = (row as Identifiable).id
finishActivityWithSelection(identifier)
// val intent = Intent()
// intent.putExtra(BundleKey.PRIMARY_KEY.value, identifier)
// this.activity?.setResult(Activity.RESULT_OK, intent)
// this.activity?.finish()
} else {
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.modules.handhistory.model.*
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.holder.RowViewHolder
import net.pokeranalytics.android.ui.view.rowrepresentable.ViewIdentifier
@ -534,7 +535,7 @@ class HandHistoryAdapter(
}
itemView.playerImage.setOnImageClickListener(listener)
row.playerSetup?.player?.let { player ->
itemView.playerImage.setPlayer(player, isClickable = true)
itemView.playerImage.setPlayer(player, PlayerImageView.Size.SMALL)
}
// Title

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

@ -930,9 +930,11 @@ class HandHistoryViewModel : ViewModel(), RowRepresentableDataSource, CardCentra
when (val row = this.rowRepresentables[position]) {
is PlayerSetupRow -> {
val playerSetup = row.playerSetup ?: this.handHistory.createPlayerSetup(position)
player.realm.executeTransaction {
playerSetup.player = player
}
}
}
} ?: throw PAIllegalStateException("Click position not set for player selection")
}

@ -75,7 +75,7 @@ class PlayerImageView : FrameLayout {
/**
* 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
val playerInitial = if (player.name.isNotEmpty()) {
@ -119,18 +119,17 @@ class PlayerImageView : FrameLayout {
}
// Stroke & initial
val drawable = playerImageView.playerStroke.background as GradientDrawable?
val drawable = this.playerImageView.playerStroke.background as GradientDrawable?
drawable?.setStroke(size.getStrokeSize(), color)
playerImageView.playerInitial.setTextColor(color)
this.playerImageView.playerInitial.setTextColor(color)
// Click listener
if (isClickable) {
playerImageView.playerImageSelection.setOnClickListener {
onImageClickListener?.onClick(it)
if (this.onImageClickListener != null) {
this.playerImageView.playerImageSelection.setOnClickListener {
this.onImageClickListener?.onClick(it)
}
} else {
playerImageView.playerImageSelection.background = null
this.playerImageView.playerImageSelection.background = null
}
}
@ -139,6 +138,11 @@ class PlayerImageView : FrameLayout {
*/
fun setOnImageClickListener(onImageClickListener: OnClickListener) {
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) {
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 ->
textView.text = row.name

@ -10,7 +10,7 @@ buildscript {
}
}
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 'io.realm:realm-gradle-plugin:5.8.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
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
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