11package org.schabi.newpipe.ui.components.items.stream
22
3- import androidx.annotation.StringRes
43import androidx.compose.material3.DropdownMenu
5- import androidx.compose.material3.DropdownMenuItem
6- import androidx.compose.material3.MaterialTheme
7- import androidx.compose.material3.Text
84import androidx.compose.runtime.Composable
95import androidx.compose.ui.platform.LocalContext
10- import androidx.compose.ui.res.stringResource
116import androidx.lifecycle.viewmodel.compose.viewModel
127import org.schabi.newpipe.R
138import org.schabi.newpipe.database.stream.model.StreamEntity
@@ -16,6 +11,7 @@ import org.schabi.newpipe.ktx.findFragmentActivity
1611import org.schabi.newpipe.local.dialog.PlaylistAppendDialog
1712import org.schabi.newpipe.local.dialog.PlaylistDialog
1813import org.schabi.newpipe.player.helper.PlayerHolder
14+ import org.schabi.newpipe.ui.components.common.DropdownTextMenuItem
1915import org.schabi.newpipe.ui.components.items.Stream
2016import org.schabi.newpipe.util.NavigationHelper
2117import org.schabi.newpipe.util.SparseItemUtil
@@ -36,59 +32,59 @@ fun StreamMenu(
3632 val streamViewModel = viewModel<StreamViewModel >()
3733
3834 if (playerHolder.isPlayQueueReady) {
39- StreamMenuItem (
35+ DropdownTextMenuItem (
4036 text = R .string.enqueue_stream,
4137 onClick = {
4238 onDismissRequest()
4339 SparseItemUtil .fetchItemInfoIfSparse(context, info) {
4440 NavigationHelper .enqueueOnPlayer(context, it)
4541 }
46- }
42+ },
4743 )
4844
4945 if (playerHolder.queuePosition < playerHolder.queueSize - 1 ) {
50- StreamMenuItem (
46+ DropdownTextMenuItem (
5147 text = R .string.enqueue_next_stream,
5248 onClick = {
5349 onDismissRequest()
5450 SparseItemUtil .fetchItemInfoIfSparse(context, info) {
5551 NavigationHelper .enqueueNextOnPlayer(context, it)
5652 }
57- }
53+ },
5854 )
5955 }
6056 }
6157
62- StreamMenuItem (
58+ DropdownTextMenuItem (
6359 text = R .string.start_here_on_background,
6460 onClick = {
6561 onDismissRequest()
6662 SparseItemUtil .fetchItemInfoIfSparse(context, info) {
6763 NavigationHelper .playOnBackgroundPlayer(context, it, true )
6864 }
69- }
65+ },
7066 )
71- StreamMenuItem (
67+ DropdownTextMenuItem (
7268 text = R .string.start_here_on_popup,
7369 onClick = {
7470 onDismissRequest()
7571 SparseItemUtil .fetchItemInfoIfSparse(context, info) {
7672 NavigationHelper .playOnPopupPlayer(context, it, true )
7773 }
78- }
74+ },
7975 )
8076
8177 if (stream.streamId != - 1L ) {
82- StreamMenuItem (
78+ DropdownTextMenuItem (
8379 text = R .string.delete,
8480 onClick = {
8581 onDismissRequest()
8682 streamViewModel.deleteStreamHistory(stream.streamId)
87- }
83+ },
8884 )
8985 }
9086
91- StreamMenuItem (
87+ DropdownTextMenuItem (
9288 text = R .string.download,
9389 onClick = {
9490 onDismissRequest()
@@ -100,9 +96,9 @@ fun StreamMenu(
10096 val fragmentManager = context.findFragmentActivity().supportFragmentManager
10197 downloadDialog.show(fragmentManager, " downloadDialog" )
10298 }
103- }
99+ },
104100 )
105- StreamMenuItem (
101+ DropdownTextMenuItem (
106102 text = R .string.add_to_playlist,
107103 onClick = {
108104 onDismissRequest()
@@ -111,33 +107,33 @@ fun StreamMenu(
111107 val tag = if (dialog is PlaylistAppendDialog ) " append" else " create"
112108 dialog.show(
113109 context.findFragmentActivity().supportFragmentManager,
114- " StreamDialogEntry@${tag} _playlist"
110+ " StreamDialogEntry@${tag} _playlist" ,
115111 )
116112 }
117- }
113+ },
118114 )
119- StreamMenuItem (
115+ DropdownTextMenuItem (
120116 text = R .string.share,
121117 onClick = {
122118 onDismissRequest()
123119 ShareUtils .shareText(context, stream.name, stream.url, stream.thumbnails)
124- }
120+ },
125121 )
126- StreamMenuItem (
122+ DropdownTextMenuItem (
127123 text = R .string.open_in_browser,
128124 onClick = {
129125 onDismissRequest()
130126 ShareUtils .openUrlInBrowser(context, stream.url)
131- }
127+ },
132128 )
133- StreamMenuItem (
129+ DropdownTextMenuItem (
134130 text = R .string.mark_as_watched,
135131 onClick = {
136132 onDismissRequest()
137133 streamViewModel.markAsWatched(info)
138134 }
139135 )
140- StreamMenuItem (
136+ DropdownTextMenuItem (
141137 text = R .string.show_channel_details,
142138 onClick = {
143139 onDismissRequest()
@@ -151,16 +147,3 @@ fun StreamMenu(
151147 )
152148 }
153149}
154-
155- @Composable
156- private fun StreamMenuItem (
157- @StringRes text : Int ,
158- onClick : () -> Unit
159- ) {
160- DropdownMenuItem (
161- text = {
162- Text (text = stringResource(text), color = MaterialTheme .colorScheme.onBackground)
163- },
164- onClick = onClick
165- )
166- }
0 commit comments