diff --git a/app/src/main/java/com/swoosh/microblog/ui/composer/ComposerScreen.kt b/app/src/main/java/com/swoosh/microblog/ui/composer/ComposerScreen.kt index 560cd7b..08963fa 100644 --- a/app/src/main/java/com/swoosh/microblog/ui/composer/ComposerScreen.kt +++ b/app/src/main/java/com/swoosh/microblog/ui/composer/ComposerScreen.kt @@ -42,8 +42,12 @@ import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.viewmodel.compose.viewModel +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.ui.platform.LocalContext import coil.compose.AsyncImage +import com.swoosh.microblog.data.AccountManager import com.swoosh.microblog.data.HashtagParser +import com.swoosh.microblog.data.SiteMetadataCache import com.swoosh.microblog.data.model.FeedPost import com.swoosh.microblog.data.model.PostStats import com.swoosh.microblog.ui.animation.SwooshMotion @@ -209,6 +213,39 @@ fun ComposerScreen( .fillMaxSize() .padding(padding) ) { + // "Publishing to" chip when multiple accounts exist + val composerContext = LocalContext.current + val composerAccountManager = remember { AccountManager(composerContext) } + val composerAccounts = remember { composerAccountManager.getAccounts() } + val composerActiveAccount = remember { composerAccountManager.getActiveAccount() } + + if (composerAccounts.size > 1 && composerActiveAccount != null) { + val composerSiteCache = remember { SiteMetadataCache(composerContext) } + val composerSiteData = remember { + composerSiteCache.get(composerActiveAccount.id) + } + val siteName = composerSiteData?.title ?: composerActiveAccount.name + val siteIconUrl = composerSiteData?.icon ?: composerSiteData?.logo + + AssistChip( + onClick = { }, + label = { Text("Publishing to: $siteName") }, + leadingIcon = if (siteIconUrl != null) { + { + AsyncImage( + model = siteIconUrl, + contentDescription = null, + modifier = Modifier + .size(18.dp) + .clip(CircleShape), + contentScale = ContentScale.Crop + ) + } + } else null, + modifier = Modifier.padding(horizontal = 16.dp, vertical = 4.dp) + ) + } + // Hashtag visual transformation for edit mode text field val hashtagColor = MaterialTheme.colorScheme.primary val hashtagTransformation = remember(hashtagColor) {