A cheap attempt at a native Bluesky client for Android
7
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'worktree-typed-snacking-peach'

geesawra ce57935b 0dc462d5

+7 -1
+3
app/src/main/java/industries/geesawra/monarch/MainView.kt
··· 6 6 import androidx.activity.compose.BackHandler 7 7 import androidx.compose.foundation.ExperimentalFoundationApi 8 8 import androidx.compose.foundation.combinedClickable 9 + import androidx.compose.ui.platform.LocalFocusManager 9 10 import androidx.annotation.StringRes 10 11 import androidx.compose.animation.AnimatedVisibility 11 12 import androidx.compose.animation.core.animate ··· 153 154 onFirstLoad() 154 155 } 155 156 157 + val focusManager = LocalFocusManager.current 156 158 BackHandler(enabled = scaffoldState.bottomSheetState.isVisible) { 159 + focusManager.clearFocus() 157 160 coroutineScope.launch { 158 161 scaffoldState.bottomSheetState.hide() 159 162 }
+4 -1
app/src/main/java/industries/geesawra/monarch/SettingsView.kt
··· 242 242 "Bluesky" to "did:web:api.bsky.app#bsky_appview", 243 243 "Blacksky" to "did:web:api.blacksky.community#bsky_appview", 244 244 ) 245 - val currentProxy = timelineViewModel.appviewProxy() ?: "" 245 + var currentProxy by remember { mutableStateOf(timelineViewModel.appviewProxy() ?: "") } 246 246 var showCustomDialog by remember { mutableStateOf(false) } 247 247 248 248 knownAppviews.forEach { (name, did) -> ··· 254 254 selected = currentProxy == did, 255 255 onClick = { 256 256 if (currentProxy != did) { 257 + currentProxy = did 257 258 timelineViewModel.changeAppview(did) 258 259 } 259 260 } ··· 261 262 }, 262 263 modifier = Modifier.clickable { 263 264 if (currentProxy != did) { 265 + currentProxy = did 264 266 timelineViewModel.changeAppview(did) 265 267 } 266 268 } ··· 308 310 TextButton( 309 311 onClick = { 310 312 if (customDid.isNotBlank()) { 313 + currentProxy = customDid.trim() 311 314 timelineViewModel.changeAppview(customDid.trim()) 312 315 showCustomDialog = false 313 316 }