mirror of
https://github.com/TeamNewPipe/NewPipe.git
synced 2024-11-25 12:32:31 +01:00
Improve code organization
This commit is contained in:
parent
909d214002
commit
369a46f8fe
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.ui
|
||||
package org.schabi.newpipe.compose
|
||||
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
@ -27,8 +27,8 @@ import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.ui.theme.AppTheme
|
||||
import org.schabi.newpipe.ui.theme.SizeTokens
|
||||
import org.schabi.newpipe.compose.theme.AppTheme
|
||||
import org.schabi.newpipe.compose.theme.SizeTokens
|
||||
|
||||
@Composable
|
||||
fun TextAction(text: String, modifier: Modifier = Modifier) {
|
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.fragments.list.comments
|
||||
package org.schabi.newpipe.compose.comment
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.compose.foundation.Image
|
||||
@ -29,9 +29,6 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.pluralStringResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.text.ParagraphStyle
|
||||
import androidx.compose.ui.text.fromHtml
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
@ -42,26 +39,16 @@ import androidx.paging.Pager
|
||||
import androidx.paging.PagingConfig
|
||||
import coil.compose.AsyncImage
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.compose.theme.AppTheme
|
||||
import org.schabi.newpipe.compose.util.rememberParsedDescription
|
||||
import org.schabi.newpipe.extractor.Page
|
||||
import org.schabi.newpipe.extractor.comments.CommentsInfoItem
|
||||
import org.schabi.newpipe.extractor.stream.Description
|
||||
import org.schabi.newpipe.ui.theme.AppTheme
|
||||
import org.schabi.newpipe.paging.CommentsSource
|
||||
import org.schabi.newpipe.util.Localization
|
||||
import org.schabi.newpipe.util.NavigationHelper
|
||||
import org.schabi.newpipe.util.image.ImageStrategy
|
||||
|
||||
@Composable
|
||||
fun rememberParsedText(commentText: Description): AnnotatedString {
|
||||
// TODO: Handle links and hashtags, Markdown.
|
||||
return remember(commentText) {
|
||||
if (commentText.type == Description.HTML) {
|
||||
AnnotatedString.fromHtml(commentText.content)
|
||||
} else {
|
||||
AnnotatedString(commentText.content, ParagraphStyle())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun Comment(comment: CommentsInfoItem) {
|
||||
@ -112,7 +99,7 @@ fun Comment(comment: CommentsInfoItem) {
|
||||
}
|
||||
|
||||
Text(
|
||||
text = rememberParsedText(comment.commentText),
|
||||
text = rememberParsedDescription(comment.commentText),
|
||||
// If the comment is expanded, we display all its content
|
||||
// otherwise we only display the first two lines
|
||||
maxLines = if (isExpanded) Int.MAX_VALUE else 2,
|
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.fragments.list.comments
|
||||
package org.schabi.newpipe.compose.comment
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.compose.foundation.Image
|
||||
@ -25,9 +25,10 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import coil.compose.AsyncImage
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.compose.theme.AppTheme
|
||||
import org.schabi.newpipe.compose.util.rememberParsedDescription
|
||||
import org.schabi.newpipe.extractor.comments.CommentsInfoItem
|
||||
import org.schabi.newpipe.extractor.stream.Description
|
||||
import org.schabi.newpipe.ui.theme.AppTheme
|
||||
import org.schabi.newpipe.util.Localization
|
||||
import org.schabi.newpipe.util.NavigationHelper
|
||||
import org.schabi.newpipe.util.image.ImageStrategy
|
||||
@ -106,7 +107,7 @@ fun CommentRepliesHeader(comment: CommentsInfoItem) {
|
||||
}
|
||||
|
||||
Text(
|
||||
text = rememberParsedText(comment.commentText),
|
||||
text = rememberParsedDescription(comment.commentText),
|
||||
style = MaterialTheme.typography.bodyMedium
|
||||
)
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.fragments.list.comments
|
||||
package org.schabi.newpipe.compose.comment
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.compose.foundation.layout.Column
|
||||
@ -28,14 +28,15 @@ import kotlinx.coroutines.flow.flowOf
|
||||
import my.nanihadesuka.compose.LazyColumnScrollbar
|
||||
import my.nanihadesuka.compose.ScrollbarSettings
|
||||
import org.schabi.newpipe.R
|
||||
import org.schabi.newpipe.compose.theme.AppTheme
|
||||
import org.schabi.newpipe.extractor.comments.CommentsInfoItem
|
||||
import org.schabi.newpipe.extractor.stream.Description
|
||||
import org.schabi.newpipe.ui.theme.AppTheme
|
||||
import org.schabi.newpipe.paging.CommentsDisabledException
|
||||
|
||||
@Composable
|
||||
fun CommentSection(
|
||||
flow: Flow<PagingData<CommentsInfoItem>>,
|
||||
parentComment: CommentsInfoItem? = null,
|
||||
flow: Flow<PagingData<CommentsInfoItem>>
|
||||
) {
|
||||
val replies = flow.collectAsLazyPagingItems()
|
||||
val itemCount by remember { derivedStateOf { replies.itemCount } }
|
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.ui.theme
|
||||
package org.schabi.newpipe.compose.theme
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
|
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.ui.theme
|
||||
package org.schabi.newpipe.compose.theme
|
||||
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.ui.theme
|
||||
package org.schabi.newpipe.compose.theme
|
||||
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.material3.MaterialTheme
|
@ -0,0 +1,20 @@
|
||||
package org.schabi.newpipe.compose.util
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import androidx.compose.ui.text.ParagraphStyle
|
||||
import androidx.compose.ui.text.fromHtml
|
||||
import org.schabi.newpipe.extractor.stream.Description
|
||||
|
||||
@Composable
|
||||
fun rememberParsedDescription(description: Description): AnnotatedString {
|
||||
// TODO: Handle links and hashtags, Markdown.
|
||||
return remember(description) {
|
||||
if (description.type == Description.HTML) {
|
||||
AnnotatedString.fromHtml(description.content)
|
||||
} else {
|
||||
AnnotatedString(description.content, ParagraphStyle())
|
||||
}
|
||||
}
|
||||
}
|
@ -11,7 +11,9 @@ import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.paging.Pager
|
||||
import androidx.paging.PagingConfig
|
||||
import org.schabi.newpipe.ui.theme.AppTheme
|
||||
import org.schabi.newpipe.compose.comment.CommentSection
|
||||
import org.schabi.newpipe.compose.theme.AppTheme
|
||||
import org.schabi.newpipe.paging.CommentsSource
|
||||
import org.schabi.newpipe.util.NO_SERVICE_ID
|
||||
|
||||
class CommentsFragment : Fragment() {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package org.schabi.newpipe.fragments.list.comments
|
||||
package org.schabi.newpipe.paging
|
||||
|
||||
import androidx.paging.PagingState
|
||||
import androidx.paging.rxjava3.RxPagingSource
|
Loading…
Reference in New Issue
Block a user