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

Configure Feed

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

SkeetView: make viewmodel conditional

Sometimes we just need to show things, not to render them as well.

geesawra f11125f9 223ad521

+9 -12
+4 -7
app/src/main/java/industries/geesawra/jerryno/SkeetView.kt
··· 48 48 @Composable 49 49 fun SkeetView( 50 50 modifier: Modifier = Modifier, 51 - viewModel: TimelineViewModel, 51 + viewModel: TimelineViewModel?, 52 52 skeet: SkeetData, 53 53 nested: Boolean = false, 54 54 disableEmbeds: Boolean = false ··· 93 93 SkeetHeader(modifier = Modifier.padding(start = 16.dp), skeet = skeet) 94 94 } 95 95 96 - SkeetContent(viewModel, skeet, nested, disableEmbeds) 96 + SkeetContent(skeet, nested, disableEmbeds) 97 97 98 - if (!nested) { 98 + if (!nested && !disableEmbeds) { 99 99 TimelinePostActionsView( 100 100 modifier = Modifier 101 101 .fillMaxWidth(), ··· 122 122 123 123 @Composable 124 124 private fun SkeetContent( 125 - timelineViewModel: TimelineViewModel, 126 125 skeet: SkeetData, 127 126 nested: Boolean = false, 128 127 disableEmbeds: Boolean = false, ··· 271 270 ) { 272 271 RecordView( 273 272 modifier = Modifier.padding(top = 8.dp, bottom = 8.dp), 274 - timelineViewModel, 275 273 embed.value 276 274 ) 277 275 } ··· 285 283 @Composable 286 284 private fun RecordView( 287 285 modifier: Modifier = Modifier, 288 - viewModel: TimelineViewModel, 289 286 rv: RecordView 290 287 ) { 291 288 val rv = rv.record 292 289 when (rv) { 293 290 is RecordViewRecordUnion.ViewRecord -> { 294 - SkeetView(modifier, viewModel, SkeetData.fromRecordView(rv.value), nested = true) 291 + SkeetView(modifier, null, SkeetData.fromRecordView(rv.value), nested = true) 295 292 } 296 293 297 294 else -> {}
+5 -5
app/src/main/java/industries/geesawra/jerryno/TimelinePostActionsView.kt
··· 79 79 @Composable 80 80 fun TimelinePostActionsView( 81 81 modifier: Modifier = Modifier, 82 - timelineViewModel: TimelineViewModel, 82 + timelineViewModel: TimelineViewModel?, 83 83 reposted: Boolean, 84 84 liked: Boolean, 85 85 replies: Long?, ··· 146 146 IconButton( 147 147 onClick = { 148 148 when (isLiked) { 149 - false -> timelineViewModel.like(uri, cid) { 149 + false -> timelineViewModel?.like(uri, cid) { 150 150 isLiked = true 151 151 likes.longValue++ 152 152 } 153 153 154 - true -> timelineViewModel.deleteLike(cid) { 154 + true -> timelineViewModel?.deleteLike(cid) { 155 155 isLiked = false 156 156 likes.longValue-- 157 157 } ··· 170 170 IconButton( 171 171 onClick = { 172 172 when (isReposted) { 173 - false -> timelineViewModel.repost(uri, cid) { 173 + false -> timelineViewModel?.repost(uri, cid) { 174 174 isReposted = true 175 175 reposts.longValue++ 176 176 } 177 177 178 - true -> timelineViewModel.deleteRepost(cid) { 178 + true -> timelineViewModel?.deleteRepost(cid) { 179 179 isReposted = false 180 180 reposts.longValue-- 181 181 }