Subscription refresh + refactoring

csv
Laurent 6 years ago
parent 66ef7ae3f3
commit 5af75efe9e
  1. 22
      app/src/main/java/net/pokeranalytics/android/ui/activity/BillingActivity.kt
  2. 2
      app/src/main/java/net/pokeranalytics/android/ui/activity/ImportActivity.kt
  3. 4
      app/src/main/java/net/pokeranalytics/android/ui/activity/components/Codes.kt
  4. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/FeedFragment.kt
  5. 20
      app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt

@ -1,18 +1,25 @@
package net.pokeranalytics.android.ui.activity
import android.content.Context
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import androidx.fragment.app.Fragment
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.util.billing.AppGuard
import net.pokeranalytics.android.ui.activity.components.RequestCode
class BillingActivity : PokerAnalyticsActivity() {
companion object {
fun newInstance(context: Context) {
val intent = Intent(context, BillingActivity::class.java)
context.startActivity(intent)
fun newInstanceForResult(activity: Activity) {
val intent = Intent(activity, BillingActivity::class.java)
activity.startActivityForResult(intent, RequestCode.SUBSCRIPTION.value)
}
fun newInstanceForResult(fragment: Fragment) {
val intent = Intent(fragment.requireContext(), BillingActivity::class.java)
fragment.startActivityForResult(intent, RequestCode.SUBSCRIPTION.value)
}
}
@ -21,11 +28,6 @@ class BillingActivity : PokerAnalyticsActivity() {
setContentView(R.layout.activity_billing)
}
override fun onResume() {
super.onResume()
}
}

@ -118,7 +118,7 @@ class ImportActivity : PokerAnalyticsActivity() {
if (!AppGuard.isProUser && sessionCount >= AppGuard.MAX_SESSIONS_BEFORE_REQUESTING_SUBSCRIPTION) { // && !BuildConfig.DEBUG
Toast.makeText(this, "Please subscribe!", Toast.LENGTH_LONG).show()
BillingActivity.newInstance(this)
BillingActivity.newInstanceForResult(this)
return
}

@ -8,7 +8,9 @@ enum class RequestCode(var value: Int) {
NEW_SESSION(800),
NEW_TRANSACTION(801),
NEW_REPORT(802),
IMPORT(900)
IMPORT(900),
SUBSCRIPTION(901),
CURRENCY(902)
}
enum class ResultCode(var value: Int) {

@ -275,7 +275,7 @@ class FeedFragment : FilterableFragment(), RowRepresentableDelegate {
val sessionCount = this.feedSessionAdapter.realmResults.size
if (!AppGuard.isProUser && sessionCount >= AppGuard.MAX_SESSIONS_BEFORE_REQUESTING_SUBSCRIPTION) { // && !BuildConfig.DEBUG
// Toast.makeText(context, "Please subscribe!", Toast.LENGTH_LONG).show()
BillingActivity.newInstance(requireContext())
BillingActivity.newInstanceForResult(this)
return
}

@ -18,6 +18,7 @@ import net.pokeranalytics.android.ui.activity.BillingActivity
import net.pokeranalytics.android.ui.activity.CurrenciesActivity
import net.pokeranalytics.android.ui.activity.DataListActivity
import net.pokeranalytics.android.ui.activity.GDPRActivity
import net.pokeranalytics.android.ui.activity.components.RequestCode
import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter
import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate
import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource
@ -57,7 +58,6 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
rows
}
const val REQUEST_CODE_CURRENCY: Int = 100
}
private lateinit var settingsAdapterRow: RowRepresentableAdapter
@ -73,13 +73,16 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_CODE_CURRENCY && resultCode == Activity.RESULT_OK) {
when (requestCode) {
RequestCode.CURRENCY.value -> {
if (resultCode == Activity.RESULT_OK) {
data?.let {
Preferences.setCurrencyCode(data.getStringExtra(CurrenciesFragment.INTENT_CURRENCY_CODE), requireContext())
val realm = Realm.getDefaultInstance()
realm.executeTransaction {
it.where(Session::class.java).isNull("bankroll.currency.code").findAll().forEach {
it.bankrollHasBeenUpdated()
realm.where(Session::class.java).isNull("bankroll.currency.code").findAll().forEach { session ->
session.bankrollHasBeenUpdated()
}
}
realm.close()
@ -87,6 +90,11 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
}
}
}
RequestCode.SUBSCRIPTION.value -> {
settingsAdapterRow.refreshRow(SettingRow.SUBSCRIPTION)
}
}
}
override fun adapterRows(): List<RowRepresentable>? {
return rowRepresentation
@ -105,7 +113,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
when (row) {
SettingRow.SUBSCRIPTION -> {
if (!AppGuard.isProUser) {
BillingActivity.newInstance(requireContext())
BillingActivity.newInstanceForResult(this)
} else {
this.openPlaystoreAccount()
}
@ -113,7 +121,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta
SettingRow.RATE_APP -> parentActivity?.openPlayStorePage()
SettingRow.CONTACT_US -> parentActivity?.openContactMail(R.string.contact)
SettingRow.BUG_REPORT -> parentActivity?.openContactMail(R.string.bug_report_subject, Realm.getDefaultInstance().path)
SettingRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@SettingsFragment, REQUEST_CODE_CURRENCY)
SettingRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@SettingsFragment, RequestCode.CURRENCY.value)
SettingRow.FOLLOW_US -> {
when (position) {
0 -> parentActivity?.openUrl(URL.BLOG.value)

Loading…
Cancel
Save