Skip to content

Commit 35fdd81

Browse files
alperozturk96backportbot[bot]
authored andcommitted
fix(client-integration): icon crash
Signed-off-by: alperozturk96 <alper_ozturk@proton.me> # Conflicts: # app/src/main/java/com/nextcloud/utils/GlideHelper.kt
1 parent 37917c1 commit 35fdd81

1 file changed

Lines changed: 13 additions & 23 deletions

File tree

app/src/main/java/com/nextcloud/ui/fileactions/ClientIntegration.kt

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,10 @@ package com.nextcloud.ui.fileactions
99

1010
import android.content.Context
1111
import android.content.Intent
12-
import android.graphics.Canvas
13-
import android.graphics.drawable.PictureDrawable
1412
import android.os.Bundle
1513
import android.view.LayoutInflater
1614
import android.view.View
1715
import androidx.appcompat.content.res.AppCompatResources
18-
import androidx.core.graphics.createBitmap
19-
import androidx.core.graphics.drawable.toDrawable
2016
import androidx.core.net.toUri
2117
import androidx.lifecycle.lifecycleScope
2218
import com.google.gson.Gson
@@ -81,31 +77,25 @@ class ClientIntegration(
8177
}
8278
text.text = endpoint.name
8379

80+
val px = DisplayUtils.convertDpToPixel(
81+
context.resources.getDimension(R.dimen.iconized_single_line_item_icon_size),
82+
context
83+
)
84+
8485
if (endpoint.icon != null) {
8586
sheet.lifecycleScope.launch(Dispatchers.IO) {
8687
val client = OwnCloudClientManagerFactory.getDefaultSingleton()
8788
.getNextcloudClientFor(user.toOwnCloudAccount(), context)
8889

89-
val drawable =
90-
GlideHelper.getDrawable(context, client, client.baseUri.toString() + endpoint.icon)
91-
?.mutate()
92-
93-
val px = DisplayUtils.convertDpToPixel(
94-
context.resources.getDimension(R.dimen.iconized_single_line_item_icon_size),
95-
context
96-
)
97-
val returnedBitmap =
98-
createBitmap(drawable?.intrinsicWidth ?: px, drawable?.intrinsicHeight ?: px)
99-
100-
val canvas = Canvas(returnedBitmap)
101-
canvas.drawPicture((drawable as PictureDrawable).picture)
102-
103-
val d = returnedBitmap.toDrawable(context.resources)
104-
105-
val tintedDrawable = viewThemeUtils.platform.tintDrawable(
90+
val drawable = GlideHelper.fetchDrawable(
10691
context,
107-
d
108-
)
92+
client,
93+
client.baseUri.toString() + endpoint.icon,
94+
width = px,
95+
height = px
96+
)?.mutate()
97+
98+
val tintedDrawable = drawable?.let { viewThemeUtils.platform.tintDrawable(context, it) }
10999

110100
withContext(Dispatchers.Main) {
111101
icon.setImageDrawable(tintedDrawable)

0 commit comments

Comments
 (0)