From bbb54890dd00f67fd9de65951f6550d4c1f53473 Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 23 May 2019 14:52:50 +0200 Subject: [PATCH 1/2] Create Activity + Fragment for import --- app/src/main/AndroidManifest.xml | 290 +++++++++--------- .../android/PokerAnalyticsApplication.kt | 2 +- .../android/ui/activity/HomeActivity.kt | 22 -- .../android/ui/activity/ImportActivity.kt | 67 ++++ .../android/ui/fragment/ImportFragment.kt | 11 + 5 files changed, 226 insertions(+), 166 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/ImportFragment.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5268059e..c59b91fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,147 +1,151 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + package="net.pokeranalytics.android"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt index da13bd7e..8ec3a204 100644 --- a/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt +++ b/app/src/main/java/net/pokeranalytics/android/PokerAnalyticsApplication.kt @@ -61,7 +61,7 @@ class PokerAnalyticsApplication : Application() { if (BuildConfig.DEBUG) { Timber.d("UserPreferences.defaultCurrency: ${UserDefaults.currency.symbol}") - this.createFakeSessions() +// this.createFakeSessions() } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt index 319aaa12..3e26844b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt @@ -1,12 +1,10 @@ package net.pokeranalytics.android.ui.activity -import android.Manifest import android.app.KeyguardManager import android.content.Context import android.content.Intent import android.os.Build import android.os.Bundle -import androidx.core.app.ActivityCompat import com.google.android.material.bottomnavigation.BottomNavigationView import io.realm.RealmResults import kotlinx.android.synthetic.main.activity_home.* @@ -16,7 +14,6 @@ import net.pokeranalytics.android.model.realm.Currency import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.HomePagerAdapter import net.pokeranalytics.android.util.billing.AppGuard -import net.pokeranalytics.android.util.csv.CSVImporter class HomeActivity : PokerAnalyticsActivity() { @@ -74,25 +71,6 @@ class HomeActivity : PokerAnalyticsActivity() { observeRealmObjects() initUI() checkFirstLaunch() -// csv() - - } - - fun csv() { - - val path = "sdcard/Download/RunGoodSessions1.csv" - val csv = CSVImporter(path) - csv.start() - - ActivityCompat.requestPermissions( - this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), PERMISSION_REQUEST_ACCESS_FINE_LOCATION - ) - - } - - override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults) - } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt new file mode 100644 index 00000000..275fdd3b --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt @@ -0,0 +1,67 @@ +package net.pokeranalytics.android.ui.activity + +import android.Manifest +import android.content.Intent +import android.os.Bundle +import android.os.PersistableBundle +import androidx.core.app.ActivityCompat +import io.realm.Realm +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity +import net.pokeranalytics.android.ui.fragment.ImportFragment +import net.pokeranalytics.android.util.csv.CSVImporter +import timber.log.Timber + +class ImportActivity : PokerAnalyticsActivity() { + + override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) { + super.onCreate(savedInstanceState, persistentState) + + initUI() + + } + + override fun onStop() { + super.onStop() + + val realm = Realm.getDefaultInstance() + realm.refresh() + realm.close() + } + + private fun initUI() { + + val fragmentTransaction = supportFragmentManager.beginTransaction() + val fragment = ImportFragment() + + fragmentTransaction.add(R.id.container, fragment) + fragmentTransaction.commit() + } + + private fun csv() { + + val path = "sdcard/Download/RunGoodSessions1.csv" + val csv = CSVImporter(path) + csv.start() + + ActivityCompat.requestPermissions( + this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), PERMISSION_REQUEST_ACCESS_FINE_LOCATION + ) + + } + + override fun onNewIntent(intent: Intent?) { + super.onNewIntent(intent) + + val f = intent?.data + val uri = f.toString() + Timber.d("!!!Intent!!! uri = $uri") + + } + + override fun onRequestPermissionsResult(requestCode: Int, permissions: Array, grantResults: IntArray) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ImportFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ImportFragment.kt new file mode 100644 index 00000000..f1bc88b4 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ImportFragment.kt @@ -0,0 +1,11 @@ +package net.pokeranalytics.android.ui.fragment + +import net.pokeranalytics.android.ui.fragment.components.RealmFragment + +class ImportFragment : RealmFragment() { + + + + + +} \ No newline at end of file From 6cef349d49be3c03eed22c7a73b390573e4562d9 Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 23 May 2019 15:17:35 +0200 Subject: [PATCH 2/2] Fies regression where monthly/yearly aggregation did not work anymore --- .../android/calculus/Calculator.kt | 36 +++++++------------ 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt index 4801aed6..31094164 100644 --- a/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt +++ b/app/src/main/java/net/pokeranalytics/android/calculus/Calculator.kt @@ -35,8 +35,8 @@ class Calculator { var stats: List = listOf(), var criterias: List = listOf(), query: Query = Query(), - filter: Filter? = null, - var aggregationType: AggregationType? = null, + var filter: Filter? = null, + private var aggregationType: AggregationType? = null, var userGenerated: Boolean = false, var reportSetupId: String? = null ) { @@ -50,12 +50,18 @@ class Calculator { } private var _query: Query = query - var filter: Filter? = filter init { - if (!this._query.conditions.isEmpty() && this.filter != null) { + if (this._query.conditions.isNotEmpty() && this.filter != null) { throw IllegalStateException("Can't specify a query with conditions AND a filter") } + + when (this.aggregationType) { + AggregationType.MONTH -> this.criterias = listOf(Criteria.AllMonthsUpToNow) + AggregationType.YEAR -> this.criterias = listOf(Criteria.Years) + else -> {} + } + } val query: Query @@ -150,22 +156,6 @@ class Calculator { } } -// fun reportSetup(name: String): ReportSetup { -// -// val rs = ReportSetup() -// rs.name = name -// rs.display = this.display.ordinal -// this.stats.forEach { -// rs.statIds.add(it.uniqueIdentifier) -// } -// this.criterias.forEach { -// rs.criteriaIds.add(it.uniqueIdentifier) -// } -// rs.filter = this.filter -// -// return rs -// } - /** * Returns some default name */ @@ -237,7 +227,7 @@ class Calculator { val report = Report(options) groups.forEach { group -> - val s = Date() +// val s = Date() // Clean existing computables / sessionSets if group is reused group.cleanup() @@ -260,8 +250,8 @@ class Calculator { results.finalize() // later treatment, such as evolution numericValues sorting report.addResults(results) - val e = Date() - val duration = (e.time - s.time) / 1000.0 +// val e = Date() +// val duration = (e.time - s.time) / 1000.0 // Timber.d(">>> group ${group.name} in $duration seconds") }