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

Commit f481a2e4 authored by Hasib Prince's avatar Hasib Prince
Browse files

App Lounge: fixed crash on install button click

parent 3d146ea1
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@ import androidx.lifecycle.ViewModelProvider
import androidx.navigation.NavOptions
import androidx.navigation.fragment.NavHostFragment
import androidx.navigation.ui.setupWithNavController
import com.aurora.gplayapi.exceptions.ApiException
import com.google.android.material.snackbar.Snackbar
import dagger.hilt.android.AndroidEntryPoint
import foundation.e.apps.databinding.ActivityMainBinding
import foundation.e.apps.updates.UpdatesNotifier
@@ -155,11 +157,22 @@ class MainActivity : AppCompatActivity() {
            }
        }

        viewModel.errorMessage.observe(this) {
            when (it) {
                is ApiException.AppNotPurchased -> showSnackbarMessage(getString(R.string.message_app_available_later))
                else -> showSnackbarMessage(it.localizedMessage ?: getString(R.string.unknown_error))
            }
        }

        if (!CommonUtilsModule.isNetworkAvailable(this)) {
            showNoInternet()
        }
    }

    private fun showSnackbarMessage(message: String) {
        Snackbar.make(binding.root, message, Snackbar.LENGTH_SHORT).show()
    }

    private fun showNoInternet() {
        binding.noInternet.visibility = View.VISIBLE
        binding.fragment.visibility = View.GONE
+25 −16
Original line number Diff line number Diff line
@@ -66,7 +66,8 @@ class MainActivityViewModel @Inject constructor(
    // Downloads
    val downloadList = fusedManagerRepository.getDownloadLiveList()
    var installInProgress = false

    private val _errorMessage = MutableLiveData<Exception>()
    val errorMessage: LiveData<Exception> = _errorMessage
    /*
     * Authentication related functions
     */
@@ -120,10 +121,13 @@ class MainActivityViewModel @Inject constructor(

    fun getApplication(app: FusedApp, imageView: ImageView?) {
        viewModelScope.launch {
            val fusedDownload: FusedDownload
            try {
                val appIcon = imageView?.let { getImageBase64(it) } ?: ""
            val downloadList = getAppDownloadLink(app).toMutableList()
                val downloadList: List<String>
                downloadList = getAppDownloadLink(app).toMutableList()

            val fusedDownload = FusedDownload(
                fusedDownload = FusedDownload(
                    app._id,
                    app.origin,
                    app.status,
@@ -135,6 +139,11 @@ class MainActivityViewModel @Inject constructor(
                    app.type,
                    appIcon
                )
            } catch (e: Exception) {
                _errorMessage.value = e
                return@launch
            }

            if (fusedDownload.status == Status.INSTALLATION_ISSUE) {
                fusedManagerRepository.clearInstallationIssue(fusedDownload)
            }
+2 −0
Original line number Diff line number Diff line
@@ -99,6 +99,8 @@
    <string name="package_name">Package name: <xliff:g id="version_code">%1$s</xliff:g></string>
    <string name="install_blocked_anonymous">Paid apps cannot be installed in anonymous mode. Please log into your Google account to install paid apps.</string>
    <string name="install_blocked_google">Paid apps are not supported in App Lounge yet. Just a little more patience, it will soon be the case.</string>
    <string name="message_app_available_later">This app will be available later!</string>
    <string name="unknown_error">Unknown Error!</string>

    <!-- Updates Fragment -->
    <string name="update_all">Update All</string>