v0.15.0
版本发布时间: 2022-12-24 21:14:36
jellyfin/jellyfin-androidtv最新发布版本:v0.18.0-beta.2(2024-11-06 01:02:20)
I'm excited to announce the third and final release of 2022 for the Android TV app. Read the blog post to learn about the changes in this release, or view the changelog below.
🌟 Highlights
- Add new experimental picture viewer #1829, by @nielsvanvelzen
- Add RTL Support #1842, by @hadicharara
- Add audio night mode (as preference) to level out/compress audio volume. #1852, by @robertduplock
- Add Subtitle Color Customization Features #1900, by @sparky3387
- Add Quality Selection to Playback Overlay #1924, by @zkhcohen
- Support previous button in video playlist #1941, by @kevgrig
- Add ImageProvider for retrieval of images in platform integration #2210, by @nielsvanvelzen
🏗️ Enhancements
- Add PlaybackForwardingActivity for bridging to new playback module #1092, by @nielsvanvelzen
- Forward audio play requests to playback module #1114, by @nielsvanvelzen
- Add monochrome layer to adaptive icon #2028, by @nielsvanvelzen
- Support external subtitles in external player #2061, by @sunrisela
- Update GitHub actions workflows #2094, by @nielsvanvelzen
- Replace Kapt with KSP #2127, by @nielsvanvelzen
- Rewrite navigation #2132, by @nielsvanvelzen
- Add LifecycleAwareResponse #2148, by @nielsvanvelzen
- Add PictureViewerFragment as destination #2149, by @nielsvanvelzen
- Remove unused resources #2162, by @nielsvanvelzen
- Show picture viewer controls by default #2169, by @nielsvanvelzen
- Automatically hide picture viewer actions after 4 seconds #2170, by @nielsvanvelzen
- Remove PhotoPlayerActivity #2171, by @nielsvanvelzen
- Show keyboard on right on text search fragment #2178, by @nielsvanvelzen
- Add Jetpack Compose support #2193, by @nielsvanvelzen
- Don't use LibraryDreamService.TRANSITION_DURATION in FadeViewSwitcherLayout #2211, by @nielsvanvelzen
- Use fade animation when navigating #2216, by @nielsvanvelzen
- Rewrite SplashFragment in Compose #2223, by @nielsvanvelzen
- Add placeholder drawable for ImageProvider #2229, by @nielsvanvelzen
- Add Video Codec Tag #2245, by @The-Randalorian
- Add dismissible notification for beta releases #2252, by @nielsvanvelzen
- Remember button focus on summary page #2297, by @teobaranga
- Remember button focus on details screen #2345, by @teobaranga
💥 Crash fixes
- Misc crash fixes #1979, by @nielsvanvelzen
- Fix crash when trying to start a picture slideshow #2000, by @nielsvanvelzen
- Fix crash when opening favorites and video queue #2020, by @nielsvanvelzen
- Fix app crashing when opening "other options" menu in FullDetailsActivity #2029, by @nielsvanvelzen
- Always set base item type on custom base item dto instances #2033, by @nielsvanvelzen
- Fix missing imports causing a build issue #2034, by @nielsvanvelzen
- Fix two crashes when trying to view a person #2071, by @nielsvanvelzen
- Fix crash when selecting or clicking items in grid view #2079, by @nielsvanvelzen
- Check lifecycle state when runnable executes #2155, by @nielsvanvelzen
- Fix PictureViewerFragment crashing when opening photo from latest row #2156, by @nielsvanvelzen
- Check Lifecycle.State.STARTED instead of Lifecycle.State.INITIALIZED #2157, by @nielsvanvelzen
- Fix app crash when playing trailers #2241, by @nielsvanvelzen
- Use ItemRowAdapterHelper.setItems for more row types #2265, by @nielsvanvelzen
- Fix opening user view with no collection type #2271, by @nielsvanvelzen
- Fix NPE in ExternalPlayerActivity when getMediaSource() returns null #2272, by @nielsvanvelzen
- Fix opening Live TV recordings #2284, by @nielsvanvelzen
- Fix opening Live TV series timers #2285, by @nielsvanvelzen
- Fix crash when opening Live TV series #2295, by @nielsvanvelzen
- Rewrite session validation code to not use callbacks #2310, by @nielsvanvelzen
- Live TV program end time & recording page fixes #2315, by @nielsvanvelzen
- Fix crash when stopping playback with back button when refresh rate switching is enabled #2316, by @nielsvanvelzen
- Remove direct path option from external player #2342, by @nielsvanvelzen
- Fix race condition in ItemListFragment causing favorite music screen to crash #2351, by @nielsvanvelzen
- Validate current user from UserRepository in validateAuthentication() #2354, by @nielsvanvelzen
🔧 Bugfixes
- fix CommunityRating display #1992, by @Andy2244
- Keep ordering from album view in picture viewer #1998, by @nielsvanvelzen
- Fix NPE when live tv program is null #2092, by @nielsvanvelzen
- Fix blurhash not showing in CardPresenter #2103, by @nielsvanvelzen
- Fix series queueing not working #2105, by @nielsvanvelzen
- Fix audio player screensaver starting too soon #2131, by @nielsvanvelzen
- Don't use activity.isFinishing() #2159, by @nielsvanvelzen
- Fix EnhancedBrowseFragment registering multiple listeners #2217, by @nielsvanvelzen
- Load fresh item data in AudioTrackQueue #2224, by @nielsvanvelzen
- Fix StartupActivity set destination is ignored #2228, by @nielsvanvelzen
- Apply subtitle delay to external subs #2239, by @DenizenB
- Always reset navigation in StartupActivity #2240, by @nielsvanvelzen
- Fix focus in home screen when navigating back #2243, by @nielsvanvelzen
- Avoid clearing all items on ItemRowAdapter load #2246, by @nielsvanvelzen
- Fix bad version.ref in dependency catalog #2249, by @nielsvanvelzen
- Fix missing checkboxes in player audio, subtitle and zoom menu #2254, by @nielsvanvelzen
- Delay home fragment refreshing #2259, by @nielsvanvelzen
- Fix EnhancedBrowseFragment duplicating items on resume #2266, by @nielsvanvelzen
- Fix TimeUtils.getDate not using UTC for offset #2280, by @nielsvanvelzen
- Fix notification card not focusable on older Android versions #2299, by @nielsvanvelzen
- Fix LegacyImageCardView scaling on non-1080p devices #2308, by @nielsvanvelzen
- Revert "Remember button focus on summary page" #2336, by @nielsvanvelzen
🔃 Refactoring
- Move useExternalPlayer and getPlaybackActivityClass functions to new PlaybackLauncher interface #1064, by @nielsvanvelzen
- Remove item delete functionality #1936, by @nielsvanvelzen
- Remove usages of BaseItemType's that don't exist in the server anymore #1947, by @nielsvanvelzen
- fix NextUp not working without clearing old video queue items #1951, by @mueslimak3r
- Use AsyncImageView in ClockUserView #1966, by @nielsvanvelzen
- Use AsyncImageView in GuideChannelHeader #1967, by @nielsvanvelzen
- Refactor BrowseGridFragment hierarchy into a single class #1970, by @nielsvanvelzen
- Use view binding directly in BrowseGridFragment #1973, by @nielsvanvelzen
- Replace GSON encoding usages with kotlinx.serialization #1975, by @nielsvanvelzen
- Migrate InfoLayoutHelper to use SDK models #1978, by @nielsvanvelzen
- Use constants from SDK #1983, by @nielsvanvelzen
- Always use SDK BaseItemPerson and PersonType #1984, by @nielsvanvelzen
- Remove unused ApiEventListener from legacy apiclient #1985, by @nielsvanvelzen
- Always use SDK SearchHint #1986, by @nielsvanvelzen
- Simplify reportPlaybackStopped code #1993, by @nielsvanvelzen
- Use SDK SortOrder enum in LibraryPreferences #1994, by @nielsvanvelzen
- Remove commented log statements #1995, by @nielsvanvelzen
- Use SDK in StartupActivity #1996, by @nielsvanvelzen
- Remove USE_DOWNLOAD_API from picture viewer #1999, by @nielsvanvelzen
- Migrate most of KeyProcessor to SDK types #2002, by @nielsvanvelzen
- Use SDK in HomeFragment #2013, by @nielsvanvelzen
- Replace most utils with SDK #2014, by @nielsvanvelzen
- Rewrite MediaCodecCapabilitiesTest in Kotlin #2015, by @nielsvanvelzen
- Migrate favorite and played toggles in KeyProcessor to SDK #2016, by @nielsvanvelzen
- Remove unused video queue code #2021, by @nielsvanvelzen
- Add empty playback modules for rewrite #2022, by @nielsvanvelzen
- Rewrite ChapterItemInfo to not use the apiclient #2025, by @nielsvanvelzen
- Replace BaseItemType usages with BaseItemKind (SDK) #2032, by @nielsvanvelzen
- Add SocketInstance to dependency injection #2035, by @nielsvanvelzen
- Rewrite DeviceUtils and Utils in Kotlin #2056, by @nielsvanvelzen
- Replace BlurHashDecoder with com.vanniktech.blurhash dependency #2069, by @nielsvanvelzen
- Rewrite data package in Kotlin #2070, by @nielsvanvelzen
- Rewrite all Java interfaces in Kotlin #2072, by @nielsvanvelzen
- Use appcompat theme as base #2073, by @nielsvanvelzen
- Merge StdRowsFragment into HomeFragment #2074, by @nielsvanvelzen
- Use MutableObjectAdapter<Row> for rows #2075, by @nielsvanvelzen
- Use MutableObjectAdapter<Object> as base for ItemRowAdapter #2076, by @nielsvanvelzen
- Rewrite CompositeListeners in Kotlin #2078, by @nielsvanvelzen
- Rewrite BaseRowItem in Kotlin #2080, by @nielsvanvelzen
- Migrate a lot of code to use BaseItemDto from SDK #2081, by @nielsvanvelzen
- Disable jetifier #2090, by @nielsvanvelzen
- Move package declaration to Gradle build files #2091, by @nielsvanvelzen
- Use AsyncImageView for Live TV program image #2097, by @nielsvanvelzen
- Don't use KoinJavaComponent in Kotlin files #2102, by @nielsvanvelzen
- Remove most deprecation annotations #2104, by @nielsvanvelzen
- Merge StdBrowseFragment and BrowseFolderFragment and rewrite in Kotlin #2107, by @nielsvanvelzen
- Always use repeatOnLifecycle instead of launchWhenX functions #2108, by @nielsvanvelzen
- Rewrite search UI in Kotlin #2110, by @nielsvanvelzen
- Refactor AudioNowPlayingActivity to fragment #2112, by @nielsvanvelzen
- Refactor FullDetailsActivity to fragment #2113, by @nielsvanvelzen
- Refactor ItemListActivity to fragment #2114, by @nielsvanvelzen
- Refactor LiveTvGuideActivity to fragment #2116, by @nielsvanvelzen
- Remove key listener from BaseActivity #2117, by @nielsvanvelzen
- Use fragment arguments instead of activity intent #2124, by @nielsvanvelzen
- Add CustomMessageRepository, remove BaseActivity #2128, by @nielsvanvelzen
- Remove GsonJsonSerializer #2145, by @nielsvanvelzen
- Rewrite MyDetailsOverviewRow in Kotlin #2150, by @nielsvanvelzen
- Rewrite presenters in Kotlin #2151, by @nielsvanvelzen
- Replace Response<> usages with LifecycleAwareResponse<> in fragments #2158, by @nielsvanvelzen
- Rewrite small playback related files in Kotlin #2164, by @nielsvanvelzen
- Rename xml layout starting with activity_ to fragment_ #2232, by @nielsvanvelzen
- Rewrite theme code to not use callbacks #2286, by @nielsvanvelzen
- Remove mActivity from EnhancedBrowseFragment #2301, by @nielsvanvelzen
💡 Everything else
- Add (empty) playback module and CODEOWNERS #1072, by @nielsvanvelzen
- Update playback rewrite build files #1626, by @nielsvanvelzen
- Forward music play requests to PlaybackLauncher #1937, by @nielsvanvelzen
- Bump Android compile and target SDK to 32 (Android 12L) #1957, by @nielsvanvelzen
- Bump Android compile & target version to 33 (Android 13) #2047, by @nielsvanvelzen
- Switch slf4j timber to a different library #2096, by @nielsvanvelzen
- Remove direct GSON dependency #2208, by @nielsvanvelzen
- Add playback rewrite queue system #2209, by @nielsvanvelzen
- Update Jellyfin SDK to 1.4.0-beta.1 #2234, by @nielsvanvelzen
- Fix acra-core dependency using wrong name #2320, by @nielsvanvelzen
- Split compose versions in catalog #2334, by @nielsvanvelzen
📈 Dependency updates
- Update androidx.fragment:fragment-ktx
- to v1.5.2 #1952, by @renovate[bot]
- to v1.5.3 #2082, by @renovate[bot]
- to v1.5.4 #2203, by @renovate[bot]
- to v1.5.5 #2324, by @renovate[bot]
- Update kotest
- to v5.4.2 #1953, by @renovate[bot]
- to v5.5.0 #2135, by @renovate[bot]
- to v5.5.1 #2160, by @renovate[bot]
- to v5.5.2 #2201, by @renovate[bot]
- to v5.5.3 #2215, by @renovate[bot]
- to v5.5.4 #2236, by @renovate[bot]
- Update androidx.appcompat:appcompat
- to v1.5.0 #1954, by @renovate[bot]
- to v1.5.1 #2043, by @renovate[bot]
- Update dependency org.videolan.android:libvlc-all to v3.5.1 #1956, by @renovate[bot]
- Update org.jetbrains.kotlinx:kotlinx-serialization-json
- to v1.4.0 #1987, by @renovate[bot]
- to v1.4.1 #2174, by @renovate[bot]
- Update github/codeql-action
- to f5d217b #1988, by @renovate[bot]
- to 7fee4ca #2005, by @renovate[bot]
- to c7f292e #2010, by @renovate[bot]
- to b398f52 #2023, by @renovate[bot]
- to 6a38b7d #2063, by @renovate[bot]
- to 904260d #2067, by @renovate[bot]
- to 86f3159 #2084, by @renovate[bot]
- to e0e5ded #2123, by @renovate[bot]
- to 8075783 #2146, by @renovate[bot]
- to cc7986c #2191, by @renovate[bot]
- to ec3cf9c #2212, by @renovate[bot]
- to 18fe527 #2235, by @renovate[bot]
- to c3b6fce #2242, by @renovate[bot]
- to 4238421 #2258, by @renovate[bot]
- to 678fc3a #2273, by @renovate[bot]
- Update io.mockk:mockk
- to v1.12.7 #2006, by @renovate[bot]
- to v1.12.8 #2064, by @renovate[bot]
- to v1.13.1 #2087, by @renovate[bot]
- to v1.13.2 #2118, by @renovate[bot]
- Update dependency com.android.tools:desugar_jdk_libs to v1.1.8 #2008, by @renovate[bot]
- Update dependency androidx.core:core-ktx to v1.9.0 #2044, by @renovate[bot]
- Update actions/setup-java
- to d854b6d #2046, by @renovate[bot]
- to a18c333 #2109, by @renovate[bot]
- to de1bb2b #2190, by @renovate[bot]
- Update koin
- to v3.2.1 #2050, by @renovate[bot]
- to v3.2.2 #2089, by @renovate[bot]
- to v3.2.3 #2192, by @renovate[bot]
- to v3.3.0 #2206, by @renovate[bot]
- Update actions/stale
- to 99b6c70 #2062, by @renovate[bot]
- to 5ebf00e #2147, by @renovate[bot]
- Update com.android.tools.build:gradle
- to v7.3.0 #2065, by @renovate[bot]
- to v7.3.1 #2168, by @renovate[bot]
- Update androidx.activity:activity-ktx
- to v1.6.0 #2083, by @renovate[bot]
- to v1.6.1 #2202, by @renovate[bot]
- Update actions/stale action to v6 #2085, by @renovate[bot]
- Update glide
- to v4.14.0 #2115, by @renovate[bot]
- to v4.14.1 #2126, by @renovate[bot]
- to v4.14.2 #2152, by @renovate[bot]
- Update Kotlin to v1.7.20 #2119, by @renovate[bot]
- Update gradle/gradle-build-action
- to fd32ae9 #2121, by @renovate[bot]
- to 3fbe033 #2199, by @renovate[bot]
- Update aboutlibraries
- to v10.5.0 #2122, by @renovate[bot]
- to v10.5.1 #2181, by @renovate[bot]
- Update actions/checkout
- to 93ea575 #2138, by @renovate[bot]
- to 2541b12 #2141, by @renovate[bot]
- Update dependency org.jellyfin.exoplayer:exoplayer-ffmpeg-extension to v2.18.1+2 #2142, by @renovate[bot]
- Update com.google.devtools.ksp
- to v1.7.20-1.0.7 #2172, by @renovate[bot]
- to v1.7.20-1.0.8 #2237, by @renovate[bot]
- Update actions/upload-artifact digest to 83fd05a #2195, by @renovate[bot]
- Update io.insert-koin:koin-androidx-compose
- to v3.2.2 #2198, by @renovate[bot]
- to v3.3.0 #2204, by @renovate[bot]
- Update gradle/wrapper-validation-action digest to 55e685c #2205, by @renovate[bot]
- Update alexellis/upload-assets action to v0.4.0 #2222, by @renovate[bot]
- Update eps1lon/actions-label-merge-conflict action to v2.1.0 #2231, by @renovate[bot]
- Update androidx-compose to v1.3.1 #2250, by @renovate[bot]
- Update dependency com.squareup.leakcanary:leakcanary-android to v2.10 #2251, by @renovate[bot]
- Update org.jellyfin.sdk:jellyfin-core
- to v1.4.0-beta.2 #2276, by @renovate[bot]
- to v1.4.0 #2317, by @renovate[bot]
- Update dependency androidx.compose.ui:ui-tooling to v1.3.2 #2335, by @renovate[bot]
- Update exoplayer #2287, by @renovate[bot]
Contributors
- @nielsvanvelzen
- @renovate[bot]
- @teobaranga
- @hadicharara
- @robertduplock
- @sparky3387
- @zkhcohen
- @kevgrig
- @mueslimak3r
- @Andy2244
- @sunrisela
- @DenizenB
- @The-Randalorian
1、 jellyfin-androidtv-v0.15.0-debug.apk 104.44MB
2、 jellyfin-androidtv-v0.15.0-release-unsigned.apk 94.59MB
3、 jellyfin-androidtv-v0.15.0-release.aab 93.43MB
4、 jellyfin-androidtv-v0.15.0-release.apk 94.69MB
5、 version.txt 15B