Loading app/src/main/java/foundation/e/apps/MainActivityViewModel.kt +14 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading app/src/main/java/foundation/e/apps/application/ApplicationFragment.kt +11 −8 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -424,6 +426,7 @@ class ApplicationFragment : Fragment(R.layout.fragment_application) { } } } } downloadPB.visibility = View.GONE appSize.visibility = View.VISIBLE } Loading app/src/main/java/foundation/e/apps/applicationlist/ApplicationListFragment.kt +15 −13 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -134,6 +135,7 @@ class ApplicationListFragment : Fragment(R.layout.fragment_application_list), Fu ).show(childFragmentManager, "HomeFragment") } } } recyclerView.apply { adapter = listAdapter Loading app/src/main/java/foundation/e/apps/home/HomeFragment.kt +11 −9 Original line number Diff line number Diff line Loading @@ -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), Loading @@ -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 Loading app/src/main/java/foundation/e/apps/search/SearchFragment.kt +15 −13 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -142,6 +143,7 @@ class SearchFragment : ).show(childFragmentManager, "SearchFragment") } } } recyclerView?.apply { adapter = listAdapter Loading Loading
app/src/main/java/foundation/e/apps/MainActivityViewModel.kt +14 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading
app/src/main/java/foundation/e/apps/application/ApplicationFragment.kt +11 −8 Original line number Diff line number Diff line Loading @@ -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") Loading @@ -424,6 +426,7 @@ class ApplicationFragment : Fragment(R.layout.fragment_application) { } } } } downloadPB.visibility = View.GONE appSize.visibility = View.VISIBLE } Loading
app/src/main/java/foundation/e/apps/applicationlist/ApplicationListFragment.kt +15 −13 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -134,6 +135,7 @@ class ApplicationListFragment : Fragment(R.layout.fragment_application_list), Fu ).show(childFragmentManager, "HomeFragment") } } } recyclerView.apply { adapter = listAdapter Loading
app/src/main/java/foundation/e/apps/home/HomeFragment.kt +11 −9 Original line number Diff line number Diff line Loading @@ -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), Loading @@ -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 Loading
app/src/main/java/foundation/e/apps/search/SearchFragment.kt +15 −13 Original line number Diff line number Diff line Loading @@ -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( Loading @@ -142,6 +143,7 @@ class SearchFragment : ).show(childFragmentManager, "SearchFragment") } } } recyclerView?.apply { adapter = listAdapter Loading