A cheap attempt at a native Bluesky client for Android

ShowSkeets: Allow showing thread from skeet

Enable the `onShowThread` callback in `SkeetView`. This allows tapping a skeet to view its full thread. The `LazyColumn` was also switched from `items` to `itemsIndexed` to accommodate this.

+22 -23
+22 -23
app/src/main/java/industries/geesawra/monarch/ShowSkeets.kt
··· 6 6 import androidx.compose.foundation.layout.padding 7 7 import androidx.compose.foundation.lazy.LazyColumn 8 8 import androidx.compose.foundation.lazy.LazyListState 9 - import androidx.compose.foundation.lazy.items 9 + import androidx.compose.foundation.lazy.itemsIndexed 10 10 import androidx.compose.foundation.lazy.rememberLazyListState 11 11 import androidx.compose.foundation.shape.RoundedCornerShape 12 12 import androidx.compose.material3.Card ··· 43 43 .padding(horizontal = 16.dp), 44 44 verticalArrangement = Arrangement.spacedBy(16.dp), 45 45 ) { 46 - items( 46 + itemsIndexed( 47 47 items = data.filter { !it.replyToNotFollowing }, 48 - key = { it.key() } 49 - ) { skeet -> 48 + key = { _, skeet -> skeet.key() } 49 + ) { idx, skeet -> 50 50 Card( 51 51 modifier = Modifier.padding(start = (skeet.nestingLevel * 16).dp) 52 52 ) { ··· 66 66 skeet = it, 67 67 onReplyTap = onReplyTap, 68 68 inThread = true, 69 - // onShowThread = { 70 - // if (onSeeMoreTap != null) { 71 - // viewModel.setThread(root) 72 - // onSeeMoreTap(root) 73 - // } 74 - // } 69 + onShowThread = { 70 + if (onSeeMoreTap != null) { 71 + viewModel.setThread(root) 72 + onSeeMoreTap(root) 73 + } 74 + } 75 75 ) 76 76 } 77 77 ··· 101 101 skeet = it, 102 102 onReplyTap = onReplyTap, 103 103 inThread = true, 104 - // onShowThread = { 105 - // if (onSeeMoreTap != null) { 106 - // viewModel.setThread(parent) 107 - // onSeeMoreTap(parent) 108 - // } 109 - // } 104 + onShowThread = { 105 + if (onSeeMoreTap != null) { 106 + viewModel.setThread(parent) 107 + onSeeMoreTap(parent) 108 + } 109 + } 110 110 ) 111 111 } 112 112 } 113 113 } 114 114 115 - 116 115 SkeetView( 117 116 viewModel = viewModel, 118 117 skeet = skeet, 119 118 onReplyTap = onReplyTap, 120 119 showInReplyTo = parent == null, 121 - // onShowThread = { 122 - // if (onSeeMoreTap != null) { 123 - // viewModel.setThread(skeet) 124 - // onSeeMoreTap(skeet) 125 - // } 126 - // } 120 + onShowThread = { 121 + if (onSeeMoreTap != null) { 122 + viewModel.setThread(skeet) 123 + onSeeMoreTap(skeet) 124 + } 125 + } 127 126 ) 128 127 } 129 128 }