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. 25
      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 ->
val sb = cgSmallBlind ?: bb / 2.0
val preFormattedBlinds = "${sb.formatted()}/${bb.round()}"
println("<<<<<< bb.toCurrency(currency) : ${bb.toCurrency(currency)}")
println("<<<<<< preFormattedBlinds : $preFormattedBlinds")
// println("<<<<<< bb.toCurrency(currency) : ${bb.toCurrency(currency)}")
// println("<<<<<< preFormattedBlinds : $preFormattedBlinds")
val regex = Regex("-?\\d+(\\.\\d+)?")
blinds = bb.toCurrency(currency).replace(regex, preFormattedBlinds)
println("<<<<<< blinds = $blinds")
// println("<<<<<< blinds = $blinds")
}
}

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

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

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

@ -122,6 +122,10 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean
return null
}
private var sameDaySessionCount: Int = 0
private var currentday: String = ""
private var previousDuration: Double? = null
private fun parseSession(realm: Realm, record: CSVRecord): Session? {
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)
when (field) {
is SessionField.Start -> {
startDate = field.parse(value)
field.defaultTimeFormat?.let {
startDate?.setHourMinutes(it)
if (field.randomTime) {
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 -> {
endDate = field.parse(value)
@ -162,12 +175,13 @@ class SessionCSVDescriptor(source: DataSource, private var isTournament: Boolean
}
is SessionField.Duration -> {
val hoursDuration = field.parse(value)
previousDuration = hoursDuration
if (startDate != null && hoursDuration != null) {
val minutes = (hoursDuration * 60.0).toInt()
val seconds = (hoursDuration * 3600.0).toInt()
val calendar = Calendar.getInstance()
calendar.time = startDate
calendar.add(Calendar.MINUTE, minutes)
calendar.add(Calendar.SECOND, seconds)
endDate = calendar.time
} else {
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
val count = DataUtils.sessionCount(realm, startDate!!, endDate!!, net)
if (count == 0) {
val managedSession = realm.copyToRealm(session)
managedSession.startDate = startDate
managedSession.endDate = endDate

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

Loading…
Cancel
Save