@@ -2,57 +2,68 @@ package org.schabi.newpipe.ui.components.channel
22
33import android.content.res.Configuration
44import androidx.compose.foundation.layout.Arrangement
5- import androidx.compose.foundation.layout.Column
65import androidx.compose.foundation.layout.padding
6+ import androidx.compose.foundation.lazy.LazyColumn
7+ import androidx.compose.foundation.lazy.rememberLazyListState
78import androidx.compose.material3.MaterialTheme
89import androidx.compose.material3.Surface
910import androidx.compose.material3.Text
1011import androidx.compose.runtime.Composable
1112import androidx.compose.ui.Modifier
13+ import androidx.compose.ui.input.nestedscroll.nestedScroll
1214import androidx.compose.ui.platform.LocalContext
15+ import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
1316import androidx.compose.ui.tooling.preview.Preview
1417import androidx.compose.ui.unit.dp
18+ import my.nanihadesuka.compose.LazyColumnScrollbar
1519import org.schabi.newpipe.R
1620import org.schabi.newpipe.extractor.Image
1721import org.schabi.newpipe.extractor.Image.ResolutionLevel
1822import org.schabi.newpipe.extractor.stream.StreamExtractor
19- import org.schabi.newpipe.ui.components.metadata.ImageMetadataItem
2023import org.schabi.newpipe.ui.components.metadata.MetadataItem
2124import org.schabi.newpipe.ui.components.metadata.TagsSection
25+ import org.schabi.newpipe.ui.components.metadata.imageMetadataItem
2226import org.schabi.newpipe.ui.theme.AppTheme
2327import org.schabi.newpipe.util.Localization
2428import org.schabi.newpipe.util.NO_SERVICE_ID
2529
2630@Composable
2731fun AboutChannelSection (channelInfo : ParcelableChannelInfo ) {
28- // This tab currently holds little information, so a lazy column isn't needed here.
29- Column (
30- modifier = Modifier .padding(12 .dp),
31- verticalArrangement = Arrangement .spacedBy(4 .dp)
32- ) {
33- val (serviceId, description, count, avatars, banners, tags) = channelInfo
32+ val (serviceId, description, count, avatars, banners, tags) = channelInfo
33+ val lazyListState = rememberLazyListState()
3434
35- if (description.isNotEmpty()) {
36- Text (text = description)
37- }
35+ LazyColumnScrollbar (state = lazyListState) {
36+ LazyColumn (
37+ modifier = Modifier
38+ .padding(12 .dp)
39+ .nestedScroll(rememberNestedScrollInteropConnection()),
40+ state = lazyListState,
41+ verticalArrangement = Arrangement .spacedBy(4 .dp)
42+ ) {
43+ if (description.isNotEmpty()) {
44+ item {
45+ Text (text = description)
46+ }
47+ }
3848
39- if (count != StreamExtractor .UNKNOWN_SUBSCRIBER_COUNT ) {
40- MetadataItem (
41- title = R .string.metadata_subscribers,
42- value = Localization .shortCount(LocalContext .current, count)
43- )
44- }
49+ if (count != StreamExtractor .UNKNOWN_SUBSCRIBER_COUNT ) {
50+ item {
51+ MetadataItem (
52+ title = R .string.metadata_subscribers,
53+ value = Localization .shortCount(LocalContext .current, count)
54+ )
55+ }
56+ }
4557
46- if (avatars.isNotEmpty()) {
47- ImageMetadataItem (R .string.metadata_avatars, avatars)
48- }
58+ imageMetadataItem(R .string.metadata_avatars, avatars)
4959
50- if (banners.isNotEmpty()) {
51- ImageMetadataItem (R .string.metadata_banners, banners)
52- }
60+ imageMetadataItem(R .string.metadata_banners, banners)
5361
54- if (tags.isNotEmpty()) {
55- TagsSection (serviceId, tags)
62+ if (tags.isNotEmpty()) {
63+ item {
64+ TagsSection (serviceId, tags)
65+ }
66+ }
5667 }
5768 }
5869}
0 commit comments