diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt index 41f9c20ee..d5675ba76 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt @@ -34,6 +34,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontStyle @@ -117,7 +118,8 @@ fun MainTopBar(scaffoldState: ScaffoldState, accountViewModel: AccountViewModel) Box(Modifier) { Column( modifier = Modifier - .fillMaxWidth().fillMaxHeight() + .fillMaxWidth() + .fillMaxHeight() .padding(start = 0.dp, end = 20.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center @@ -209,9 +211,9 @@ fun MainTopBar(scaffoldState: ScaffoldState, accountViewModel: AccountViewModel) ) { AsyncImage( model = accountUser.profilePicture(), - placeholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), + placeholder = BitmapPainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), + fallback = BitmapPainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), + error = BitmapPainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), contentDescription = "Profile Image", modifier = Modifier .width(34.dp) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt index b123ce781..71f448da9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt @@ -71,6 +71,7 @@ import com.google.zxing.qrcode.encoder.ByteMatrix import androidx.compose.ui.graphics.Path import androidx.compose.ui.graphics.PathFillType +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.LocalContext import com.vitorpamplona.amethyst.RoboHashCache @@ -154,9 +155,9 @@ fun ProfileContent(baseAccountUser: User, modifier: Modifier = Modifier, scaffol AsyncImage( model = accountUser.profilePicture(), contentDescription = "Profile Image", - placeholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), + placeholder = BitmapPainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), + fallback = BitmapPainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), + error = BitmapPainter(RoboHashCache.get(ctx, accountUser.pubkeyHex)), modifier = Modifier .width(100.dp) .height(100.dp) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomCompose.kt index b1d714155..f3660d2b5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomCompose.kt @@ -26,6 +26,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.TextStyle @@ -86,7 +87,7 @@ fun ChatroomCompose(baseNote: Note, accountViewModel: AccountViewModel, navContr ChannelName( channelPicture = channel.profilePicture(), - channelPicturePlaceholder = rememberAsyncImagePainter(RoboHashCache.get(context, channel.idHex)), + channelPicturePlaceholder = BitmapPainter(RoboHashCache.get(context, channel.idHex)), channelTitle = { Text( "${channel.info.name}", diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt index a13433e28..45eb813fd 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ChatroomMessageCompose.kt @@ -42,6 +42,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.ColorMatrix import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.text.font.FontWeight @@ -162,9 +163,9 @@ fun ChatroomMessageCompose(baseNote: Note, routeForLastRead: String?, innerQuote ) { AsyncImage( model = author.profilePicture(), - placeholder = rememberAsyncImagePainter(RoboHashCache.get(context, author.pubkeyHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(context, author.pubkeyHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(context, author.pubkeyHex)), + placeholder = BitmapPainter(RoboHashCache.get(context, author.pubkeyHex)), + fallback = BitmapPainter(RoboHashCache.get(context, author.pubkeyHex)), + error = BitmapPainter(RoboHashCache.get(context, author.pubkeyHex)), contentDescription = "Profile Image", modifier = Modifier .width(25.dp) @@ -288,9 +289,9 @@ private fun RelayBadges(baseNote: Note) { Box(Modifier.size(15.dp).padding(1.dp)) { AsyncImage( model = "https://${url}/favicon.ico", - placeholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, url)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(ctx, url)), - error = rememberAsyncImagePainter(RoboHashCache.get(ctx, url)), + placeholder = BitmapPainter(RoboHashCache.get(ctx, url)), + fallback = BitmapPainter(RoboHashCache.get(ctx, url)), + error = BitmapPainter(RoboHashCache.get(ctx, url)), contentDescription = "Relay Icon", colorFilter = ColorFilter.colorMatrix(ColorMatrix().apply { setToSaturation(0f) }), modifier = Modifier diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index 26a89ed1f..46f390dab 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -43,6 +43,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.graphics.ColorMatrix import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler @@ -196,9 +197,9 @@ fun NoteCompose( .align(Alignment.BottomEnd)) { AsyncImage( model = channel.profilePicture(), - placeholder = rememberAsyncImagePainter(RoboHashCache.get(context, channel.idHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(context, channel.idHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(context, channel.idHex)), + placeholder = BitmapPainter(RoboHashCache.get(context, channel.idHex)), + fallback = BitmapPainter(RoboHashCache.get(context, channel.idHex)), + error = BitmapPainter(RoboHashCache.get(context, channel.idHex)), contentDescription = "Group Picture", modifier = Modifier .width(30.dp) @@ -339,9 +340,9 @@ private fun RelayBadges(baseNote: Note) { .padding(1.dp)) { AsyncImage( model = "https://${url}/favicon.ico", - placeholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, url)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(ctx, url)), - error = rememberAsyncImagePainter(RoboHashCache.get(ctx, url)), + placeholder = BitmapPainter(RoboHashCache.get(ctx, url)), + fallback = BitmapPainter(RoboHashCache.get(ctx, url)), + error = BitmapPainter(RoboHashCache.get(ctx, url)), contentDescription = "Relay Icon", colorFilter = ColorFilter.colorMatrix(ColorMatrix().apply { setToSaturation(0f) }), modifier = Modifier @@ -410,7 +411,7 @@ fun NoteAuthorPicture( .height(size)) { if (author == null) { Image( - painter = rememberAsyncImagePainter(RoboHashCache.get(ctx, "ohnothisauthorisnotfound")), + painter = BitmapPainter(RoboHashCache.get(ctx, "ohnothisauthorisnotfound")), contentDescription = "Unknown Author", modifier = pictureModifier .fillMaxSize(1f) @@ -457,9 +458,9 @@ fun UserPicture( AsyncImage( model = user.profilePicture(), contentDescription = "Profile Image", - placeholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, user.pubkeyHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(ctx, user.pubkeyHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(ctx, user.pubkeyHex)), + placeholder = BitmapPainter(RoboHashCache.get(ctx, user.pubkeyHex)), + fallback = BitmapPainter(RoboHashCache.get(ctx, user.pubkeyHex)), + error = BitmapPainter(RoboHashCache.get(ctx, user.pubkeyHex)), modifier = pictureModifier .fillMaxSize(1f) .clip(shape = CircleShape) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/qrcode/ShowQRDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/qrcode/ShowQRDialog.kt index 87a8b6536..2b2ed5b79 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/qrcode/ShowQRDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/qrcode/ShowQRDialog.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp @@ -81,9 +82,9 @@ fun ShowQRDialog(user: User, onScan: (String) -> Unit, onClose: () -> Unit) { Row(horizontalArrangement = Arrangement.Center, modifier = Modifier.fillMaxWidth()) { AsyncImage( model = user.profilePicture(), - placeholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, user.pubkeyHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(ctx, user.pubkeyHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(ctx, user.pubkeyHex)), + placeholder = BitmapPainter(RoboHashCache.get(ctx, user.pubkeyHex)), + fallback = BitmapPainter(RoboHashCache.get(ctx, user.pubkeyHex)), + error = BitmapPainter(RoboHashCache.get(ctx, user.pubkeyHex)), contentDescription = "Profile Image", modifier = Modifier .width(100.dp) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt index 1178f4a5c..e3a459d94 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChannelScreen.kt @@ -38,6 +38,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.ClipboardManager import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalContext @@ -158,9 +159,9 @@ fun ChannelHeader(baseChannel: Channel, account: Account, accountStateViewModel: AsyncImage( model = channel.profilePicture(), - placeholder = rememberAsyncImagePainter(RoboHashCache.get(context, channel.idHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(context, channel.idHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(context, channel.idHex)), + placeholder = BitmapPainter(RoboHashCache.get(context, channel.idHex)), + fallback = BitmapPainter(RoboHashCache.get(context, channel.idHex)), + error = BitmapPainter(RoboHashCache.get(context, channel.idHex)), contentDescription = "Profile Image", modifier = Modifier .width(35.dp) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt index 316961e99..ed6b0c6ea 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ChatroomScreen.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.KeyboardCapitalization @@ -141,9 +142,9 @@ fun ChatroomHeader(baseUser: User, accountViewModel: AccountViewModel, navContro AsyncImage( model = author.profilePicture(), - placeholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, author.pubkeyHex)), - fallback = rememberAsyncImagePainter(RoboHashCache.get(ctx, author.pubkeyHex)), - error = rememberAsyncImagePainter(RoboHashCache.get(ctx, author.pubkeyHex)), + placeholder = BitmapPainter(RoboHashCache.get(ctx, author.pubkeyHex)), + fallback = BitmapPainter(RoboHashCache.get(ctx, author.pubkeyHex)), + error = BitmapPainter(RoboHashCache.get(ctx, author.pubkeyHex)), contentDescription = "Profile Image", modifier = Modifier .width(35.dp) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt index a2116f741..5b2be7bc5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/SearchScreen.kt @@ -36,6 +36,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.painter.BitmapPainter import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.painterResource @@ -238,7 +239,7 @@ private fun SearchBar(accountViewModel: AccountViewModel, navController: NavCont itemsIndexed(searchResultsChannels.value, key = { _, item -> "c"+item.idHex }) { index, item -> ChannelName( channelPicture = item.profilePicture(), - channelPicturePlaceholder = rememberAsyncImagePainter(RoboHashCache.get(ctx, item.idHex)), + channelPicturePlaceholder = BitmapPainter(RoboHashCache.get(ctx, item.idHex)), channelTitle = { Text( "${item.info.name}",