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

Commit e11e00a0 authored by Sayantan Roychowdhury's avatar Sayantan Roychowdhury
Browse files

UI changes for app list adapter

parent ee14c4d3
Loading
Loading
Loading
Loading
+27 −1
Original line number Diff line number Diff line
@@ -20,8 +20,10 @@ package foundation.e.apps.ui.applicationlist
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.core.content.ContextCompat
import androidx.core.view.children
import androidx.core.view.isVisible
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
@@ -176,12 +178,24 @@ class ApplicationListRVAdapter(
                }
            }
            Origin.GITLAB_RELEASES -> {
                // TODO
                setSystemAppIcon(appIcon, searchApp)
            }
            else -> Timber.wtf("${searchApp.package_name} is from an unknown origin")
        }
    }

    private fun setSystemAppIcon(imageView: ImageView, app: Application) {
        if (!app.isSystemApp) return
        try {
            imageView.run {
                setImageDrawable(context.packageManager.getApplicationIcon(app.package_name))
            }
        } catch (e: Exception) {
            Timber.w("Icon could not be set for system app - ${app.package_name} - ${e.message}")
            e.printStackTrace()
        }
    }

    private fun ApplicationListItemBinding.updateAppInfo(searchApp: Application) {
        appTitle.text = searchApp.name
        appInfoFetchViewModel.getAuthorName(searchApp).observe(lifecycleOwner!!) {
@@ -190,6 +204,11 @@ class ApplicationListRVAdapter(
    }

    private fun ApplicationListItemBinding.updateRating(searchApp: Application) {
        if (searchApp.isSystemApp) {
            iconStar.isVisible = false
            appRating.isVisible = false
            return
        }
        if (searchApp.ratings.usageQualityScore != -1.0) {
            appRating.text = searchApp.ratings.usageQualityScore.toString()
        } else {
@@ -201,6 +220,10 @@ class ApplicationListRVAdapter(
        searchApp: Application,
        view: View
    ) {
        if (searchApp.isSystemApp) {
            appPrivacyScoreLayout.isVisible = false
            return
        }
        if (searchApp.ratings.privacyScore != -1.0) {
            appPrivacyScore.text = view.context.getString(
                R.string.privacy_rating_out_of,
@@ -222,6 +245,9 @@ class ApplicationListRVAdapter(
        searchApp: Application,
        view: View
    ) {
        if (searchApp.isSystemApp) {
            return
        }
        val catText = searchApp.category.ifBlank { optionalCategory }
        val action = when (currentDestinationId) {
            R.id.applicationListFragment -> {