diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index ce9399f0..4032bd0c 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt @@ -76,7 +76,7 @@ class PokerAnalyticsApplication : Application() { if (BuildConfig.DEBUG) { Timber.d("UserPreferences.defaultCurrency: ${UserDefaults.currency.symbol}") - this.createFakeSessions() +// this.createFakeSessions() } Patcher.patchAll(this.applicationContext) diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/optimalduration/CashGameOptimalDurationCalculator.kt b/app/src/main/java/net/pokeranalytics/android/calculus/optimalduration/CashGameOptimalDurationCalculator.kt index 25583d84..935e273f 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/optimalduration/CashGameOptimalDurationCalculator.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/optimalduration/CashGameOptimalDurationCalculator.kt @@ -8,6 +8,7 @@ import net.pokeranalytics.android.model.filter.QueryCondition import net.pokeranalytics.android.model.realm.Session import org.apache.commons.math3.fitting.PolynomialCurveFitter import org.apache.commons.math3.fitting.WeightedObservedPoints +import timber.log.Timber import java.util.* import kotlin.math.pow import kotlin.math.round @@ -44,13 +45,18 @@ class CashGameOptimalDurationCalculator { val sessions = query.queryWith(realm.where(Session::class.java)).findAll() val sessionsByDuration = sessions.groupBy { - round((it.netDuration / bucket).toDouble()) * bucket + val dur = round((it.netDuration / bucket).toDouble()) * bucket + Timber.d("Stop notif > key: $dur") + dur } // define validity interval var start: Double? = null var end: Double? = null var validBuckets = 0 + + val hkeys = sessionsByDuration.keys.map { it / 3600 / 1000.0 }.sorted() + Timber.d("Stop notif > keys: $hkeys ") for (key in sessionsByDuration.keys.sorted()) { val sessionCount = sessionsByDuration[key]?.size ?: 0 if (start == null && sessionCount >= minimumValidityCount) { @@ -61,12 +67,15 @@ class CashGameOptimalDurationCalculator { validBuckets++ } } + Timber.d("Stop notif > validBuckets: $validBuckets ") if (!(start != null && end != null && (end - start) >= intervalValidity)) { + Timber.d("Stop notif > invalid setup: $start / $end ") return null } // define if we have enough sessions if (sessions.size < 50) { + Timber.d("Stop notif > not enough sessions: ${sessions.size} ") return null } @@ -115,6 +124,7 @@ class CashGameOptimalDurationCalculator { return bestDuration } + Timber.d("Stop notif > not found, best duration: $bestDuration") realm.close() return null } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt index 32bc7f62..c9ccbcc4 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/modules/session/SessionFragment.kt @@ -401,7 +401,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate { if (!isDetached) { optimalDuration?.let { - val delay = 1000L // it.toLong() + val delay = it.toLong() scheduleNotification(delay, "stop notif tag") val formattedDuration = (it / 3600 / 1000).formattedHourlyDuration() @@ -429,7 +429,7 @@ class SessionFragment : RealmFragment(), RowRepresentableDelegate { .addTag(tag) .build() - WorkManager.getInstance().enqueue(work) + WorkManager.getInstance(requireContext()).enqueue(work) } /**