Loading app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt +27 −1 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,10 @@ package foundation.e.apps.ui.applicationlist import android.view.LayoutInflater import android.view.LayoutInflater import android.view.View import android.view.View import android.view.ViewGroup import android.view.ViewGroup import android.widget.ImageView import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat import androidx.core.view.children import androidx.core.view.children import androidx.core.view.isVisible import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData Loading Loading @@ -176,12 +178,24 @@ class ApplicationListRVAdapter( } } } } Origin.GITLAB_RELEASES -> { Origin.GITLAB_RELEASES -> { // TODO setSystemAppIcon(appIcon, searchApp) } } else -> Timber.wtf("${searchApp.package_name} is from an unknown origin") 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) { private fun ApplicationListItemBinding.updateAppInfo(searchApp: Application) { appTitle.text = searchApp.name appTitle.text = searchApp.name appInfoFetchViewModel.getAuthorName(searchApp).observe(lifecycleOwner!!) { appInfoFetchViewModel.getAuthorName(searchApp).observe(lifecycleOwner!!) { Loading @@ -190,6 +204,11 @@ class ApplicationListRVAdapter( } } private fun ApplicationListItemBinding.updateRating(searchApp: Application) { private fun ApplicationListItemBinding.updateRating(searchApp: Application) { if (searchApp.isSystemApp) { iconStar.isVisible = false appRating.isVisible = false return } if (searchApp.ratings.usageQualityScore != -1.0) { if (searchApp.ratings.usageQualityScore != -1.0) { appRating.text = searchApp.ratings.usageQualityScore.toString() appRating.text = searchApp.ratings.usageQualityScore.toString() } else { } else { Loading @@ -201,6 +220,10 @@ class ApplicationListRVAdapter( searchApp: Application, searchApp: Application, view: View view: View ) { ) { if (searchApp.isSystemApp) { appPrivacyScoreLayout.isVisible = false return } if (searchApp.ratings.privacyScore != -1.0) { if (searchApp.ratings.privacyScore != -1.0) { appPrivacyScore.text = view.context.getString( appPrivacyScore.text = view.context.getString( R.string.privacy_rating_out_of, R.string.privacy_rating_out_of, Loading @@ -222,6 +245,9 @@ class ApplicationListRVAdapter( searchApp: Application, searchApp: Application, view: View view: View ) { ) { if (searchApp.isSystemApp) { return } val catText = searchApp.category.ifBlank { optionalCategory } val catText = searchApp.category.ifBlank { optionalCategory } val action = when (currentDestinationId) { val action = when (currentDestinationId) { R.id.applicationListFragment -> { R.id.applicationListFragment -> { Loading Loading
app/src/main/java/foundation/e/apps/ui/applicationlist/ApplicationListRVAdapter.kt +27 −1 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,10 @@ package foundation.e.apps.ui.applicationlist import android.view.LayoutInflater import android.view.LayoutInflater import android.view.View import android.view.View import android.view.ViewGroup import android.view.ViewGroup import android.widget.ImageView import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat import androidx.core.view.children import androidx.core.view.children import androidx.core.view.isVisible import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData Loading Loading @@ -176,12 +178,24 @@ class ApplicationListRVAdapter( } } } } Origin.GITLAB_RELEASES -> { Origin.GITLAB_RELEASES -> { // TODO setSystemAppIcon(appIcon, searchApp) } } else -> Timber.wtf("${searchApp.package_name} is from an unknown origin") 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) { private fun ApplicationListItemBinding.updateAppInfo(searchApp: Application) { appTitle.text = searchApp.name appTitle.text = searchApp.name appInfoFetchViewModel.getAuthorName(searchApp).observe(lifecycleOwner!!) { appInfoFetchViewModel.getAuthorName(searchApp).observe(lifecycleOwner!!) { Loading @@ -190,6 +204,11 @@ class ApplicationListRVAdapter( } } private fun ApplicationListItemBinding.updateRating(searchApp: Application) { private fun ApplicationListItemBinding.updateRating(searchApp: Application) { if (searchApp.isSystemApp) { iconStar.isVisible = false appRating.isVisible = false return } if (searchApp.ratings.usageQualityScore != -1.0) { if (searchApp.ratings.usageQualityScore != -1.0) { appRating.text = searchApp.ratings.usageQualityScore.toString() appRating.text = searchApp.ratings.usageQualityScore.toString() } else { } else { Loading @@ -201,6 +220,10 @@ class ApplicationListRVAdapter( searchApp: Application, searchApp: Application, view: View view: View ) { ) { if (searchApp.isSystemApp) { appPrivacyScoreLayout.isVisible = false return } if (searchApp.ratings.privacyScore != -1.0) { if (searchApp.ratings.privacyScore != -1.0) { appPrivacyScore.text = view.context.getString( appPrivacyScore.text = view.context.getString( R.string.privacy_rating_out_of, R.string.privacy_rating_out_of, Loading @@ -222,6 +245,9 @@ class ApplicationListRVAdapter( searchApp: Application, searchApp: Application, view: View view: View ) { ) { if (searchApp.isSystemApp) { return } val catText = searchApp.category.ifBlank { optionalCategory } val catText = searchApp.category.ifBlank { optionalCategory } val action = when (currentDestinationId) { val action = when (currentDestinationId) { R.id.applicationListFragment -> { R.id.applicationListFragment -> { Loading