Settings screen now has an Import section. Picks a NewPipeData-*.zip or TubularData-*.zip via the SAF, extracts newpipe.db + preferences.json, and walks the Room SQLite schema (subscriptions / playlists / playlist_stream_join / streams / search_history / stream_history / stream_state). YouTube only — service_id=0 filter drops SoundCloud/PeerTube/etc. Imported on smoke: 26 subs, 1 playlist with 10 items, 50/11402 watch history (capped by HistoryStore MAX_WATCHES), 20/2242 searches (MAX_SEARCHES), 8 settings keys (SponsorBlock category toggles + default resolution). Resume positions counted (10918) but not yet persisted — Straw has no resume-store yet.
60 lines
2.8 KiB
Kotlin
60 lines
2.8 KiB
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
|
||
//
|
||
// vc=23 / 0.1.0-AI — minibar + downloads UI + green theme:
|
||
// * MediaController/MediaSessionService unification — single ExoPlayer
|
||
// owned by PlaybackService, every UI surface is a controller client.
|
||
// Inline player on VideoDetail, fullscreen Player, and the new
|
||
// minibar overlay all drive the same underlying player; nothing
|
||
// restarts on screen transitions.
|
||
// * Persistent minibar overlay at the bottom of every non-Player
|
||
// screen whenever something is loaded. Tap → expand to fullscreen.
|
||
// Drag-down on fullscreen → minimize to minibar. ⌄ overlay button
|
||
// also minimizes. × on the minibar stops + clears.
|
||
// * Downloads page wired into the drawer.
|
||
// * Theme: forest-green primary palette in place of M3 default
|
||
// lavender / NewPipe red — modern, clean, distinct.
|
||
//
|
||
// vc=22 / 0.1.0-AH — V-2 player polish + local playlists:
|
||
// * Inline → fullscreen now hands off seek position. Tap Play (or the
|
||
// ⛶ pill on the inline player) while the inline is mid-track and
|
||
// the fullscreen Player picks up at the same point. Same handoff
|
||
// pattern as fullscreen → background from vc=21.
|
||
// * Local playlists: drawer entry "Playlists", "Save" button on
|
||
// VideoDetail. SharedPreferences-backed, no queue/autoplay yet
|
||
// (tap an entry to open VideoDetail as normal).
|
||
//
|
||
// vc=21 / 0.1.0-AG — player hand-off polish:
|
||
// * 🎧 background-audio button now captures the current position and
|
||
// resumes the foreground service from there instead of restarting.
|
||
// * HOME / recents button while on the player now hands off seamlessly
|
||
// to background audio (same position-preserving path) instead of
|
||
// auto-entering Picture-in-Picture. Manual PiP via the ⊟ overlay
|
||
// button is unchanged.
|
||
//
|
||
// vc=20 / 0.1.0-AF — channel-videos fix on top of the rust pipeline
|
||
// cutover. vc=19 returned empty subscription feeds because
|
||
// strawcore-core's channel_info wasn't doing the second browse for the
|
||
// Videos tab AND wasn't parsing the new lockupViewModel shape.
|
||
//
|
||
// vc=19 / 0.1.0-AE — rust pipeline cutover. Extraction via
|
||
// strawcore-core (Sulkta-Coop/strawcore) via the UniFFI wrapper; no
|
||
// NewPipeExtractor in the runtime path.
|
||
const val STRAW_VERSION_CODE = 24
|
||
const val STRAW_VERSION_NAME = "0.1.0-AJ"
|
||
const val STRAW_APPLICATION_ID = "com.sulkta.straw"
|