Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73054f19 authored by Sayantan Roychowdhury's avatar Sayantan Roychowdhury
Browse files

Merge branch '266-paid_apps_toast' into 'main'

Issue 266: Show snackbar instead of toast for paid apps.

See merge request !108
parents 49c7f141 7b4547fa
Loading
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -162,9 +162,22 @@ class MainActivityViewModel @Inject constructor(
        }
    }

    fun getApplication(app: FusedApp, imageView: ImageView?) {
    /*
     * Check and display a snack bar if app is paid and user is logged in in anonymous mode.
     * Returns true if the snack bar was displayed, false otherwise.
     *
     * Issue: https://gitlab.e.foundation/e/os/backlog/-/issues/266
     */
    fun shouldShowPaidAppsSnackBar(app: FusedApp): Boolean {
        if (!app.isFree && authData.value?.isAnonymous == true) {
            _errorMessageStringResource.value = R.string.paid_app_anonymous_message
            return true
        }
        return false
    }

    fun getApplication(app: FusedApp, imageView: ImageView?) {
        if (shouldShowPaidAppsSnackBar(app)) {
            return
        }
        viewModelScope.launch {
+11 −8
Original line number Diff line number Diff line
@@ -412,11 +412,13 @@ class ApplicationFragment : Fragment(R.layout.fragment_application) {
                    if (fusedApp.isFree) {
                        mainActivityViewModel.getApplication(fusedApp, it)
                    } else {
                        if (!mainActivityViewModel.shouldShowPaidAppsSnackBar(fusedApp)) {
                            ApplicationDialogFragment(
                                title = getString(R.string.dialog_title_paid_app, fusedApp.name),
                                message = getString(R.string.dialog_paidapp_message, fusedApp.name, fusedApp.price),
                                positiveButtonText = getString(R.string.dialog_confirm),
                                positiveButtonAction = {
                                    mainActivityViewModel.getApplication(fusedApp, it)
                                },
                                cancelButtonText = getString(R.string.dialog_cancel),
                            ).show(childFragmentManager, "ApplicationFragment")
@@ -424,6 +426,7 @@ class ApplicationFragment : Fragment(R.layout.fragment_application) {
                    }
                }
            }
        }
        downloadPB.visibility = View.GONE
        appSize.visibility = View.VISIBLE
    }
+15 −13
Original line number Diff line number Diff line
@@ -119,6 +119,7 @@ class ApplicationListFragment : Fragment(R.layout.fragment_application_list), Fu
                    User.valueOf(mainActivityViewModel.userType.value ?: User.UNAVAILABLE.name),
                    viewLifecycleOwner
                ) { fusedApp ->
                    if (!mainActivityViewModel.shouldShowPaidAppsSnackBar(fusedApp)) {
                        ApplicationDialogFragment(
                            title = getString(R.string.dialog_title_paid_app, fusedApp.name),
                            message = getString(
@@ -134,6 +135,7 @@ class ApplicationListFragment : Fragment(R.layout.fragment_application_list), Fu
                        ).show(childFragmentManager, "HomeFragment")
                    }
                }
            }

        recyclerView.apply {
            adapter = listAdapter
+11 −9
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ class HomeFragment : Fragment(R.layout.fragment_home), FusedAPIInterface {
            User.valueOf(mainActivityViewModel.userType.value ?: User.UNAVAILABLE.name),
            mainActivityViewModel, viewLifecycleOwner
        ) { fusedApp ->
            if (!mainActivityViewModel.shouldShowPaidAppsSnackBar(fusedApp)) {
                ApplicationDialogFragment(
                    title = getString(R.string.dialog_title_paid_app, fusedApp.name),
                    message = getString(R.string.dialog_paidapp_message, fusedApp.name, fusedApp.price),
@@ -102,6 +103,7 @@ class HomeFragment : Fragment(R.layout.fragment_home), FusedAPIInterface {
                    cancelButtonText = getString(R.string.dialog_cancel),
                ).show(childFragmentManager, "HomeFragment")
            }
        }

        binding.parentRV.apply {
            adapter = homeParentRVAdapter
+15 −13
Original line number Diff line number Diff line
@@ -127,6 +127,7 @@ class SearchFragment :
                User.valueOf(mainActivityViewModel.userType.value ?: User.UNAVAILABLE.name),
                viewLifecycleOwner
            ) { fusedApp ->
                if (!mainActivityViewModel.shouldShowPaidAppsSnackBar(fusedApp)) {
                    ApplicationDialogFragment(
                        title = getString(R.string.dialog_title_paid_app, fusedApp.name),
                        message = getString(
@@ -142,6 +143,7 @@ class SearchFragment :
                    ).show(childFragmentManager, "SearchFragment")
                }
            }
        }

        recyclerView?.apply {
            adapter = listAdapter
Loading