VideoDetail screen: - New "Related" section at the bottom — pulls StreamInfo.relatedItems, filters to StreamInfoItem, renders as inline thumbnail rows. Tap → push another VideoDetail. Up to 20 items shown. Each row uses bestThumbnail() for hi-res. Settings screen + PlayerViewModel: - New "Playback" section with a Max-Resolution picker: Auto / 1080p / 720p / 480p / 360p / 144p. Persisted to SharedPreferences (KEY_MAX_RES) via SettingsStore.maxResolution StateFlow. - PlayerViewModel.resolve filters videoStreams + videoOnlyStreams by the ceiling before picking the max-bitrate one. Auto (Int.MAX_VALUE) is unchanged behavior. Choosing 720p caps the renderer so 1080p/4K streams are skipped — saves bandwidth on mobile + helps low-end decoders. Phase P next ideas: bottom navigation tabs (Home / Subs feed / Library), Download (audio + video), the MediaSessionService refactor for true background audio after activity death.
20 lines
651 B
Kotlin
20 lines
651 B
Kotlin
/*
|
|
* SPDX-FileCopyrightText: 2026 NewPipe e.V. <https://newpipe-ev.de>
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
const val NEWPIPE_VERSION_SDK_COMPILE_MAJOR = 36
|
|
const val NEWPIPE_VERSION_SDK_COMPILE_MINOR = 1
|
|
const val NEWPIPE_VERSION_SDK_MIN = 23
|
|
const val NEWPIPE_VERSION_SDK_TARGET = 35
|
|
|
|
const val NEWPIPE_VERSION_CODE = 1012
|
|
const val NEWPIPE_VERSION_NAME = "0.28.7"
|
|
|
|
const val NEWPIPE_APPLICATION_ID_OLD = "org.schabi.newpipe"
|
|
const val NEWPIPE_APPLICATION_ID_NEW = "net.newpipe.app"
|
|
|
|
// Sulkta fork — Straw
|
|
const val STRAW_VERSION_CODE = 3
|
|
const val STRAW_VERSION_NAME = "0.1.0-O"
|
|
const val STRAW_APPLICATION_ID = "com.sulkta.straw"
|