Updating Poker Agent import

od
Laurent 6 years ago
parent 1a6e39cef1
commit 6d3cb90755
  1. 6
      app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt
  2. 56
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt
  3. 3
      app/src/main/java/net/pokeranalytics/android/util/csv/CSVDescriptor.kt
  4. 4
      app/src/main/java/net/pokeranalytics/android/util/csv/ProductCSVDescriptors.kt
  5. 27
      app/src/main/java/net/pokeranalytics/android/util/csv/SessionCSVDescriptor.kt
  6. 2
      app/src/main/java/net/pokeranalytics/android/util/csv/SessionField.kt

@ -621,11 +621,11 @@ open class Session : RealmObject(), Savable, Editable, StaticRowRepresentableDat
cgBigBlind?.let { bb -> cgBigBlind?.let { bb ->
val sb = cgSmallBlind ?: bb / 2.0 val sb = cgSmallBlind ?: bb / 2.0
val preFormattedBlinds = "${sb.formatted()}/${bb.round()}" val preFormattedBlinds = "${sb.formatted()}/${bb.round()}"
println("<<<<<< bb.toCurrency(currency) : ${bb.toCurrency(currency)}") // println("<<<<<< bb.toCurrency(currency) : ${bb.toCurrency(currency)}")
println("<<<<<< preFormattedBlinds : $preFormattedBlinds") // println("<<<<<< preFormattedBlinds : $preFormattedBlinds")
val regex = Regex("-?\\d+(\\.\\d+)?") val regex = Regex("-?\\d+(\\.\\d+)?")
blinds = bb.toCurrency(currency).replace(regex, preFormattedBlinds) blinds = bb.toCurrency(currency).replace(regex, preFormattedBlinds)
println("<<<<<< blinds = $blinds") // println("<<<<<< blinds = $blinds")
} }
} }

@ -1,11 +1,16 @@
package net.pokeranalytics.android.ui.fragment package net.pokeranalytics.android.ui.fragment
import android.Manifest
import android.app.Activity.RESULT_OK import android.app.Activity.RESULT_OK
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Bundle import android.os.Bundle
import android.view.* import android.view.*
import android.widget.Toast import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.app.ActivityOptionsCompat import androidx.core.app.ActivityOptionsCompat
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.interpolator.view.animation.FastOutSlowInInterpolator import androidx.interpolator.view.animation.FastOutSlowInInterpolator
import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayout
@ -34,6 +39,7 @@ import net.pokeranalytics.android.ui.view.SmoothScrollLinearLayoutManager
import net.pokeranalytics.android.util.Preferences import net.pokeranalytics.android.util.Preferences
import net.pokeranalytics.android.util.billing.AppGuard import net.pokeranalytics.android.util.billing.AppGuard
import net.pokeranalytics.android.util.extensions.count import net.pokeranalytics.android.util.extensions.count
import java.io.File
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
@ -133,31 +139,31 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
initUI() initUI()
initData() initData()
// if (ContextCompat.checkSelfPermission(requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) if (ContextCompat.checkSelfPermission(requireActivity(), Manifest.permission.READ_EXTERNAL_STORAGE)
// != PackageManager.PERMISSION_GRANTED) { != PackageManager.PERMISSION_GRANTED) {
//
// if (ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(), if (ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(),
// Manifest.permission.READ_EXTERNAL_STORAGE)) { Manifest.permission.READ_EXTERNAL_STORAGE)) {
// // Show an explanation to the user *asynchronously* -- don't block // Show an explanation to the user *asynchronously* -- don't block
// // this thread waiting for the user's response! After the user // this thread waiting for the user's response! After the user
// // sees the explanation, try again to request the permission. // sees the explanation, try again to request the permission.
// } else { } else {
// // No explanation needed, we can request the permission. // No explanation needed, we can request the permission.
// ActivityCompat.requestPermissions(requireActivity(), ActivityCompat.requestPermissions(requireActivity(),
// arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE),
// 12) 12)
//
// // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
// // app-defined int constant. The callback method gets the // app-defined int constant. The callback method gets the
// // result of the request. // result of the request.
// } }
//
// } else { } else {
//
// val uri = Uri.fromFile(File("sdcard/Download/Results_0802.csv")) val uri = Uri.fromFile(File("sdcard/Download/Results_0802.csv"))
// ImportActivity.newInstanceForResult(requireActivity(), uri) ImportActivity.newInstanceForResult(requireActivity(), uri)
//
// } }
} }

