@@ -17,6 +17,7 @@ import android.os.Bundle
1717import android.os.Handler
1818import android.os.Looper
1919import android.provider.Settings
20+ import android.provider.SyncStateContract
2021import android.util.Log
2122import android.view.View
2223import android.view.ViewGroup
@@ -48,10 +49,17 @@ import com.google.android.gms.auth.api.signin.GoogleSignInOptions
4849import com.google.firebase.Firebase
4950import com.google.firebase.auth.FirebaseAuth
5051import com.google.firebase.auth.auth
52+ import com.revenuecat.purchases.Purchases
53+ import com.revenuecat.purchases.awaitCustomerInfo
54+ import com.revenuecat.purchases.ui.revenuecatui.ExperimentalPreviewRevenueCatUIPurchasesAPI
55+ import com.revenuecat.purchases.ui.revenuecatui.activity.PaywallActivityLauncher
56+ import com.revenuecat.purchases.ui.revenuecatui.activity.PaywallResult
57+ import com.revenuecat.purchases.ui.revenuecatui.activity.PaywallResultHandler
5158import kotlinx.coroutines.launch
5259import java.io.File
5360
54- class MainActivity : AppCompatActivity () {
61+ @OptIn(ExperimentalPreviewRevenueCatUIPurchasesAPI ::class )
62+ class MainActivity : AppCompatActivity (), PaywallResultHandler {
5563
5664 private lateinit var handler: Handler
5765 private lateinit var managePermissionsButton: TextView
@@ -68,6 +76,9 @@ class MainActivity : AppCompatActivity() {
6876 private lateinit var increaseLimitsLink: TextView
6977 private lateinit var onboardingManager: OnboardingManager
7078 private lateinit var requestRoleLauncher: ActivityResultLauncher <Intent >
79+
80+ private lateinit var paywallActivityLauncher: PaywallActivityLauncher
81+ private lateinit var root: View
7182 companion object {
7283 const val ACTION_WAKE_WORD_FAILED = " com.blurr.voice.WAKE_WORD_FAILED"
7384 }
@@ -91,9 +102,16 @@ class MainActivity : AppCompatActivity() {
91102 }
92103 }
93104
105+ override fun onActivityResult (result : PaywallResult ) {}
106+
107+ private fun launchPaywallActivity () {
108+ paywallActivityLauncher.launchIfNeeded(requiredEntitlementIdentifier = " pro" )
109+ }
110+
94111 @RequiresApi(Build .VERSION_CODES .R )
95112 override fun onCreate (savedInstanceState : Bundle ? ) {
96113 super .onCreate(savedInstanceState)
114+ paywallActivityLauncher = PaywallActivityLauncher (this , this )
97115
98116 auth = Firebase .auth
99117 val currentUser = auth.currentUser
@@ -276,8 +294,11 @@ class MainActivity : AppCompatActivity() {
276294 findViewById<TextView >(R .id.triggersButton).setOnClickListener {
277295 startActivity(Intent (this , com.blurr.voice.triggers.ui.TriggersActivity ::class .java))
278296 }
279- findViewById<TextView >(R .id.memoriesButton).setOnClickListener {
280- startActivity(Intent (this , MemoriesActivity ::class .java))
297+ // findViewById<TextView>(R.id.memoriesButton).setOnClickListener {
298+ // startActivity(Intent(this, MemoriesActivity::class.java))
299+ // }
300+ findViewById<TextView >(R .id.goProButton).setOnClickListener {
301+ launchPaywallActivity()
281302 }
282303 saveKeyButton.setOnClickListener {
283304 startActivity(Intent (this , SettingsActivity ::class .java))
@@ -421,23 +442,29 @@ class MainActivity : AppCompatActivity() {
421442 private fun updateTaskCounter () {
422443 lifecycleScope.launch {
423444 val tasksLeft = freemiumManager.getTasksRemaining()
424- if (tasksLeft != null && tasksLeft >= 0 ) {
445+ val goProButton = findViewById<TextView >(R .id.goProButton)
446+
447+ if (tasksLeft == Long .MAX_VALUE ) {
448+ tasksRemainingTextView.visibility = View .GONE
449+ increaseLimitsLink.visibility = View .GONE
450+ goProButton.visibility = View .GONE
451+
452+ } else if (tasksLeft != null && tasksLeft >= 0 ) {
453+
425454 tasksRemainingTextView.text = " You have $tasksLeft free tasks remaining."
426455 tasksRemainingTextView.visibility = View .VISIBLE
456+ goProButton.visibility = View .VISIBLE
427457
428- // ADDED: Logic to show/hide the increase limits link
429- // Show the link if the user has 5 or fewer tasks left.
430458 if (tasksLeft <= 10 ) {
431459 increaseLimitsLink.visibility = View .VISIBLE
432460 } else {
433461 increaseLimitsLink.visibility = View .GONE
434462 }
435463
436464 } else {
437- // Hide both text views if there's an error or count is invalid
438465 tasksRemainingTextView.visibility = View .GONE
439- increaseLimitsLink.visibility = View .GONE // ADDED
440- }
466+ increaseLimitsLink.visibility = View .GONE
467+ goProButton.visibility = View . VISIBLE }
441468 }
442469 }
443470
0 commit comments