From be766074b0a911e336084df577e4dcbae82a0ad1 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 22 Mar 2024 10:34:38 -0500 Subject: [PATCH] Fix activity crash --- .../astrid/activity/TaskListFragment.kt | 18 ++++++++++++++++-- .../java/org/tasks/ui/TaskListViewModel.kt | 13 +------------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt index 6aa05b20c..264775999 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/TaskListFragment.kt @@ -27,6 +27,7 @@ import androidx.appcompat.view.ActionMode import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.Toolbar import androidx.compose.animation.ExperimentalAnimationApi +import androidx.compose.ui.platform.LocalContext import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.app.ShareCompat import androidx.core.content.IntentCompat @@ -83,11 +84,13 @@ import kotlinx.coroutines.withContext import org.tasks.LocalBroadcastManager import org.tasks.R import org.tasks.ShortcutManager +import org.tasks.Tasks import org.tasks.activities.FilterSettingsActivity import org.tasks.activities.GoogleTaskListSettingsActivity import org.tasks.activities.PlaceSettingsActivity import org.tasks.activities.TagSettingsActivity import org.tasks.analytics.Firebase +import org.tasks.billing.PurchaseActivity import org.tasks.caldav.BaseCaldavCalendarSettingsActivity import org.tasks.compose.SubscriptionNagBanner import org.tasks.compose.collectAsStateLifecycleAware @@ -336,12 +339,23 @@ class TaskListFragment : Fragment(), OnRefreshListener, Toolbar.OnMenuItemClickL finishActionMode() } binding.banner.setContent { + val context = LocalContext.current val showBanner = listViewModel.state.collectAsStateLifecycleAware().value.begForSubscription MdcTheme { SubscriptionNagBanner( visible = showBanner, - subscribe = { listViewModel.dismissBanner(clickedPurchase = true) }, - dismiss = { listViewModel.dismissBanner(clickedPurchase = false) }, + subscribe = { + listViewModel.dismissBanner(clickedPurchase = true) + if (Tasks.IS_GOOGLE_PLAY) { + context.startActivity(Intent(context, PurchaseActivity::class.java)) + } else { + preferences.lastSubscribeRequest = DateUtilities.now() + context.openUri(R.string.url_donate) + } + }, + dismiss = { + listViewModel.dismissBanner(clickedPurchase = false) + }, ) } } diff --git a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt index 2b73f46ea..4686b89f4 100644 --- a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt +++ b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt @@ -28,17 +28,14 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import org.tasks.LocalBroadcastManager import org.tasks.R -import org.tasks.Tasks import org.tasks.analytics.Firebase import org.tasks.billing.Inventory -import org.tasks.billing.PurchaseActivity import org.tasks.compose.throttleLatest import org.tasks.data.DeletionDao import org.tasks.data.TaskContainer import org.tasks.data.TaskDao import org.tasks.data.TaskListQuery.getQuery import org.tasks.db.QueryUtils -import org.tasks.extensions.Context.openUri import org.tasks.preferences.Preferences import org.tasks.preferences.QueryPreferences import javax.inject.Inject @@ -46,7 +43,7 @@ import javax.inject.Inject @HiltViewModel @SuppressLint("StaticFieldLeak") class TaskListViewModel @Inject constructor( - @ApplicationContext private val context: Context, + @ApplicationContext context: Context, private val preferences: Preferences, private val taskDao: TaskDao, private val taskDeleter: TaskDeleter, @@ -104,14 +101,6 @@ class TaskListViewModel @Inject constructor( } preferences.lastSubscribeRequest = DateUtilities.now() firebase.logEvent(R.string.event_banner_sub, R.string.param_click to clickedPurchase) - if (clickedPurchase) { - if (Tasks.IS_GOOGLE_PLAY) { - context.startActivity(Intent(context, PurchaseActivity::class.java)) - } else { - preferences.lastSubscribeRequest = DateUtilities.now() - context.openUri(R.string.url_donate) - } - } } suspend fun getTasksToClear(): List {