Skip to content

Commit bc87575

Browse files
Allow scrolling of about channel section
1 parent 387a4d5 commit bc87575

File tree

3 files changed

+46
-35
lines changed

3 files changed

+46
-35
lines changed

app/src/main/java/org/schabi/newpipe/ui/components/channel/AboutChannelSection.kt

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,57 +2,68 @@ package org.schabi.newpipe.ui.components.channel
22

33
import android.content.res.Configuration
44
import androidx.compose.foundation.layout.Arrangement
5-
import androidx.compose.foundation.layout.Column
65
import androidx.compose.foundation.layout.padding
6+
import androidx.compose.foundation.lazy.LazyColumn
7+
import androidx.compose.foundation.lazy.rememberLazyListState
78
import androidx.compose.material3.MaterialTheme
89
import androidx.compose.material3.Surface
910
import androidx.compose.material3.Text
1011
import androidx.compose.runtime.Composable
1112
import androidx.compose.ui.Modifier
13+
import androidx.compose.ui.input.nestedscroll.nestedScroll
1214
import androidx.compose.ui.platform.LocalContext
15+
import androidx.compose.ui.platform.rememberNestedScrollInteropConnection
1316
import androidx.compose.ui.tooling.preview.Preview
1417
import androidx.compose.ui.unit.dp
18+
import my.nanihadesuka.compose.LazyColumnScrollbar
1519
import org.schabi.newpipe.R
1620
import org.schabi.newpipe.extractor.Image
1721
import org.schabi.newpipe.extractor.Image.ResolutionLevel
1822
import org.schabi.newpipe.extractor.stream.StreamExtractor
19-
import org.schabi.newpipe.ui.components.metadata.ImageMetadataItem
2023
import org.schabi.newpipe.ui.components.metadata.MetadataItem
2124
import org.schabi.newpipe.ui.components.metadata.TagsSection
25+
import org.schabi.newpipe.ui.components.metadata.imageMetadataItem
2226
import org.schabi.newpipe.ui.theme.AppTheme
2327
import org.schabi.newpipe.util.Localization
2428
import org.schabi.newpipe.util.NO_SERVICE_ID
2529

2630
@Composable
2731
fun 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
}

app/src/main/java/org/schabi/newpipe/ui/components/metadata/ImageMetadataItem.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package org.schabi.newpipe.ui.components.metadata
33
import android.content.Context
44
import android.content.res.Configuration
55
import androidx.annotation.StringRes
6+
import androidx.compose.foundation.lazy.LazyListScope
67
import androidx.compose.material3.MaterialTheme
78
import androidx.compose.material3.Surface
89
import androidx.compose.runtime.Composable
@@ -32,6 +33,14 @@ fun ImageMetadataItem(@StringRes title: Int, images: List<Image>) {
3233
MetadataItem(title = title, value = imageLinks)
3334
}
3435

36+
fun LazyListScope.imageMetadataItem(@StringRes title: Int, images: List<Image>) {
37+
if (images.isNotEmpty()) {
38+
item {
39+
ImageMetadataItem(title, images)
40+
}
41+
}
42+
}
43+
3544
private fun convertImagesToLinks(context: Context, images: List<Image>): AnnotatedString {
3645
val preferredUrl = ImageStrategy.choosePreferredImage(images)
3746

app/src/main/java/org/schabi/newpipe/ui/components/video/VideoDescriptionSection.kt

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,15 @@ import androidx.compose.ui.tooling.preview.Preview
4545
import androidx.compose.ui.unit.dp
4646
import my.nanihadesuka.compose.LazyColumnScrollbar
4747
import org.schabi.newpipe.R
48-
import org.schabi.newpipe.extractor.Image
4948
import org.schabi.newpipe.extractor.localization.DateWrapper
5049
import org.schabi.newpipe.extractor.stream.Description
5150
import org.schabi.newpipe.extractor.stream.StreamExtractor
5251
import org.schabi.newpipe.extractor.stream.StreamInfo
5352
import org.schabi.newpipe.extractor.stream.StreamType
5453
import org.schabi.newpipe.ui.components.common.DescriptionText
55-
import org.schabi.newpipe.ui.components.metadata.ImageMetadataItem
5654
import org.schabi.newpipe.ui.components.metadata.MetadataItem
5755
import org.schabi.newpipe.ui.components.metadata.TagsSection
56+
import org.schabi.newpipe.ui.components.metadata.imageMetadataItem
5857
import org.schabi.newpipe.ui.theme.AppTheme
5958
import org.schabi.newpipe.util.Localization
6059
import org.schabi.newpipe.util.NO_SERVICE_ID
@@ -210,14 +209,6 @@ private fun LazyListScope.metadataItem(@StringRes title: Int, value: String) {
210209
}
211210
}
212211

213-
private fun LazyListScope.imageMetadataItem(@StringRes title: Int, images: List<Image>) {
214-
if (images.isNotEmpty()) {
215-
item {
216-
ImageMetadataItem(title, images)
217-
}
218-
}
219-
}
220-
221212
@Preview(name = "Light mode", uiMode = Configuration.UI_MODE_NIGHT_NO)
222213
@Preview(name = "Dark mode", uiMode = Configuration.UI_MODE_NIGHT_YES)
223214
@Composable

0 commit comments

Comments
 (0)