@@ -14,15 +14,17 @@ import androidx.compose.runtime.mutableStateOf
1414import androidx.compose.runtime.remember
1515import androidx.compose.runtime.setValue
1616import androidx.compose.ui.platform.LocalContext
17+ import androidx.compose.ui.res.stringResource
1718import androidx.compose.ui.unit.dp
1819import androidx.fragment.app.FragmentActivity
1920import androidx.paging.compose.LazyPagingItems
21+ import androidx.preference.PreferenceManager
2022import androidx.window.core.layout.WindowWidthSizeClass
2123import my.nanihadesuka.compose.LazyColumnScrollbar
2224import my.nanihadesuka.compose.LazyVerticalGridScrollbar
25+ import org.schabi.newpipe.R
2326import org.schabi.newpipe.extractor.stream.StreamInfoItem
2427import org.schabi.newpipe.info_list.ItemViewMode
25- import org.schabi.newpipe.ui.components.common.determineItemViewMode
2628import org.schabi.newpipe.util.NavigationHelper
2729
2830@Composable
@@ -98,3 +100,27 @@ fun StreamList(
98100 }
99101 }
100102}
103+
104+ @Composable
105+ private fun determineItemViewMode (): ItemViewMode {
106+ val listMode = PreferenceManager .getDefaultSharedPreferences(LocalContext .current)
107+ .getString(
108+ stringResource(R .string.list_view_mode_key),
109+ stringResource(R .string.list_view_mode_value)
110+ )
111+
112+ return when (listMode) {
113+ stringResource(R .string.list_view_mode_list_key) -> ItemViewMode .LIST
114+ stringResource(R .string.list_view_mode_grid_key) -> ItemViewMode .GRID
115+ stringResource(R .string.list_view_mode_card_key) -> ItemViewMode .CARD
116+ else -> {
117+ // Auto mode - evaluate whether to use Grid based on screen real estate.
118+ val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
119+ if (windowSizeClass.windowWidthSizeClass == WindowWidthSizeClass .EXPANDED ) {
120+ ItemViewMode .GRID
121+ } else {
122+ ItemViewMode .LIST
123+ }
124+ }
125+ }
126+ }
0 commit comments