diff --git a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt index afbd33a0..0b196bfe 100644 --- a/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt +++ b/src/main/kotlin/com/looker/droidify/screen/ProductAdapter.kt @@ -1231,9 +1231,11 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) holder.targetSdk.text = sdk.toString() holder.version.text = product?.displayRelease?.version holder.size.text = product?.displayRelease?.size?.formatSize() - holder.devName.text = product?.author?.name?.replaceFirstChar { + val author = product?.author?.name?.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } + val devName = product?.source?.trimAfter('/', 4).trimBefore('/', 3) + holder.devName.text = if (author.isNullOrEmpty()) devName else author when { imageSource.toString() .contains("kde.org") -> holder.devIcon.setImageResource(R.drawable.ic_kde) @@ -1305,7 +1307,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int) layoutParams.topMargin = if (position > 0 && items[position - 1] !is Item.LinkItem) -context.resources.sizeScaled(8) else 0 holder.itemView.isEnabled = item.uri != null - holder.icon.setImageDrawable(holder.icon.context.getDrawableCompat(item.iconResId)) + holder.icon.setImageResource(item.iconResId) holder.text.text = item.getTitle(context) holder.link.visibility = if (item.uri != null) View.VISIBLE else View.GONE holder.link.text = item.displayLink diff --git a/src/main/kotlin/com/looker/droidify/utility/extension/Text.kt b/src/main/kotlin/com/looker/droidify/utility/extension/Text.kt index adb4d8bf..a2e86b35 100644 --- a/src/main/kotlin/com/looker/droidify/utility/extension/Text.kt +++ b/src/main/kotlin/com/looker/droidify/utility/extension/Text.kt @@ -30,6 +30,17 @@ fun String?.trimAfter(char: Char, repeated: Int): String? { return null } +fun String?.trimBefore(char: Char, repeated: Int): String? { + var count = 0 + this?.let { + for (i in it.indices) { + if (it[i] == char) count++ + if (repeated == count) return it.substring(i+1) + } + } + return null +} + fun Char.halfByte(): Int { return when (this) { in '0'..'9' -> this - '0'