Skip to content

Commit aec18c7

Browse files
Move item view mode composable
1 parent a885a88 commit aec18c7

2 files changed

Lines changed: 27 additions & 35 deletions

File tree

app/src/main/java/org/schabi/newpipe/ui/components/common/Utils.kt

Lines changed: 0 additions & 34 deletions
This file was deleted.

app/src/main/java/org/schabi/newpipe/ui/components/stream/StreamList.kt

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,17 @@ import androidx.compose.runtime.mutableStateOf
1414
import androidx.compose.runtime.remember
1515
import androidx.compose.runtime.setValue
1616
import androidx.compose.ui.platform.LocalContext
17+
import androidx.compose.ui.res.stringResource
1718
import androidx.compose.ui.unit.dp
1819
import androidx.fragment.app.FragmentActivity
1920
import androidx.paging.compose.LazyPagingItems
21+
import androidx.preference.PreferenceManager
2022
import androidx.window.core.layout.WindowWidthSizeClass
2123
import my.nanihadesuka.compose.LazyColumnScrollbar
2224
import my.nanihadesuka.compose.LazyVerticalGridScrollbar
25+
import org.schabi.newpipe.R
2326
import org.schabi.newpipe.extractor.stream.StreamInfoItem
2427
import org.schabi.newpipe.info_list.ItemViewMode
25-
import org.schabi.newpipe.ui.components.common.determineItemViewMode
2628
import 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

Comments
 (0)