@ -15,7 +15,8 @@ import timber.log.Timber
enum class DataSource { enum class DataSource {
POKER_INCOME, POKER_INCOME,
POKER_BANKROLL_TRACKER, POKER_BANKROLL_TRACKER,
RUNGOOD RUNGOOD,
POKER_AGENT
} }
/** /**

@ -5,9 +5,9 @@ class ProductCSVDescriptors {
companion object { companion object {
val pokerAgent: CSVDescriptor = SessionCSVDescriptor( val pokerAgent: CSVDescriptor = SessionCSVDescriptor(
DataSource.POKER_INCOME, DataSource.POKER_AGENT,
false, false,
SessionField.Start("Date ", dateFormat = "MM-dd-yyyy", defaultTimeFormat = "20:00"), SessionField.Start("Date ", dateFormat = "MM-dd-yyyy", randomTime = true),
SessionField.Location("Location"), SessionField.Location("Location"),
SessionField.SmallBlind("SB"), SessionField.SmallBlind("SB"),
SessionField.BigBlind("BB"), SessionField.BigBlind("BB"),

@ -122,6 +122,10 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean
return null return null
} }
private var sameDaySessionCount: Int = 0
private var currentday: String = ""
private var previousDuration: Double? = null
private fun parseSession(realm: Realm, record: CSVRecord): Session? { private fun parseSession(realm: Realm, record: CSVRecord): Session? {
val session = Session.newInstance(realm, this.isTournament, managed = false) val session = Session.newInstance(realm, this.isTournament, managed = false)
@ -145,11 +149,20 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean
val value = record.get(index) val value = record.get(index)
when (field) { when (field) {
is SessionField.Start -> { is SessionField.Start -> {
startDate = field.parse(value) startDate = field.parse(value)
field.defaultTimeFormat?.let { if (field.randomTime) {
startDate?.setHourMinutes(it)
} if (currentday == value) {
sameDaySessionCount++
} else {
sameDaySessionCount = 0
}
currentday = value
val hour = 20 - sameDaySessionCount * 8
val timeFormat = "$hour:00"
startDate?.setHourMinutes(timeFormat)
} else {}
} }
is SessionField.End -> { is SessionField.End -> {
endDate = field.parse(value) endDate = field.parse(value)
@ -162,12 +175,13 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean
} }
is SessionField.Duration -> { is SessionField.Duration -> {
val hoursDuration = field.parse(value) val hoursDuration = field.parse(value)
previousDuration = hoursDuration
if (startDate != null && hoursDuration != null) { if (startDate != null && hoursDuration != null) {
val minutes = (hoursDuration * 60.0).toInt() val seconds = (hoursDuration * 3600.0).toInt()
val calendar = Calendar.getInstance() val calendar = Calendar.getInstance()
calendar.time = startDate calendar.time = startDate
calendar.add(Calendar.MINUTE, minutes) calendar.add(Calendar.SECOND, seconds)
endDate = calendar.time endDate = calendar.time
} else { } else {
throw PAIllegalStateException("start date ($startDate) + hoursDuration ($hoursDuration) required") throw PAIllegalStateException("start date ($startDate) + hoursDuration ($hoursDuration) required")
@ -288,6 +302,7 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean
// session already in realm, we'd love not put it in Realm before doing the check // session already in realm, we'd love not put it in Realm before doing the check
val count = DataUtils.sessionCount(realm, startDate!!, endDate!!, net) val count = DataUtils.sessionCount(realm, startDate!!, endDate!!, net)
if (count == 0) { if (count == 0) {
val managedSession = realm.copyToRealm(session) val managedSession = realm.copyToRealm(session)
managedSession.startDate = startDate managedSession.startDate = startDate
managedSession.endDate = endDate managedSession.endDate = endDate

@ -20,7 +20,7 @@ sealed class SessionField {
override var header: String, override var header: String,
override var callback: ((String) -> Date?)? = null, override var callback: ((String) -> Date?)? = null,
override val dateFormat: String? = null, override val dateFormat: String? = null,
val defaultTimeFormat: String? = null val randomTime: Boolean = false
) : DateCSVField ) : DateCSVField
data class StartTime( data class StartTime(

Loading…
Cancel
Save