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

Commit d3d277dd authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Merge branch '2891-main-app_lounge_icon' into 'main'

fix: Properly load system app icons

See merge request !530
parents 46b5706f 1fceffd6
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -12,7 +12,7 @@ plugins {

def versionMajor = 2
def versionMinor = 12
def versionPatch = 1
def versionPatch = 2

def getGitHash = { ->
    def stdOut = new ByteArrayOutputStream()
+11 −11
Original line number Diff line number Diff line
@@ -18,10 +18,11 @@
package foundation.e.apps.ui.applicationlist

import android.content.Context
import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.core.view.children
@@ -180,21 +181,20 @@ class ApplicationListRVAdapter(
                }
            }
            Origin.GITLAB_RELEASES -> {
                setSystemAppIcon(appIcon, searchApp)
                appIcon.load(getAppIcon(appIcon.context, searchApp.package_name)) {
                    placeholder(shimmerDrawable)
                }
            }
            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 getAppIcon(context: Context, packageName: String): Drawable? {
        return try {
            context.packageManager.getApplicationIcon(packageName)
        } catch (e: PackageManager.NameNotFoundException) {
            Timber.w("Icon could not be set for system app - $packageName: ${e.message}")
            null
        }
    }