From 59e33ada31cdd43f35e446f355aa1330bdf97e11 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 17 Jun 2019 11:34:29 +0200 Subject: [PATCH] Cleanup + test session before import --- .../android/ui/activity/ImportActivity.kt | 28 +++++++------ .../android/ui/fragment/FeedFragment.kt | 42 +++++++++---------- .../ui/view/rowrepresentable/SettingRow.kt | 5 +-- .../util/extensions/RealmExtensions.kt | 10 ++++- 4 files changed, 45 insertions(+), 40 deletions(-) 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 index 215b21b1..37e09ce2 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt @@ -4,13 +4,18 @@ import android.content.Context import android.content.Intent import android.net.Uri import android.os.Bundle +import android.widget.Toast import androidx.fragment.app.FragmentActivity +import io.realm.Realm import net.pokeranalytics.android.R +import net.pokeranalytics.android.model.realm.Session import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.RequestCode import net.pokeranalytics.android.ui.activity.components.ResultCode import net.pokeranalytics.android.ui.extensions.showAlertDialog import net.pokeranalytics.android.ui.fragment.ImportFragment +import net.pokeranalytics.android.util.billing.AppGuard +import net.pokeranalytics.android.util.extensions.count import timber.log.Timber class ImportActivity : PokerAnalyticsActivity() { @@ -40,26 +45,14 @@ class ImportActivity : PokerAnalyticsActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - Timber.d("//////// data = ${intent?.data}") - intent?.data?.let { this.fileURI = it } setContentView(R.layout.activity_import) -// initUI() requestImportConfirmation() } - override fun onStop() { - super.onStop() - - // Updates the main thread instance with newly inserted data -// val realm = Realm.getDefaultInstance() -// realm.refresh() -// realm.close() - } - private fun initUI() { val fragmentTransaction = supportFragmentManager.beginTransaction() @@ -119,9 +112,18 @@ class ImportActivity : PokerAnalyticsActivity() { private fun requestImportConfirmation() { + val realm = Realm.getDefaultInstance() + val sessionCount = realm.count(Session::class.java) + realm.close() + + if (!AppGuard.isProUser && sessionCount >= AppGuard.MAX_SESSIONS_BEFORE_REQUESTING_SUBSCRIPTION) { // && !BuildConfig.DEBUG + Toast.makeText(this, "Please subscribe!", Toast.LENGTH_LONG).show() + BillingActivity.newInstance(this) + return + } + showAlertDialog(context = this, title = R.string.import_confirmation, showCancelButton = true, positiveAction = { initUI() -// newInstanceForResult(this, uri) }, negativeAction = { finish() }) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt index cd33cc31..9bae8a99 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt @@ -34,8 +34,6 @@ import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.SmoothScrollLinearLayoutManager import net.pokeranalytics.android.util.Preferences import net.pokeranalytics.android.util.billing.AppGuard -import java.text.SimpleDateFormat -import java.util.* class FeedFragment : FilterableFragment(), RowRepresentableDelegate { @@ -62,7 +60,7 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { private lateinit var feedTransactionAdapter: FeedTransactionRowRepresentableAdapter private lateinit var realmSessions: RealmResults private lateinit var realmTransactions: RealmResults - private lateinit var betaLimitDate: Date +// private lateinit var betaLimitDate: Date private var newSessionCreated: Boolean = false private var adapterHasBeenSet: Boolean = false @@ -208,8 +206,8 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { */ private fun initData() { - val sdf = SimpleDateFormat("dd/M/yyyy hh:mm", Locale.getDefault()) - betaLimitDate = sdf.parse("17/7/2019 10:00") +// val sdf = SimpleDateFormat("dd/M/yyyy hh:mm", Locale.getDefault()) +// betaLimitDate = sdf.parse("17/7/2019 10:00") this.currentFilterable = FilterableType.SESSION val viewManager = SmoothScrollLinearLayoutManager(requireContext()) @@ -282,10 +280,11 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { return } - if (Date().after(betaLimitDate)) { - this.showEndOfBetaMessage() - return - } + // Keep commented code for special versions +// if (Date().after(betaLimitDate)) { +// this.showEndOfBetaMessage() +// return +// } SessionActivity.newInstanceforResult(this, isTournament, requestCode = RequestCode.NEW_SESSION.value) newSessionCreated = true @@ -296,13 +295,12 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { */ private fun createNewTransaction() { - if (Date().after(betaLimitDate)) { - this.showEndOfBetaMessage() - return - } +// if (Date().after(betaLimitDate)) { +// this.showEndOfBetaMessage() +// return +// } EditableDataActivity.newInstanceForResult(this, LiveData.TRANSACTION, null, RequestCode.NEW_TRANSACTION.value) -// EditableDataActivity.newInstance(requireContext(), LiveData.TRANSACTION.ordinal) } /** @@ -317,15 +315,15 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate { /** * Show end of beta message + * Keep for possible future uses */ - private fun showEndOfBetaMessage() { - Toast.makeText( - context, - "Beta has ended. Thanks a lot for your participation! Please update with the Google Play version to continue using the app", - Toast.LENGTH_LONG - ).show() - } - +// private fun showEndOfBetaMessage() { +// Toast.makeText( +// context, +// "App version has ended. Thanks a lot for using it! Please update with the Google Play version to continue using the app.", +// Toast.LENGTH_LONG +// ).show() +// } // Filter Handler diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt index adda5f89..7de89ea5 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/SettingRow.kt @@ -37,7 +37,6 @@ enum class SettingRow : RowRepresentable { TERMS_OF_USE, GDPR; - companion object { /** * Return the rows to display for the current session state @@ -46,8 +45,8 @@ enum class SettingRow : RowRepresentable { val rows = ArrayList() rows.add(CustomizableRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.information)) - rows.addAll(arrayListOf(VERSION, RATE_APP, CONTACT_US, BUG_REPORT)) -// rows.addAll(arrayListOf(SUBSCRIPTION, VERSION, RATE_APP, CONTACT_US, BUG_REPORT)) +// rows.addAll(arrayListOf(VERSION, RATE_APP, CONTACT_US, BUG_REPORT)) + rows.addAll(arrayListOf(SUBSCRIPTION, VERSION, RATE_APP, CONTACT_US, BUG_REPORT)) rows.add(CustomizableRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.follow_us)) rows.addAll(arrayListOf(FOLLOW_US)) diff --git a/app/src/main/java/net/pokeranalytics/android/util/extensions/RealmExtensions.kt b/app/src/main/java/net/pokeranalytics/android/util/extensions/RealmExtensions.kt index aa15c8e6..817a9a43 100644 --- a/app/src/main/java/net/pokeranalytics/android/util/extensions/RealmExtensions.kt +++ b/app/src/main/java/net/pokeranalytics/android/util/extensions/RealmExtensions.kt @@ -1,12 +1,18 @@ package net.pokeranalytics.android.util.extensions -import io.realm.* +import io.realm.Realm +import io.realm.RealmModel +import io.realm.RealmResults +import io.realm.Sort import io.realm.kotlin.where import net.pokeranalytics.android.model.interfaces.CountableUsage import net.pokeranalytics.android.model.interfaces.Identifiable import net.pokeranalytics.android.model.interfaces.NameManageable import net.pokeranalytics.android.model.realm.* -import net.pokeranalytics.android.ui.interfaces.FilterableType + +fun Realm.count(clazz: Class) : Int { + return this.where(clazz).findAll().size +} fun Realm.findById(clazz: Class, id: String) : T? { return this.where(clazz).equalTo("id", id).findFirst()