Compare commits

...

3600 Commits

Author SHA1 Message Date
cameron
3da856ec23 fix seekbar not updating when using ff/rw buttons
(cherry picked from commit 4a4efb2467)
2022-11-01 13:11:18 +01:00
Niels van Velzen
8148850206 Fix setExoPlayerTrack exception when allStreams is empty
(cherry picked from commit a73e04c216)
2022-11-01 13:11:08 +01:00
renovate[bot]
eb676a4ff5 Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.7
(cherry picked from commit 7e386babde)
2022-11-01 13:10:33 +01:00
Niels van Velzen
7a478a77a4 Use MediaStream from SDK in MediaInfoCardView and InfoCardPresenter
(cherry picked from commit acc4533868)
2022-10-04 21:38:39 +02:00
Niels van Velzen
9723da673e Fix crash when media info contains a data stream 2022-10-04 20:25:32 +02:00
renovate[bot]
72e45a7b47 Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.6
(cherry picked from commit 7fc9819b63)
2022-10-04 20:25:08 +02:00
Niels van Velzen
4e82f10f18 Use random device id when initializing QuickConnect
(cherry picked from commit 02b9fb60bb)
2022-09-06 19:15:07 +02:00
Niels van Velzen
c1b103e385 Set defaultFocusHighlightEnabled to false in TextUnderButton
(cherry picked from commit 8713cd5317)
2022-09-06 19:14:56 +02:00
Niels van Velzen
0fc8daf45e Set defaultFocusHighlightEnabled to false in DefaultCardView
Fixes an incompatibility with Android 13

(cherry picked from commit 352f472769)
2022-09-06 19:14:55 +02:00
renovate[bot]
bd98065766 Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.5
(cherry picked from commit 1cafe6c539)
2022-08-20 10:31:03 +02:00
Niels van Velzen
4d68e3d31e Properly handle specials in item naming
(cherry picked from commit 14e7391bc2)
2022-08-20 10:30:53 +02:00
Niels van Velzen
9c33bb34ff Don't open library settings for unsupported types
Only collection types that use the grid should open the DisplayPreferencesScreen. Added a special case to open the Live TV (guide) settings as a bonus.

(cherry picked from commit 5bb1ee7819)
2022-08-20 10:30:41 +02:00
Niels van Velzen
9f7891f129 Fix ActivityLifecycleCallback calls on Android 9 and lower
(cherry picked from commit cd33bea725)
2022-08-20 10:30:32 +02:00
Niels van Velzen
11e5b9526d Migrate DefaultLifecycleObserver setup to androidx.startup
(cherry picked from commit a404b99ab1)
2022-08-20 10:30:13 +02:00
Niels van Velzen
a0fb27491c Allow app installation on external storage
(cherry picked from commit e592017602)
2022-08-20 10:30:04 +02:00
Niels van Velzen
b1babfe477 Fix alignment of ClockUserView in live TV guide
(cherry picked from commit 6960f808f2)
2022-08-20 10:29:54 +02:00
Niels van Velzen
ed3b92df08 Catch decoding exception in AuthenticationStore
Fixes corrupt JSON causing the app to crash

(cherry picked from commit 0074062633)
2022-08-20 10:29:46 +02:00
kevgrig
c72b817364 Handle uninitialized current media position (#1943)
* Handle uninitialized current media position

Signed-off-by: Kevin G <kevin@myplaceonline.com>

* Enhance uninitialized current media position check

Signed-off-by: Kevin G <kevin@myplaceonline.com>

* Enhance uninitialized current media position check

Signed-off-by: Kevin G <kevin@myplaceonline.com>
2022-08-09 10:23:23 +02:00
Andy Walsh
c4dd60527d fix BaseRowItem.refresh() crash 2022-08-09 08:31:09 +02:00
Niels van Velzen
5a30dfe04e Disable Detekt InvalidPackageDeclaration rule
It doesn't work properly because we don't have an org/jellyfin/androidtv package in the playback and preference modules
2022-08-08 21:40:08 +02:00
Niels van Velzen
dfa37c831a Forward music play requests to PlaybackLauncher
This allows the playback rewrite to play audio
2022-08-08 21:40:00 +02:00
Kevin G
f85cef52c7 Fix 'Play from Here' in video playlists
Fixes #1712

Signed-off-by: Kevin G <kevin@myplaceonline.com>
2022-08-08 07:54:43 +02:00
Alan Azar
ccb97ac195 Translated using Weblate (Malayalam)
Currently translated at 69.0% (342 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2022-08-06 15:22:29 -04:00
Alan Azar
9fff04e157 Translated using Weblate (Turkish)
Currently translated at 78.9% (391 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2022-08-06 15:22:29 -04:00
Alan Azar
94e6b416d6 Translated using Weblate (Croatian)
Currently translated at 77.3% (383 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hr/
2022-08-06 15:22:29 -04:00
Alan Azar
393ad954d7 Translated using Weblate (Spanish (Argentina))
Currently translated at 91.5% (453 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2022-08-06 15:22:29 -04:00
Alan Azar
3a4b5417f7 Translated using Weblate (Serbian)
Currently translated at 81.2% (402 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sr/
2022-08-06 15:22:29 -04:00
Alan Azar
393c42e8a1 Translated using Weblate (Japanese)
Currently translated at 66.4% (329 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ja/
2022-08-06 15:22:29 -04:00
Alan Azar
04a786fc62 Translated using Weblate (Norwegian Bokmål)
Currently translated at 71.3% (353 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nb_NO/
2022-08-06 15:22:28 -04:00
Alan Azar
69d0e6be04 Translated using Weblate (Greek)
Currently translated at 81.0% (401 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2022-08-06 15:22:28 -04:00
Alan Azar
f5f33b8495 Translated using Weblate (Danish)
Currently translated at 96.1% (476 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/da/
2022-08-06 15:22:28 -04:00
gradle-update-robot
0b5079573e Update Gradle Wrapper from 7.5 to 7.5.1.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2022-08-06 09:37:29 +02:00
renovate[bot]
cdf74b87bc Update aboutlibraries to v10.4.0 2022-08-05 18:52:19 +02:00
dyxen
f0981abd6d Translated using Weblate (Slovenian)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/sl/
2022-08-05 08:22:31 -04:00
dyxen
8e1f1d75b5 Translated using Weblate (Slovenian)
Currently translated at 98.5% (488 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sl/
2022-08-05 08:22:31 -04:00
Niels van Velzen
d61829e11a Remove generation timestamp from AboutLibraries data file 2022-08-05 08:17:03 +02:00
Moritz
4d35efc5a4 Translated using Weblate (German)
Currently translated at 97.9% (485 of 495 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-08-04 10:22:28 -04:00
renovate[bot]
8f273ae7df Update github/codeql-action digest to 2ca79b6 2022-08-03 20:54:17 +02:00
renovate[bot]
3077d66032 Update dependency com.android.tools.build:gradle to v7.2.2 2022-08-03 20:47:40 +02:00
Kevin G
c1817601f7 Fix 'Shuffle All' for video playlist
Signed-off-by: Kevin G <kevin@myplaceonline.com>
2022-08-02 15:57:23 +02:00
renovate[bot]
a1999180d2 Update appleboy/ssh-action action to v0.1.5 2022-08-02 15:57:07 +02:00
renovate[bot]
8019a9ed8b Update github/codeql-action digest to 0c670bb 2022-08-02 15:56:55 +02:00
renovate[bot]
5ff081eb17 Update dependency ch.acra:acra-toast to v5.9.6 2022-08-02 15:56:42 +02:00
renovate[bot]
87895473d9 Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.4 2022-08-02 15:32:15 +02:00
Weblate
8c32cee4ee Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-31 14:09:13 -04:00
Niels van Velzen
0c4a09bcca Throw error when EditServerScreen and EditUserScreen open with invalid arguments 2022-07-31 20:09:09 +02:00
Weblate
9cb564cc8e Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-31 07:21:49 -04:00
Niels van Velzen
7865038710 Remove seasonal greetings & libvlc subtitle delay preferences
Both were unused
2022-07-31 13:21:45 +02:00
renovate[bot]
777657709d Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.3 2022-07-30 10:34:59 +02:00
renovate[bot]
d947d8b7b9 Update kotest to v5.4.1 2022-07-28 14:53:20 +02:00
renovate[bot]
2e15684b16 Update dependency androidx.fragment:fragment-ktx to v1.5.1 2022-07-28 08:01:26 +02:00
renovate[bot]
8595cf33a0 Update actions/stale digest to 9c1b1c6 2022-07-28 08:00:59 +02:00
renovate[bot]
3e45a433f8 Update dependency androidx.activity:activity-ktx to v1.5.1 2022-07-27 21:48:17 +02:00
renovate[bot]
66dab66be2 Update androidx-lifecycle to v2.5.1 2022-07-27 21:48:10 +02:00
renovate[bot]
3245ad4f43 Update dependency io.mockk:mockk to v1.12.5 2022-07-27 18:57:45 +02:00
Matias Barros
16e63ff428 Translated using Weblate (Spanish (Argentina))
Currently translated at 75.0% (3 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/es_AR/
2022-07-27 02:22:24 -04:00
millallo
b6f2ad279f Translated using Weblate (Italian)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-07-26 16:53:31 -04:00
Bill Thornton
69cefe7e30 Remove whitespace prepended to the no gude data titles 2022-07-26 08:36:45 +02:00
Bill Thornton
25cb3d0db2 Remove live tv guide banner images 2022-07-26 08:15:28 +02:00
DJSweder
6a4dc857e2 Translated using Weblate (Czech)
Currently translated at 99.1% (494 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-07-25 20:11:23 -04:00
Bill Thornton
f9c3f2e8ae Fix channel load more button size in popup guide 2022-07-25 22:02:25 +02:00
Stéphane Dupont
fe7d3d58e3 Translated using Weblate (French)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/fr/
2022-07-25 10:47:43 -04:00
Cody Robibero
9f7ea0c156 Update strings.xml 2022-07-25 16:47:40 +02:00
renovate[bot]
21a3b2dbc7 Update kotest to v5.4.0 2022-07-25 09:52:08 +02:00
Jaroslav Lichtblau
cfcc8f3ad2 Translated using Weblate (Czech)
Currently translated at 96.9% (483 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-07-24 19:22:24 -04:00
Kenneth SB
cf05fe9322 Translated using Weblate (Danish)
Currently translated at 96.3% (480 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/da/
2022-07-24 14:22:25 -04:00
Kenneth SB
0ca18ba0e9 Translated using Weblate (Danish)
Currently translated at 76.7% (382 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/da/
2022-07-24 11:22:24 -04:00
HanaO00
5a01749d90 Translated using Weblate (French)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-07-24 00:22:23 -04:00
WWWesten
9a34b59da2 Translated using Weblate (Esperanto)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-07-23 17:22:24 -04:00
WWWesten
19b65d6cc8 Translated using Weblate (Russian)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-07-23 17:22:23 -04:00
WWWesten
ea88a5c523 Translated using Weblate (Kazakh)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-07-23 17:22:23 -04:00
Niels van Velzen
cb767a2db2 Set minimum server version in SDK from ServerRepository constant 2022-07-23 14:13:32 +02:00
Niels van Velzen
966ef05291 Use clientLogApi.logFileUrl to generate crash report URL 2022-07-23 14:13:21 +02:00
renovate[bot]
23dd0c4c6c Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.2 2022-07-23 14:03:21 +02:00
Bill Thornton
1151de2388 Update load more channels button styling 2022-07-23 09:31:07 +02:00
Cameron
1f2b757d79 handle exoplayer track selection indexes starting at 1 (#1878)
* handle exoplayer track selection indexes  starting at 1

* fix capitalization
2022-07-23 09:29:40 +02:00
Bill Thornton
4609cd4e0f Fix live tv guide sorting (#1861)
* Fix live tv guide sorting

* Remove commented logging
2022-07-23 09:28:37 +02:00
Bill Thornton
df7ecd55be Fix channel logo display (#1870)
* Fix channel logo display

* Update tv tile name and size
2022-07-23 09:27:56 +02:00
renovate[bot]
b640afff2e Update dependency org.videolan.android:libvlc-all to v3.4.9 2022-07-22 19:47:57 +02:00
cameron
c3d75c7e30 fix series logo scaling in player 2022-07-22 19:28:33 +02:00
Bill Thornton
4aba7570aa Fix live tv guide load more button height 2022-07-22 19:19:39 +02:00
Andreas
dfc4d39275 Emit ServerUnavailableState on TimeoutException 2022-07-22 16:33:34 +02:00
renovate[bot]
4f3ca77194 Update exoplayer 2022-07-22 15:40:30 +02:00
HanaO00
ec370fe9be Translated using Weblate (French)
Currently translated at 99.5% (496 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-07-21 01:22:22 -04:00
Calum Smith
9e72fc05d8 Translated using Weblate (French)
Currently translated at 98.9% (493 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-07-20 21:22:22 -04:00
Bill Thornton
94c41edcb5 Fix live tv guide option button styles 2022-07-20 09:17:56 +02:00
Bill Thornton
fb8cf751a1 Add support for the Fire Stick 4k Max 2022-07-20 09:14:53 +02:00
Bill Thornton
c2ec0cd767 Update button order on item details screen 2022-07-20 09:12:13 +02:00
cameron
211fe8e892 set max audio channels to 8 for exoplayer 2022-07-20 09:10:51 +02:00
Bill Thornton
d3e266a01a Fix inconsistent red color for recordings 2022-07-20 09:09:55 +02:00
Niels van Velzen
45658ffc6e Remove stateListAnimator from button styles
Amazon changes the platform Button widget to scale when pressed, this doesn't work nice with some of our custom button styles and is not consistent with other platforms. This change removes the animation.
2022-07-20 08:24:18 +02:00
Bill Thornton
83b24dc215 Fix null text in info row 2022-07-20 08:24:01 +02:00
Prabjot Singh
0ad3e2ddad Translated using Weblate (Punjabi)
Currently translated at 1.0% (5 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pa/
2022-07-19 21:22:22 -04:00
HanaO00
740d47c14d Translated using Weblate (French)
Currently translated at 96.9% (483 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-07-19 21:22:22 -04:00
Bill Thornton
0a8e03fc4e Fix live tv guide options not persisting 2022-07-19 21:01:32 +02:00
Csaba
0752095292 Translated using Weblate (Hungarian)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-07-18 08:22:22 -04:00
millallo
007afef059 Translated using Weblate (Italian)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-07-18 08:22:22 -04:00
HanaO00
848060a8a8 Translated using Weblate (French)
Currently translated at 96.9% (483 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-07-17 20:22:21 -04:00
nextlooper42
e98ec0c3bc Translated using Weblate (Slovak)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-07-17 13:22:21 -04:00
Niels van Velzen
ba25b9b5c8 Update issue template for 0.14 2022-07-17 18:59:00 +02:00
renovate[bot]
e0fd381b5b Update dependency io.gitlab.arturbosch.detekt to v1.21.0 2022-07-17 15:11:54 +02:00
Oskari Lavinto
5a5717ec2a Translated using Weblate (Finnish)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/fi/
2022-07-17 04:22:21 -04:00
Oskari Lavinto
f9033b11d1 Translated using Weblate (Finnish)
Currently translated at 99.1% (494 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-07-17 04:22:21 -04:00
Niels van Velzen
91cc60b086 Always use Quick Connect 2022-07-17 09:24:08 +02:00
wolong gl
859dc0f0a2 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-07-17 00:22:21 -04:00
Niels van Velzen
a97c54735c Fix app crash when switching users while playing music 2022-07-16 12:42:19 +02:00
Niels van Velzen
e9c536cbb1 Show notification on server screen when server setup is incomplete (#1834)
* Show notification on server screen when server setup is incomplete

* Adjust server setup notification message
2022-07-16 11:05:24 +02:00
EVOTk
6ba6303199 Translated using Weblate (French)
Currently translated at 97.1% (483 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-07-15 16:22:21 -04:00
WWWesten
a64b1dd56c Translated using Weblate (Esperanto)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-07-15 04:22:20 -04:00
gradle-update-robot
7fbd6e7a9b Update Gradle Wrapper from 7.4.2 to 7.5.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2022-07-15 09:27:47 +02:00
Pol
0531575dc6 Translated using Weblate (Catalan)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ca/
2022-07-14 11:22:21 -04:00
Alfonso Scarpino
4bb89a7076 Translated using Weblate (Italian)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-07-14 11:22:20 -04:00
WWWesten
897b6460f9 Translated using Weblate (Russian)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-07-14 03:22:20 -04:00
WWWesten
63f404be3e Translated using Weblate (Kazakh)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-07-14 03:22:20 -04:00
Niels van Velzen
2977452d0a Avoid multiple discovery processes running at the same time
When switching between the user and server selection screens the process continuously restarted. This causes a lot of logs and network activity. Prevent this by running only one process at a time.
2022-07-14 08:56:04 +02:00
colson
f03172336a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-07-14 00:22:20 -04:00
renovate[bot]
569bb51627 Update Kotlin to v1.6.4 2022-07-13 19:33:53 +02:00
renovate[bot]
7cf8d69d59 Update github/codeql-action digest to 3e7e3b3 2022-07-13 19:33:46 +02:00
chakhee
e7fabc3b5c Translated using Weblate (Chinese (Simplified))
Currently translated at 98.7% (491 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-07-13 00:22:20 -04:00
hoanghuy309
ae38598c40 Translated using Weblate (Vietnamese)
Currently translated at 98.1% (488 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-07-12 15:22:20 -04:00
Weblate
384120caac Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-12 09:56:00 -04:00
Niels van Velzen
c2a2a01b37 Fix crash when not restoring a session 2022-07-12 15:55:57 +02:00
Niels van Velzen
c909c57146 Fix crash when reporting a crash 2022-07-12 15:55:45 +02:00
Weblate
a8c75349d7 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-12 08:07:48 -04:00
renovate[bot]
ba5ada02f9 Update actions/setup-java digest to 2c7a487 2022-07-12 14:07:44 +02:00
Csaba
6eca40a77c Translated using Weblate (Hungarian)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-07-12 07:22:20 -04:00
Oskari Lavinto
bc64fc046d Translated using Weblate (Finnish)
Currently translated at 99.1% (493 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-07-12 03:22:19 -04:00
Weblate
350a50e897 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-11 16:21:29 -04:00
Weblate
18aefed6e1 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-11 16:21:28 -04:00
millallo
74fcb2761e Translated using Weblate (Italian)
Currently translated at 99.4% (498 of 501 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-07-11 16:21:27 -04:00
Niels van Velzen
f93d4028dc Ignore server discovery in ServerFragment 2022-07-11 22:21:24 +02:00
Niels van Velzen
744b28de7c Rewrite crash reporting 2022-07-11 22:20:50 +02:00
Niels van Velzen
95f20cdcf9 Flatten TrackSelectionOverrides class into TrackSelectionParameters 2022-07-11 18:00:59 +02:00
renovate[bot]
5c84e75112 Update exoplayer 2022-07-11 18:00:59 +02:00
Niels van Velzen
d53af5330d Fix serverRepository.getServer not working when server info is not refreshing
This issue only happens when using the function within a 10 minute window and causes login to fail (without any hints as to why)
2022-07-11 17:52:34 +02:00
Csaba
70158ebaaa Translated using Weblate (Hungarian)
Currently translated at 100.0% (501 of 501 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-07-11 03:22:19 -04:00
WWWesten
95a3ed70e7 Translated using Weblate (Esperanto)
Currently translated at 100.0% (501 of 501 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-07-10 18:22:19 -04:00
lyaschuchenko
37dfe2a858 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (501 of 501 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2022-07-10 18:22:19 -04:00
WWWesten
25d1a6c7fd Translated using Weblate (Russian)
Currently translated at 100.0% (501 of 501 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-07-10 18:22:19 -04:00
WWWesten
d94bfab1f4 Translated using Weblate (Kazakh)
Currently translated at 100.0% (501 of 501 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-07-10 18:22:19 -04:00
nextlooper42
e9bfe69db6 Translated using Weblate (Slovak)
Currently translated at 100.0% (501 of 501 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-07-10 08:22:19 -04:00
Niels van Velzen
30094e0d83 Don't try to load splashscreen when disabled in branding options 2022-07-10 14:06:14 +02:00
Niels van Velzen
1948858cc1 Show notification when server version is not supported 2022-07-10 09:54:58 +02:00
Niels van Velzen
3e1ae8eb4b Validate server version on session restore 2022-07-10 09:54:58 +02:00
Niels van Velzen
97fe47a050 Add external trailer support 2022-07-09 16:56:34 +02:00
Weblate
30a1cb6acf Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-09 09:38:15 -04:00
Andy Walsh
bb98a642d9 adjust TV detection logic (#1822)
* adjust TV detection logic

* Update app/src/main/java/org/jellyfin/androidtv/data/repository/NotificationsRepository.kt

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2022-07-09 15:38:12 +02:00
yolylight
29cbe6ac2a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/zh_Hans/
2022-07-09 04:22:19 -04:00
Oskari Lavinto
913e2ffb38 Translated using Weblate (Finnish)
Currently translated at 99.2% (496 of 500 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-07-09 04:22:19 -04:00
yolylight
50906a1988 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (500 of 500 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-07-09 04:22:18 -04:00
Weblate
a46c7e2986 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-07-08 09:25:25 -04:00
Andy Walsh
cec666a7e2 rework, optimize GridFragment
add auto image size logic
add/change Ui size names
remove superfluous "Default" naming
fix grid layout fragment to following screen layout/size
fix card refresh not working after resume
fix/optimize chunk size logic
fix card padding/spacing
remove vertical grid "hacks"
remove unnecessary grid reload's
reduce status-line update timer 400->250ms to feel more responsive
2022-07-08 15:25:21 +02:00
Andy Walsh
1fa68ab51e fix, don't send invalid sub/audio index
fix DlnaProfileType
2022-07-08 15:15:29 +02:00
v41p3r
da8b93d1ce Translated using Weblate (Bulgarian)
Currently translated at 30.3% (151 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/bg/
2022-07-08 04:31:44 -04:00
dspencer001
8d7fbcc79d Add showing additional parts (#1775)
* Add showing additional parts

* Rewrite additional parts query in Kotlin

* Use a data class instead of manually defining getter

* Fix error message for additional parts
2022-07-08 10:31:40 +02:00
renovate[bot]
88fac33856 Update Kotlin to v1.7.10 2022-07-08 10:07:59 +02:00
WWWesten
12a9997a4a Translated using Weblate (Esperanto)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-07-07 12:22:18 -04:00
WWWesten
162c5803be Translated using Weblate (Russian)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-07-07 12:22:18 -04:00
WWWesten
38576bf832 Translated using Weblate (Kazakh)
Currently translated at 100.0% (498 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-07-07 12:22:18 -04:00
Niels van Velzen
ea43730ac6 Fix BrandingOptions for servers using JF < 10.8.1 2022-07-07 17:48:04 +02:00
Andy Walsh
2ff2a19916 Fix server Startup discovery
loadDiscoveryServers() was never called
fix binding.discoveryServers in wrong scope
2022-07-07 16:52:10 +02:00
Andy Walsh
90d0e7ed13 add AVC "high 10" profile test
enable AllowVideoStreamCopy, setAllowAudioStream
2022-07-07 09:46:43 +02:00
Fedir Smilianets
2f9361aedc Translated using Weblate (Ukrainian)
Currently translated at 99.3% (495 of 498 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2022-07-06 15:22:17 -04:00
Niels van Velzen
e7708724c0 Add UI mode notification 2022-07-06 10:30:12 +02:00
Niels van Velzen
d47d7b2fdd Add notifications to show app announcement stuff 2022-07-06 10:30:12 +02:00
Andy Walsh
73b92cc10f fix playNext start position for ExternaPlayerActivity
* fix playNext start position for ExternaPlayerActivity
* fix some missing null checks and finish() calls
2022-07-05 23:03:13 +02:00
Andy Walsh
54934482ba Fix wrong counter/pos onResponse via loadMoreItemsIfNeeded
* fix wrong counter/pos onResponse via loadMoreItemsIfNeeded
2022-07-05 22:51:27 +02:00
renovate[bot]
d961fc8a13 Update aboutlibraries to v10.3.1 2022-07-05 21:57:31 +02:00
renovate[bot]
113cf50602 Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.1 2022-07-05 21:51:05 +02:00
renovate[bot]
1409ba30cc Update acra to v5.9.5 2022-07-05 21:49:02 +02:00
renovate[bot]
452ad33873 Update androidx-lifecycle to v2.5.0 2022-07-05 21:43:06 +02:00
renovate[bot]
c4bd1c99cd Update dependency androidx.activity:activity-ktx to v1.5.0 2022-07-05 21:42:58 +02:00
renovate[bot]
b16a7fbf5b Update dependency androidx.fragment:fragment-ktx to v1.5.0 2022-07-05 21:42:49 +02:00
renovate[bot]
57db91107b Update actions/setup-java digest to 16cca54 2022-07-05 21:41:52 +02:00
renovate[bot]
c135dd16cf Update kotest to v5.3.2 2022-07-05 21:41:45 +02:00
renovate[bot]
921da0c472 Update github/codeql-action digest to 3f62b75 2022-07-05 21:41:36 +02:00
renovate[bot]
e9ee0f4921 Update Kotlin to v1.6.3 2022-07-05 21:40:49 +02:00
Rithesh Dsouza
8c7cb94a49 Translated using Weblate (Kannada)
Currently translated at 2.6% (13 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kn/
2022-07-05 06:22:17 -04:00
Fedir Smilianets
f3cd49821e Translated using Weblate (Ukrainian)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/uk/
2022-07-03 13:22:20 -04:00
Fedir Smilianets
3364c64599 Translated using Weblate (Ukrainian)
Currently translated at 99.5% (495 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2022-07-03 13:22:19 -04:00
D221
6ee9a584cc Translated using Weblate (Lithuanian)
Currently translated at 17.5% (87 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/lt/
2022-06-29 20:22:15 -04:00
Martim Pinheiro
87e79a1537 Translated using Weblate (Portuguese (Portugal))
Currently translated at 95.3% (474 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_PT/
2022-06-21 11:22:12 -04:00
Mattia
d8731ef40e Translated using Weblate (Italian)
Currently translated at 75.0% (3 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/it/
2022-06-20 19:22:11 -04:00
nextlooper42
4770152114 Translated using Weblate (Slovak)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-06-20 11:22:11 -04:00
wolong gl
8fe865c3fb Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-06-19 14:22:11 -04:00
Cameron
affdb6dd75 fix subtitle background alignment, center subtitle text (#1786)
* fix subtitle background alignment, center subtitle text

* add suppress RtlHardcoded annotation
2022-06-19 06:46:29 +02:00
hoanghuy309
33f67a6f9f Translated using Weblate (Vietnamese)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/vi/
2022-06-19 00:22:11 -04:00
hoanghuy309
03734b33b4 Translated using Weblate (Vietnamese)
Currently translated at 98.3% (489 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-06-19 00:22:11 -04:00
Andy Walsh
0e3a07c256 fix ItemRowAdapter.retrieveNext() Query StartIndex
*  make sure we reset the StartIndex, since the Query object is reused
2022-06-18 16:19:42 +02:00
Renovate Bot
e27c92e0df Update gradle-update/update-gradle-wrapper-action digest to 981c551 2022-06-14 16:38:39 +02:00
Renovate Bot
9d56f8d944 Update Kotlin to v1.7.0 2022-06-14 08:48:30 +02:00
Renovate Bot
5ac55e1caf Update kotest to v5.3.1 2022-06-14 08:39:44 +02:00
Théo Vanden Driessche
9313e3d48b Translated using Weblate (French)
Currently translated at 99.7% (496 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-06-11 19:22:08 -04:00
Aragon
5585bf594c Translated using Weblate (Hebrew)
Currently translated at 99.3% (494 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/he/
2022-06-11 10:22:09 -04:00
Oskari Lavinto
b9b3ee4cb4 Translated using Weblate (Finnish)
Currently translated at 99.1% (493 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-06-11 10:22:08 -04:00
Renovate Bot
d77ff4eda4 Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.0 2022-06-11 13:11:32 +02:00
Fallenbagel
36c8cdf56a Fix EAC3 transcoding on 10.8.0-beta3 2022-06-11 08:48:40 +02:00
Weevild
f150ce3e00 Translated using Weblate (Swedish)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2022-06-10 10:22:08 -04:00
Moritz
155941d8d3 Translated using Weblate (German)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-06-10 10:22:08 -04:00
WWWesten
573eb12970 Translated using Weblate (Esperanto)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-06-10 05:22:08 -04:00
Csaba
8d1f1ea70f Translated using Weblate (Hungarian)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-06-10 05:22:08 -04:00
WWWesten
0724441b79 Translated using Weblate (Russian)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-06-10 05:22:08 -04:00
WWWesten
dccb6a6b99 Translated using Weblate (Kazakh)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-06-10 05:22:08 -04:00
millallo
621be3cbff Translated using Weblate (Italian)
Currently translated at 100.0% (497 of 497 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-06-10 05:22:08 -04:00
Niels van Velzen
dac0542882 Change lbl_filters 2022-06-09 19:14:48 +02:00
Niels van Velzen
a82087d122 Remove some unused code from LiveTvGuideActivity 2022-06-09 19:14:48 +02:00
Niels van Velzen
7d9b25fba9 Replace Live TV guide options popup with preference screen 2022-06-09 19:14:48 +02:00
Niels van Velzen
8cd395b772 Replace Live TV guide filter popup with preference screen 2022-06-09 19:14:48 +02:00
WWWesten
a8bc1a7829 Translated using Weblate (Russian)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-06-09 06:22:07 -04:00
Niels van Velzen
0ede654513 Merge ConnectHelpAlertFragment and AlertFragment 2022-06-08 09:14:47 +02:00
Niels van Velzen
134acf4897 Fix flickering of splash screen when using auto login 2022-06-08 09:14:37 +02:00
G. Ribeiro
8dbb992cf3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/pt_BR/
2022-06-07 15:22:07 -04:00
G. Ribeiro
9252a86fa4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2022-06-07 15:22:07 -04:00
Niels van Velzen
4692483251 Fix AuthPreferencesScreen sometimes not showing any servers/users 2022-06-07 16:21:29 +02:00
Niels van Velzen
a6c9fd0ac6 Hide channel number from ChannelCardView when null 2022-06-07 16:21:13 +02:00
nextlooper42
9ca2d5181a Translated using Weblate (Slovak)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-06-06 15:22:06 -04:00
Niels van Velzen
732c978c10 Restyle TextSearchFragment 2022-06-05 11:08:18 +02:00
Niels van Velzen
6d15eb1ba1 Add textColorHint to Input.Default 2022-06-05 11:08:18 +02:00
Niels van Velzen
c64d43090c Check for RECORD_AUDIO permission in SearchActivity 2022-06-05 11:08:18 +02:00
Niels van Velzen
8f1cee7d14 Rewrite SearchProvider 2022-06-05 09:51:52 +02:00
Niels van Velzen
3f63473f44 Rename .java to .kt 2022-06-05 09:51:52 +02:00
Niels van Velzen
4fd1c7fe66 Use popup menu styling for popup windows 2022-06-04 13:10:19 +02:00
Oskari Lavinto
2487d4eb65 Translated using Weblate (Finnish)
Currently translated at 98.3% (488 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-06-03 15:22:05 -04:00
hogenf
bd155406b1 Translated using Weblate (Swedish)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/sv/
2022-06-03 06:22:06 -04:00
hogenf
16177ea6ec Translated using Weblate (Swedish)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2022-06-03 06:22:06 -04:00
Garrett B
fb0e34b785 Fix Typo 2022-06-03 08:47:43 +02:00
Moritz
d47b1b48e9 Translated using Weblate (German)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-06-02 10:22:05 -04:00
Renovate Bot
2214cfd0fa Update dependency androidx.core:core-ktx to v1.8.0 2022-06-01 21:59:14 +02:00
Renovate Bot
b7029b6a0d Update github/codeql-action digest to 27ea8f8 2022-06-01 21:59:07 +02:00
Renovate Bot
8d5766d11c Update dependency androidx.appcompat:appcompat to v1.4.2 2022-06-01 21:59:01 +02:00
B v H
be73c8dc1f Translated using Weblate (Dutch)
Currently translated at 99.5% (494 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2022-05-31 16:22:05 -04:00
Csaba
872e77dccd Translated using Weblate (Hungarian)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-05-31 03:22:04 -04:00
Niels van Velzen
5c6b6f1b0c Use AsyncImageView in ItemListActivity 2022-05-30 21:31:52 +02:00
Niels van Velzen
1113277962 Use AsyncImageView in NowPlayingView 2022-05-30 21:31:52 +02:00
Niels van Velzen
1daf617f02 Use AsyncImageView in CustomPlaybackOverlayFragment logo 2022-05-30 21:31:52 +02:00
Niels van Velzen
ff63fbf90a Remove unused imageUrl from GridButton 2022-05-30 21:31:52 +02:00
Niels van Velzen
f84e8d6e28 Use AsyncImageView in LegacyImageCardView 2022-05-30 21:31:52 +02:00
Niels van Velzen
19a9cda075 Use AsyncImageView in AudioNowPlayingActivity poster 2022-05-30 21:31:52 +02:00
Niels van Velzen
6c6b881747 Use AsyncImageView in FullDetailsActivity poster 2022-05-30 21:31:52 +02:00
Niels van Velzen
cd168ad805 Use AsyncImageView in NextUpFragment 2022-05-30 21:31:52 +02:00
Niels van Velzen
50e69b79b4 Disable AsyncImageView transitions for now 2022-05-30 21:31:52 +02:00
Niels van Velzen
4be56a1201 Use AsyncImageView in DefaultCardView 2022-05-30 21:31:52 +02:00
Niels van Velzen
9d726f940f Add AsyncImageView 2022-05-30 21:31:52 +02:00
WWWesten
16eb676346 Translated using Weblate (Esperanto)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-05-29 18:22:04 -04:00
WWWesten
7a72cd371d Translated using Weblate (Russian)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-05-29 18:22:04 -04:00
WWWesten
d0b0437e1b Translated using Weblate (Kazakh)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-05-29 18:22:04 -04:00
millallo
14b6e9f936 Translated using Weblate (Italian)
Currently translated at 100.0% (496 of 496 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-05-29 09:22:04 -04:00
Timmeh
4c2ce10004 add seperate button to adjust subtitle delay (if subtitles are present). (#1731)
* add seperate button to adjust subtitle delay (if subtitles are present).

* merge subtitle delay action and audio delay action to single button.

* Remove "m" prefix
Fix magic numbers
Fix formatting
Remove superfluous member variables

* Changes after review
Move all logic from `init` to constructor.

* Minor changes to SettingsPopup

Co-authored-by: Tim van Katwijk <tim.van.katwijk@moba.net>
2022-05-29 09:12:46 +00:00
Weblate
ba38e778dd Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-05-29 03:22:05 -04:00
Weblate
42cbd921af Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-05-29 03:22:04 -04:00
azumukupoe
d5238622cb Translated using Weblate (Japanese)
Currently translated at 68.3% (337 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ja/
2022-05-29 03:22:03 -04:00
Niels van Velzen
421df7696c Propagate errors from ItemRowAdapter to RetrieveFinishedListener 2022-05-29 09:08:15 +02:00
Niels van Velzen
b9e566902e Remove MathUtils 2022-05-28 22:52:48 +02:00
Andy Walsh
f9b647c7e2 Add Vimu external player support and fix some MX Player issues
* add Vimu external player support
* add better title support on external playback
* add filename to mx player extras
* fix mPosition conversion to int
* add detection for playback completion
2022-05-28 16:34:33 +02:00
Cameron
5e767ad7d1 fix player track selection - offset MediaStream indexes to account for external tracks (#1732)
* offset mediastream indexes used for player track selection to account for external tracks

* use imports for libVLC classes
2022-05-28 13:59:06 +02:00
Renovate Bot
d1d27e1762 Update Kotlin to v1.6.2 2022-05-27 21:47:31 +02:00
Renovate Bot
da0a8a4ff1 Update aboutlibraries to v10.3.0 2022-05-27 18:29:27 +02:00
Renovate Bot
2e926390b9 Update dependency com.android.tools.build:gradle to v7.2.1 2022-05-25 19:18:30 +02:00
radimous
7307a85740 Translated using Weblate (Czech)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/cs/
2022-05-22 05:22:01 -04:00
Renovate Bot
9a7c5b9d86 Pin dependencies 2022-05-20 22:21:24 +02:00
Renovate Bot
0f6ed41b9d Update dependency androidx.constraintlayout:constraintlayout to v2.1.4 2022-05-20 22:12:46 +02:00
Niels van Velzen
06df00f7e7 Add splashscreen to login 2022-05-19 13:55:33 +02:00
Johnny Lin
77b50bd2a4 Translated using Weblate (Chinese (Traditional))
Currently translated at 96.7% (477 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hant/
2022-05-19 06:22:00 -04:00
Bill Thornton
aad9eace35 Remove a useless local variable 2022-05-18 22:09:47 +02:00
Weevild
f3d494790a Translated using Weblate (Swedish)
Currently translated at 50.0% (2 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/sv/
2022-05-16 13:13:55 -04:00
Renovate Bot
ff996cebaa Update dependency org.jellyfin.sdk:jellyfin-core to v1.3.0-beta.3 2022-05-16 12:38:52 +02:00
José Albano
9168bdc339 Translated using Weblate (Spanish)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/es/
2022-05-16 04:13:55 -04:00
José Albano
41d8aab873 Translated using Weblate (Spanish)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2022-05-16 04:13:55 -04:00
Niels van Velzen
e8f14cf83a Update popup menu theme 2022-05-14 10:07:02 +02:00
Niels van Velzen
fd7180f498 Add popupmenu for servers in SelectServerFragment 2022-05-14 10:06:34 +02:00
Niels van Velzen
aeff8940aa Add popupmenu for users in ServerFragment 2022-05-14 10:06:34 +02:00
Niels van Velzen
5fa4e287fc Add MenuBuilder and DefaultCardView.setPopupMenu to easily create context menus for cards 2022-05-14 10:06:34 +02:00
Niels van Velzen
eaf8db542e Move DefaultCardView animation duration to integers.xml 2022-05-14 10:06:34 +02:00
Renovate Bot
f903bf11ed Update aboutlibraries to v10.2.0 2022-05-13 17:10:55 +02:00
Renovate Bot
f214af3103 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.3.3 2022-05-12 15:34:10 +02:00
Renovate Bot
c566930aa9 Update dependency io.mockk:mockk to v1.12.4 2022-05-11 18:46:07 +02:00
Page Asgardius
e807f6f893 Translated using Weblate (Spanish (Mexico))
Currently translated at 97.3% (480 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2022-05-11 12:13:54 -04:00
hoanghuy309
ef433ab97f Translated using Weblate (Vietnamese)
Currently translated at 98.1% (484 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-05-11 06:13:54 -04:00
newton181
5a78b7862a Translated using Weblate (Spanish (Latin America))
Currently translated at 96.1% (474 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2022-05-10 23:13:54 -04:00
kraus
bed370a9e5 Translated using Weblate (Polish)
Currently translated at 97.7% (482 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2022-05-10 15:13:53 -04:00
Moritz
c32cd64068 Translated using Weblate (German)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-05-10 12:13:53 -04:00
Renovate Bot
1f1f403838 Update koin to v3.2.0 2022-05-10 08:38:29 +02:00
Renovate Bot
17ab2abe8d Update dependency com.android.tools.build:gradle to v7.2.0 2022-05-09 22:02:02 +02:00
Oatavandi
820936ec46 Translated using Weblate (Tamil)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2022-05-08 02:13:53 -04:00
wolong gl
b523fee047 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/zh_Hans/
2022-05-07 03:13:53 -04:00
Oskari Lavinto
f044790748 Translated using Weblate (Finnish)
Currently translated at 98.5% (486 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-05-07 03:13:52 -04:00
wolong gl
bee9d363ee Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-05-07 03:13:52 -04:00
millallo
3999c817a2 Translated using Weblate (Italian)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-05-07 03:13:52 -04:00
Niels van Velzen
876e6bc5e9 Use JF_BOT_TOKEN in app-publish workflow 2022-05-06 20:31:30 +02:00
cameron
408f6073d0 revert subtitle alignment back to left align, fix srt newline parsing 2022-05-05 19:33:03 +02:00
nextlooper42
45324cd0d0 Translated using Weblate (Slovak)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-05-05 12:13:52 -04:00
Renovate Bot
56b4d0f463 Update com.github.bumptech.glide to v4.13.2 2022-05-05 08:34:48 +02:00
blob03
38240fa9f1 Translated using Weblate (French)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-05-04 17:13:51 -04:00
Niels van Velzen
b7cb47bc42 Remove sound effects from ItemRowView 2022-05-04 18:46:10 +02:00
Niels van Velzen
0918c73ed2 Inline drawable resources 2022-05-04 10:03:40 +02:00
WWWesten
07b9c84e3b Translated using Weblate (Esperanto)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-05-04 03:13:51 -04:00
Csaba
9319d05eaf Translated using Weblate (Hungarian)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-05-04 03:13:51 -04:00
WWWesten
82c2403b76 Translated using Weblate (Russian)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-05-04 03:13:51 -04:00
WWWesten
b48f7da67f Translated using Weblate (Kazakh)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-05-04 03:13:51 -04:00
Renovate Bot
756f534e57 Update kotest to v5.3.0 2022-05-03 21:00:25 +02:00
Weblate
702853a540 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-05-03 12:26:34 -04:00
Niels van Velzen
6bfe7bb617 Add dash between server address and issue in ServerAddFragment 2022-05-03 18:26:30 +02:00
Niels van Velzen
1f46104642 Redesign AddServerFragment 2022-05-03 18:26:30 +02:00
millallo
a522a2f9a8 Translated using Weblate (Italian)
Currently translated at 99.5% (491 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-05-03 07:13:51 -04:00
Thomas Schwery
632fa162a5 Translated using Weblate (French)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/fr/
2022-05-03 04:13:51 -04:00
WWWesten
26fe507ef4 Translated using Weblate (Esperanto)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-05-03 04:13:51 -04:00
Csaba
08123209de Translated using Weblate (Hungarian)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-05-03 04:13:51 -04:00
WWWesten
8e6aaaac86 Translated using Weblate (Russian)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-05-03 04:13:51 -04:00
WWWesten
26aadee010 Translated using Weblate (Kazakh)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-05-03 04:13:51 -04:00
Thomas Schwery
f07994752d Translated using Weblate (French)
Currently translated at 97.3% (480 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-05-03 04:13:51 -04:00
Weblate
1115ad9773 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-05-02 12:57:36 -04:00
Rhodri
0880f4c1be Translated using Weblate (Welsh)
Currently translated at 31.7% (156 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cy/
2022-05-02 12:57:35 -04:00
Cameron
6dafe0a9d0 Use enum for refresh rate switching setting - allow choosing between scaling on device or on tv (#1647)
* use enum for refresh rate switching preference

* fixed enum value comments

* renamed preference key

* log every considered mode, restored accidentally deleted string

* added missing brackets

* updated comment for migration, use original depends for preference screen

* renamed string

* offset default resolutionDifference by 1 to fix SCALE_ON_DEVICE ranking
2022-05-02 18:57:30 +02:00
Weblate
7ab7563f89 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-05-02 10:45:02 -04:00
cameron
04967b5811 initialize video manager when falling back to vlc 2022-05-02 16:44:58 +02:00
WWWesten
f6d60da090 Translated using Weblate (Esperanto)
Currently translated at 100.0% (491 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-05-02 09:13:51 -04:00
Csaba
62326fe6a6 Translated using Weblate (Hungarian)
Currently translated at 100.0% (491 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-05-02 09:13:51 -04:00
WWWesten
799ddc9742 Translated using Weblate (Russian)
Currently translated at 100.0% (491 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-05-02 09:13:51 -04:00
WWWesten
15cd147bd7 Translated using Weblate (Kazakh)
Currently translated at 100.0% (491 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-05-02 09:13:51 -04:00
Weblate
82c28eb9cc Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-05-02 02:56:59 -04:00
Niels van Velzen
bf358bfd4c Increase margin for "connecting to" subtitle in login fragment 2022-05-02 08:56:55 +02:00
Niels van Velzen
090678ce25 Implement QuickConnect 2022-05-02 08:56:55 +02:00
Niels van Velzen
9feaf107b2 Fix button remapping not saving the new button 2022-05-01 22:28:04 +02:00
Niels van Velzen
4462fd64a7 Add season id when querying video queue based on episode 2022-05-01 22:27:50 +02:00
Niels van Velzen
dd19e23a59 Update LicensesScreen to new AboutLibraries API 2022-05-01 22:27:34 +02:00
Renovate Bot
7005df16c3 Update dependency com.mikepenz:aboutlibraries-core to v10 2022-05-01 22:27:34 +02:00
Renovate Bot
47f256a4e3 Update plugin detekt to v1.20.0 2022-04-30 11:13:02 +02:00
Niels van Velzen
9a0fd6cd43 Update ACRA dialog builder code 2022-04-29 20:57:13 +02:00
Renovate Bot
9675ba2caa Update ch.acra to v5.9.3 2022-04-29 20:57:13 +02:00
Niels van Velzen
ec652b8950 Fix nullability issue in PreferencesFragment 2022-04-29 20:52:42 +02:00
Renovate Bot
213cd633e7 Update dependency androidx.preference:preference-ktx to v1.2.0 2022-04-29 20:52:42 +02:00
Renovate Bot
831035db04 Update io.kotest to v5.2.3 2022-04-29 20:40:47 +02:00
Renovate Bot
3795fe89ef Update dependency com.squareup.leakcanary:leakcanary-android to v2.9.1 2022-04-29 20:33:32 +02:00
Renovate Bot
f8dd24a73d Update com.github.bumptech.glide to v4.13.1 2022-04-29 19:41:35 +02:00
Renovate Bot
a4ae98fdb4 Update org.jetbrains.kotlinx 2022-04-29 18:45:17 +02:00
Renovate Bot
bf95ddca0c Update dependency org.jetbrains.kotlin:kotlin-gradle-plugin to v1.6.21 2022-04-29 17:58:06 +02:00
Renovate Bot
6d13eb75e4 Update dependency io.mockk:mockk to v1.12.3 2022-04-29 17:57:06 +02:00
Renovate Bot
7c38864f65 Update dependency com.android.tools.build:gradle to v7.1.3 2022-04-29 17:06:09 +02:00
Renovate Bot
b383fd5774 Update dependency androidx.fragment:fragment-ktx to v1.4.1 2022-04-29 17:05:06 +02:00
Renovate Bot
2aed16ac2f Update dependency androidx.appcompat:appcompat to v1.4.1 2022-04-29 17:04:28 +02:00
Renovate Bot
212c11368c Update dependency androidx.constraintlayout:constraintlayout to v2.1.3 2022-04-29 17:03:56 +02:00
Renovate Bot
17defd5705 Update dependency androidx.window:window to v1.0.0 2022-04-29 17:03:19 +02:00
Renovate Bot
74be025ccb Update io.insert-koin to v3.1.6 2022-04-29 17:02:42 +02:00
Niels van Velzen
448fc99291 Delete dependabot.yml 2022-04-28 22:08:36 +02:00
renovate[bot]
31af06ee77 Configure Renovate (#1650)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2022-04-28 21:18:53 +02:00
dependabot[bot]
57e814844c Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-25 19:12:09 +02:00
MardukGD
4588872cb8 Translated using Weblate (Polish)
Currently translated at 99.5% (482 of 484 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2022-04-24 19:13:48 -04:00
Martim Pinheiro
d7889072cd Translated using Weblate (Portuguese (Portugal))
Currently translated at 75.0% (3 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/pt_PT/
2022-04-24 13:13:49 -04:00
Martim Pinheiro
e2015dd288 Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.1% (480 of 484 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_PT/
2022-04-24 13:13:48 -04:00
Oskari Lavinto
50abc9b901 Translated using Weblate (Finnish)
Currently translated at 99.1% (480 of 484 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-04-23 07:13:47 -04:00
m33ts4k0z
52d0745ada Translated using Weblate (Greek)
Currently translated at 87.6% (424 of 484 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2022-04-20 19:13:46 -04:00
nextlooper42
c88edf4c3f Translated using Weblate (Slovak)
Currently translated at 100.0% (484 of 484 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-04-20 10:13:46 -04:00
Niels van Velzen
c3acae06cb Update Jellyfin SDK to 1.3.0-beta.2 2022-04-19 20:45:44 +02:00
Niels van Velzen
bd114167ef Hide currently watching video from next up integration 2022-04-19 13:16:34 +02:00
Niels van Velzen
5d120f2198 Use SDK models in PhotoPlayerActivity 2022-04-19 07:58:59 +02:00
Niels van Velzen
b94fe0f2a6 Update to Kotlin SDK 1.3.0 (Jellyfin 10.8) 2022-04-18 10:21:49 +02:00
Weblate
59ef25091a Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-04-17 05:39:40 -04:00
Niels van Velzen
62a19a56fd Fix not opening last active server on authentication clearance 2022-04-17 11:39:36 +02:00
Weblate
cfd8d4d6c4 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-04-17 04:45:28 -04:00
Niels van Velzen
ec6ac9b6e0 Catch exceptions in SocketHandler.updateSession 2022-04-17 10:45:24 +02:00
Niels van Velzen
e4ad084824 Refactor authentication code 2022-04-17 10:45:24 +02:00
zero0200
dc57413fac Translated using Weblate (Thai)
Currently translated at 15.6% (76 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/th/
2022-04-16 15:13:46 -04:00
Niels van Velzen
748dd56dec Update playback rewrite build files 2022-04-16 12:53:21 +02:00
ccrisinel
a80d303bc2 Translated using Weblate (French)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-04-15 18:13:44 -04:00
Niels van Velzen
33005e3939 Refactor preference code
- Allow migrations in all store types
- Remove blocking functions from the preference module
- Move Preference.xx functions to global functions
2022-04-15 16:07:36 +02:00
Niels van Velzen
0e9281388a Move preference code to new preference module 2022-04-13 09:40:06 +02:00
Niels van Velzen
5ecaf93b27 Fix WebSocket connection not always reconnecting on session start 2022-04-13 09:30:08 +02:00
David Fairbrother
0d12a149f8 Bump to Exoplayer 1.27.1
This release has been out for 4 weeks (at the time of this commit) so it
reasonably well baked.

Some highlights that might help us from their release notes:
( https://github.com/google/ExoPlayer/releases/tag/r2.17.0 )

- Update video and audio track selection logic to only choose formats for adaptive selections that have the same level of decoder and hardware support
- Update video track selection logic to prefer more efficient codecs if multiple codecs are supported by primary, hardware-accelerated decoders
- Prefer audio content preferences (for example, the "default" audio track or a track matching the system locale language) over technical track selection constraints (for example, preferred MIME type, or maximum channel count).
- Fix decoder fallback logic for Dolby Vision to use a compatible H264/H265 decoder if needed.
- Fix decoder fallback logic for Dolby Atmos (E-AC3-JOC) to use a compatible E-AC3 decoder if needed.
- (HLS) Use chunkless preparation by default to improve start up time.
2022-04-12 12:57:44 +02:00
dependabot[bot]
0c0aee4194 Bump actions/upload-artifact from 2 to 3
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 21:08:17 +02:00
dependabot[bot]
7b1b678fcd Bump actions/setup-java from 2 to 3
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 2 to 3.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-11 21:07:58 +02:00
Niels van Velzen
94b2eb9046 Update Kotlin SDK to 1.2.0-beta.2 2022-04-10 13:31:08 +02:00
millallo
063242ab82 Translated using Weblate (Italian)
Currently translated at 25.0% (1 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/it/
2022-04-09 05:13:42 -04:00
naveensrinivasan
f76ad3765e Set permissions for GitHub actions
- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

 Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

Signed-off-by: naveensrinivasan <172697+naveensrinivasan@users.noreply.github.com>
2022-04-09 11:07:47 +02:00
David Fairbrother
67bd4db38d Annotate nullability for java classes
Annotate the parameters as @nonnull for our new subscribe method, and
init which is just adjacent too
2022-04-08 12:56:15 +02:00
David Fairbrother
2d9936b02f Extract existing callback logic into interface
Many call-backs already exist between the VideoManager and
PlaybackController. But they are created on an ad-hoc basis in various
methods.

By extracting these out to a method it means we can:
- Remove the boilerplate of @Override methods in PlaybackController
- Easily refactor these into a seperate class long-term
- Add new handlers
- Pass parameters around in the future
- Not have everything dispatch to a simple onEvent.

This also makes extending the interface easier where we have exoplayer
only notifications (such as onPlaybackSpeedChanged). Since the VLC code
can simply call the notifier without going through a PlaybackListener
2022-04-08 12:56:15 +02:00
Oatavandi
4528eefb99 Translated using Weblate (Tamil)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/ta/
2022-04-07 12:13:41 -04:00
Oatavandi
724c91655e Translated using Weblate (Tamil)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2022-04-07 12:13:41 -04:00
millallo
f3721ebc97 Translated using Weblate (Italian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-04-06 05:13:41 -04:00
Renaldo Eduardo Freire
75c339ab1b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2022-04-05 09:13:41 -04:00
Niels van Velzen
98aea02244 Remove TvApp.java 2022-04-05 13:14:17 +02:00
Niels van Velzen
846af69cee Use context for ItemRowAdapter in MediaManager 2022-04-05 13:14:17 +02:00
Niels van Velzen
8c2f64a033 Use context in ItemRowAdapter 2022-04-05 13:14:17 +02:00
Niels van Velzen
2eee420449 Use context in MediaManager 2022-04-05 13:14:17 +02:00
David Fairbrother
8dec56659d Remove obsolete annotation from VideoManager
This one was noticed during refactoring and it's fairly free. Now we use
a float (rather than a Float object) the nullable annotation is
incorrect.
2022-04-05 10:11:03 +02:00
David Fairbrother
752fb114e1 Extract getting max bitrate into call param
Since we are doing this three times we can simply move it out of these
methods. This makes it easier for us to calculate a dynamic bitrate
later.
2022-04-05 10:11:03 +02:00
David Fairbrother
431265c81e Extract methods to populate video options for VLC and ExoPlayer
Since we will be touching this code in a later commit it makes sense to
extract these into private methods as-is.
This commit only extracts the options and does not perform any
additional refactoring steps
2022-04-05 10:11:03 +02:00
Wang Xing Kai
3d7edff19d Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/zh_Hant/
2022-04-04 21:13:43 -04:00
Carlos Perez
8376b09b78 Translated using Weblate (Spanish (Argentina))
Currently translated at 99.1% (482 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2022-04-04 21:13:43 -04:00
Wang Xing Kai
0d1f74fae5 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hant/
2022-04-04 21:13:42 -04:00
Casper
2fd076b22c Translated using Weblate (Danish)
Currently translated at 69.9% (340 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/da/
2022-04-04 08:13:40 -04:00
Niels van Velzen
c18568f315 Update activity lifecycle callbacks to act before activity lifecycle events trigger 2022-04-04 12:51:12 +02:00
Niels van Velzen
c9d6553486 Move lastPlayedItem to DataRefreshService 2022-04-04 12:50:56 +02:00
Niels van Velzen
25ea47962d Remove TvApp.getCurrentUser()
Replaced with direct calls to UserRepository
2022-04-03 13:37:11 +02:00
Niels van Velzen
d7ee86ebb7 Require context in Utils.downMixAudio() 2022-04-03 13:26:33 +02:00
Niels van Velzen
282da7f458 Move LIVE_TV constants to separate file 2022-04-03 13:25:34 +02:00
Niels van Velzen
92b7977657 Add PlaybackControllerContainer to store PlaybackController instance 2022-04-03 13:24:08 +02:00
Niels van Velzen
02e5eeddd1 Fix SessionRepository trying to fetch user data when session is null 2022-04-03 10:44:01 +02:00
Niels van Velzen
7aef63dec8 Remove hotdog theme 2022-04-02 13:55:59 +02:00
Niels van Velzen
171e91914a Add UserRepository to replace TvApp.getCurrentUserLiveData()
Also migrates all usages of getCurrentUser to the UserDto from the SDK
2022-04-02 13:53:58 +02:00
cameron
c79b74dbd8 check item id equality instead of item object equality 2022-04-02 09:32:13 +02:00
Cameron
5fd89ed8c9 fix getSubtitleStreamIndex returning the wrong index (#1594)
* dont use mDefaultSubIndex in getSubtitleStreamIndex

* only set mCurrentOptions SubtitleStreamIndex if subtitles load without error

* clear mDefaultSubIndex in switchSubtitleStream
2022-04-01 19:53:23 +02:00
Niels van Velzen
d5d8229fbb Migrate NextUp code to Kotlin flows 2022-04-01 09:41:36 +02:00
Niels van Velzen
c45733ec22 Migrate SessionRepository to Kotlin flows 2022-04-01 09:41:26 +02:00
Niels van Velzen
427c9f9c96 Migrate LoginViewModel and ServerRepository to Kotlin flow 2022-04-01 09:41:17 +02:00
Niels van Velzen
c66ebcc686 Migrate UserViewsRepository to Kotlin flow 2022-04-01 09:41:08 +02:00
Niels van Velzen
4c50444a2c Remove unnecessary DetailItemLoadResponse 2022-04-01 09:40:12 +02:00
Niels van Velzen
ad259d20b1 Remove unnecessary GotFocusEvent 2022-04-01 09:40:02 +02:00
gradle-update-robot
65ebd3dac8 Update Gradle Wrapper from 7.4.1 to 7.4.2.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2022-04-01 09:39:42 +02:00
Bill Thornton
d890b4477d Merge pull request #1590 from nielsvanvelzen/double-trouble
Fix ASPECT_RATIO_BANNER again
2022-03-31 15:53:34 -04:00
Niels van Velzen
7d1a653c10 Fix ASPECT_RATIO_BANNER again 2022-03-31 21:47:17 +02:00
Oskari Lavinto
cc79497fce Translated using Weblate (Finnish)
Currently translated at 99.1% (482 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-03-30 09:13:39 -04:00
Catto
72128d1fe4 Translated using Weblate (Portuguese (Portugal))
Currently translated at 84.7% (412 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_PT/
2022-03-30 09:13:38 -04:00
Niels van Velzen
06e286ef22 Move TvApp.canManageRecordings to Utils 2022-03-30 07:32:12 +02:00
Niels van Velzen
5cc2407a9d Remove 10.8 check for HLS support 2022-03-29 14:53:32 +02:00
Niels van Velzen
e2cdab31ea Add appCategory attribute to manifest 2022-03-29 14:52:04 +02:00
Niels van Velzen
6674c0fe63 Fix PreferenceStoreTests location 2022-03-29 08:22:16 +02:00
Niels van Velzen
0a423e8461 Fix MediaManager not checking ContextExtensionsKt.getActivity for null value 2022-03-28 21:44:33 +02:00
Niels van Velzen
b090868222 Remove currentActivity from TvApp 2022-03-28 21:44:33 +02:00
Niels van Velzen
083e7c11ad Migrate WebSocket code to new SocketApi from our SDK 2022-03-28 21:44:33 +02:00
nextlooper42
a39de4e4ef Translated using Weblate (Slovak)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-03-28 14:04:29 -04:00
小造xu_zh
3743c4cac0 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/zh_Hans/
2022-03-28 10:51:08 -04:00
小造xu_zh
633742a709 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-03-28 10:51:08 -04:00
Csaba
36142c504e Translated using Weblate (Hungarian)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/hu/
2022-03-28 02:13:38 -04:00
Csaba
c31adb7b17 Translated using Weblate (Hungarian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-03-28 02:13:37 -04:00
WWWesten
1cb13c8577 Translated using Weblate (Esperanto)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-03-27 21:13:37 -04:00
WWWesten
659dcf00cd Translated using Weblate (Russian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-03-27 21:13:37 -04:00
WWWesten
e1cdd96cb9 Translated using Weblate (Kazakh)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-03-27 21:13:37 -04:00
3ole
60ed8f2543 Translated using Weblate (German)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-03-27 15:13:37 -04:00
Niels van Velzen
db3af65226 Fix ExpandableTextView focusable when text is not ellipsized 2022-03-27 14:09:50 +02:00
Lukáš Kucharczyk
2f9068890e Translated using Weblate (Czech)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-03-27 05:55:21 -04:00
Cameron
7491ed175e fixed playFrom() crash, support queueing entire row (eg: last played) (#1568)
* fixed playFrom() crash, support queueing entire row (eg: last played)

* store MediaManager as a variable for readability
2022-03-27 09:16:32 +00:00
Cameron
df015146e2 fixed subtitles not clearing properly when switching (again) (#1571)
* fixed subtitles not clearing properly when switching (again)

* edited a couple comments so they're clearer
2022-03-27 11:10:52 +02:00
DavidFair
82a935c0f4 Refactor duplicated preferences code (#1341)
* Create abstract base class to move common func into

There's a lot of overlap between both preference stores. Additionally,
long-term it would be good to simply abstract away all the property
handling into one location.

That way each store can handle transactions ...etc. but the boilerplate
is in one place

* Unify common functionality from preference stores

Unifies the common bits, this will make it significantly easier to write
future stores.
It also means the most risky parts (de-serializing enums and dynamic
dispatch) are kept in one place. Making debugging / fixes signficantly
easier.

* Add tests for Preference setter/getters

Adds unit tests for the unified setters and getters.
This replicates the work that would be required to add a new store in
the future too.

* Minor tidy-ups

Minor tidy-ups based on other PR comments
- Don't include duplicate interfaces
- Leave formatting alone

* Revert IPreferenceStore rename

Rename IPreferenceStore to PreferenceStore, to match the other
interfaces in the repo

* Merge IPreferenceStore and BasicPreferenceStore

This merges the two classes into a single abstract class
PreferenceScore

We simplify the inheritance chain, keep the various implementation
details in one place and avoid code churn.

An abstract class has to be used so we can mark internal getT and setT
methods protected, and the enum serialization private. An interface
would require us to mark these methods public, polluting the API.

* Address PR comments

- Rename KeyName -> Key
- Move from method body to statement line

* Refactor enum serialization into impl classes

Since this is an implementation detail not all classes may rely on, we
should shift it into the various stores and only test the bare minimum.

* Switch from Junit to KoTest

Switches PreferenceStore test to use KoTest since JUnit has been
completely dropped from the codebase

* Get enum from string backed store directly where possible

In DisplayPreferencesStore we can directly get this from the store and
check for a null, saving a string allocation.

In SharedPreferenceStore, since we don't have access to the backing
store (which was intentional) we call getString instead. Since this is
the only case where null can appear as an empty string value we will
take the small hit to allocate an empty string. That way other users of
the getString interface don't have to check for null types which is a
store implementation detail.

* Reformat Shared code and tidy up test file

- Reformats the SharedPreferenceStoreCode to use less whitespace
- Tidy up the test file, by moving the test class and enum into their
own private sections rather than inside the test class

* Match FunSpec test style to other tests in project

Rather than use an init block we can simply wrap it in the FunSpec
block. This matches the style of all the other tests and removes some
boilerplate too.
2022-03-27 10:54:35 +02:00
David Fairbrother
cfbadba4e3 Switch to using audio time stretching by default
This matches libVLC's normal default. Looking back in the project
history this was set to no stretching from the very start @commit
9528b9a3ee

Since libVLC use it by default and this wasn't a bug fix I propose we
can opt in the audio stretching by default. This should only trigger when
a user selects a playback speed that isn't 1x anyway.
2022-03-27 10:26:07 +02:00
cameron
079d004f2a center align subtitles 2022-03-27 10:23:57 +02:00
Niels van Velzen
de7ff1c0c5 Update Kotlin SDK to 1.2.0-beta.1 2022-03-27 10:21:45 +02:00
3ole
b63cc26f97 Translated using Weblate (German)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/de/
2022-03-26 19:13:37 -04:00
3ole
ff351d7e3c Translated using Weblate (German)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-03-26 19:13:37 -04:00
Niels van Velzen
808d055c9a Add markdown support for item and server overviews 2022-03-26 14:31:38 +01:00
Niels van Velzen
70dd01c4f3 Use ItemSortBy constants instead of hardcoded strings 2022-03-26 12:22:18 +01:00
Andrea
f1c90445e7 Translated using Weblate (Italian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-03-26 07:13:37 -04:00
Niels van Velzen
988f9209c0 Migrate NumberSpinner to Kotlin 2022-03-26 10:23:35 +01:00
Niels van Velzen
3c97879b0c Migrate ObservableHorizontalScrollView to Kotlin 2022-03-26 10:23:35 +01:00
Niels van Velzen
1f25469a33 Migrate TextUnderButton to Kotlin 2022-03-26 10:23:35 +01:00
Niels van Velzen
7cf815d8c0 Migrate MediaInfoCardView to Kotlin 2022-03-26 10:23:35 +01:00
Niels van Velzen
3028b1e69e Migrate NowPlayingBug to Kotlin 2022-03-26 10:23:35 +01:00
Niels van Velzen
f44a7db3d1 Migrate DetailRowView to Kotlin 2022-03-26 10:23:35 +01:00
Niels van Velzen
5f968b8fe9 Rename .java to .kt 2022-03-26 10:23:35 +01:00
WWWesten
2bb4afbd29 Translated using Weblate (Russian)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/ru/
2022-03-25 17:13:37 -04:00
WWWesten
3f20489e71 Translated using Weblate (Esperanto)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/eo/
2022-03-25 17:13:37 -04:00
Polish Jelly
0c703cf614 Translated using Weblate (Polish)
Currently translated at 50.0% (2 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/pl/
2022-03-25 10:13:36 -04:00
nextlooper42
71afd9637a Translated using Weblate (Slovak)
Currently translated at 75.0% (3 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/sk/
2022-03-25 00:13:36 -04:00
Oskari Lavinto
26364184e2 Translated using Weblate (Finnish)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/fi/
2022-03-25 00:13:36 -04:00
WWWesten
66597adbec Translated using Weblate (Russian)
Currently translated at 75.0% (3 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/ru/
2022-03-24 20:13:37 -04:00
WWWesten
68fc7b126b Translated using Weblate (Kazakh)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/kk/
2022-03-24 20:13:37 -04:00
WWWesten
0b0036c7da Translated using Weblate (Esperanto)
Currently translated at 75.0% (3 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/eo/
2022-03-24 20:13:36 -04:00
Weblate
93fdbbcac0 Added translation using Weblate (Thai) 2022-03-24 16:33:50 -04:00
Weblate
24a46d5fd4 Added translation using Weblate (Albanian) 2022-03-24 16:33:46 -04:00
Weblate
1ce9ae5d39 Added translation using Weblate (Punjabi) 2022-03-24 16:33:44 -04:00
Weblate
c6b6573d74 Added translation using Weblate (Kannada) 2022-03-24 16:33:43 -04:00
Bill Thornton
4396fc2f80 Fix crash getting badge image with null base item 2022-03-24 18:43:58 +01:00
wolong gl
f58f8e8e6b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-03-24 01:13:36 -04:00
Rhodri
b7b60d4ee6 Translated using Weblate (Welsh)
Currently translated at 32.0% (156 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cy/
2022-03-23 22:40:00 -04:00
newton181
7220544d88 Translated using Weblate (Spanish)
Currently translated at 98.5% (479 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2022-03-23 22:40:00 -04:00
newton181
f868491ba2 Translated using Weblate (Spanish)
Currently translated at 100.0% (4 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/es/
2022-03-23 18:13:36 -04:00
newton181
674c8612f2 Translated using Weblate (Spanish)
Currently translated at 89.3% (434 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2022-03-23 18:13:36 -04:00
Bill Thornton
966ed7f3f9 Merge pull request #1559 from nielsvanvelzen/video-end-crash
Fix player crashing when video ends
2022-03-23 16:02:10 -04:00
Niels van Velzen
ea06fc0319 Fix player crashing when video ends 2022-03-23 20:55:59 +01:00
David Fairbrother
d0fba48aaa Replace deprecated EventListener with Listener
Follows the documentation examples for replacing EventListener. The main
change is dropping the custom logic from "onPlayWhenReadyChanged" to
"onIsPlayingChanged" which handles the pause logic.
This is recommended in
https://exoplayer.dev/listening-to-player-events.html#playback-state-changes
2022-03-23 17:14:11 +01:00
Cameron
92d37dc5b3 only parse exoplayer TracksInfo when needed - instead of once every 0.5-2 seconds (#1556)
* only parse TracksInfo when needed

* only set exoplayerAudioIndex if streamType == MediaStreamType.Audio
2022-03-23 17:06:56 +01:00
David Fairbrother
fa7956721e Add handling for updating end time based on playback speed
Adds handling to update the end time based on the user's current
playback speed.

This is a bit hacky since exoplayer is built on the assumption that we
have bi-directional communication to our UI layer. Instead the
CustomPlaybackTransportControlGlue is uni-directional polling the video
manager.

We unfortunately have to use hacky poll tricks to work-around the fact
we can't wire up on the "onPlaybackParametersChanged" call to notify the
glue class. However, in the short-term a 5s "delay" between setting and
updating is more favourable than setting up reverse listening
support.

Re #1509
2022-03-23 17:05:26 +01:00
Niels van Velzen
2edc47049e Remove server and user ItemType from BaseRowItem 2022-03-23 14:46:08 +01:00
Niels van Velzen
989c78fc65 Reformat menu xml files, remove unused icons 2022-03-23 14:45:53 +01:00
Niels van Velzen
26ac67e302 Add Android 12 backup configuration 2022-03-23 14:45:37 +01:00
Niels van Velzen
56fd1c6e6d Translated using Weblate (Dutch)
Currently translated at 50.0% (2 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv-fastlane/nl/
2022-03-22 11:13:36 -04:00
Renaldo Eduardo Freire
18c1509000 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2022-03-22 11:13:35 -04:00
Niels van Velzen
edd6033f03 Translated using Weblate (Dutch)
Currently translated at 25.0% (1 of 4 strings)

Translation: Jellyfin Android/Jellyfin Android TV Fastlane
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-android-tv-fastlane/nl/
2022-03-22 08:44:29 -04:00
Niels van Velzen
5f1b43c432 Fix ASPECT_RATIO_BANNER 2022-03-22 13:39:53 +01:00
Niels van Velzen
39c21e607a Add fastlane structure to repository 2022-03-22 13:38:31 +01:00
David Fairbrother
ca9c700c16 Modernise with lambdas instead of explicit overrides
This reduces the verbosity and boilerplate around the methods. It makes
sense to do these whilst we're touching the code.
2022-03-22 09:06:24 +01:00
David Fairbrother
855fa1afe3 Select cancel by default on confirmation dialogs
Select cancel so a user doesn't accidentally delete media by hitting
delete twice. Since we ask it's worth adding this extra step, if we need
to remove the extra step it's arguable we can completely remove alert
dialog all-together
2022-03-22 09:06:24 +01:00
Niels van Velzen
5fdffe58c4 Fix preferences crashing 2022-03-22 08:37:14 +01:00
Niels van Velzen
41d7aeb6df Support resume movies in "next up" integration 2022-03-22 08:37:04 +01:00
Niels van Velzen
c90539b4b9 Merge all codec constants into a single object 2022-03-22 08:36:54 +01:00
Niels van Velzen
7172e14b39 Add SubtitleTypes 2022-03-22 08:36:54 +01:00
Niels van Velzen
b17dd5206f Rewrite constants in Kotlin 2022-03-22 08:36:54 +01:00
Niels van Velzen
72125a2dbe Rename .java to .kt 2022-03-22 08:36:54 +01:00
Bill Thornton
038724b7a2 Merge pull request #1542 from nielsvanvelzen/about-version-consistency
Add app name and flavor to version in about section
2022-03-21 15:41:53 -04:00
Bill Thornton
a9c78f401a Merge pull request #1544 from nielsvanvelzen/modelcompat-blurhash-fix
Fix imageBlurHashes must not be null crash
2022-03-21 15:41:36 -04:00
Niels van Velzen
77f31b9893 Fix imageBlurHashes must not be null crash 2022-03-21 20:34:03 +01:00
Oatavandi
64fd4766c8 Translated using Weblate (Tamil)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2022-03-21 14:13:35 -04:00
Niels van Velzen
d8695cb1a2 Add app name and flavor to version in about section 2022-03-21 18:40:32 +01:00
nextlooper42
6a2916ac01 Translated using Weblate (Slovak)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-03-21 08:13:35 -04:00
NunzioArdi
71833d28e1 Translated using Weblate (French)
Currently translated at 99.7% (485 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-03-21 08:13:35 -04:00
Lukáš Kucharczyk
1b04b6fa0c Translated using Weblate (Czech)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-03-21 08:13:35 -04:00
Niels van Velzen
3483876168 Add ripple effect to all buttons (#1522)
* Add ripple effect to all buttons

* Add buttonDefaultHighlightBackground attribute

* Fix some linter warnings in changed files

* Refactor TextUnderButton to support icon tint

* Fix NowPlayingBug not button text color

* Fix item_row not using button text color

* Use setActivated instead of _red icon for TextUnderButton
2022-03-21 10:17:21 +01:00
Niels van Velzen
bd64d144be Use consistent naming & constructors in custom views 2022-03-21 10:13:04 +01:00
Oskari Lavinto
7f77814e75 Translated using Weblate (Finnish)
Currently translated at 98.9% (481 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-03-21 00:13:35 -04:00
WWWesten
562fd770e1 Translated using Weblate (Esperanto)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-03-20 19:13:35 -04:00
WWWesten
0e450f32b0 Translated using Weblate (Russian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-03-20 19:13:35 -04:00
WWWesten
80a5d716b5 Translated using Weblate (Kazakh)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-03-20 19:13:35 -04:00
WWWesten
f7011afb3c Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2022-03-20 19:13:35 -04:00
Weblate
25745f35ab Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-03-20 06:00:17 -04:00
cameron
19984e1c1d reworked context menu for audio queue
also removed video queue buttons
2022-03-20 11:00:13 +01:00
cameron
f39ba05b38 fix crash from tracepot issue a46fe8ca0001267b
ActionsAdapter.clear() crashes when adapter is already empty
2022-03-20 10:44:57 +01:00
cameron
b1250de574 fix crash from tracepot issue 1d115b860001267b
crash from StreamInfo being null
2022-03-20 10:44:57 +01:00
cameron
a8dea85a1b fix tracepot issue 1a07276a0001267b
fix crash from null leanbackOverlayFragment
2022-03-20 10:44:57 +01:00
Niels van Velzen
f278f4b048 Move AuthenticationSortBy to model package 2022-03-20 10:43:01 +01:00
Niels van Velzen
629dbc9482 Remove LegacyAccountMigration 2022-03-20 10:42:40 +01:00
Niels van Velzen
18aa8c01fd Fully migrate NextUpActivity to SDK 2022-03-20 10:42:20 +01:00
cameron
be89cf276b prefer refresh rates closest to the source refresh rate 2022-03-19 22:47:11 +01:00
cameron
85a49fe757 prefer changing refresh rate without changing resolution 2022-03-19 22:47:11 +01:00
lyaschuchenko
7a6d63984c Translated using Weblate (Ukrainian)
Currently translated at 67.4% (328 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2022-03-18 12:13:36 -04:00
Weevild
df35a441f4 Translated using Weblate (Swedish)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2022-03-18 12:13:35 -04:00
TurtleIdiot
6129f90367 Translated using Weblate (Polish)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2022-03-17 20:13:35 -04:00
Oskari Lavinto
767871ff60 Translated using Weblate (Finnish)
Currently translated at 98.3% (478 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-03-16 06:13:37 -04:00
Oskari Lavinto
8b46d3e126 Translated using Weblate (Finnish)
Currently translated at 55.7% (271 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-03-16 01:13:35 -04:00
cameron
b723ddc250 wip fixes 2022-03-14 19:09:38 +01:00
cameron
c721e37988 fixed next item being marked watched, fixed subtitles not clearing from prev episode 2022-03-14 19:09:12 +01:00
wolong gl
e317ce3093 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-03-14 06:13:33 -04:00
Bill Thornton
0c435e4112 Merge pull request #1519 from nielsvanvelzen/change-user-while-listening-to-music-crash 2022-03-13 00:11:26 -05:00
Vardas
1ff9604151 Translated using Weblate (Lithuanian)
Currently translated at 15.8% (77 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/lt/
2022-03-12 18:13:33 -05:00
Niels van Velzen
970d165b74 Fix app crash when switching users while music is playing 2022-03-12 21:49:18 +01:00
David Fairbrother
2af623ed13 Fix a potential crash in VideoManager with invalid speed
We should never hit this, unless someone is manually tweaking values in
the debugger.... but it still results in a hard crash as %d is for an
int, not a double.
2022-03-12 20:32:00 +01:00
Niels van Velzen
7e038334f8 Add ripple effect to DefaultCardView 2022-03-11 08:51:00 +01:00
Niels van Velzen
dcd8486d6c Fix ripple effect on LegacyImageCardView overflowing 2022-03-11 08:51:00 +01:00
Niels van Velzen
c26ffdfbfa Close ServerFragment when the server is removed from preferences 2022-03-11 08:50:38 +01:00
Niels van Velzen
fac5a7d35e Hide "manage servers" in preferences when there are no servers 2022-03-11 08:50:38 +01:00
WWWesten
7bf1f9b38b Translated using Weblate (Russian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-03-10 06:13:31 -05:00
cameron
42b3d469d1 remove tvapp.getapplication 2022-03-10 09:31:56 +01:00
gradle-update-robot
37315878e2 Update Gradle Wrapper from 7.4 to 7.4.1.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2022-03-10 08:47:48 +01:00
Bill Thornton
64248639a0 Merge pull request #1508 from mueslimak3r/crash-fix 2022-03-09 21:05:57 -05:00
cameron
aa80ca561f crash fix from null item 2022-03-09 14:34:28 -08:00
Ali Dastpour
007fc70a8c Translated using Weblate (Persian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 17:13:31 -05:00
Ali Dastpour
7d3a31b9de Translated using Weblate (Persian)
Currently translated at 98.7% (480 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 13:13:34 -05:00
Ali Dastpour
1a98e41e1e Translated using Weblate (Persian)
Currently translated at 52.2% (254 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 06:46:28 -05:00
Ali Dastpour
a21463fa44 Translated using Weblate (Persian)
Currently translated at 52.0% (253 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 06:37:03 -05:00
Ali Dastpour
69da942ed9 Translated using Weblate (Persian)
Currently translated at 51.2% (249 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 06:24:44 -05:00
Ali Dastpour
0fcfa2028e Translated using Weblate (Persian)
Currently translated at 50.4% (245 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 06:17:56 -05:00
Ali Dastpour
8f23c5975c Translated using Weblate (Persian)
Currently translated at 49.7% (242 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 06:14:41 -05:00
Ali Dastpour
64594dcec3 Translated using Weblate (Persian)
Currently translated at 45.8% (223 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 06:04:01 -05:00
Ali Dastpour
db9cc8a836 Translated using Weblate (Persian)
Currently translated at 41.7% (203 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 05:46:38 -05:00
Ali Dastpour
ffc5da8e6b Translated using Weblate (Persian)
Currently translated at 40.5% (197 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 05:35:24 -05:00
Ali Dastpour
071f0d06d0 Translated using Weblate (Persian)
Currently translated at 39.5% (192 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 05:30:54 -05:00
Ali Dastpour
b3bf36eb43 Translated using Weblate (Persian)
Currently translated at 37.8% (184 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-09 05:23:28 -05:00
Ali Dastpour
b610572f18 Translated using Weblate (Persian)
Currently translated at 35.8% (174 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-08 20:13:32 -05:00
Ali Dastpour
6e99c563cd Translated using Weblate (Persian)
Currently translated at 25.3% (123 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-08 17:16:01 -05:00
Ali Dastpour
86081c03db Translated using Weblate (Persian)
Currently translated at 20.9% (102 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-08 16:58:42 -05:00
Ali Dastpour
08e940dd50 Translated using Weblate (Persian)
Currently translated at 14.4% (70 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-03-08 16:34:25 -05:00
Cameron
e60aba4424 require at least server version 10.8.0 to use HLS (#1501)
* proof of concept

* refactored

* renamed method

* use comparison operator overload, use toString
2022-03-08 16:44:56 +01:00
cameron
36e4e949fe don't use exoplayer track selection if the track ID can't be parsed 2022-03-08 08:50:52 +01:00
cameron
40ac7ac7bf check if subtitle track info is empty 2022-03-08 08:50:52 +01:00
Bill Thornton
0ec0df73a8 Merge pull request #1502 from nielsvanvelzen/leanback-channel-worker-catch-timeout 2022-03-07 22:25:29 -05:00
kazuki ishii
f4afda0766 Translated using Weblate (Japanese)
Currently translated at 71.8% (349 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ja/
2022-03-07 18:13:30 -05:00
Thomas Schwery
6e6306f3db Translated using Weblate (French)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-03-07 18:13:30 -05:00
dependabot[bot]
070ef78e22 Bump actions/checkout from 2 to 3
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 18:39:49 +01:00
dependabot[bot]
67a8333331 Bump actions/stale from 4.1.0 to 5
Bumps [actions/stale](https://github.com/actions/stale) from 4.1.0 to 5.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v4.1.0...v5)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 18:39:40 +01:00
Niels van Velzen
30ab16e11b Catch SDK exceptions in LeanbackChannelWorker 2022-03-07 16:59:16 +01:00
Sayykii
ce03220c29 Translated using Weblate (Bulgarian)
Currently translated at 31.8% (155 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/bg/
2022-03-07 07:13:30 -05:00
axel
7f6701d3cf Translated using Weblate (French)
Currently translated at 99.7% (485 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-03-06 19:13:30 -05:00
millallo
3ac6ad9d28 Translated using Weblate (Italian)
Currently translated at 100.0% (486 of 486 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-03-06 04:13:30 -05:00
Weblate
44156ece1e Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-03-05 14:45:23 -05:00
Niels van Velzen
57ec029bd6 Update default home sections and remove rewatching type 2022-03-05 20:45:20 +01:00
Oatavandi
f04adce784 Translated using Weblate (Tamil)
Currently translated at 100.0% (487 of 487 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2022-03-05 13:13:31 -05:00
nextlooper42
346c376408 Translated using Weblate (Slovak)
Currently translated at 100.0% (487 of 487 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-03-05 13:13:30 -05:00
Niels van Velzen
31b30b4b01 Translated using Weblate (Dutch)
Currently translated at 100.0% (487 of 487 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2022-03-05 13:13:30 -05:00
Niels van Velzen
b2a000251d Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (487 of 487 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2022-03-05 13:13:30 -05:00
Lukáš Kucharczyk
cc76f45dc7 Translated using Weblate (Czech)
Currently translated at 100.0% (487 of 487 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-03-05 13:13:29 -05:00
WWWesten
c671ee1229 Translated using Weblate (Esperanto)
Currently translated at 100.0% (487 of 487 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-03-05 07:53:31 -05:00
El Koulali András
67760232a7 Translated using Weblate (Hungarian)
Currently translated at 100.0% (487 of 487 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-03-05 07:53:31 -05:00
Weblate
0f0d2458a7 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-03-05 07:53:31 -05:00
Niels van Velzen
f6274f4549 Lower minimum subtitle size to 10 2022-03-05 13:53:27 +01:00
Niels van Velzen
81b973f6b6 Check mFragment for null value in PlaybackController 2022-03-05 13:53:14 +01:00
Weblate
bc9a7ca585 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-03-04 16:44:52 -05:00
Bill Thornton
955dea63d2 Merge pull request #1491 from nielsvanvelzen/longpress-crash 2022-03-04 16:44:49 -05:00
Niels van Velzen
a7558823bc Fix an issue where long-touching can crash the app 2022-03-04 22:38:28 +01:00
Weblate
41a3334153 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-03-04 16:21:31 -05:00
Bill Thornton
2f16b17a79 Merge pull request #1490 from nielsvanvelzen/dislike
Remove like & dislike
2022-03-04 16:21:28 -05:00
Niels van Velzen
17c45e6145 Remove like & dislike 2022-03-04 22:11:08 +01:00
Bill Thornton
1e39f86801 Merge pull request #1489 from nielsvanvelzen/longpress-menu
Open context menu on long press
2022-03-04 16:09:04 -05:00
Niels van Velzen
0163e00162 Open context menu on long press 2022-03-04 22:01:06 +01:00
Niels van Velzen
de6f84cbe8 Fix various Kotlin warnings 2022-03-03 22:19:31 +01:00
Niels van Velzen
3501038aa9 Explicitly set namespace and application id in build file 2022-03-03 08:41:38 +01:00
Niels van Velzen
9dd2f05ca6 Update AGP to 7.1.2 2022-03-03 08:41:38 +01:00
theGUI001
4fa0228478 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2022-03-02 14:13:28 -05:00
小造xu_zh
15c1786c6a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-03-02 09:13:28 -05:00
WWWesten
af4652982b Translated using Weblate (Hebrew)
Currently translated at 98.9% (488 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/he/
2022-03-01 16:13:28 -05:00
Shahar DynaZor
7ed836de83 Translated using Weblate (Hebrew)
Currently translated at 98.9% (488 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/he/
2022-03-01 13:13:30 -05:00
cameron
5f9f984ac2 bumped SLIDESHOW_DURATION to 30 seconds 2022-03-01 16:26:43 +01:00
cameron
aea04dd077 fixed background cycling 2022-03-01 16:26:43 +01:00
nextlooper42
bbd5a7ba7a Translated using Weblate (Slovak)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-02-28 06:13:27 -05:00
nextlooper42
16ecee2245 Translated using Weblate (Slovak)
Currently translated at 99.7% (492 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-02-27 19:13:27 -05:00
Ocuriz
c7ce74d125 Translated using Weblate (French)
Currently translated at 99.5% (491 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-02-26 21:26:00 -05:00
Ali Dastpour
cc44334019 Translated using Weblate (Persian)
Currently translated at 13.5% (67 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fa/
2022-02-26 11:13:28 -05:00
Cameron
320924e4b2 use ts for exoplayer transcodes (#1466)
* use ts for exoplayer

* removed addAc3Streaming helper

* removed findTranscodingProfile
2022-02-26 09:49:58 +00:00
Cameron
8b57f188e2 use track id for exoplayer track selection instead of guessing (#1469)
* fixed exoplayer track selection

* renamed a variable and changed some comments
2022-02-26 10:38:01 +01:00
Niels van Velzen
fa97f4e453 Migrate FullDetailsActivity to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
cf5a65d668 Migrate TextSearchFragment to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
aa138ac8ab Migrate PhotoPlayerActivity to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
5f626359d9 Migrate ItemListActivity and DetailRowView to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
b9027e62c3 Migrate AudioNowPlayingActivity to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
dc5966da1a Migrate TextUnderButton to view binding
Also removed a lot of unused stuff from it
2022-02-26 10:36:22 +01:00
Niels van Velzen
1360632e35 Migrate NumberSpinner to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
710e43002c Migrate NowPlayingBug to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
e203601a9f Migrate MyDetailsOverviewRowPresenter to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
879ff91afc Migrate ItemRowView to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
45c77cb1f5 Migrate ItemListView to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
89c379e19a Migrate HorizontalGridPresenter to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
f0714bb965 Migrate GridFragment to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
6807455e71 Migrate EnhancedBrowseFragment to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
ff1d735579 Migrate AudioDelayPopup to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
cec1e91b5f Migrate StdGridFragment alphapicker to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
12556343da Migrate NextUpButtons to view binding 2022-02-26 10:36:22 +01:00
Niels van Velzen
d978be4bff Update process lifecycle to avoid startup crash 2022-02-26 10:35:10 +01:00
Oatavandi
bcb1d0a271 Translated using Weblate (Tamil)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2022-02-25 16:00:22 -05:00
Lukáš Kucharczyk
5adc74ccda Translated using Weblate (Czech)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-02-25 16:00:22 -05:00
Lukáš Kucharczyk
db9efc9b0a Translated using Weblate (Czech)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-02-24 12:24:16 -05:00
cameron
299d64d4a0 subtitle fixes 2022-02-24 13:36:39 +01:00
Adam Zvolanek
3ef023afac Translated using Weblate (Czech)
Currently translated at 99.7% (492 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-02-23 21:50:57 -05:00
Csaba
1ef034de46 Translated using Weblate (Hungarian)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-02-23 11:13:26 -05:00
WWWesten
762279e4d6 Translated using Weblate (Esperanto)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-02-23 08:13:26 -05:00
WWWesten
63968aa201 Translated using Weblate (Russian)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-02-23 08:13:26 -05:00
WWWesten
a431f7b026 Translated using Weblate (Kazakh)
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-02-23 08:13:26 -05:00
WWWesten
54b651c1fa Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (493 of 493 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2022-02-23 08:13:26 -05:00
Niels van Velzen
bf1ad6d9da Add 10.8 home section types 2022-02-23 11:50:28 +01:00
Niels van Velzen
450d778454 Disable wildcard imports 2022-02-23 11:45:57 +01:00
lyaschuchenko
b3a75867d6 Translated using Weblate (Ukrainian)
Currently translated at 60.8% (299 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2022-02-22 09:13:28 -05:00
lyaschuchenko
e035aac7bb Translated using Weblate (Ukrainian)
Currently translated at 31.9% (157 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2022-02-21 03:13:25 -05:00
Jim Ma
e91484d007 Translated using Weblate (Chinese (Traditional))
Currently translated at 69.8% (343 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hant/
2022-02-20 07:13:25 -05:00
Jim Ma
5d3cf69a14 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (491 of 491 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-02-20 07:13:24 -05:00
Niels van Velzen
ec8cdedd4f Fix remaining context used before initialization crashes 2022-02-20 12:58:43 +01:00
Cameron
8424e58158 Subtitle rendering optimization (#1455)
* wip render subtitles once per event

* tidied up

* changed wording of debug log

* wip render subtitles once per event

* tidied up

* changed wording of debug log

* added a comment

* hide debug log for the last event unless its useful
2022-02-20 11:39:12 +01:00
Bill Thornton
b23a7bb5e4 Merge pull request #1457 from nielsvanvelzen/context-crash
Fix crash when opening video player
2022-02-19 13:31:09 -05:00
Niels van Velzen
7a605501a9 Fix crash when opening video player 2022-02-19 19:16:23 +01:00
Niels van Velzen
22c50d50f5 Rewrite all unit tests using kotest 2022-02-19 19:01:41 +01:00
Niels van Velzen
2cfd134a83 Remove unused koin-test dependencies 2022-02-19 19:01:41 +01:00
Niels van Velzen
203bcfa13d Move all unit tests to kotlin sourceset, convert TimeUtilsTest.java to TimeUtilsTest.kt 2022-02-19 19:01:41 +01:00
Niels van Velzen
b40efcd845 Receive context in MediaManager.playNowInternal 2022-02-19 11:19:31 +01:00
Weblate
c0875f0717 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-02-19 04:16:13 -05:00
Niels van Velzen
b0c71018f3 Remove some dead code in error handler from ItemRowAdapter 2022-02-19 10:16:09 +01:00
Niels van Velzen
4126f07c6b Close Home and Details activities when no active user found
This prevents the app from crashing after recovering from a crash. It's a temporary solution until the current user data is moved to a repository and the activities are rewritten to make use of that.
2022-02-19 10:16:00 +01:00
Niels van Velzen
8cd28ccf0d Require context for BaseRowItem.getBadgeImage 2022-02-19 10:15:38 +01:00
Niels van Velzen
c6a29166b4 Use closest context instead of TvApp.getApplication in other places 2022-02-19 10:15:38 +01:00
Niels van Velzen
d119261f6c Use getString using closest context
Removes TvApp.getApplication usages when getting strings where possible
2022-02-19 10:15:38 +01:00
Niels van Velzen
d2e09b1d56 Disable blank issues 2022-02-16 21:25:43 +01:00
WWWesten
3347922a7d Translated using Weblate (Esperanto)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-02-16 07:13:23 -05:00
WWWesten
0cc481eb0a Translated using Weblate (Russian)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-02-16 07:13:23 -05:00
WWWesten
e8d9b7e725 Translated using Weblate (Kazakh)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-02-16 07:13:23 -05:00
Lukáš Kucharczyk
62b0323f64 Translated using Weblate (Czech)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-02-14 02:13:22 -05:00
Ocuriz
c22a31566d Translated using Weblate (French)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-02-13 11:13:22 -05:00
val
f4527691ec Translated using Weblate (Estonian)
Currently translated at 6.3% (31 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/et/
2022-02-12 10:13:22 -05:00
cameron
694cd02fbf fix subtitle loading when not transcoding, and burnt in subs not turning off 2022-02-12 13:06:10 +01:00
Cameron
ddca2c9813 exoplayer track selection for audio (#1432)
* proof of concept exoplayer track selection for subs and audio

* replaced break with return for clarity - no change in behavior

* fixed translation of stream indexes to handle weird subtitle/audio arrangements

* forgot to add brackets around an if

* removed subtitle specific code

* prevent re-initializing in videoManager, cleaned up, added comments

* reverted subtitle changes in PlaybackController and VideoManager

* styling

* build upon TrackSelectionOverrides in stopPlayback - no functional difference (yet)

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/VideoManager.java

* added annotations and null checks for streamType

* removed a comment
2022-02-12 13:04:44 +01:00
cameron
013c8f6d85 reverted VideoAdapter getDuration 2022-02-12 12:03:59 +01:00
Niels van Velzen
65e53d340a Update AGP to 7.1.1 2022-02-12 12:02:11 +01:00
Cameron
6a0710d85f show buffered position in seekbar for exoplayer (#1435)
* show buffered position in seekbar for exoplayer

* removed debug log

* removed TODO

* reworked getDuration, added utility function for getting a safe seek position

* renamed getSafePosition to getSafeSeekPosition

* removed check for finishedInitialSeek to do mFragment.setCurrentTime
2022-02-12 10:06:28 +01:00
newton181
2df46ff4fc Translated using Weblate (Spanish (Latin America))
Currently translated at 95.7% (471 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2022-02-11 17:13:22 -05:00
Niels van Velzen
09423e29d3 Remove enableFeaturePreview for version catalogs 2022-02-09 19:04:27 +01:00
gradle-update-robot
9b7f6f7236 Update Gradle Wrapper from 7.3.3 to 7.4.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2022-02-09 19:04:27 +01:00
hoanghuy309
ca4f9146f6 Translated using Weblate (Vietnamese)
Currently translated at 98.1% (483 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-02-09 06:13:20 -05:00
siankatabg
a231cc31f3 Translated using Weblate (Bulgarian)
Currently translated at 29.4% (145 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/bg/
2022-02-08 12:13:21 -05:00
Oskari Lavinto
10e561c8fe Translated using Weblate (Finnish)
Currently translated at 38.0% (187 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2022-02-08 08:13:20 -05:00
cameron
001706708a reset vlc meta position in clearPlaybackSessionOptions 2022-02-08 08:54:36 +01:00
Andrew Lee
28a99226f2 Translated using Weblate (Chinese (Traditional))
Currently translated at 69.9% (344 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hant/
2022-02-08 00:13:20 -05:00
Cameron
e268dbdbb8 fix crashes from changing audio tracks, fix exoplayer not using default audio track (#1409)
* fixed vlc audio track resetting to default, maybe fixed crash when using non default

* fixed audio track issues with libvlc and exo related to transcoding

* typo

* account for equality comparison of non-null obj to null obj

* removed one condition

* wip fixes - libVLC audio stream resetting on seek still broken

* fixed seeking resetting audio index in libVLC - again

* removed some debug logging, fixed libVLC direct play startup

* test

* added back startProgressLoop that was accidentally deleted

* moved debug output inside if so it's clearer whats going on

* cleaned up the code, added comments, removed some debug logs
2022-02-07 17:12:46 +01:00
Niels van Velzen
29623721fa Always use device info from SDK 2022-02-07 07:34:10 +01:00
Niels van Velzen
3c7d6692c4 Fix AutoBitrate causing an app crash when switching users while detecting bitrate 2022-02-07 07:33:49 +01:00
Theofilos Moupasiridis
3e452ba8f3 Translated using Weblate (Greek)
Currently translated at 81.9% (403 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2022-02-06 08:13:19 -05:00
cameron
24d7196774 revert to player.eventlistener 2022-02-05 22:38:57 +01:00
Niels van Velzen
df4b098861 Use Timber instead of (legacy) apiclient logger in StopTranscodingResponse 2022-02-05 18:15:55 +01:00
Niels van Velzen
2c1ec238a5 Fix opening app via leanback channels not showing item 2022-02-05 14:34:34 +01:00
Niels van Velzen
eed8458f3f Check active user from sessionRepository in AuthenticatedUserCallbacks 2022-02-05 14:34:21 +01:00
Niels van Velzen
8e110fcc05 Prevent DreamActivity (screensaver) from opening login screen 2022-02-05 14:34:21 +01:00
Juanpi Suarez
d25311c5fb Translated using Weblate (Spanish (Argentina))
Currently translated at 86.3% (425 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2022-02-05 03:13:19 -05:00
Emil Manea
9a785229fc Translated using Weblate (Romanian)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ro/
2022-02-04 15:13:20 -05:00
Cameron
06fe4d2ecc simplified exoplayer code (#1401)
* simplified exoplayer code


replaced TvApp.getApplication(), replaced Player.EventListener()

removed data and media source factories

* reworked configureExoplayerFactory to return the exoplayer builder

* fixed typo
2022-02-04 08:58:55 +01:00
Cameron
2dcd0d1019 bug report template - changed examples to encourage providing more specific info (#1420)
* Update bug-report.yaml

* Update .github/ISSUE_TEMPLATE/bug-report.yaml
2022-02-04 08:56:47 +01:00
Cameron
15fd2466e1 playback bug report template - changed examples to encourage providing more specific info (#1419)
* Update bug-report-playback.yaml

* Update .github/ISSUE_TEMPLATE/bug-report-playback.yaml
2022-02-04 08:56:40 +01:00
DavidFair
9e74f2dc7a Include Jellyfin Exoplayer FFmpeg dep (#1369)
* Include Jellyfin Exoplayer FFmpeg dep

Port the includes from the Android repo as-is into this repo to include
the dependency

Convert our initialisation to prefer the built in extensions. This
should avoid flaky device logic and matches the Android app choice too.

* Drop check for DCS / DCA on firestick gen 1

FFmpeg should handle the decoding on these devices for us natively, and
likely uses the same codepath as libVLC. This should help us stick with
the native player instead of VLC where possible

* Replace TvApp.getApplication with getting context from activity

This removes another deprecated usage of TvApp by the reviewer

* Add new codecs to list of supported profiles

Adds the new codecs to reflect the new capabilities available from our
FFmpeg extensions.

* Refactor duplicated audio codec list into method

Refactor the duplicated audio codecs. Whilst I can't think of a case
where a user might play say DTS / TrueHD audio files, I equally can't
think of a reason why not to support it.

This simplifies the code, whilst allowing us to still extend the list
with some Audio only codecs for audio direct-play

* Lowercase PCM formats

This matches the format found on the server and the Android mobile
implementation to be safe

* AudioDirectPlayProfile: Replace vaarg with Array<String>

This allows us to easily combine two arrays together without having to
create copies with spread operators.
Internally the copies still function the same as we have an interable
type we are applying joinToString(",") with

* Switch to using EXTENSION_RENDERER_MODE_ON

This will use the system core renderers first. To get the fallback
behaviour we simply needed to add `setEnabledDecoderFallback`. This
allows Exoplayer to try the first decoder, then silently fallback on
error to ffmpeg.

Functionally this matches the implementation goals in the Android Mobile where
they will manually fallback instead. Since we can't access / restart the
media queue easily in this repo.

* Code cleanup from PR review

Addresses various comments where we can improve the readability around
the various changes we've made

* Drop ExoPlayerProfileTests

Since it only check hardcoded values which rarely change are there

* Whitespace tidy up + manual reformatting

Some various tidy ups and manual reformatting as pointed out from the
PR. This helps reduce down the amount of empty whitespace in the file

* Formatting fixes

Various hand-fixes where the formatter hasn't quite got it right
2022-02-03 19:37:31 -08:00
edupoma
2132da187f Translated using Weblate (Catalan)
Currently translated at 89.8% (442 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ca/
2022-02-03 20:13:19 -05:00
Emil Manea
c978ee58ae Translated using Weblate (Romanian)
Currently translated at 76.2% (375 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ro/
2022-02-03 20:13:19 -05:00
edupoma
94ccc84083 Translated using Weblate (Spanish)
Currently translated at 89.8% (442 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2022-02-03 20:13:18 -05:00
Niels van Velzen
f05bf646cc Remove getCurrentActivity usages in VideoManager and PlaybackController 2022-02-03 09:06:12 +01:00
David Fairbrother
490f17019b Move video speed controls to the right of secondary bar
Closed Captions and Subtitles are used far more than this. Especially
since the controller will preserve your speed between videos.
2022-02-03 08:53:26 +01:00
Niels van Velzen
8c01a3d0eb Remove unused codefrom data.compat package (#1417) 2022-02-03 08:43:33 +01:00
Niels van Velzen
fddac39403 Remove "i" prefix from interfaces (#1416)
* Remove "i" prefix from interfaces

* Remove unnecessary GridLoader interface
2022-02-03 08:43:08 +01:00
Bill Thornton
4fa4a18087 Fix default values for library sorting 2022-02-02 22:04:36 +01:00
Bill Thornton
803bf5496c Merge pull request #1412 from nielsvanvelzen/never-call-updatesession-callback-twice
Fix ApiBinder calling callback twice when the success callback fails
2022-02-02 11:13:11 -05:00
Niels van Velzen
fa3a76037f Fix ApiBinder calling callback twice when the success callback fails 2022-02-02 16:54:43 +01:00
Niels van Velzen
ee8dfdb2ee Don't use TextUtilsKt.toHtmlSpanned in ItemRowView.updateWatched 2022-02-02 16:43:49 +01:00
Niels van Velzen
bfd9b58762 Allow HTML in login disclaimer 2022-02-02 16:43:49 +01:00
mortetm
3e64a120c7 Translated using Weblate (Croatian)
Currently translated at 84.3% (415 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hr/
2022-02-01 17:13:18 -05:00
WWWesten
811afdd034 Translated using Weblate (Russian)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-01-31 06:13:18 -05:00
WWWesten
e47de9d892 Translated using Weblate (Kazakh)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-01-31 06:13:18 -05:00
Bill Thornton
e06e7fa4f7 Merge pull request #1399 from nielsvanvelzen/fix-search-provider 2022-01-30 12:34:47 -05:00
Niels van Velzen
6e5919d35a Fix searchable.xml not supporting ${applicationId} 2022-01-30 17:50:40 +01:00
Bill Thornton
4118ec8649 Merge pull request #1398 from nielsvanvelzen/fix-search-provider 2022-01-30 11:30:43 -05:00
Niels van Velzen
58f290f910 Fix MediaContentProvider authority not using ${applicationId} 2022-01-30 17:17:39 +01:00
Niels van Velzen
9a17b8bbfe Migrate NextUpViewModel to use SDK for images 2022-01-29 11:30:56 +01:00
Niels van Velzen
06e695e654 Migrate BaseItemUtils.buildChapterItems to use SDK for images 2022-01-29 11:30:56 +01:00
Niels van Velzen
c5182b34f8 Migrate BackgroundService to use SDK for images 2022-01-29 11:30:56 +01:00
Niels van Velzen
f8c7ba0e83 Add opus as supported audio codec for ExoPlayer 2022-01-29 10:37:25 +01:00
Niels van Velzen
9bcf6f7d20 Suppress RestrictedApi issues for Leanback library in LeanbackChannelWorker 2022-01-29 10:36:24 +01:00
Niels van Velzen
ea080fed7a Upgrade Android Gradle Plugin to 7.1.0 2022-01-29 10:36:24 +01:00
cameron
799201c670 queue row should position itself reliably now 2022-01-29 10:29:41 +01:00
cameron
e484722312 removed shufflequery, removed shuffle from the artist/album query builder 2022-01-29 10:28:52 +01:00
cameron
70227bdf74 shuffle the audio queue locally 2022-01-29 10:28:52 +01:00
cameron
79457860e2 reset lastUniqueProgressEvent and lastReportedPlaybackPosition in stopProgressLoop 2022-01-29 10:26:31 +01:00
cameron
087d99aad4 temporary handler for device going to sleep while playing, release player on complete 2022-01-29 10:26:31 +01:00
cameron
7cd7de4795 handle audio focus loss, set newplaying bug pos to 0 on idle 2022-01-29 10:26:31 +01:00
cameron
e8fed01aa5 fixed buttons not updating onresume when player is not initialized 2022-01-29 10:26:31 +01:00
newton181
f0256613e6 Translated using Weblate (Spanish (Mexico))
Currently translated at 86.7% (427 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2022-01-28 20:13:16 -05:00
Niels van Velzen
452f4d80f3 Fix ImageHelper returning wrong URL when preferParentThumb is true 2022-01-27 19:25:42 +01:00
Niels van Velzen
09013200b0 Initial ImageUtils SDK migration (#1377)
* Send ApiClient instance to ImageUtils.getPrimaryImageUrl

* Add ImageHelper to create image urls using the SDK

* remove apiclient parameter from ImageUtils functions
2022-01-25 15:10:21 +01:00
Cameron
520c1b4951 fix crash from empty or null browsecommand sent from android client (#1385)
* fix crash when remote controlling and quickly press back on android phone

* replaced try catch with guard

* use utils isempty in guard
2022-01-25 14:32:09 +01:00
Thilo Jaeggi
0de3437e4e Translated using Weblate (German)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-01-25 05:13:15 -05:00
Niels van Velzen
ca170a28f8 Add repository condition to stale workflow 2022-01-25 08:36:04 +01:00
K3rnelPan1c
75eb179688 add stale issue check workflow (#1379)
* add stale issue check workflow

this should replace the functionality of the discontinued stale-bot

* change PAT use for stale action

* change to address review comments
2022-01-24 08:56:23 +01:00
Romain Eggermont
a275ad83c0 Translated using Weblate (French)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-01-23 10:29:23 -05:00
Niels van Velzen
014e52d1a8 Fix nullability for UserViewsRepository.isSupported and UserViewsRepository.allowViewSelection 2022-01-23 15:57:34 +01:00
Niels van Velzen
198fd5ae95 Move user view related logic to UserViewsRepository 2022-01-23 08:35:27 +01:00
Niels van Velzen
1c67dff399 Add libraries link to customization preferences
This is a shortcut to open the display preferences for user views
2022-01-23 08:35:27 +01:00
Niels van Velzen
16fc07abc0 Remove unused stuff from MyDetailsOverviewRow 2022-01-22 16:25:55 +01:00
David Fairbrother
7225d0d053 Add check to PlaybackController for LiveTV Case
Since we no longer create a speed controller when viewing live TV
nothing will reset the playback speed.
It's easier (from a bug fixing POV) to know that speed controller is not
involved in live TV at all, even if it adds additional checks to
PlaybackController
2022-01-22 16:01:23 +01:00
David Fairbrother
3c97be93aa Hide speed controls when displaying live TV
Hide the playback speed controls, since this is effectively useless with
the speed being forced to 1x
2022-01-22 16:01:23 +01:00
David Fairbrother
0da44393a0 Cap speed at 1.0 when live TV is on
We could allow various things, like a speed less than 1 or greater than
until we exhaust the buffer.

Unfortunately I don't have the equipment to test more complex
interactions, so lets play it safe and force it always to 1.0
2022-01-22 16:01:23 +01:00
cameron
0bf09f92e0 removed condition that shouldnt have been added 2022-01-22 15:02:49 +01:00
cameron
2bc8fc1df2 dynamically fill button row and hide extra 2022-01-22 14:48:39 +01:00
Niels van Velzen
e1dc58ff16 Remove 1.5 Mbit/s from max streaming bitrate option
The calculated name for it was wrong and removing it was easier then fixing the name.
2022-01-22 14:46:49 +01:00
ValentinChirikov
b7f36b6561 Translated using Weblate (Russian)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-01-22 06:13:14 -05:00
nextlooper42
4a56ddab5e Translated using Weblate (Slovak)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-01-21 13:13:14 -05:00
David Fairbrother
4313591525 Replace deprecated SimpleExoPlayer -> ExoPlayer
As per the 2.16.0 release notes:
https://github.com/google/ExoPlayer/blob/release-v2/RELEASENOTES.md#2160-2021-11-04

SimpleExoPlayer is deprecated, and all functionality has been moved to
ExoPlayer. This allows us to replace these calls as-is and future proofs
us too.
2022-01-21 17:16:16 +01:00
Cameron
620c806f6a on resuming fulldetails activity give play button focus if resume button isnt eligible (#1371)
* give play button focus if resume button isnt eligible

* removed unnecessary code
2022-01-21 17:14:03 +01:00
Cameron
3aee08b245 patch bug where video queue can be messed up and item progress is incorrect after playback (#1372)
* check if fragment belongs to curr session, release player in controller

* guard against VideoManager being null
2022-01-21 17:13:40 +01:00
nextlooper42
0da05cc17c Translated using Weblate (Slovak)
Currently translated at 89.8% (442 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-01-21 09:13:13 -05:00
Deleted User
f73c2f2efa Translated using Weblate (Swedish)
Currently translated at 85.5% (421 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2022-01-20 10:13:13 -05:00
Cameron
29c035e5c8 more playback leak fixes (#1368)
* fixed null reference crashes and improved handling of playing incompatible item

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/PlaybackController.java

* fixed leaks in main player

* fixed leaks in live tv

* removed unused overrides, fixed formatting
2022-01-20 13:48:53 +01:00
Cameron
c85751ed31 Bypass hls seeking behavior for devices not using exoplayerprofile (#1362)
* wip workaround for device that rejects hls

* fixed condition in onprepared, removed condition in seek

* fix for live tv and hls, prevent seeking on starting live tv playback
2022-01-19 19:43:08 +01:00
Cameron
6251ed404b fixed crashes on failing to start playback of an unsupported or unavailable video (#1360)
* fixed null reference crashes and improved handling of playing incompatible item

* added some delay before the activity finished

* fixed null reference crashes and improved handling of playing incompatible item

* added some delay before the activity finished

* a couple additional guards against the player being null

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/PlaybackController.java

* more guards

* fixed activity not finishing on too many errors
2022-01-19 19:31:48 +01:00
David Fairbrother
ccaf86008e Exoplayer: Replace setPlaybackSpeed with setPlaybackParameters
Replace the deprecated / removed method setPlaybackSpeed with the more
modern setPlaybackParameters. This matches the current docs for
exoplayer
2022-01-19 19:09:59 +01:00
Lukáš Kucharczyk
eff21d0fa6 Translated using Weblate (Czech)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-01-19 05:13:13 -05:00
Penguins114
395d384908 Translated using Weblate (Japanese)
Currently translated at 72.3% (356 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ja/
2022-01-18 21:13:13 -05:00
Bill Thornton
55517d12d3 Merge pull request #1363 from nielsvanvelzen/stale-is-stale 2022-01-18 18:55:22 -05:00
Niels van Velzen
4709e6f82d Remove stale.yml 2022-01-18 21:44:07 +01:00
Oatavandi
eafd84c2a1 Translated using Weblate (Tamil)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2022-01-18 13:13:13 -05:00
hoanghuy309
d1bc46529e Translated using Weblate (Vietnamese)
Currently translated at 97.5% (480 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-01-18 08:13:13 -05:00
WWWesten
643fda9ed7 Translated using Weblate (Ukrainian)
Currently translated at 31.3% (154 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2022-01-18 08:13:13 -05:00
wolong gl
5f82d12e96 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-01-18 08:13:13 -05:00
Renaldo Eduardo Freire
9d49bad241 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2022-01-18 08:13:13 -05:00
Niels van Velzen
46d2fbe9a5 Remove unused RemoveCurrentItem and RefreshRows CustomMessage types 2022-01-18 10:16:53 +01:00
Niels van Velzen
0c34e7dea4 Remove unused QueryType values (#1356)
* Remove unused ViewType enum

* Remove unused StaticServers and Users QueryTypes

* Remove unused ContinueWatching QueryType

Continue watching in the home screen uses a different type (probably StaticItems)
2022-01-18 10:16:32 +01:00
Alan Azar
a4b6516e86 Translated using Weblate (Arabic)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2022-01-18 01:13:13 -05:00
WWWesten
050945b6a3 Translated using Weblate (Esperanto)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-01-17 16:00:23 -05:00
WWWesten
f2e2996a32 Translated using Weblate (Kazakh)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-01-17 16:00:23 -05:00
WWWesten
e86c32bcb0 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2022-01-17 16:00:23 -05:00
Niels van Velzen
3809fe6a76 Fix typo "neccesary" > "necessary" 2022-01-17 22:00:18 +01:00
WWWesten
43194095ed Translated using Weblate (Kazakh)
Currently translated at 98.1% (483 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-01-17 12:13:12 -05:00
Csaba
e2bcecec2b Translated using Weblate (Hungarian)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-01-17 09:13:15 -05:00
nextlooper42
b72b6bd60d Translated using Weblate (Slovak)
Currently translated at 89.2% (439 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-01-17 09:13:14 -05:00
Dee
7e02b012c7 Translated using Weblate (Chinese (Simplified))
Currently translated at 91.0% (448 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-01-17 09:13:13 -05:00
WWWesten
984df9c613 Translated using Weblate (Kazakh)
Currently translated at 94.1% (463 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-01-17 09:13:13 -05:00
Alex Camilleri
a35d16372b Translated using Weblate (Italian)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-01-17 09:13:12 -05:00
cameron
9f7478a7f2 fixed a crash caused by the leak fixes pr 2022-01-17 15:10:27 +01:00
hoanghuy309
91c4629d20 Translated using Weblate (Vietnamese)
Currently translated at 97.5% (480 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-01-16 19:13:14 -05:00
WWWesten
8b685aaf8a Translated using Weblate (Russian)
Currently translated at 100.0% (492 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-01-16 19:13:13 -05:00
Niels van Velzen
f1e5f9ebe0 Translated using Weblate (Dutch)
Currently translated at 86.1% (424 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2022-01-16 19:13:13 -05:00
millallo
e67c2da53c Translated using Weblate (Italian)
Currently translated at 98.7% (486 of 492 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-01-16 19:13:13 -05:00
Weblate
e5e61107ef Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2022-01-16 10:08:11 -05:00
Niels van Velzen
a9845fd3b2 Use slide right animation for preferences theme 2022-01-16 16:08:07 +01:00
Niels van Velzen
d5f85d8015 Merge lazyOptionsScreen and optionsScreen into a single (non-lazy) getter 2022-01-16 16:08:07 +01:00
Niels van Velzen
21d495fdd2 Remove unused strings
Only in main strings.xml - translations will be removed automatically by Weblate
2022-01-16 16:08:07 +01:00
Niels van Velzen
669893be12 Refactor preferences UI
- Use separate screens for a few main categories
- Categorize preferences
- Reorder preferences/categories/screens
- Rename strings to make more sense
- Add missing descriptions
- Rename "settings" to "preferences"
- Rename "user" to "account"
- Use Normal Capitalization Instead Of Title Casing
- Add icons to preference links and about items
- Remove Utils.getVersionString
2022-01-16 16:08:07 +01:00
Niels van Velzen
5545f29119 Fix bad string formatting in server issue strings 2022-01-16 16:08:07 +01:00
Niels van Velzen
8ed44a6200 Use default width for preferences overlay 2022-01-16 16:08:07 +01:00
siankatabg
72ae1d3e3e Fix broken subtitles line wrapping (#1346)
* Fix broken subtitles line wrapping after my last PR

Apparently I did a mistake using the ReplacementSpan for outlining the text as it doesn't support line wrapping, so lets do it with a custom TextView :)

* Code fixes

* Another one...
2022-01-16 16:07:31 +01:00
Cameron
1e8ea6cb5b use HLS for exoplayer with transcoded streams (#1342)
* WIP use hls for transcoded streams


replaced progressive media source, use mediaitem

moved hls stuff to exoplayer profile, revert some playbackcontroller logic so vlc works


hevc support - needs testing

* edited wip profile adder

* removed wip profile adder

* removed debug output

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/VideoManager.java

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

* Update app/src/main/java/org/jellyfin/androidtv/util/profile/ExoPlayerProfile.kt

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

* resolved merge conflict

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2022-01-16 12:18:28 +01:00
Cameron
2364acfc1b fixed some playback leaks (#1350)
* fixed some playback leaks

fixed leaks in caused by report loop in videomanager

clear references to videomanager and overlay fragment in playbackcontroller when playback ends
restored method accidentally deleted

disabled screensaver

handle home button interrupting playback by ending the playback activity

* added back missing activity finish

* missed a few setKeepScreenOn
2022-01-16 11:41:49 +01:00
nextlooper42
3ff1cd142b Translated using Weblate (Slovak)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-01-15 10:13:11 -05:00
Niels van Velzen
c8cf372301 Translated using Weblate (Dutch)
Currently translated at 98.3% (469 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2022-01-15 07:13:11 -05:00
WWWesten
b0052caa18 Translated using Weblate (Kazakh)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-01-15 04:13:11 -05:00
WWWesten
49139a8ee0 Translated using Weblate (Esperanto)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-01-14 19:13:11 -05:00
Zorglube
73bcf64781 Translated using Weblate (French)
Currently translated at 98.7% (471 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-01-14 11:13:11 -05:00
Renaldo Eduardo Freire
545b9f958f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2022-01-14 04:13:11 -05:00
Theofilos Moupasiridis
1355f36048 Translated using Weblate (Greek)
Currently translated at 90.3% (431 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2022-01-14 00:13:13 -05:00
Nawaf
f4db105c22 Translated using Weblate (Arabic)
Currently translated at 97.9% (467 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2022-01-13 19:13:11 -05:00
WWWesten
d61e3ec607 Translated using Weblate (Esperanto)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-01-12 16:13:11 -05:00
WWWesten
b201be7840 Translated using Weblate (Russian)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-01-12 16:13:10 -05:00
WWWesten
635f4d3542 Translated using Weblate (Kazakh)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-01-12 16:13:10 -05:00
WWWesten
61a8799c80 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2022-01-12 16:13:10 -05:00
Bill Thornton
e8db923f9c Merge pull request #1343 from nielsvanvelzen/let-me-see-my-shitty-photo-albums-please-you-stupid-app
Fix app crash when opening photo albums
2022-01-12 13:46:28 -05:00
Niels van Velzen
2eb16026b8 Fix app crash when opening photo albums 2022-01-12 19:40:52 +01:00
avicarpio
0ba9530aa6 Translated using Weblate (Catalan)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ca/
2022-01-12 13:13:17 -05:00
Dzonkins
67c59a4041 Translated using Weblate (Serbian)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sr/
2022-01-12 13:13:14 -05:00
Csaba
06f9e026b8 Translated using Weblate (Hungarian)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-01-12 13:13:14 -05:00
小造xu_zh
a5fac70968 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-01-12 13:13:14 -05:00
Alfonso Scarpino
e4ac9e8624 Translated using Weblate (Italian)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-01-12 13:13:14 -05:00
avicarpio
32aa1f60f7 Translated using Weblate (Spanish)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2022-01-12 13:13:13 -05:00
Lukáš Kucharczyk
40043c8b6d Translated using Weblate (Czech)
Currently translated at 100.0% (477 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-01-12 13:13:10 -05:00
Csaba
6254b8181d Translated using Weblate (Hungarian)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-01-12 02:50:10 -05:00
DavidFair
17ba4828a7 Add Playback speed controls (#1302)
* Add basic mocks to unit test PlaybackController

Adds the various basic mocks required to unit test Playback Controller.

At a high level the steps we perform are:
- Prep mocks for deps injected by constructor
- Prep mocks for Koin, then pass these as singletons
- Patch up various calls out to Android SharedPrefs ...etc.

This allows us to construct a PlaybackController in a JVM context now.
These mechanisms will be useful for later in the patch series too....

* Add setPlayback impl and tests to controller/view

Adds setPlaybackSpeed to the view and controller.
The controller has associated tests which built on the earlier ones.

Unfortunately the view also has logic in it and I've tried to (ab)use
mocks to factor out the ExoPlayer factory. However because it's a static
final the mock will always defer to the real impl.

I could introduce some sort of interface and abstract out the calls to
the underlying players using an adapter pattern so we can test this. But
alas, the player rewrite will obselete this and I'm 8+ hours into
getting tests to work...

* Add VideoSpeedController and tests

Adds a new controller for VideoSpeed, to help encapsulate items
following SRP.
This also adds a mechanism to track the users most recent speed
selection, so switching from videos / to other media and back will
restore the user's selection on the next video.

* Switch to using Enums to representing speed

This makes it much easier to compare for equality and has built in
indexing making the menu much easier to work with.

In comparison using doubles directly would have required us to add a
comparison lambda in the view to correctly detect what was selected /
determine what is selected.

* Wire up view for Playback speed controls

Wires up the view component for playback speed controls, based on the
pattern used in various other action items.

* Preserve playback speed between videos

- Update the PlaybackController to internally track the last playback
speed, but still treat it as a black box from all external callers
- Add a test we don't throw a NPE trying to set it before init
- There's no test for checking this value gets forwarded (see below)
- Change the activity to create the speed controller whilst the
ControlGlue is being created.

This is unfortunately a bit of a hack. There isn't a signal for
onPlaybackStarted or similar we can attach to from the playback
controller so we have to mess with the internals. Something I've tried
to avoid greatly.

I've tried adding a unit test with mocks, which was surprisingly going
well. Until we create LibVLC objects mid-way. These needs some sort of
factory pattern to inject mocks else it will query Android for playback
capabilities failing the test.

I'm going to leave this particular test as a manual case as I extracting
factories out with the pending rewrite is a futile effort.

* Fix various nits / warnings from CI

This includes:
- Using magic values in our enum
- Impliclt Locale issues
- Nullability checks

* Port drawable from Exoplayer into drawables

Ports the playback speed drawable into the projects list of drawable
items, following PR feedback.

The license is preserved (Apache 2.0) and compatible with the GPL
license of this project.

* Apply various code improvements to PlaybackSpeedAction

Includes the following from the PR review:
- Whitespace tidy up
- Implicitly return from lambda instead of explicitly naming it
- Use apply to remove a significant amount of boilerplate

* Add check that setPlaybackSpeed is sane

This will ignore any values that are clearly incorrect i.e. <0.25.

This means the playback controller can still have a sentinel value of
-1.0 to ensure the model controlling speed is in-place correctly. Whilst
not breaking user playback by default if something goes wrong.

As this file directly interfaces with the video manager (which holds
surfaces) we can't easily make a test for it, so leave this block
untested

* DI interface instead of concrete type

Inject the interface for shared preferences rather than the concrete
type.
This avoids Mockk trying to grab the abstract class underneath, which
would run the real impl instead. It also brings our DI in this file more
in-line with the commonly used pattern

* Address PR comments

- Revert some noisy automatic formatting
- Move speed steps out of companion object
- Drop supuerfluous interface

* Tidy up VideoSpeedController from PR review

- Use Kotlin a kotlin setter directly
- Make the variable public
- (Small amount of rewiring to make everything work)

* Drop PlaybackController tests and revert DI

Drop PlaybackController test. We can't simply inject by interface as
this isn't type safe with how it's currently implemented.

Since it's likely PlaybackController is going to undergo a major rework
with pending future work, let's simply drop the tests and revert the
associated changes.
2022-01-12 08:50:06 +01:00
hoanghuy309
483ad96f50 Translated using Weblate (Vietnamese)
Currently translated at 98.5% (469 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-01-12 01:13:10 -05:00
WWWesten
70a33f2aad Translated using Weblate (Esperanto)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2022-01-11 18:13:12 -05:00
Dzonkins
55329048b3 Translated using Weblate (Serbian)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sr/
2022-01-11 18:13:12 -05:00
nextlooper42
7fe910cb08 Translated using Weblate (Slovak)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-01-11 18:13:11 -05:00
WWWesten
35339ec33f Translated using Weblate (Russian)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2022-01-11 18:13:10 -05:00
WWWesten
1d8aaffcb8 Translated using Weblate (Kazakh)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2022-01-11 18:13:10 -05:00
WWWesten
6ae22bbd33 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2022-01-11 18:13:10 -05:00
Lukáš Kucharczyk
f14dd1f441 Translated using Weblate (Czech)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-01-11 10:13:10 -05:00
Niels van Velzen
85321d89b9 Show server connection feedback in UI 2022-01-11 13:17:33 +01:00
Niels van Velzen
7bd92d6b19 Collect server issues in ServerRepository.add 2022-01-11 13:17:33 +01:00
Thomas Schwery
a52ccfd515 Translated using Weblate (French)
Currently translated at 99.1% (464 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-01-10 03:13:09 -05:00
nextlooper42
41c37ffd69 Translated using Weblate (Slovak)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2022-01-09 19:13:09 -05:00
Penguins114
3ff4471e7a Translated using Weblate (Japanese)
Currently translated at 84.8% (397 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ja/
2022-01-09 11:13:11 -05:00
Joel Jose
6572ed093a Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2022-01-08 07:13:09 -05:00
Renaldo Eduardo Freire
dab3dfaf42 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2022-01-06 01:13:08 -05:00
Bill Thornton
1f122e862a Merge pull request #1334 from jellyfin/issue-template-typo-1 2022-01-05 23:22:58 -05:00
Cameron
318828ac2e Update bug-report-playback.yaml 2022-01-05 20:17:29 -08:00
Tony
41e43d7b10 Translated using Weblate (Indonesian)
Currently translated at 70.5% (330 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/id/
2022-01-05 14:13:08 -05:00
Csaba
e6ba5d890e Translated using Weblate (Hungarian)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2022-01-05 03:13:07 -05:00
cameron
a481410d6e replaced magic number 2022-01-05 08:36:14 +01:00
mueslimaker
9e41b5e648 added logging for discontinuity and timeline change 2022-01-05 08:36:14 +01:00
Thomas Schwery
f4f3f178a5 Translated using Weblate (French)
Currently translated at 98.7% (462 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2022-01-04 05:05:56 -05:00
dependabot[bot]
a5d72c24bd Bump burnett01/rsync-deployments from 5.1 to 5.2
Bumps [burnett01/rsync-deployments](https://github.com/burnett01/rsync-deployments) from 5.1 to 5.2.
- [Release notes](https://github.com/burnett01/rsync-deployments/releases)
- [Commits](https://github.com/burnett01/rsync-deployments/compare/5.1...5.2)

---
updated-dependencies:
- dependency-name: burnett01/rsync-deployments
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-03 18:07:01 +01:00
hoanghuy309
94a2fd4f38 Translated using Weblate (Vietnamese)
Currently translated at 98.5% (461 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2022-01-03 04:05:56 -05:00
edwardewinter
302e2b6e6e Translated using Weblate (Swedish)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2022-01-03 04:05:56 -05:00
Tim Gaubel
fbc5cc0050 Translated using Weblate (German)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-01-02 15:05:56 -05:00
millallo
1d5f827392 Translated using Weblate (Italian)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2022-01-02 12:05:57 -05:00
Im-Mefju
89ee540fde Translated using Weblate (Polish)
Currently translated at 97.2% (455 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2022-01-02 12:05:57 -05:00
Mark Shui Hu
375c47e733 Translated using Weblate (Dutch)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2022-01-02 12:05:56 -05:00
ldoench
cd1a97a49f Translated using Weblate (German)
Currently translated at 99.7% (467 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2022-01-02 12:05:56 -05:00
David Fairbrother
ef29134163 Run formatter over playback controller
Runs the Android studio formatter over the playback controller. This
should make it easier to use automated tooling and clear up some diffs
which have touched this file too.
2022-01-02 15:59:26 +01:00
bestkayle
2cfeeaf6a2 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2022-01-01 08:05:55 -05:00
Cameron
8001196183 improved skip behavior - especially with repeated button presses (#1325)
* improved skipping behavior

* renamed property to mSeekPosition
2022-01-01 11:38:38 +01:00
Lukáš Kucharczyk
110a353cf6 Translated using Weblate (Czech)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2022-01-01 05:05:56 -05:00
WWWesten
21dce4be19 Translated using Weblate (Esperanto)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-12-31 11:05:57 -05:00
denisplay
c47e94a2a9 Translated using Weblate (Hebrew)
Currently translated at 87.8% (411 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/he/
2021-12-31 11:05:56 -05:00
WWWesten
5b55ca7eb9 Translated using Weblate (Russian)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-12-31 11:05:56 -05:00
WWWesten
15c14d92ca Translated using Weblate (Kazakh)
Currently translated at 100.0% (468 of 468 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-12-31 11:05:55 -05:00
Cameron
93b820758f reset player error count if playback stabilizes (#1324)
* reset player error count if stable

* moved retry count reset to more sensible location
2021-12-31 11:46:36 +01:00
WWWesten
cf2cef35f6 Translated using Weblate (Arabic)
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-12-31 05:22:19 -05:00
Cameron
05329ff83e allow setting the nextup timer duration to infinite (#1274)
* replaced 0s with infinity character, nextup timer doesnt start if timeout is 0s/infinity

* updated code to reflect actual range of 0 to 30000

* moved preferences outside view, updated pref values

* removed unused variable

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/nextup/NextUpButtons.kt

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/nextup/NextUpButtons.kt

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

* made label an R string, use constant for timer value, inject pref

* val -> const val

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/nextup/NextUpFragment.kt

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2021-12-31 11:22:15 +01:00
Niels van Velzen
3e862b8b82 Translated using Weblate (Arabic)
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-12-30 16:45:17 -05:00
Bill Thornton
07e535ead0 Merge pull request #1323 from nielsvanvelzen/slf4j-timber
Replace slf4j-android with slf4j-timber
2021-12-30 13:30:35 -05:00
Niels van Velzen
13b8ce2c5b Replace slf4j-android with slf4j-timber 2021-12-30 19:16:10 +01:00
DavidFair
926a2b7a4b Add Mockk and one test to exercise the new dep (#1312)
* Add Mockk to test framework deps

Add Mockk as this is aware of Kotlin inheritence unlike Mockito.
This primarily shows up where classes are not marked open. We can
either:
- Mark all unit tested classes open (least viable option)
- Add boilerplate to Mockito each time we test a Kotlin class
- Add a mocking framework that is Kotlin aware.

In this case I've opted for the latter, since it also avoids us having
to look up the boilerplate for static mocks...etc.

* Stub out testing Android.utils.log

Slf4j will try to invoke IsLoggable, despite stubbing out everything
else, which is explicitly disabled within the Android SDK.

We could revert to hacks, such as using Android -> returnDefaultValue=true in the
testing options. But according to the docs this should be a last resort.

Instead we can simply stub out the logging to forward calls to println,
allowing us to mock / init anything that uses SLF4J implicitly.

* Add tests and null checks for DeviceUtils

This commit does two things to help testing going forwards:

- It adds a null check for Build.MODEL, typically found in unit tests.
Allowing us to simply avoid having to mock all the various capability
tests which were throwing NPEs in unit tests.

- Adds tests for the existing functionality. This requires Mockk to
easily overwrite static class methods. We also add a small shim method
to make mocking much easier too.

* Run CustomSeekProvider through automatic Java->Kotlin

Convert the file to Kotlin. This means all of our unit tests that use
Mockk will have the same syntax inside, making it much easier for future
developers to reason with.

* Convert Mockito to Mockk

Converts the single usage of Mockito to Mockk, so we can use the same
mocking framework throughout the codebase.

* Drop Mockito in favour of Mockk

Drops Mockito to use Mockk throughout the project.
This is because we have a mix between Java and Kotlin. The latter is
"harder" to mock as classes are not marked open by default.

This means Mockito requires boilerplate in comparison to Mockk.
Additionally, using a single framework lowers the burden on developers
to known multiple tools

* Run Android Studio formatter over code

Despite having format on save enabled, many lines were missed (probably
from the cherry-pick).
Run formatter over the code to address PR reviewer comments.

* Return string instead of null from getBuildModel

This removes a number of null checks from the implementation, and allows
us to mark the method as nonNull too.
2021-12-30 18:44:21 +01:00
Cameron
c38570186b Fix irregular playback overlay showing and hiding (#1321)
* overlay show/hide fixes

* replaced use of setFadingEnabled in hide method to prevent calling show again
2021-12-30 14:01:24 +01:00
Cameron
e68ed8f738 made fullDetails button refresh after playback more reliable (#1320)
* made button updates after playback more reliable

* removed redundant condition
2021-12-30 13:59:54 +01:00
wolong gl
6f39548eaf Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-12-30 06:05:55 -05:00
millallo
3db66ac834 Translated using Weblate (Italian)
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-12-30 06:05:55 -05:00
4d1m
a2697e8c8c Translated using Weblate (Romanian)
Currently translated at 89.7% (419 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ro/
2021-12-29 20:05:54 -05:00
Fahad
4c5eb0d02a Translated using Weblate (Arabic)
Currently translated at 99.7% (466 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-12-29 02:05:54 -05:00
WWWesten
ff2fca0d81 Translated using Weblate (Esperanto)
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-12-28 17:05:55 -05:00
WWWesten
ca028be237 Translated using Weblate (Russian)
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-12-28 17:05:54 -05:00
WWWesten
bd576dfda1 Translated using Weblate (Kazakh)
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-12-28 17:05:54 -05:00
Lukáš Kucharczyk
bd7313f05d Translated using Weblate (Czech)
Currently translated at 100.0% (467 of 467 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-12-28 17:05:54 -05:00
siankatabg
eadf7b93df Add subtitles font size and background configurations (#1303)
* Add subtitles font size and background configurations

Added seekbar for choosing subtitles font size (18-38 range, keeping 28 by default)
Added text outlining for better legibility and an option to disable the subtitles black background.

* Fixes
2021-12-28 18:07:36 +00:00
David Fairbrother
480a71d1a6 Emit JUnit output whilst running gradle through CLI
Tweaks the gradle script to forward on test failures in a way that the
stack trace is preserved.

Previously, the stack pointed to a line after the test suite, e.g. line
101 on an 80 line file.
2021-12-28 18:54:17 +01:00
Bill Thornton
c7d8fe09a0 Merge pull request #1316 from nielsvanvelzen/sdk-112
Update SDK to 1.1.2
2021-12-27 11:51:06 -05:00
Niels van Velzen
be9890f5ab Update SDK to 1.1.2
Fixes an crash when using display preferences
2021-12-27 16:34:57 +01:00
Cristian
106039bedc Translated using Weblate (Spanish)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-12-26 10:05:53 -05:00
cameron
6a297ce7dc signal listeners only after playback starts, replace runnables 2021-12-26 11:27:02 +01:00
cameron
7475d196da stop audio before queue is cleared to prevent bad reference 2021-12-26 11:23:26 +01:00
WWWesten
0e892eed1e Translated using Weblate (Kazakh)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-12-25 16:05:53 -05:00
David Fairbrother
2990ffad09 Add Koin unit testing deps implementation
This allows Koin to do DI during unit tests and allows us to establish
Junit rules which involve Koin
This is essential for testing some classes as the playback code, where
DI is used heavily
2021-12-25 12:17:24 +01:00
mueslimaker
6951a7fe26 fixed nowplaying scrolling on queue row gaining focus 2021-12-23 13:59:59 +01:00
gradle-update-robot
8113f01777 Update Gradle Wrapper from 7.3.2 to 7.3.3.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-12-22 14:46:59 +01:00
WWWesten
c6850df658 Translated using Weblate (Welsh)
Currently translated at 33.8% (157 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cy/
2021-12-21 11:05:56 -05:00
WWWesten
be2935ee5d Translated using Weblate (Turkish)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2021-12-21 11:05:52 -05:00
WWWesten
8014be1c55 Translated using Weblate (Russian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-12-21 11:05:52 -05:00
Thomas Schwery
798b498417 Translated using Weblate (French)
Currently translated at 98.7% (458 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-12-21 11:05:52 -05:00
WWWesten
ea4d88bdb4 Translated using Weblate (English (United Kingdom))
Currently translated at 96.9% (450 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2021-12-21 11:05:52 -05:00
WWWesten
b21a222f1e Added translation using Weblate (Estonian) 2021-12-21 04:54:37 -05:00
WWWesten
df27e8b937 Added translation using Weblate (Welsh) 2021-12-21 04:52:45 -05:00
Georgios Stamos
a22bdc185b Translated using Weblate (Bulgarian)
Currently translated at 19.1% (89 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/bg/
2021-12-20 22:05:53 -05:00
Niels van Velzen
59150dc811 Update all dependencies 2021-12-20 09:33:42 +01:00
Niels van Velzen
cac209f47f Always use version references in version catalog
This makes it easier to update the versions and makes the file more readable
2021-12-20 09:33:42 +01:00
Niels van Velzen
a8564c53aa Target API 31 2021-12-20 09:33:42 +01:00
LowHigh
6be7f34e63 Translated using Weblate (French)
Currently translated at 95.4% (443 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-12-19 21:05:51 -05:00
Niels van Velzen
ced03b82de Move Gradle plugins to plugin catalog (#1296)
* Move Gradle plugins to plugin catalog

* Fix linter config for playback module
2021-12-19 14:44:28 +01:00
mueslimak3r
20138f2d38 fixed a regression in player prepare 2021-12-19 12:22:12 +01:00
Cody Robibero
a66ea7fa79 Merge pull request #1295 from nielsvanvelzen/release-aab 2021-12-18 16:36:48 -07:00
Cameron
defc7af702 prevent unwanted interactions when music player screensaver active (#1290)
* prevent unwanted interactions with screensaver active

* Update app/src/main/java/org/jellyfin/androidtv/util/KeyProcessor.java

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

* changed popup menu name and removed comment

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2021-12-19 00:10:31 +01:00
Niels van Velzen
8005531831 Also build app bundle for Google Play in CI 2021-12-18 22:54:10 +01:00
mueslimaker
07d8de22cc if an audio queue exists show add to queue instead of play in itemlistactivity 2021-12-18 22:45:02 +01:00
Oatavandi
9af1e232b4 Translated using Weblate (Tamil)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-12-17 13:05:50 -05:00
gradle-update-robot
e3c471e141 Update Gradle Wrapper from 7.3.1 to 7.3.2.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-12-16 08:52:15 +01:00
mueslimaker
1771f28012 removed condition that always reports !canSeek when using fire tv 2021-12-15 22:53:23 +01:00
mueslimaker
c7fbb1b3ef bring firetv controls in line with the new player controls 2021-12-15 22:53:23 +01:00
mueslimaker
1741795c89 fixed add artist to queue, added shuffle artist 2021-12-15 08:52:51 +01:00
mueslimaker
85024c7563 audio play from doesnt discard the preceding items in its parent 2021-12-15 08:50:48 +01:00
Cameron
dd368cc703 Fixed some remote play commands (#1273)
* fixed up mediaManager queue and audio reporting

* fixed remote playback commands pt 1/2

* audio pause reports to server sooner now

* separate check for audio focus and player init, stopAudio optionally releases player

* immediate pause reporting, slowed down report loop when paused

* resumeAudio calls reportprogress with paused=false instead of reportStarted

* more strict checks before remote videoplayer interaction, can remote start audio from specific queue index

* missed a curly bracket in the merge conflict resolve tool

* updated comment

* made mainThreadHandler a class property

* mediamanager remakes input items list on ingest to ensure type

also patched an issue where nextup would load the same episode again when playing via remote control

* removed "this"

* fixed div by 0, remote stop discarding progress, remote resume from

* replaced new Long() with Long.valueOf()
2021-12-14 09:07:37 +01:00
Niels van Velzen
61a96d7eea Merge ByLetterActivity and ByGenreActivity into a single activity (#1222)
* Merge ByLetterActivity, BrowsePersonsActivity and ByGenreActivity into a single activity

* Remove unused code from BrowseFolderFragment

* Remove unused BrowsePersonsFragment

* Merge CustomViewFragment into BrowseFolderFragment

* Fix wrong constant used

* Remove unused code from StdBrowseFragment (activity is never BaseActivity)
2021-12-13 16:08:18 +01:00
caesartcs
e059a51032 Translated using Weblate (Romanian)
Currently translated at 89.6% (416 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ro/
2021-12-09 20:05:47 -05:00
WWWesten
f6d023a305 Translated using Weblate (Russian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-12-09 07:05:47 -05:00
Cameron
b762f9c48d new in-place, non-destructive shuffle system (#1276)
* shuffle works now

* fixed autocomplete typo - whoops

* updated comment to remove obsolete details

* removed another obsolete piece of logic - no change in behavior but makes more sense

* removed the need to store a copy of the queue. Now it only saves the indexes
2021-12-08 21:27:33 +01:00
Revertron
11c024ec3c Translated using Weblate (Russian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-12-08 15:05:47 -05:00
Cameron
da609a4574 reworked playbackController position tracking and reporting system (#1261)
* reworked position tracking and reporting system

* adjusted directplay seeking and removed debug printout

* removed use of mSeekedPosition from directplay seeking

* fixed typo in my comment

* formatting fixes
2021-12-08 20:57:34 +01:00
WWWesten
0310dc4863 Translated using Weblate (English (United Kingdom))
Currently translated at 87.9% (408 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2021-12-08 05:05:47 -05:00
newton181
3dca3fd5aa Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-12-07 17:05:46 -05:00
mueslimaker
f52f10b720 fix - removed method argument used in testing branch 2021-12-05 15:26:49 +01:00
mueslimaker
303767f747 fixed crash when playing audio and going from first to last item in repeat mode
-1 index out of bounds on managed audio queue
2021-12-05 15:26:49 +01:00
RTapeLoadingError
27645414e8 Translated using Weblate (Spanish)
Currently translated at 99.5% (462 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-12-04 21:05:45 -05:00
danieladov
060d487004 Translated using Weblate (Spanish)
Currently translated at 99.3% (461 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-12-04 18:05:45 -05:00
Weblate
7f64d4405d Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-12-04 03:05:47 -05:00
Weblate
88d582c788 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-12-04 03:05:46 -05:00
hoanghuy309
6d99a93218 Translated using Weblate (Vietnamese)
Currently translated at 98.7% (458 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-12-04 03:05:45 -05:00
gradle-update-robot
c33312ca29 Update Gradle Wrapper from 7.3 to 7.3.1.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-12-02 08:35:01 +01:00
Diego Massanti
1f5b3c3c88 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-11-30 23:05:44 -05:00
Niels van Velzen
defe097047 Add MigrationContext for improved preference migration behavior 2021-11-30 18:33:45 +01:00
hoanghuy309
8f1e3b7b0a Translated using Weblate (Vietnamese)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-11-30 04:05:43 -05:00
WWWesten
36b86405b6 Translated using Weblate (Arabic)
Currently translated at 96.5% (448 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-11-27 08:05:42 -05:00
WWWesten
72055485bd Translated using Weblate (Mongolian)
Currently translated at 34.6% (161 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mn/
2021-11-27 08:05:42 -05:00
WWWesten
cbf33dd1c6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 95.0% (441 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2021-11-27 08:05:42 -05:00
WWWesten
26f97bf531 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (463 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-11-26 20:05:43 -05:00
Weevild
463a5615f4 Translated using Weblate (Swedish)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2021-11-26 20:05:43 -05:00
WWWesten
5bfb277d26 Translated using Weblate (Turkish)
Currently translated at 99.7% (463 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2021-11-26 09:05:42 -05:00
WWWesten
62e255e18a Translated using Weblate (Polish)
Currently translated at 94.3% (438 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2021-11-26 09:05:42 -05:00
WWWesten
b6522a4ba2 Translated using Weblate (Serbian)
Currently translated at 84.0% (390 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sr/
2021-11-26 09:05:42 -05:00
WWWesten
35b1bb1a76 Translated using Weblate (Slovenian)
Currently translated at 73.0% (339 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sl/
2021-11-26 09:05:42 -05:00
WWWesten
858a539596 Translated using Weblate (Italian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-11-26 09:05:42 -05:00
WWWesten
737f3e04b0 Translated using Weblate (German)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-11-26 09:05:42 -05:00
WWWesten
8123312b5d Translated using Weblate (Esperanto)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-11-26 05:05:42 -05:00
WWWesten
1e10644c4c Translated using Weblate (Turkish)
Currently translated at 99.7% (463 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2021-11-26 05:05:42 -05:00
WWWesten
d99fc93214 Translated using Weblate (Russian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-11-26 05:05:42 -05:00
WWWesten
aa68c526ff Translated using Weblate (Kazakh)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-11-26 05:05:42 -05:00
ahmet-dv
ccf6e25018 Translated using Weblate (Turkish)
Currently translated at 99.7% (463 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2021-11-25 22:05:44 -05:00
svenjochems
2629e7fe74 Translated using Weblate (Dutch)
Currently translated at 98.2% (456 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-11-22 06:05:41 -05:00
Moritz
bf03d2cf19 Translated using Weblate (German)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-11-22 06:05:41 -05:00
wolong gl
7a083189b9 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-11-22 02:05:40 -05:00
Cameron
267fc2ab16 Fix now-playing row not updating when queue changes (#1258)
* row now updates

* update logic is now self contained

* use replace instead of remove and add

* nowPlayingRow checks hasAudioQueueItems instead of isPlayingAudio

* fixed audio queue not clearing on last song completing

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/MediaManager.java

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2021-11-21 12:40:34 +00:00
EduGaga
d11ead465d Translated using Weblate (Spanish)
Currently translated at 97.8% (454 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-11-20 19:05:40 -05:00
hoanghuy309
23556ab04d Translated using Weblate (Vietnamese)
Currently translated at 99.7% (463 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-11-20 13:05:40 -05:00
Alfonso Scarpino
f707dc1ede Translated using Weblate (Italian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-11-20 08:05:40 -05:00
nextlooper42
023d61a733 Translated using Weblate (Slovak)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-11-19 22:05:39 -05:00
mueslimaker
102bcef926 keep exo pos reporting accurate when not playing by using saved pos 2021-11-19 19:45:03 +01:00
WWWesten
80ad473dd6 Translated using Weblate (Esperanto)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-11-19 07:05:40 -05:00
Csaba
f4cafb59de Translated using Weblate (Hungarian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-11-19 07:05:40 -05:00
WWWesten
053f7acc47 Translated using Weblate (Russian)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-11-19 07:05:40 -05:00
WWWesten
cdf3c19195 Translated using Weblate (Kazakh)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-11-19 07:05:39 -05:00
Lukáš Kucharczyk
1e07e726db Translated using Weblate (Czech)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-11-19 07:05:39 -05:00
mueslimaker
916287a142 libvlc playback should now report correct time 2021-11-19 08:58:57 +01:00
hoanghuy309
93d249894d Translated using Weblate (Vietnamese)
Currently translated at 99.1% (458 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-11-19 00:28:52 -05:00
Bill Thornton
ef1a3b830a Merge pull request #900 from koying/addglobalsearch
Implement global search
2021-11-19 00:28:48 -05:00
Cameron
66469dae26 prevent double pausing, allow d-pad center to unpause with overlay hidden (#1252)
* prevent double pausing, allow d-pad center to unpause with overlay hidden

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/PlaybackController.java

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2021-11-18 19:11:45 +01:00
WWWesten
d282826a0f Translated using Weblate (Mongolian)
Currently translated at 34.8% (161 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mn/
2021-11-18 07:05:39 -05:00
nextlooper42
5610b3fe1e Translated using Weblate (Slovak)
Currently translated at 100.0% (462 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-11-17 19:05:39 -05:00
Alfonso Scarpino
457f32dcda Translated using Weblate (Italian)
Currently translated at 100.0% (462 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-11-17 16:05:39 -05:00
mueslimaker
3ef4ad2497 reset exoplay position and state on media change 2021-11-17 20:22:09 +01:00
Chris "koying" Browet
eb5b49abb1 ADD: global search 2021-11-17 20:10:19 +01:00
Csaba
cf04edc93c Translated using Weblate (Hungarian)
Currently translated at 100.0% (462 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-11-17 11:05:40 -05:00
WWWesten
d43c8eca33 Translated using Weblate (Mongolian)
Currently translated at 34.8% (161 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mn/
2021-11-17 11:05:39 -05:00
Lukáš Kucharczyk
e5480205e1 Translated using Weblate (Czech)
Currently translated at 100.0% (462 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-11-17 11:05:39 -05:00
WWWesten
2385dc75dc Translated using Weblate (Esperanto)
Currently translated at 100.0% (462 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-11-17 05:05:40 -05:00
WWWesten
e9f6768080 Translated using Weblate (Russian)
Currently translated at 100.0% (462 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-11-17 05:05:39 -05:00
WWWesten
540ec5e754 Translated using Weblate (Kazakh)
Currently translated at 100.0% (462 of 462 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-11-17 05:05:39 -05:00
Bill Thornton
c995856458 Merge pull request #1213 from nielsvanvelzen/home-options 2021-11-16 17:16:06 -05:00
wolong gl
059e0e40ff Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-11-12 22:05:37 -05:00
Niels van Velzen
427cc2bb6d Use default transition in PhotoPlayer
also removes some unused code
2021-11-12 20:07:22 +01:00
gradle-update-robot
c9cedd26a6 Update Gradle Wrapper from 7.2 to 7.3.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-11-10 13:10:51 +01:00
Csaba
ca1e681d14 Translated using Weblate (Hungarian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-11-10 04:05:36 -05:00
Jay Harkess
0f44915452 Translated using Weblate (English (United Kingdom))
Currently translated at 90.6% (408 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2021-11-09 11:05:37 -05:00
WWWesten
0efedee5b5 Translated using Weblate (Russian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-11-09 10:41:19 -05:00
bahaaza
5a22662700 Translated using Weblate (Arabic)
Currently translated at 99.5% (448 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-11-08 22:13:38 -05:00
Niels van Velzen
204663f71f Delay activity lifecycle callback registry slightly to avoid crashes on older platform versions 2021-11-06 21:33:26 +01:00
Niels van Velzen
f5ecbd08ca Move session initialization to androidx.startup 2021-11-06 21:33:26 +01:00
Niels van Velzen
8ad6eb7cb6 Move logging initialization to androidx.startup 2021-11-06 21:33:26 +01:00
Niels van Velzen
79afee7ce6 Move Koin initialization to androidx.startup 2021-11-06 21:33:26 +01:00
Niels van Velzen
afa93d6ab0 Fix race condition in loading async preferences 2021-11-06 21:33:04 +01:00
Alfonso Scarpino
263afb079d Translated using Weblate (Italian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-11-05 09:05:35 -04:00
Niels van Velzen
a6f17e8903 Fix touch support in home/auth screens (#1230)
* Fix touch support for "switch user" button

* Fix touch support for server button
2021-11-04 15:09:19 +01:00
Jellifi007
faf76efdbd H264 52 Level available on NVIDIA Shield but not detected (#1237) 2021-11-04 14:11:42 +01:00
nextlooper42
ec4cf1601b Translated using Weblate (Slovak)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-11-02 21:05:34 -04:00
Pedro Almeida
52b4fa5a7f Translated using Weblate (Portuguese (Portugal))
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_PT/
2021-11-01 15:05:34 -04:00
WWWesten
574268857b Translated using Weblate (Esperanto)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-31 10:05:33 -04:00
WWWesten
d602080a30 Translated using Weblate (Malayalam)
Currently translated at 91.1% (410 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2021-10-29 09:05:36 -04:00
WWWesten
74bbffe110 Translated using Weblate (Catalan)
Currently translated at 78.4% (353 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ca/
2021-10-29 09:05:36 -04:00
WWWesten
a6709cfac8 Translated using Weblate (Turkish)
Currently translated at 76.0% (342 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2021-10-29 09:05:35 -04:00
WWWesten
2e7fb821cf Translated using Weblate (Hebrew)
Currently translated at 86.0% (387 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/he/
2021-10-29 09:05:35 -04:00
WWWesten
aaf43d4c0d Translated using Weblate (Croatian)
Currently translated at 96.2% (433 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hr/
2021-10-29 09:05:35 -04:00
WWWesten
bc9a275bed Translated using Weblate (Spanish (Argentina))
Currently translated at 95.1% (428 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2021-10-29 09:05:35 -04:00
WWWesten
a53ae38276 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 20.2% (91 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/bn_BD/
2021-10-29 09:05:35 -04:00
WWWesten
664ba0aba4 Translated using Weblate (Ukrainian)
Currently translated at 38.6% (174 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2021-10-29 09:05:35 -04:00
WWWesten
4331a771f1 Translated using Weblate (Finnish)
Currently translated at 45.5% (205 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2021-10-29 09:05:35 -04:00
WWWesten
77b3c214b2 Translated using Weblate (Lithuanian)
Currently translated at 10.2% (46 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/lt/
2021-10-29 09:05:34 -04:00
WWWesten
9b3d595066 Translated using Weblate (Latvian)
Currently translated at 65.5% (295 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/lv/
2021-10-29 09:05:34 -04:00
WWWesten
628d6662cc Translated using Weblate (Macedonian)
Currently translated at 20.0% (90 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mk/
2021-10-29 09:05:34 -04:00
WWWesten
d972bd3cf1 Translated using Weblate (Polish)
Currently translated at 97.3% (438 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2021-10-29 09:05:34 -04:00
WWWesten
e0f1b15453 Translated using Weblate (Serbian)
Currently translated at 86.6% (390 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sr/
2021-10-29 09:05:34 -04:00
WWWesten
1e121f8891 Translated using Weblate (Slovenian)
Currently translated at 75.3% (339 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sl/
2021-10-29 09:05:34 -04:00
WWWesten
e1be2d5847 Translated using Weblate (Indonesian)
Currently translated at 65.7% (296 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/id/
2021-10-29 09:05:34 -04:00
WWWesten
1b0d3f9a6a Translated using Weblate (Slovak)
Currently translated at 97.5% (439 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-10-29 09:05:33 -04:00
WWWesten
b949380148 Translated using Weblate (Japanese)
Currently translated at 55.7% (251 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ja/
2021-10-29 09:05:33 -04:00
WWWesten
23a72aa020 Translated using Weblate (Korean)
Currently translated at 74.2% (334 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ko/
2021-10-29 09:05:33 -04:00
WWWesten
0bba0125ea Translated using Weblate (Chinese (Traditional))
Currently translated at 84.6% (381 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hant/
2021-10-29 09:05:33 -04:00
WWWesten
19cdc1e9c9 Translated using Weblate (Romanian)
Currently translated at 86.6% (390 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ro/
2021-10-29 09:05:33 -04:00
WWWesten
b6b7c4a0ec Translated using Weblate (Portuguese (Portugal))
Currently translated at 86.6% (390 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_PT/
2021-10-29 09:05:33 -04:00
WWWesten
f98552eb28 Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.2% (424 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nb_NO/
2021-10-29 09:05:32 -04:00
WWWesten
76965b4027 Translated using Weblate (Italian)
Currently translated at 95.5% (430 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-10-29 09:05:32 -04:00
WWWesten
7ba3a06347 Translated using Weblate (English (United Kingdom))
Currently translated at 87.3% (393 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2021-10-29 09:05:32 -04:00
WWWesten
5b13228a68 Translated using Weblate (Greek)
Currently translated at 69.5% (313 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2021-10-29 09:05:32 -04:00
WWWesten
776f532103 Translated using Weblate (Danish)
Currently translated at 87.3% (393 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/da/
2021-10-29 09:05:32 -04:00
Alan Azar
8f4fbeeafc Translated using Weblate (Arabic)
Currently translated at 98.4% (443 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-10-29 03:05:32 -04:00
WWWesten
341c53c0d9 Translated using Weblate (Esperanto)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-28 08:05:32 -04:00
WWWesten
0b242a7f1d Translated using Weblate (Russian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-28 08:05:31 -04:00
WWWesten
5845f9597f Translated using Weblate (Esperanto)
Currently translated at 93.5% (421 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-27 19:05:32 -04:00
WWWesten
b1a5fbfc4f Translated using Weblate (Russian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-27 19:05:31 -04:00
WWWesten
61b7550c59 Translated using Weblate (Esperanto)
Currently translated at 84.0% (378 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-27 16:05:32 -04:00
Alan Azar
23028ca72b Translated using Weblate (Norwegian Bokmål)
Currently translated at 94.4% (425 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nb_NO/
2021-10-27 10:05:38 -04:00
Alan Azar
90024accd8 Translated using Weblate (Hebrew)
Currently translated at 85.5% (385 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/he/
2021-10-27 10:05:38 -04:00
Alan Azar
33f8dafbe7 Translated using Weblate (Turkish)
Currently translated at 76.2% (343 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2021-10-27 10:05:38 -04:00
Alan Azar
8a218de4a0 Translated using Weblate (Finnish)
Currently translated at 45.7% (206 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2021-10-27 10:05:38 -04:00
Alan Azar
d9e30ac378 Translated using Weblate (Japanese)
Currently translated at 56.0% (252 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ja/
2021-10-27 10:05:37 -04:00
Alan Azar
13cbcc9155 Translated using Weblate (Indonesian)
Currently translated at 66.0% (297 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/id/
2021-10-27 10:05:37 -04:00
Alan Azar
1e920acb11 Translated using Weblate (Macedonian)
Currently translated at 20.2% (91 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mk/
2021-10-27 10:05:37 -04:00
Alan Azar
bbbeb777c9 Translated using Weblate (Greek)
Currently translated at 69.5% (313 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2021-10-27 10:05:37 -04:00
Alan Azar
717c26e551 Translated using Weblate (Chinese (Traditional))
Currently translated at 84.8% (382 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hant/
2021-10-27 10:05:37 -04:00
Alan Azar
dcc018033a Translated using Weblate (Mongolian)
Currently translated at 35.3% (159 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mn/
2021-10-27 10:05:37 -04:00
Andreas
6eff855bcc Translated using Weblate (German)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-10-27 10:05:36 -04:00
Alan Azar
3ee701a615 Translated using Weblate (Latvian)
Currently translated at 65.7% (296 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/lv/
2021-10-27 10:05:36 -04:00
Alan Azar
64b7a56cd0 Translated using Weblate (English (United Kingdom))
Currently translated at 87.3% (393 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2021-10-27 10:05:36 -04:00
Alan Azar
074fa61bd0 Translated using Weblate (Croatian)
Currently translated at 96.4% (434 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hr/
2021-10-27 10:05:36 -04:00
Alan Azar
22be739d0b Translated using Weblate (Korean)
Currently translated at 74.4% (335 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ko/
2021-10-27 10:05:36 -04:00
Alan Azar
5bef216608 Translated using Weblate (Danish)
Currently translated at 87.3% (393 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/da/
2021-10-27 10:05:35 -04:00
Alan Azar
f9e4a0ac8d Translated using Weblate (Italian)
Currently translated at 95.7% (431 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-10-27 10:05:35 -04:00
Alan Azar
fc645e5ad5 Translated using Weblate (Portuguese (Portugal))
Currently translated at 86.8% (391 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_PT/
2021-10-27 10:05:35 -04:00
WWWesten
3c015489b2 Translated using Weblate (Russian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-27 10:05:35 -04:00
Alan Azar
d25f91bc49 Translated using Weblate (Slovenian)
Currently translated at 75.5% (340 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sl/
2021-10-27 10:05:34 -04:00
Alan Azar
c7692a64dd Translated using Weblate (Spanish (Argentina))
Currently translated at 95.1% (428 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2021-10-27 10:05:34 -04:00
Alan Azar
bf765e36a1 Translated using Weblate (Slovak)
Currently translated at 97.5% (439 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-10-27 10:05:34 -04:00
Alan Azar
a25066a032 Translated using Weblate (Serbian)
Currently translated at 86.8% (391 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sr/
2021-10-27 10:05:34 -04:00
Alan Azar
f540cc2deb Translated using Weblate (Polish)
Currently translated at 97.5% (439 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2021-10-27 10:05:34 -04:00
Alan Azar
db4b312e57 Translated using Weblate (Romanian)
Currently translated at 86.8% (391 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ro/
2021-10-27 10:05:34 -04:00
WWWesten
3b70d734b7 Translated using Weblate (Esperanto)
Currently translated at 78.0% (351 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-27 10:05:33 -04:00
Alan Azar
2f163f481a Translated using Weblate (Catalan)
Currently translated at 78.2% (352 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ca/
2021-10-26 15:05:32 -04:00
Alan Azar
43644aa9b7 Translated using Weblate (French)
Currently translated at 98.0% (441 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-10-26 15:05:32 -04:00
Alan Azar
6484e247d6 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 20.2% (91 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/bn_BD/
2021-10-26 15:05:32 -04:00
Alan Azar
4b5efa75e0 Translated using Weblate (Hungarian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-10-26 15:05:32 -04:00
Oatavandi
127ef380e8 Translated using Weblate (Tamil)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-10-26 15:05:32 -04:00
Alan Azar
01cc2ca3b3 Translated using Weblate (Arabic)
Currently translated at 98.4% (443 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-10-26 15:05:31 -04:00
Lukáš Kucharczyk
65a11a7378 Translated using Weblate (Czech)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-10-25 17:05:32 -04:00
WWWesten
3449d0ab8e Translated using Weblate (Esperanto)
Currently translated at 51.5% (232 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-25 17:05:32 -04:00
WWWesten
716e313da8 Translated using Weblate (Kazakh)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-10-25 07:05:31 -04:00
WWWesten
08d44adcab Translated using Weblate (Esperanto)
Currently translated at 31.5% (142 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-25 07:05:31 -04:00
WWWesten
0e4ad3b410 Translated using Weblate (Russian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-25 07:05:30 -04:00
WWWesten
32131f2f2e Translated using Weblate (Esperanto)
Currently translated at 21.5% (97 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/eo/
2021-10-24 17:05:32 -04:00
WWWesten
786b14f4c1 Added translation using Weblate (Esperanto) 2021-10-24 14:16:05 -04:00
Bill Thornton
5114834210 Merge pull request #1228 from nielsvanvelzen/refresh-server-after-migrate 2021-10-24 11:34:31 -04:00
Niels van Velzen
3ea6bf1293 Refresh server infor after migration 2021-10-24 13:45:09 +02:00
Cameron
3025ed115f fixed playback controls and seeking causing erroneous timestamp updates (#1219)
* removed calls to skip when dpad left/right is called

the new player scrubs seekbar when these dpad buttons are called. Continuing to call seek appears to cause issues with the timestamps

* update playback controller position with seek pos

* dpad no longer calls skip. seek updates current pos

the new player scrubs seekbar when these dpad buttons are called. Continuing to call seek appears to cause issues with the timestamps

update playback controller position with seek pos

* mCurrentPosition is now updated on seeking in direct play

* added changes suggested by nielsvanvelzen
2021-10-24 10:20:33 +02:00
hoanghuy309
4d8244319a Translated using Weblate (Vietnamese)
Currently translated at 99.7% (449 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-10-23 07:05:30 -04:00
Niels van Velzen
453403376a Add preferences for home sections 2021-10-22 22:04:29 +02:00
Niels van Velzen
3cb5f2068d Fix "screen saver" not showing in AudioNowPlayingActivity 2021-10-22 19:23:43 +02:00
Csaba
f4cd8275bc Translated using Weblate (Hungarian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-10-22 07:05:30 -04:00
WWWesten
6409e34244 Translated using Weblate (Kazakh)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-10-21 20:05:31 -04:00
newton181
151d6b3f7d Translated using Weblate (Spanish)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-10-21 20:05:31 -04:00
newton181
a1e3a33c28 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-10-21 20:05:30 -04:00
WWWesten
225ab16182 Translated using Weblate (Russian)
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-21 20:05:30 -04:00
newton181
bc63337f15 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (450 of 450 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-10-21 20:05:30 -04:00
Bill Thornton
7f72ceb6b4 Merge pull request #1216 from nielsvanvelzen/photalbumcrash
Fix app crash when opening photo album
2021-10-21 13:42:18 -04:00
Niels van Velzen
b98b33d0d2 Fix app crash when opening photo album 2021-10-21 19:31:23 +02:00
Niels van Velzen
8cbbff03da Show about section on AuthPreferences launched from login UI 2021-10-21 17:43:12 +02:00
Niels van Velzen
885f277b25 Use link in about section 2021-10-21 17:43:12 +02:00
Niels van Velzen
a292045091 Show licenses from used libraries 2021-10-21 17:43:12 +02:00
Niels van Velzen
add71ce23d Don't load multiple display preferences at once 2021-10-21 15:20:00 +02:00
Niels van Velzen
365457dd54 Add a daydream that shows random movies and series 2021-10-21 13:17:48 +02:00
Niels van Velzen
1975d26f7c Remove broken RemoteControlReceiver 2021-10-21 08:58:04 +02:00
Niels van Velzen
eedfc89998 Remove MusicOnly argument from search 2021-10-21 08:57:41 +02:00
Niels van Velzen
4779f4141a Remove search shortcut when it doesn't make sense 2021-10-21 08:57:41 +02:00
Niels van Velzen
436f317361 Use UserSettingPreferences in HomeFragment 2021-10-21 08:57:25 +02:00
Niels van Velzen
6c34edd7f8 Add PreferenceEnum interface to add different string representation for enums 2021-10-21 08:57:25 +02:00
Niels van Velzen
af114b20e0 Use context instead of activity in InfoLayoutHelper 2021-10-21 08:56:20 +02:00
Niels van Velzen
f239616ef0 Add ModelCompat to convert apiclient types to SDK types 2021-10-21 08:56:03 +02:00
Dominik
bb52fe3746 Translated using Weblate (German)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-10-20 20:05:29 -04:00
BacalhauSalgado
5ee3fe2b4c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2021-10-20 20:05:29 -04:00
Csaba
c9f7c9f665 Translated using Weblate (Hungarian)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-10-20 03:05:29 -04:00
Bill Thornton
4d501fee4c Merge pull request #1211 from nielsvanvelzen/async-auto-bitrate
Don't wait for bitrate detection on launch
2021-10-19 16:35:36 -04:00
Bill Thornton
48cb855e4b Merge pull request #1212 from nielsvanvelzen/exo-default
Change default video player to ExoPlayer instead of auto detect
2021-10-19 16:33:56 -04:00
Niels van Velzen
65f4b75673 Change default video player to ExoPlayer instead of auto detect 2021-10-19 22:27:31 +02:00
Niels van Velzen
7fc63f56d8 Don't wait for bitrate detection on launch
Also catch errors
2021-10-19 22:23:02 +02:00
newton181
496b067e14 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-10-19 16:05:29 -04:00
newton181
badc038af5 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-10-19 16:05:29 -04:00
newton181
d0e24171a1 Translated using Weblate (Spanish)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-10-19 16:05:29 -04:00
Bill Thornton
ee922ac7ec Merge pull request #1197 from nielsvanvelzen/sdk-1.1
Migrate to Jellyfin Kotlin SDK v1.1
2021-10-19 11:13:38 -04:00
Matthieu
23f90f626f Translated using Weblate (French)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-10-19 09:05:28 -04:00
Niels van Velzen
960212b832 Migrate to Jellyfin Kotlin SDK v1.1 2021-10-18 19:08:14 +02:00
Cameron
b59543c05e "select" button on controller can now pause/unpause without extra navigation (#1207)
* fixed issue #1101

overrides PlaybackTransportRowPresenter's onProgressBarClicked to use CustomPlaybackTransportControlGlue's playPauseAction. Perhaps the lowercase 'p' is to blame for the default implementation not working.

* Update app/src/main/java/org/jellyfin/androidtv/ui/playback/overlay/CustomPlaybackTransportControlGlue.java

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>

Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2021-10-18 19:00:19 +02:00
WWWesten
a632cc1356 Translated using Weblate (Russian)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-18 09:05:28 -04:00
wolong gl
21855f5179 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-10-18 04:05:28 -04:00
Bill Thornton
0d94b187c5 Merge pull request #1203 from nielsvanvelzen/nowplayingbug-context 2021-10-17 11:28:33 -04:00
Bill Thornton
e21fca973d Merge pull request #1204 from nielsvanvelzen/apibinder-trailing-slash 2021-10-17 11:27:12 -04:00
Bill Thornton
05ff681cc8 Merge pull request #1188 from nielsvanvelzen/handle-setActiveSession
Act when setActiveSession returns false during login
2021-10-17 01:05:54 -04:00
Bill Thornton
65d00ef0ac Merge pull request #1011 from nielsvanvelzen/displaypreferences-sdk
Use DisplayPreferences via SDK via preferences code
2021-10-17 01:03:00 -04:00
Niels van Velzen
cb43e9024b Fix trailing slashes causing connection issues in apiclient 2021-10-16 17:33:59 +02:00
WWWesten
d236a263b7 Translated using Weblate (Russian)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-16 11:05:28 -04:00
WWWesten
c017076500 Translated using Weblate (Kazakh)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-10-16 11:05:28 -04:00
Lukáš Kucharczyk
d4ccdb8660 Translated using Weblate (Czech)
Currently translated at 100.0% (441 of 441 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-10-16 11:05:27 -04:00
Daniel
826e1eddc9 Add multiple versions support (#1155)
* Add multiple versions support

* Fix code format

* Fix import

* change button name

* Move function

* remove unnecessary api call

* Update formatting, rename a few variables, fix popup theme

Co-authored-by: Niels van Velzen <git@ndat.nl>
2021-10-16 10:16:56 +00:00
Niels van Velzen
3f94e31bae Use context.startActivity in NowPlayingBug 2021-10-16 11:29:16 +02:00
newton181
f062ca5637 Translated using Weblate (Spanish)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-10-14 17:05:27 -04:00
newton181
0312fe83e7 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-10-14 17:05:27 -04:00
newton181
4756cf3606 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-10-14 17:05:27 -04:00
ElegyD
37750df511 Fix several lint issues (#1180)
* Fix several lint issues

* Added more missing annotations
2021-10-14 13:15:47 +02:00
Hítalo Ramon
07d04f00b2 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2021-10-13 22:05:26 -04:00
Hítalo Ramon
a35b90b26d Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.3% (437 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2021-10-13 19:50:19 -04:00
ButterflyOfFire
bc878e6fab Translated using Weblate (Arabic)
Currently translated at 93.4% (411 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-10-12 08:05:26 -04:00
Herman Andgart
037a52a4f0 Translated using Weblate (Swedish)
Currently translated at 99.7% (439 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2021-10-10 18:05:25 -04:00
Niels van Velzen
283f75f5c7 Act when setActiveSession returns false during login 2021-10-09 11:22:24 +02:00
hoanghuy309
69a64f1efb Translated using Weblate (Vietnamese)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-10-08 17:05:25 -04:00
Robert
878fa31b88 Translated using Weblate (German)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-10-07 23:05:25 -04:00
Bill Thornton
fe2dc0873c Merge pull request #1173 from nielsvanvelzen/apiclient-extensions
Remove unused LoadingState class
2021-10-06 23:40:30 -04:00
Bill Thornton
3e446b605d Merge pull request #1142 from nielsvanvelzen/resume-in-watch-next 2021-10-05 16:47:47 -04:00
Niels van Velzen
340188a1a1 Add enum names 2021-10-05 22:04:35 +02:00
Niels van Velzen
25f6c308ff Rename .java to .kt 2021-10-05 22:04:34 +02:00
Niels van Velzen
b37751a3e6 Add UserSettingPreferences for forward/backward speed. Fix livetv preferences not populated. 2021-10-05 21:52:13 +02:00
Niels van Velzen
2696f910b6 Fix rebase issues 2021-10-05 21:52:03 +02:00
Niels van Velzen
b5a653fd69 Fix cached preferences when user changes 2021-10-05 21:51:49 +02:00
Niels van Velzen
b5d52dbbf2 Migrate LiveTvPrefs to new display preference code 2021-10-05 21:51:48 +02:00
Niels van Velzen
c3749039db Move blocking functions 2021-10-05 21:51:47 +02:00
Niels van Velzen
a1360b4c82 Remove displayPrefsCache and deprecate TvApp DisplayPrefs methods 2021-10-05 21:51:46 +02:00
Niels van Velzen
a1f69be48f Remove now unused display preference preloading for libraries 2021-10-05 21:51:45 +02:00
Niels van Velzen
e5409713b2 Rename LibraryDisplayPreferences to shorter LibraryDisplayPreferences 2021-10-05 21:51:44 +02:00
Niels van Velzen
cb9e2352f8 Move filter and sort options to LibraryDisplayPreferences 2021-10-05 21:51:43 +02:00
Niels van Velzen
91f96a56fc Support async stores automatically in OptionsFragment 2021-10-05 21:51:42 +02:00
Niels van Velzen
c72e68da7e Add LibraryDisplayPreferences and use it 2021-10-05 21:51:41 +02:00
Niels van Velzen
fa458b328b Retrieve display preferences directly in HomeFragment 2021-10-05 21:51:40 +02:00
Niels van Velzen
33d8b81a8e Add AsyncPreferenceStore and DisplayPreferencesStore to asynchronously store preferences using the DisplayPreferences API 2021-10-05 21:51:39 +02:00
Niels van Velzen
f7bb0d183a Move getDefaultValue and reset function implementations to PreferenceStore interface 2021-10-05 21:51:36 +02:00
Niels van Velzen
379e3e7c2c Fix skipBackwardLength instead of skipBackLength (#1182) 2021-10-05 20:31:05 +02:00
Oatavandi
6c8d71b2b5 Translated using Weblate (Tamil)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-10-05 11:05:24 -04:00
Niels van Velzen
2cccc53462 Remove unused ApiClient extensions 2021-10-05 09:20:06 +02:00
Bill Thornton
c6b40ec71d Merge pull request #1172 from nielsvanvelzen/sdk-uuid-serializer 2021-10-04 17:31:24 -04:00
Bill Thornton
c76a5c9681 Merge pull request #1022 from nielsvanvelzen/no-tvapp
Remove TvApp.getApplication usages in util package
2021-10-04 17:27:39 -04:00
DanielPikilidis
c2214b4fca Translated using Weblate (Greek)
Currently translated at 71.1% (313 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2021-10-04 15:05:24 -04:00
Niels van Velzen
c3785fe433 Fix imports from bad rebase 2021-10-04 21:01:52 +02:00
Bill Thornton
a9bde16949 Merge pull request #1053 from nielsvanvelzen/baseitemdto-extras
Remove GSON usages when (de)serializing activity extras
2021-10-04 13:28:36 -04:00
ElegyD
bb7319db0c Explicitly specify android:exported (#1178) 2021-10-04 18:45:39 +02:00
Niels van Velzen
11428fa19e Java shenanigans 2021-10-04 17:00:41 +02:00
Bill Thornton
cb0fa6f31d Merge pull request #1166 from nielsvanvelzen/issue-template
Refactor issue templates to use forms
2021-10-04 10:16:17 -04:00
Csaba
26082c9a9b Translated using Weblate (Hungarian)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-10-04 04:05:23 -04:00
Bill Thornton
16a5eeb460 Merge pull request #1174 from nielsvanvelzen/player-fragment-nullable
Check nullability for mFragment in PlaybackController
2021-10-03 23:48:23 -04:00
wolong gl
57bba26420 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-10-03 14:05:23 -04:00
Niels van Velzen
f9fa23953f Check nullability for mFragment in PlaybackController 2021-10-03 16:32:18 +02:00
WWWesten
06d5a88d07 Translated using Weblate (Russian)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-03 09:05:23 -04:00
WWWesten
de2531d07c Translated using Weblate (Kazakh)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-10-03 09:05:23 -04:00
Niels van Velzen
468d4985e7 Replace UUIDSerializer with SDK provided version 2021-10-03 12:18:44 +02:00
Niels van Velzen
467f1f2b7a Translated using Weblate (Dutch)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-10-03 06:08:37 -04:00
Niels van Velzen
928ca45698 Translated using Weblate (Dutch)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-10-03 06:06:30 -04:00
Niels van Velzen
fd812d0a11 Translated using Weblate (English)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en/
2021-10-03 06:01:31 -04:00
Niels van Velzen
dd61f75827 Translated using Weblate (Dutch)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-10-03 05:57:43 -04:00
Weblate
35ee15fe3d Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-10-02 16:15:41 -04:00
Bill Thornton
9c16681127 Merge pull request #1165 from nielsvanvelzen/version-build-str 2021-10-02 16:15:37 -04:00
Weblate
f341431d4e Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-10-02 16:00:09 -04:00
Niels van Velzen
a4b9d397a4 Remove two unused strings and two unused icons (#1169) 2021-10-02 22:00:04 +02:00
Oatavandi
b08abc7356 Translated using Weblate (Tamil)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-10-02 13:05:23 -04:00
WWWesten
1df5672629 Translated using Weblate (Russian)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-10-02 13:05:23 -04:00
WWWesten
ffc005b92f Translated using Weblate (Kazakh)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-10-02 13:05:23 -04:00
Niels van Velzen
8a148398cd Add media playback bug report form template 2021-10-01 22:03:11 +02:00
Niels van Velzen
d3e1dbe775 Add feature request form template 2021-10-01 22:03:11 +02:00
Niels van Velzen
f404443ff1 Add bug report form template 2021-10-01 21:49:25 +02:00
Niels van Velzen
9e48578366 Remove build number from internal version reference
This fixes the "server version not supported" toast from showing the build number. 10.7.7.0 now shows as 10.7.7
2021-10-01 21:36:37 +02:00
Bartłomiej Ruk
6f626ef608 Translated using Weblate (Polish)
Currently translated at 99.7% (443 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2021-10-01 15:05:22 -04:00
Niels van Velzen
e3c25dc2fe Remove TvApp.getApplication usages in util package 2021-10-01 19:06:38 +02:00
Niels van Velzen
326845abff Remove GSON usages when (de)serializing for extras 2021-10-01 18:50:02 +02:00
Bill Thornton
e4815bc003 Merge pull request #1023 from nielsvanvelzen/koin-3
Migrate to Koin 3
2021-09-30 23:38:03 -04:00
Niels van Velzen
2826a4f6ba Translated using Weblate (Bengali (Bangladesh))
Currently translated at 20.4% (91 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/bn_BD/
2021-09-30 13:30:08 -04:00
Niels van Velzen
04cc64249a Translated using Weblate (Lithuanian)
Currently translated at 10.5% (47 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/lt/
2021-09-30 13:30:08 -04:00
sephrat
c82644ed2e Translated using Weblate (French)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-09-30 13:30:06 -04:00
Lukáš Kucharczyk
52caf6734d Translated using Weblate (Czech)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-09-30 13:30:05 -04:00
Niels van Velzen
500cd55e23 Migrate to Koin 3 2021-09-30 14:35:53 +02:00
Niels van Velzen
fb3863dc2e Translated using Weblate (English)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en/
2021-09-30 08:21:43 -04:00
Bill Thornton
5f58651670 Merge pull request #1050 from nielsvanvelzen/agp-700 2021-09-30 08:13:57 -04:00
Niels van Velzen
214be75044 Translated using Weblate (English)
Currently translated at 93.6% (416 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en/
2021-09-30 08:08:16 -04:00
Niels van Velzen
2859b7f2b6 Update Android Gradle Plugin to 7.0.2 2021-09-30 13:42:23 +02:00
Chikku Cheriyan
445a964935 Translated using Weblate (Malayalam)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2021-09-30 00:30:05 -04:00
Tim040
3e6eb12178 Translated using Weblate (Dutch)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-09-29 13:30:05 -04:00
Tim040
8c5e85e088 Translated using Weblate (Dutch)
Currently translated at 98.8% (439 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-09-28 18:30:05 -04:00
nextlooper42
4e427f2bc9 Translated using Weblate (Slovak)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-09-28 07:30:04 -04:00
Tomislav
907e2f23fc Translated using Weblate (Croatian)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hr/
2021-09-27 22:30:06 -04:00
millallo
ac48af7cce Translated using Weblate (Italian)
Currently translated at 98.1% (436 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-09-27 09:30:04 -04:00
Ouail Ouazani
dfdfd2182d Translated using Weblate (Arabic)
Currently translated at 97.9% (435 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-09-23 23:30:06 -04:00
Moritz
5aca9345a7 Translated using Weblate (German)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-09-23 09:30:03 -04:00
newton181
9aeb72a809 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-09-22 15:30:03 -04:00
wolong gl
86633bd766 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-09-21 06:30:03 -04:00
Bartłomiej Ruk
e2e0e12bf8 Translated using Weblate (Polish)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2021-09-20 10:30:03 -04:00
meehel
9865da06de Translated using Weblate (Ukrainian)
Currently translated at 45.0% (200 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2021-09-16 07:30:03 -04:00
meehel
2d05594b2b Translated using Weblate (Ukrainian)
Currently translated at 35.1% (156 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2021-09-15 14:30:03 -04:00
danieladov
dfbc4c91a8 Translated using Weblate (Spanish)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-09-15 14:30:00 -04:00
newton181
ebb3e3adf5 Translated using Weblate (Spanish)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-09-14 19:30:00 -04:00
newton181
21e0c13fe5 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-09-14 19:30:00 -04:00
hoanghuy309
9460d3e7a2 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-09-14 13:30:01 -04:00
Csaba
a5876b1631 Translated using Weblate (Hungarian)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-09-13 04:30:00 -04:00
WWWesten
0c7641c51b Translated using Weblate (Russian)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-09-12 09:29:59 -04:00
WWWesten
b5686ead4f Translated using Weblate (Kazakh)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-09-12 09:29:59 -04:00
cocool97
d3cd7ca111 Translated using Weblate (French)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-09-12 06:30:00 -04:00
Lukáš Kucharczyk
9d11062e90 Translated using Weblate (Czech)
Currently translated at 100.0% (444 of 444 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-09-12 06:29:59 -04:00
Bill Thornton
5e9a8b74f8 Merge pull request #1140 from JannikHoelling/add-star-rating-sort-to-grid
add star rating sort to grid view
2021-09-12 00:24:21 -04:00
Bill Thornton
cb3c0d0748 Merge pull request #1145 from nielsvanvelzen/autologin-fix
Fix crash when autologin is off
2021-09-12 00:20:23 -04:00
Niels van Velzen
eb170f8a28 Fix crash when autologin is off
- Use `destroyCurrentSession` instead of `setCurrentSession` with null value
- Change `destroyCurrentSession` to set api etc. to null in a **synchronous** way instead of calling `setCurrentSession`
2021-09-11 23:40:36 +02:00
cocool97
890d5753d0 Translated using Weblate (French)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-09-11 05:29:59 -04:00
Niels van Velzen
4c5fec38cb Set "my media" row as a default row 2021-09-10 21:56:36 +02:00
Niels van Velzen
1f1628bc50 Add resume episodes to watch next row 2021-09-10 21:53:54 +02:00
lojden
a6a40dff7e Translated using Weblate (Swedish)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2021-09-10 15:29:59 -04:00
Jannik Hoelling
490dd45ecb rename sorting from Stars to Community Rating 2021-09-10 19:05:35 +02:00
Bill Thornton
43b7d52efd Remove unused tile colors and update default theme (#1138)
* Remove unused tile colors and update default theme

* Fix tile_land_series_timer_bg not being used correctly
2021-09-10 08:48:15 +02:00
Bill Thornton
4f456088f8 Merge pull request #1139 from nielsvanvelzen/no-offline
Remove isOffline from PlaybackManager (always false)
2021-09-10 00:34:06 -04:00
Jannik Hoelling
8636533a06 add star rating sort to grid view 2021-09-10 01:14:08 +02:00
Niels van Velzen
4a6aaf537f Remove isOffline from PlaybackManager (always false) 2021-09-08 09:14:19 +02:00
millallo
0eecf3c8e4 Translated using Weblate (Italian)
Currently translated at 98.1% (435 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-09-06 10:29:57 -04:00
millallo
cd13dcee9b Translated using Weblate (Italian)
Currently translated at 98.1% (435 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-09-05 12:29:57 -04:00
Maxim Mironyuk
976fe6ecf2 Translated using Weblate (Russian)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-09-04 19:29:57 -04:00
cocool97
83aa6dc21f Translated using Weblate (French)
Currently translated at 99.7% (442 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-09-04 16:29:57 -04:00
Bill Thornton
42558dbd54 Fix now playing bug layout (#1125)
* Fix now playing bug layout

* Add max width to now playing bug

* Fix low resolution art in now playing bug
2021-09-02 20:16:26 +02:00
Bill Thornton
1c854f4212 Merge pull request #1114 from nielsvanvelzen/playback-audio-intercept
Forward audio play requests to playback module
2021-09-02 09:46:03 -07:00
nextlooper42
24824d9e18 Translated using Weblate (Slovak)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-09-01 09:29:56 -04:00
Bill Thornton
885f511944 Merge pull request #1123 from nielsvanvelzen/gh-gradle-cache
Use actions/setup-java caching
2021-08-31 13:38:54 -07:00
linetrimmer
06ea7c4094 Use parentThumbItemId in LeanbackChannelWorker (#1119)
* Use parentThumbItemId

* Fallback to parentThumb
2021-08-31 18:41:09 +02:00
Niels van Velzen
a31da7afc8 Use caching via actions/setup-java 2021-08-31 18:36:20 +02:00
Moritz
1be253e69a Translated using Weblate (German)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-08-30 08:29:55 -04:00
Niels van Velzen
5b6527bd4a Forward audio play requests to playback module 2021-08-27 21:14:14 +02:00
Bill Thornton
56f3211eed Merge pull request #1099 from linetrimmer/grid-adjustments
Adjust positions of grid UI elements
2021-08-27 06:51:34 -07:00
Bill Thornton
aef0abc16c Merge pull request #1112 from linetrimmer/pbssub 2021-08-26 19:20:39 -07:00
linetrimmer
c0677e6f28 Fix tyop 2021-08-26 19:12:08 -04:00
linetrimmer
27d7a4bde4 Move down toolBar and infoRow 2021-08-26 16:05:17 -04:00
Bill Thornton
21591a7ac1 Remove useless check method (#1111) 2021-08-26 18:22:35 +00:00
Bill Thornton
98f870da86 Downmix audio by default on Chromecast with Google TV (#1110) 2021-08-26 20:01:40 +02:00
Bill Thornton
ea6aba6196 Merge pull request #1109 from nielsvanvelzen/android-opaque
Add android-opaque to supported as supported VLC video output
2021-08-26 08:11:15 -07:00
Bill Thornton
f5208a1663 Add guide card to live tv library views (#1108) 2021-08-26 13:37:46 +02:00
Niels van Velzen
49a7541d76 Add android-opaque to supported as supported VLC video output 2021-08-26 13:33:29 +02:00
Bill Thornton
55dcb95f13 Merge pull request #1105 from nielsvanvelzen/hardware-marquee
Use hardware layer for text views with marquee ellipsize
2021-08-25 12:51:30 -07:00
Bill Thornton
f4882779c4 Merge pull request #1104 from nielsvanvelzen/dts-always-true
Remove isDtsEnabled from ExoPlayerProfile (always true)
2021-08-25 12:46:36 -07:00
Niels van Velzen
2b3ecf735c Use hardware layer for text views with marquee ellipsize 2021-08-25 20:16:06 +02:00
Niels van Velzen
465270ec11 Remove isDtsEnabled from ExoPlayerProfile (always true) 2021-08-25 19:52:19 +02:00
linetrimmer
9d5d56da57 Adjust person/user card colors and non-active button color for Muted Purple theme (#1100)
* Separate person and user cards, change colors for Muted Purple

* Theme button_default_normal background color

* Use camelCase and reorder
2021-08-25 19:46:23 +02:00
Bill Thornton
524eb3ef56 Restore direct play support for avi with libvlc (#1102) 2021-08-25 18:21:25 +02:00
Bill Thornton
e86540e0ef Enable multichannel audio support for Fire TVs (#1103) 2021-08-25 18:20:42 +02:00
Bill Thornton
4268c54e35 Merge pull request #1096 from nielsvanvelzen/vlc-misc-fix
Fix VLC error reporting and black screens
2021-08-25 07:00:37 -07:00
Niels van Velzen
29479b7ea9 Add missing break 2021-08-25 08:49:15 +02:00
linetrimmer
d10ae09a7a Swap toolBar and npBug positions, revert toolBar size change 2021-08-25 00:50:21 -04:00
Bill Thornton
076aef64bb Merge pull request #1087 from MrChip53/revert-ff-rw
Revert FF and RW
2021-08-24 20:43:33 -07:00
Weevild
661d119c30 Translated using Weblate (Swedish)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2021-08-24 18:29:53 -04:00
Oatavandi
515b15be0a Translated using Weblate (Malayalam)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2021-08-23 13:29:53 -04:00
Oatavandi
c05af8333b Translated using Weblate (Tamil)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-08-23 13:29:52 -04:00
Csaba
2afb99bec5 Translated using Weblate (Hungarian)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-08-23 03:29:52 -04:00
linetrimmer
7d5e26a713 Match counter and statusText margins 2021-08-23 00:25:13 -04:00
linetrimmer
2de4f02602 Reposition toolBar and npBug 2021-08-22 23:49:14 -04:00
Niels van Velzen
b3319e8850 Fix VLC output not using android-display
The onNewVideoLayout function we use to scale the video view does not work on the opengl video output from LibVLC
2021-08-22 16:50:21 +02:00
Niels van Velzen
f7d3c7154d Fix VLC error reporting 2021-08-22 16:49:49 +02:00
hoanghuy309
03afa8fa27 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-08-22 06:29:52 -04:00
Niels van Velzen
b64c5efed2 Add PlaybackForwardingActivity for bridging to new playback module (#1092) 2021-08-22 09:55:01 +02:00
Rober Molina
da14ac9f3d Translated using Weblate (Spanish (Latin America))
Currently translated at 99.7% (442 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-08-21 17:29:52 -04:00
Christopher Tam
5cf569bc1c Remove vpx (unused) as a CodecType (#1095) 2021-08-21 10:32:36 +02:00
MrChip53
d5fd21b935 Revert FF and RW; pull values from user settings 2021-08-18 19:51:11 -05:00
jellyfin-bot
49748457bb Update Gradle Wrapper from 7.1.1 to 7.2. (#1093)
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>

Co-authored-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-08-18 17:39:42 +02:00
newton181
7109a88e27 Translated using Weblate (Spanish)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-08-17 15:29:51 -04:00
newton181
944340eff7 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-08-17 15:29:51 -04:00
wolong gl
47f506efec Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-08-17 05:29:50 -04:00
WWWesten
ac0ced7ac1 Translated using Weblate (Kazakh)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-08-16 18:29:51 -04:00
Lukáš Kucharczyk
5a9bcd2fa0 Translated using Weblate (Czech)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-08-16 18:29:51 -04:00
WWWesten
3263b7bb44 Translated using Weblate (Russian)
Currently translated at 100.0% (443 of 443 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-08-16 18:29:50 -04:00
dependabot[bot]
c5d848b285 Bump burnett01/rsync-deployments from 5.0 to 5.1 (#1091)
Bumps [burnett01/rsync-deployments](https://github.com/burnett01/rsync-deployments) from 5.0 to 5.1.
- [Release notes](https://github.com/burnett01/rsync-deployments/releases)
- [Commits](https://github.com/burnett01/rsync-deployments/compare/5.0...5.1)

---
updated-dependencies:
- dependency-name: burnett01/rsync-deployments
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-16 17:11:12 +00:00
hoanghuy309
c40f9bb7d5 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-08-16 12:41:58 -04:00
Niels van Velzen
5a0127f472 Add option to always require authentication (#1084) 2021-08-16 18:41:54 +02:00
Lukáš Kucharczyk
ed9cf9e09d Translated using Weblate (Czech)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-08-16 04:29:50 -04:00
Gubb Jonas
4310bc46c8 Translated using Weblate (Swedish)
Currently translated at 93.6% (412 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2021-08-14 21:29:51 -04:00
WWWesten
066898c422 Translated using Weblate (Kazakh)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-08-14 21:29:50 -04:00
lautundobszoen
59a0ffdda0 Translated using Weblate (German)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-08-14 21:29:50 -04:00
WWWesten
3d3edea350 Translated using Weblate (Russian)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-08-14 21:29:50 -04:00
Oatavandi
3b1f2f7e3e Translated using Weblate (Malayalam)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2021-08-14 14:29:50 -04:00
Oatavandi
6be83fe940 Translated using Weblate (Tamil)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-08-14 14:29:50 -04:00
nextlooper42
cc80a79531 Translated using Weblate (Slovak)
Currently translated at 100.0% (440 of 440 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-08-14 10:29:50 -04:00
Bill Thornton
e8fd0d76d9 Merge pull request #1082 from nielsvanvelzen/fix-double-session-load
Fix session loading twice on app startup
2021-08-13 10:46:26 -07:00
Bill Thornton
2bf877143e Merge pull request #1079 from nielsvanvelzen/auth-sort-by
Add preference to change user sort order in login screen
2021-08-13 10:20:53 -07:00
newton181
d3e2c6e498 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-08-11 19:29:50 -04:00
volumeinspection
2137a7ccc2 Translated using Weblate (Norwegian Bokmål)
Currently translated at 98.1% (430 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nb_NO/
2021-08-11 19:29:49 -04:00
newton181
8db9c7e60c Translated using Weblate (Spanish)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-08-11 19:29:49 -04:00
newton181
5592809f91 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-08-11 19:29:49 -04:00
Niels van Velzen
cbcf2c9b7c Use the process lifecycle to (re)load user sessions
This simplifies our code as there is now only a single place to restore the session. This automatically supports opening the app after putting it in the background.
2021-08-11 23:00:15 +02:00
Oatavandi
672201e86b Translated using Weblate (Malayalam)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2021-08-11 14:29:50 -04:00
hoanghuy309
7590ace5c9 Translated using Weblate (Vietnamese)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-08-11 14:29:49 -04:00
Oatavandi
9d2b2da60d Translated using Weblate (Tamil)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-08-11 14:29:49 -04:00
Moritz
0b7659786c Translated using Weblate (German)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-08-11 14:29:49 -04:00
Niels van Velzen
1ab524cf08 Add preference to change user sort order in login screen 2021-08-10 20:47:24 +02:00
wolong gl
d8c57dc0e8 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-08-10 03:29:48 -04:00
Anthony Lavado
12e0014c8a Merge pull request #1076 from thornbill/fix-setting-null-sessions 2021-08-10 02:49:00 -04:00
Bill Thornton
edc615aba9 Allow user sessions to be set to null again 2021-08-10 00:16:21 -04:00
dependabot[bot]
ddfd98a26f Bump burnett01/rsync-deployments from 4.1 to 5.0 (#1075)
Bumps [burnett01/rsync-deployments](https://github.com/burnett01/rsync-deployments) from 4.1 to 5.0.
- [Release notes](https://github.com/burnett01/rsync-deployments/releases)
- [Commits](https://github.com/burnett01/rsync-deployments/compare/4.1...5.0)

---
updated-dependencies:
- dependency-name: burnett01/rsync-deployments
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-09 21:42:25 +02:00
Niels van Velzen
1c4e76a934 Fix going back from home screen (#1074) 2021-08-09 16:34:01 +02:00
Csaba
9532805990 Translated using Weblate (Hungarian)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-08-09 03:29:48 -04:00
Lukáš Kucharczyk
c013ae1acd Translated using Weblate (Czech)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-08-08 20:29:48 -04:00
WWWesten
c85b8d01f1 Translated using Weblate (Russian)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-08-08 17:29:48 -04:00
WWWesten
88f1308e94 Translated using Weblate (Kazakh)
Currently translated at 100.0% (438 of 438 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-08-08 17:29:48 -04:00
Weblate
8351bd1558 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-08-08 13:05:06 -04:00
Niels van Velzen
fe75e4ba5b Move useExternalPlayer and getPlaybackActivityClass functions to new PlaybackLauncher interface (#1064)
* Move useExternalPlayer and getPlaybackActivityClass functions to new PlaybackLauncher interface

* Add toggle to enable new playback module

* Add BuildConfig.DEVELOPMENT
2021-08-08 19:04:58 +02:00
Weblate
5177800be4 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-08-08 13:03:33 -04:00
jakeapp
14a3a815b1 Move from 4 zoom options to 3 (#1062)
* Update VideoManager.java

* Update VideoManager.java

* Update ZoomAction.java

* Update strings.xml
2021-08-08 19:03:29 +02:00
Niels van Velzen
510a3c4901 Fix wrong supported commands reported (#1073) 2021-08-08 17:29:13 +02:00
Niels van Velzen
6f3943cdb5 Add (empty) playback module and CODEOWNERS (#1072)
* Add (empty) playback module

* Add CODEOWNERS file
2021-08-08 17:28:56 +02:00
Matt
4e9a239b2c Translated using Weblate (Italian)
Currently translated at 98.1% (428 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-08-06 14:29:49 -04:00
Bill Thornton
90b5ef4c9f Merge pull request #1068 from nielsvanvelzen/1065-check-intent
Fix being unable to switch users
2021-08-05 10:22:03 -07:00
Niels van Velzen
8f1584d648 Fix being unable to switch users
StartupActivity now checks if the action in the launch intent is ACTION_MAIN (opened from launcher)
2021-08-05 19:14:53 +02:00
Bill Thornton
ad89c30b79 Merge pull request #1059 from nielsvanvelzen/always-restore-session 2021-08-01 08:03:43 -07:00
Niels van Velzen
b417be554a Restore user session when starting after soft-closing the app 2021-08-01 15:02:19 +02:00
Ali Amer
24ef2cf3e8 Translated using Weblate (Arabic)
Currently translated at 76.6% (334 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-07-30 16:29:48 -04:00
Bill Thornton
cba34da68b Merge pull request #1052 from nielsvanvelzen/unused-funcs
Remove utility functions only used by tests
2021-07-29 06:46:50 -07:00
Bill Thornton
bf63a07713 Merge pull request #1051 from nielsvanvelzen/useless-sdk-check
Remove is50 check (always true)
2021-07-29 06:42:23 -07:00
Bill Thornton
8a4e0b3afc Merge pull request #1033 from nielsvanvelzen/acra-update
Update ACRA to 5.8.x
2021-07-29 06:39:18 -07:00
Niels van Velzen
e44a7490a7 Remove utility functions only used by tests 2021-07-29 14:26:27 +02:00
Niels van Velzen
7f85107160 Remove is50 check (always true)
The app only supports Android API 21 and up, the check would always return true.
2021-07-29 14:21:31 +02:00
Niels van Velzen
818784635f Hide system bars during video playback (#1047) 2021-07-28 19:38:55 +02:00
Niels van Velzen
f1414902f8 Update androidx.window to alpha09 (#1042) 2021-07-28 19:38:40 +02:00
wolong gl
6d45d4d353 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-07-28 11:29:44 -04:00
WWWesten
f5e81099af Translated using Weblate (Russian)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-07-28 07:29:45 -04:00
Sverre
e0ee7f190f Translated using Weblate (Norwegian Bokmål)
Currently translated at 96.7% (422 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nb_NO/
2021-07-28 07:29:45 -04:00
linetrimmer
146d8dd847 Round up runtime calculation and match server resolution text in InfoLayoutHelper (#1036)
* Round up runtime calculation

* Match server resolution text
2021-07-26 17:37:26 +02:00
Niels van Velzen
33bfb43253 Update ACRA to 5.8.x 2021-07-25 11:09:15 +02:00
Adrian Borowski
03a155f098 Translated using Weblate (Polish)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2021-07-24 17:29:44 -04:00
SaddFox
ba658e0f7a Translated using Weblate (Slovenian)
Currently translated at 80.2% (350 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sl/
2021-07-24 17:29:43 -04:00
SaddFox
5689a79aa6 Translated using Weblate (Slovenian)
Currently translated at 79.8% (348 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sl/
2021-07-24 11:29:43 -04:00
Bill Thornton
60fd6e3fb9 Merge pull request #1031 from nielsvanvelzen/fix-credential-migration 2021-07-24 07:24:26 -07:00
Niels van Velzen
a09abd9869 Fix legacy credential migration not working as expected 2021-07-24 10:38:02 +02:00
Sam
bff2638d0c Translated using Weblate (Arabic)
Currently translated at 44.4% (194 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-07-23 23:29:43 -04:00
Nico83500
ac1c74bb9c Translated using Weblate (French)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-07-23 19:29:42 -04:00
Bill Thornton
20f9bf0da0 Fix user information not reflecting updates (#977)
* Fix user information not reflecting updates

* Fix converting PrivateUsers to PublicUsers

* Migrate AuthenticationRepository to sdk

* Update user store on authentication

* Fix user image displayed after being deleted

* Fix review issues

* Use when instead of if/else
2021-07-23 16:55:02 +02:00
Sam
b16a2bda8e Translated using Weblate (Arabic)
Currently translated at 41.0% (179 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ar/
2021-07-22 11:29:45 -04:00
Bill Thornton
a1e7eb7f63 Merge pull request #1020 from nielsvanvelzen/ux-update
Add new banner/icon resources
2021-07-14 13:09:39 -04:00
Niels van Velzen
a966de09e7 Add new banner/icon resources 2021-07-14 15:07:11 +02:00
Niels van Velzen
8407cc6638 Merge pull request #1019 from thornbill/change-default-screen
Change default screen
2021-07-14 10:28:48 +02:00
Bill Thornton
e4afd13136 Merge pull request #1018 from nielsvanvelzen/update-system-session
Update system session when system user is modified
2021-07-14 01:04:08 -04:00
Bill Thornton
f18390fa44 Disable smart screen by default 2021-07-14 01:00:52 -04:00
Niels van Velzen
c726cf73cb Update system session when system user is modified 2021-07-13 22:15:35 +02:00
Bill Thornton
bf40f3b32d Fix property access style in DisplayPreferencesScreen 2021-07-13 15:28:46 -04:00
Bill Thornton
c51b92265d Merge pull request #1016 from nielsvanvelzen/leanback-channels-check-provider
Check if content provider is available in LeanbackChannelWorker
2021-07-13 15:17:20 -04:00
Niels van Velzen
91991eec5f Merge pull request #1013 from thornbill/4k-on-1080
Playback fixes for Fire TVs
2021-07-13 19:40:11 +02:00
Niels van Velzen
11a8d5a028 Check if content provider is available in LeanbackChannelWorker 2021-07-13 17:04:27 +02:00
Bill Thornton
51f7e5424e Merge pull request #1010 from nielsvanvelzen/auto-bitrate
Fix auto bitrate issues
2021-07-13 10:29:55 -04:00
Bill Thornton
56cba06e5d Merge pull request #1017 from nielsvanvelzen/sdk-101
Update jellyfin-sdk-kotlin to 1.0.1
2021-07-13 10:24:36 -04:00
Niels van Velzen
cda958d30e Update jellyfin-sdk-kotlin to 1.0.1
Fixes an issue with special characters in device names
2021-07-13 16:10:34 +02:00
Niels van Velzen
5853e057da Fix maxRate comparison 2021-07-13 09:24:58 +02:00
Oatavandi
e6e3811401 Translated using Weblate (Malayalam)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2021-07-12 06:29:49 -04:00
Oatavandi
fb80004d90 Translated using Weblate (Malayalam)
Currently translated at 11.9% (52 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ml/
2021-07-11 18:29:41 -04:00
Oatavandi
6f472ba405 Translated using Weblate (Tamil)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-07-11 18:29:40 -04:00
Lukáš Kucharczyk
0c48f2cba2 Translated using Weblate (Czech)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-07-11 18:29:39 -04:00
Bill Thornton
b2cbf4a2ab Merge pull request #1006 from dhiaayachi/master 2021-07-11 11:29:28 -04:00
Dhia Ayachi
4f8000c63b Fix comment 2021-07-10 13:25:27 -04:00
Niels van Velzen
6c891ac661 Remove getMaxBitrate rounding 2021-07-10 13:49:35 +02:00
Bill Thornton
a2401c5f47 Merge pull request #1001 from nielsvanvelzen/redo-gradle
Refactor build scripts for consistency with jellyfin-sdk-kotlin
2021-07-09 16:52:04 -04:00
Bill Thornton
dcaef4ad39 Fix max supported resolution for Fire TVs 2021-07-09 16:32:23 -04:00
Bill Thornton
8b3c178824 Fix supported h264 levels for Fire TV devices 2021-07-09 16:32:23 -04:00
Mayeul Cantan
d0708afb1b Translated using Weblate (French)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-07-09 08:47:38 -04:00
Antti Rae
c24187df64 Translated using Weblate (Finnish)
Currently translated at 50.9% (222 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fi/
2021-07-09 08:47:38 -04:00
Niels van Velzen
01db6e195b Refactor build scripts for consistency with jellyfin-sdk-kotlin 2021-07-08 22:33:05 +02:00
Niels van Velzen
2c843f0724 Fix always using auto bitrate 2021-07-08 21:56:18 +02:00
Niels van Velzen
6ca802d561 Set maxBitrate default to 100 2021-07-08 21:56:18 +02:00
Niels van Velzen
5fef467b49 Use bitrate utility function from SDK 2021-07-08 21:56:18 +02:00
Bill Thornton
405069dc98 Merge pull request #1005 from nielsvanvelzen/browse-folder-clock
Fix clock in BrowseFolderFragment(s)
2021-07-08 00:47:39 -04:00
Bill Thornton
b04b322cfb Merge pull request #999 from nielsvanvelzen/inflate-root
Add root to NowPlayingBug and NumberSpinner layout inflation
2021-07-08 00:30:22 -04:00
Bill Thornton
97b37bf447 Merge pull request #1004 from nielsvanvelzen/image-center
Fix incorrect placeholder scaling
2021-07-08 00:15:21 -04:00
Bill Thornton
70fc585531 Merge pull request #1000 from nielsvanvelzen/double-valueof
Use Double.valueOf
2021-07-08 00:13:56 -04:00
Bill Thornton
c997ad7490 Merge pull request #997 from linetrimmer/endtime
Hide end time when clock is hidden while browsing
2021-07-08 00:13:07 -04:00
Bill Thornton
65e90b1a39 Merge pull request #996 from nielsvanvelzen/card-fractions
Use consistent animations for different card views
2021-07-08 00:11:35 -04:00
Bill Thornton
939195168c Merge pull request #1008 from nielsvanvelzen/sdk-100 2021-07-07 01:31:28 -04:00
Niels van Velzen
d5ebf11a69 Update SDK to 1.0.0 release 2021-07-06 22:04:03 +02:00
dhiaayachi
562e56c93b fix to check for PAUSED state 2021-07-05 15:36:53 -04:00
wolong gl
cdbe015e78 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-07-05 13:05:03 -04:00
Gubb Jonas
2c03d03458 Translated using Weblate (Swedish)
Currently translated at 92.8% (405 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2021-07-05 13:05:03 -04:00
Niels van Velzen
6791147f4c Remove unused noise bitmap/style 2021-07-04 14:59:08 +02:00
Niels van Velzen
b51c45f94b Fix clock in BrowseFolderFragment(s) 2021-07-04 14:58:59 +02:00
Niels van Velzen
0ab100d6ae Fix incorrect placeholder scaling 2021-07-04 14:47:46 +02:00
Niels van Velzen
99a1cb5b9f Merge pull request #1003 from linetrimmer/logo-fallback
Fall back to item title if loading logo fails in playback overlay
2021-07-04 13:53:20 +02:00
linetrimmer
eb2ee3dd50 Fall back to item title if loading logo fails 2021-07-04 06:29:43 -04:00
Niels van Velzen
4971bcb16b Merge pull request #1002 from jellyfin/gradlew-update-7.1.1
Update Gradle Wrapper from 7.1 to 7.1.1
2021-07-03 08:33:20 +02:00
gradle-update-robot
2f7d0ca116 Update Gradle Wrapper from 7.1 to 7.1.1.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-07-03 04:23:46 +00:00
Niels van Velzen
0dcb963829 Use Double.valueOf
This improves memory performance according to the Android linter rule
2021-07-02 10:42:27 +02:00
Niels van Velzen
328a8bad53 Add root to NowPlayingBug and NumberSpinner layout inflation 2021-07-02 10:29:05 +02:00
Niels van Velzen
172a310009 Merge pull request #998 from linetrimmer/seek-fix
Fix crash when seeking in video
2021-07-02 09:59:28 +02:00
linetrimmer
ee9daeb820 Fix crash when seeking in video 2021-07-02 01:31:59 -04:00
linetrimmer
395f127f97 Hide end time when clock is hidden while browsing 2021-07-01 17:42:00 -04:00
Niels van Velzen
a287697bed Use consistent animations for different card views
The leanback based cards previously used 114% scaling and the animation is hardcoded to 150ms. The timing of our own DefaultCardView is now also 150ms and the scaling for the leanback cards is now 115%. This makes our own card and the leanback based cards consistent in their animations.
2021-07-01 23:12:59 +02:00
Niels van Velzen
b2ab7ba2cc Merge pull request #995 from thornbill/why-util
Remove unnecessary createPopupMenu util
2021-07-01 18:56:52 +02:00
Bill Thornton
2acd048601 Use Gravity.END instead of RIGHT 2021-07-01 12:17:54 -04:00
Niels van Velzen
0d8b63b1b0 Merge pull request #993 from thornbill/audio-delay-popup
Fix audio delay popup positioning
2021-07-01 18:06:49 +02:00
Niels van Velzen
87bce25ed3 Merge pull request #994 from thornbill/audio-delay-step
Change default step value in NumberSpinner
2021-07-01 18:05:30 +02:00
Bill Thornton
e81532c6a7 Remove unnecessary createPopupMenu util 2021-07-01 11:54:48 -04:00
Bill Thornton
ca72ab4c4b Fix audio delay popup positioning 2021-07-01 11:23:03 -04:00
Bill Thornton
8a58f0932b Change default step value in NumberSpinner 2021-07-01 11:18:19 -04:00
Niels van Velzen
d1d5872335 Merge pull request #973 from thornbill/playback-overlay
Update playback overlay layout
2021-06-30 17:20:24 +02:00
Bill Thornton
2c965527d9 Merge pull request #988 from nielsvanvelzen/linter-issues 2021-06-30 09:39:26 -04:00
Niels van Velzen
f1f0d46f87 Sort lint.xml list alphabetically 2021-06-30 13:08:02 +02:00
Niels van Velzen
a2f9685c02 Ignore Typos issue 2021-06-30 13:07:26 +02:00
Niels van Velzen
6232f74ba9 Ignore DuplicateStrings issue 2021-06-30 13:07:26 +02:00
Weblate
9f5e7d83e6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-06-30 06:56:37 -04:00
hoanghuy309
1839a9b01c Translated using Weblate (Vietnamese)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-06-30 06:56:35 -04:00
nextlooper42
bfcebba678 Translated using Weblate (Slovak)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-06-30 06:56:35 -04:00
Bill Thornton
c19b0c0511 Remove unneeded LinearLayout 2021-06-30 00:20:24 -04:00
Bill Thornton
8055727187 Fix review issues 2021-06-29 17:04:47 -04:00
Bill Thornton
c030311876 Merge pull request #986 from nielsvanvelzen/net-crash
Fix app crash on startup when network is unstable
2021-06-29 15:19:17 -04:00
Bill Thornton
c51abf03f4 Merge pull request #985 from nielsvanvelzen/sdk-flavor
Support different SDK flavors
2021-06-29 13:40:28 -04:00
Niels van Velzen
98e1f6b9d5 Fix SDK compiler error 2021-06-29 17:29:24 +02:00
Niels van Velzen
1385cfba7e Support different SDK flavors 2021-06-29 17:29:24 +02:00
Niels van Velzen
285d02598f Catch and handle exceptions in startup activity 2021-06-29 17:25:12 +02:00
Niels van Velzen
242900ffa1 Properly catch networking errors in ApiBinder
The old WebSocket code in the apiclient can not forward exceptions properly and would crash the main thread. By moving it to a lower position we can catch networking exceptions with the API call above it.
2021-06-29 16:44:25 +02:00
Niels van Velzen
b7770a4200 Merge pull request #983 from thornbill/background-opacity
Update background filter transparency
2021-06-29 16:23:59 +02:00
danielxb-ar
d235f689e5 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-06-29 10:18:06 -04:00
danielxb-ar
839a311119 Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2021-06-29 10:18:05 -04:00
Csaba
ccf80ebf29 Translated using Weblate (Hungarian)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-06-29 10:18:05 -04:00
wolong gl
6fa2896e81 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.3% (429 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-06-29 10:18:04 -04:00
WWWesten
93c41967af Translated using Weblate (Russian)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-06-29 10:18:04 -04:00
WWWesten
91fde37bb1 Translated using Weblate (Kazakh)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-06-29 10:18:03 -04:00
newton181
f2e7bf1820 Translated using Weblate (Spanish)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-06-29 10:18:03 -04:00
newton181
1e9c9434c7 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-06-29 10:18:02 -04:00
Moritz
d965895d40 Translated using Weblate (German)
Currently translated at 100.0% (436 of 436 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-06-29 10:18:02 -04:00
Bill Thornton
4fe0f54b96 Update background filter transparency 2021-06-25 17:35:44 -04:00
Bill Thornton
7d323c19dd Use display name for episodes 2021-06-24 10:58:00 -04:00
Bill Thornton
0fcbad6ff4 Cleanup CustomPlaybackOverlayFragment and update title display 2021-06-24 10:10:24 -04:00
Weblate
d49a4cb16b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-06-24 02:50:49 -04:00
Niels van Velzen
08b30eb029 Merge pull request #981 from thornbill/fix-grid-crash
Fix crash due to missing context on grid
2021-06-24 08:49:04 +02:00
Bill Thornton
27dee64994 Merge pull request #974 from linetrimmer/translated-season-episode 2021-06-23 21:15:48 -04:00
Bill Thornton
ee6aa6851f Fix crash due to missing context on grid 2021-06-23 17:30:05 -04:00
Niels van Velzen
09d86ab37a Merge pull request #980 from thornbill/add-glide-app-module
Add glide app module for configuration
2021-06-23 22:30:01 +02:00
Weblate
2ec4e4cac6 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-06-23 16:28:01 -04:00
WWWesten
3a7adb31cf Translated using Weblate (Russian)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-06-23 16:27:59 -04:00
WWWesten
b703ca74bd Translated using Weblate (Romanian)
Currently translated at 94.3% (400 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ro/
2021-06-23 16:27:59 -04:00
WWWesten
effdaf23fe Translated using Weblate (Macedonian)
Currently translated at 26.6% (113 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mk/
2021-06-23 16:27:59 -04:00
WWWesten
69a17d49ad Translated using Weblate (Russian)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-06-23 16:27:59 -04:00
WWWesten
43c8d3c039 Translated using Weblate (Polish)
Currently translated at 95.2% (404 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pl/
2021-06-23 16:27:59 -04:00
WWWesten
a3b4791477 Translated using Weblate (Greek)
Currently translated at 73.3% (311 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/el/
2021-06-23 16:27:59 -04:00
XueSNH
44c94d47bb Translated using Weblate (Spanish (Dominican Republic))
Currently translated at 32.0% (136 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_DO/
2021-06-23 16:27:59 -04:00
WWWesten
43aa4d6c93 Translated using Weblate (Norwegian Bokmål)
Currently translated at 95.2% (404 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nb_NO/
2021-06-23 16:27:59 -04:00
WWWesten
f5fe6afbbf Translated using Weblate (Danish)
Currently translated at 94.8% (402 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/da/
2021-06-23 16:27:59 -04:00
WWWesten
e1d0b1eca8 Translated using Weblate (Vietnamese)
Currently translated at 94.8% (402 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/vi/
2021-06-23 16:27:59 -04:00
danielxb-ar
d3e99ff45a Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2021-06-23 16:27:59 -04:00
WWWesten
540816325b Translated using Weblate (Serbian)
Currently translated at 94.3% (400 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sr/
2021-06-23 16:27:59 -04:00
WWWesten
eba4966b8f Translated using Weblate (Italian)
Currently translated at 95.0% (403 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/it/
2021-06-23 16:27:59 -04:00
XueSNH
0efb4178a6 Translated using Weblate (Spanish)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-06-23 16:27:59 -04:00
WWWesten
f870b238b3 Translated using Weblate (Ukrainian)
Currently translated at 22.4% (95 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/uk/
2021-06-23 16:27:59 -04:00
WWWesten
3394006635 Translated using Weblate (Portuguese (Portugal))
Currently translated at 94.3% (400 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_PT/
2021-06-23 16:27:59 -04:00
WWWesten
1765f22b4b Translated using Weblate (Croatian)
Currently translated at 83.0% (352 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hr/
2021-06-23 16:27:59 -04:00
Moritz
21b240196a Translated using Weblate (German)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-06-23 16:27:59 -04:00
WWWesten
fa9ecb16fd Translated using Weblate (Mongolian)
Currently translated at 42.4% (180 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/mn/
2021-06-23 16:27:59 -04:00
Oatavandi
c1e0c218ca Translated using Weblate (Tamil)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ta/
2021-06-23 16:27:59 -04:00
DrZack-CN
658011fd58 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.5% (418 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/zh_Hans/
2021-06-23 16:27:59 -04:00
WWWesten
5a97195e78 Translated using Weblate (Slovenian)
Currently translated at 78.5% (333 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sl/
2021-06-23 16:27:59 -04:00
WWWesten
b3691737fb Translated using Weblate (Latvian)
Currently translated at 72.1% (306 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/lv/
2021-06-23 16:27:59 -04:00
sephrat
58f95a4916 Translated using Weblate (French)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-06-23 16:27:59 -04:00
WWWesten
ce943e0995 Translated using Weblate (Kazakh)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-06-23 16:27:59 -04:00
WWWesten
8251362227 Translated using Weblate (Swedish)
Currently translated at 94.8% (402 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sv/
2021-06-23 16:27:59 -04:00
WWWesten
888e950aa2 Translated using Weblate (English (United Kingdom))
Currently translated at 94.8% (402 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en_GB/
2021-06-23 16:27:59 -04:00
WWWesten
2861f7324a Translated using Weblate (Turkish)
Currently translated at 83.2% (353 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/tr/
2021-06-23 16:27:59 -04:00
WWWesten
46f16642e5 Translated using Weblate (Catalan)
Currently translated at 85.1% (361 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ca/
2021-06-23 16:27:59 -04:00
Csaba
3d3c4bfa07 Translated using Weblate (Hungarian)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-06-23 16:27:59 -04:00
WWWesten
d7005e1d3c Translated using Weblate (Indonesian)
Currently translated at 72.1% (306 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/id/
2021-06-23 16:27:59 -04:00
XueSNH
536c53e7cd Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-06-23 16:27:59 -04:00
WWWesten
b206925034 Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.8% (402 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/pt_BR/
2021-06-23 16:27:59 -04:00
danielxb-ar
6632a87c19 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-06-23 16:27:59 -04:00
WWWesten
f4a33f390d Translated using Weblate (French)
Currently translated at 99.0% (420 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-06-23 16:27:59 -04:00
sephrat
c0fc87e632 Translated using Weblate (French)
Currently translated at 99.0% (420 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/fr/
2021-06-23 16:27:59 -04:00
WWWesten
c245b24d7b Translated using Weblate (Spanish (Mexico))
Currently translated at 95.2% (404 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_MX/
2021-06-23 16:27:59 -04:00
WWWesten
f523923015 Translated using Weblate (Spanish)
Currently translated at 99.0% (420 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-06-23 16:27:59 -04:00
XueSNH
d49d9fc3a5 Translated using Weblate (Spanish)
Currently translated at 99.0% (420 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-06-23 16:27:59 -04:00
WWWesten
96821310de Translated using Weblate (Russian)
Currently translated at 100.0% (424 of 424 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-06-23 16:27:59 -04:00
WWWesten
13bad95c34 Added translation using Weblate (Arabic) 2021-06-23 16:27:59 -04:00
WWWesten
393cee15c2 Added translation using Weblate (Malayalam) 2021-06-23 16:27:59 -04:00
linetrimmer
01af1b79db Remove unused strings 2021-06-23 16:21:41 -04:00
linetrimmer
d49701a5d6 Review changes 2021-06-23 15:56:41 -04:00
Bill Thornton
30c2b543d4 Fix review issues 2021-06-23 15:41:51 -04:00
Bill Thornton
018fa91398 Add glide app module for configuration 2021-06-23 14:42:53 -04:00
linetrimmer
a56a31f588 Remove TvApp from getting strings 2021-06-23 14:35:02 -04:00
linetrimmer
2b1fc67963 Add child count, name (date), time range strings 2021-06-23 14:35:02 -04:00
linetrimmer
aad0d0cb8e Combine series overview strings for translations 2021-06-23 14:35:02 -04:00
linetrimmer
6c5353deb8 Move title function to BaseItemUtils 2021-06-23 14:35:02 -04:00
linetrimmer
57902daec4 Rename BaseItemUtils to Kotlin file 2021-06-23 14:35:02 -04:00
linetrimmer
55a4e4bc92 Refactor BaseItemUtils in Kotlin 2021-06-23 14:35:01 -04:00
linetrimmer
77f253f514 Use translated season/episode number strings throughout app 2021-06-23 14:31:14 -04:00
Niels van Velzen
b017091492 Merge pull request #921 from thornbill/crashes
Fix nullability issues
2021-06-23 17:46:43 +02:00
Niels van Velzen
85ebcf29f2 Merge pull request #979 from thornbill/fix-prev-channel-crash
Fix crash when previous channel id is empty
2021-06-23 17:36:08 +02:00
Bill Thornton
b92fe392a0 Fix crash when previous channel id is empty 2021-06-23 11:29:27 -04:00
Bill Thornton
fb712a4797 Mark TvApp.getApplication() as nullable 2021-06-23 11:11:47 -04:00
Bill Thornton
223a863445 Make context nonnull in getThemeColor 2021-06-23 10:41:09 -04:00
Bill Thornton
8993df3cef Make context nonnull in convertDpToPixel and avoid using TvApp.getApplication() 2021-06-23 10:39:18 -04:00
Bill Thornton
8bb0de5b74 Fix nullability issues 2021-06-23 09:55:24 -04:00
Niels van Velzen
226c558272 Merge pull request #978 from thornbill/fix-watching-and-recording
Fix crash when watching and recording live tv
2021-06-23 09:05:41 +02:00
Bill Thornton
95a1886581 Fix crash when watching and recording live tv 2021-06-23 00:40:05 -04:00
Bill Thornton
3e01aebc71 Merge pull request #926 from nielsvanvelzen/directplay-fix
Fix direct play
2021-06-22 23:39:20 -04:00
Bill Thornton
eee0323021 Merge pull request #976 from nielsvanvelzen/publish-sign-fix 2021-06-21 23:30:38 -04:00
Niels van Velzen
e6426fa611 Sign release files using apksigner instead of Gradle and include debug files in release 2021-06-21 21:57:31 +02:00
Bill Thornton
cdb84407b3 Merge pull request #970 from nielsvanvelzen/version-check-b
Show server not supported error in user login alert and replace ServerVersion.asText() with ServerVersion.toString()
2021-06-17 00:14:34 -04:00
Bill Thornton
29587252a2 Merge pull request #969 from jellyfin/nvv-issue-template-contact
Add link to contact page in issue template config
2021-06-16 15:01:13 -04:00
Bill Thornton
f425429ce8 Merge pull request #971 from nielsvanvelzen/fix-nextup-dead
Don't pause video on activity pause
2021-06-16 14:58:12 -04:00
Niels van Velzen
53e435cb3c Also stop playback things when fragment stops 2021-06-16 20:42:08 +02:00
Niels van Velzen
bc9293d74d Don't pause video on activity pause
This is consistent with other apps like YouTube
2021-06-16 20:39:36 +02:00
Weblate
0c07ced35b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-06-16 14:34:34 -04:00
Csaba
8a7923c60c Translated using Weblate (Hungarian)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-06-16 14:34:32 -04:00
danielxb-ar
ca11e17748 Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2021-06-16 14:34:32 -04:00
Luis Rhenals
8ad4355732 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-06-16 14:34:32 -04:00
Moritz
507ab611e5 Translated using Weblate (German)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-06-16 14:34:32 -04:00
Luis Rhenals
1697456c4d Translated using Weblate (Spanish)
Currently translated at 99.2% (415 of 418 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es/
2021-06-16 14:34:32 -04:00
WWWesten
90c542bccc Translated using Weblate (Kazakh)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/kk/
2021-06-16 14:34:32 -04:00
WWWesten
6798d5d37d Translated using Weblate (Russian)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/ru/
2021-06-16 14:34:32 -04:00
Csaba
4b2ea94c67 Translated using Weblate (Hungarian)
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-06-16 14:34:32 -04:00
danielxb-ar
11eaf6eddf Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_AR/
2021-06-16 14:34:32 -04:00
Niels van Velzen
2587d673a0 Translated using Weblate (Dutch)
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-06-16 14:34:32 -04:00
danielxb-ar
b600a538e1 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/es_419/
2021-06-16 14:34:32 -04:00
nextlooper42
3f179e81bc Translated using Weblate (Slovak)
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/sk/
2021-06-16 14:34:32 -04:00
Moritz
496e9e6444 Translated using Weblate (German)
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/de/
2021-06-16 14:34:32 -04:00
Lukáš Kucharczyk
9d4e3fb0f8 Translated using Weblate (Czech)
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/cs/
2021-06-16 14:34:32 -04:00
Csaba
8b30f5b1ff Translated using Weblate (Hungarian)
Currently translated at 100.0% (411 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/hu/
2021-06-16 14:34:32 -04:00
Niels van Velzen
06d5444490 Translated using Weblate (Dutch)
Currently translated at 99.0% (407 of 411 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-06-16 14:34:32 -04:00
linetrimmer
19eaeb898f Merge pull request #850 from linetrimmer/next_up
Adjust layout of next up screen, add option to hide thumbnail
2021-06-16 20:31:49 +02:00
Niels van Velzen
b60c3a3f06 Show server not supported error in user login alert and replace ServerVersion.asText() with ServerVersion.toString() 2021-06-16 16:54:06 +02:00
Niels van Velzen
8ab11fe261 Update .github/ISSUE_TEMPLATE/config.yml 2021-06-16 15:54:44 +02:00
Bill Thornton
792ca7f8eb Merge pull request #968 from nielsvanvelzen/sdk-beta-8
Update SDK to beta 8
2021-06-16 09:52:05 -04:00
Niels van Velzen
f23eead9c1 Add link to contact page in issue template config 2021-06-16 13:51:51 +02:00
Niels van Velzen
b95a6dbe65 Update SDK to beta 8 2021-06-16 10:15:51 +02:00
Niels van Velzen
f5bdb8e406 Merge pull request #966 from thornbill/consistent-clock
Update clock bug to match toolbar
2021-06-16 09:59:03 +02:00
Niels van Velzen
e9dfdb78cd Merge pull request #965 from linetrimmer/theme-rounding
Use theme rounding value in DefaultCardView
2021-06-16 09:50:10 +02:00
Niels van Velzen
46998964e9 Merge pull request #967 from jellyfin/gradlew-update-7.1
Update Gradle Wrapper from 7.0.2 to 7.1
2021-06-16 08:59:45 +02:00
gradle-update-robot
96d744f62f Update Gradle Wrapper from 7.0.2 to 7.1.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-06-16 04:24:40 +00:00
Bill Thornton
e898216c71 Update clock bug to match toolbar 2021-06-16 00:08:48 -04:00
linetrimmer
8b9934f541 Use theme rounding value in DefaultCardView 2021-06-15 20:04:57 -04:00
Bill Thornton
bfe6e5a927 Merge pull request #964 from nielsvanvelzen/user-wants-to-go-home
Don't close the video player when activity is paused
2021-06-15 16:39:07 -04:00
Bill Thornton
6adeaf945b Merge pull request #963 from nielsvanvelzen/soft-crash
Close activity instead of crashing when playback fails
2021-06-15 16:38:16 -04:00
Niels van Velzen
3a3b39f5d1 Don't close the video player when activity is paused 2021-06-15 21:49:59 +02:00
Niels van Velzen
996144a6b9 Close activity instead of crashing when spaghetti doesn't work 2021-06-15 21:43:17 +02:00
Bill Thornton
1ed6e4de8c Merge pull request #962 from nielsvanvelzen/select-server-ui
Improve select server UI and use the toolbar again
2021-06-15 14:02:10 -04:00
Niels van Velzen
62797d0fe7 Fix critical issue 2021-06-15 19:35:54 +02:00
Niels van Velzen
112455daae Increase QR code size and add border 2021-06-15 19:24:45 +02:00
Niels van Velzen
1265241938 Add help alert 2021-06-15 17:57:50 +02:00
Niels van Velzen
17d44ae8f1 Restructure select server fragment 2021-06-15 17:57:49 +02:00
Niels van Velzen
4db644aaeb Add help and settings buttons to startup toolbar 2021-06-15 17:57:47 +02:00
Bill Thornton
f75cb88b38 Merge pull request #955 from nielsvanvelzen/imagebutton-replace
Replace ImageButton with Button.Icon style
2021-06-15 10:59:07 -04:00
Niels van Velzen
9308643fa6 Fix direct play 2021-06-15 15:15:46 +02:00
Niels van Velzen
71a67db6e5 Remove unused spaced_buttons style and ic_loop_red icon 2021-06-15 15:08:09 +02:00
Niels van Velzen
ecf2a7748c Add "activated" state to icon button in favor of tinted icons 2021-06-15 15:08:08 +02:00
Niels van Velzen
8733a48fe2 Delete ImageButton 2021-06-15 15:08:07 +02:00
Niels van Velzen
dbd2268c99 Remove misused of ImageButton 2021-06-15 15:08:05 +02:00
Niels van Velzen
6579ff976b Add style for disabled buttons 2021-06-15 15:08:04 +02:00
Niels van Velzen
23ea956eec Replace ImageButton in AudioNowPlayingActivity 2021-06-15 15:08:02 +02:00
Niels van Velzen
1cc4322ce4 Replace ImageButton in StdGridFragment 2021-06-15 15:08:00 +02:00
Bill Thornton
2ae29481ae Merge pull request #944 from nielsvanvelzen/server-overview-rewrite
Rewrite authentication UI
2021-06-14 17:20:15 -04:00
Niels van Velzen
f87aea1fa5 Increase Detekt TooManyFunctions threshold 2021-06-14 21:42:33 +02:00
Bill Thornton
52fc7cfca9 Merge pull request #957 from linetrimmer/toolbar_padding
Remove padding from end of toolbar content when clock is hidden
2021-06-14 13:47:07 -04:00
Bill Thornton
1130397588 Merge pull request #959 from Aerion/remove-libvlc-refframes-limitation
Remove libvlc RefFrames restriction
2021-06-14 13:45:41 -04:00
Niels van Velzen
64cb15ad37 Fix tint of icons in Button.Default style and server button 2021-06-14 18:44:00 +02:00
Niels van Velzen
c9c11988ba Change server icon to a house instead of a cloud 2021-06-14 16:33:18 +02:00
Niels van Velzen
48d5f9aec1 Fix removing user not removing the access token
Actions now properly implemented and use the authentication repository as proxy
2021-06-14 12:07:41 +02:00
Niels van Velzen
aaa5aebe57 Fix ServerFragment keeping history when closing due too invalid server 2021-06-14 11:55:25 +02:00
Niels van Velzen
c85bfeaee0 Fix incorrect scale in DefaultCardView when focused by default 2021-06-14 11:55:25 +02:00
Niels van Velzen
5d387deca9 Add inline state to server button when connecting to a discovery server 2021-06-14 11:55:24 +02:00
Niels van Velzen
1e7338197b Merge pull request #960 from jellyfin/dependabot/github_actions/actions/cache-2.1.6
Bump actions/cache from 2.1.5 to 2.1.6
2021-06-14 09:39:41 +02:00
dependabot[bot]
e2abeac784 Bump actions/cache from 2.1.5 to 2.1.6
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.5 to 2.1.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.5...v2.1.6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-14 06:44:29 +00:00
linetrimmer
f74b3c7047 Include padding only when clock is visible 2021-06-13 15:08:19 -04:00
Guillaume Taquet Gasperini
975b58a523 Remove libvlc RefFrames restriction
There is a limitation hardcoded in jellyfin-androidtv that prevents
direct playing a h264 file with libvlc if it has a number of reference
frames == 1.

This limitation was added 5 years ago (da38c02) and causes files to
be transcoded. But since then, libvlc seems to support files with
reference frames < 2.

Thus, this commit removes that limitation, as from my tests
jellyfin-androidtv directs streams and plays those files without any
issue when libvlc is selected.

Closes #958
2021-06-13 20:11:02 +02:00
Bill Thornton
a49ec4cc2a Merge pull request #956 from nielsvanvelzen/apiclient-jitpack
Use Jellyfin apiclient from JitPack, remove JCenter repository
2021-06-13 00:27:30 -04:00
Niels van Velzen
d9244e1fa6 Update Detekt 2021-06-12 12:28:34 +02:00
Niels van Velzen
67b3d0742b Use Jellyfin apiclient from JitPack, remove JCenter repository 2021-06-12 12:25:10 +02:00
Niels van Velzen
96fa1523dc Fix incorrect overscan values 2021-06-12 09:52:57 +02:00
Niels van Velzen
e4539da1cc Rewrite authentication UI 2021-06-12 09:52:57 +02:00
Bill Thornton
ca213f0ff4 Merge pull request #952 from nielsvanvelzen/gh-publish
Move release publishing to GHA
2021-06-12 02:00:17 -04:00
Bill Thornton
6bca926594 Merge pull request #953 from nielsvanvelzen/home-toolbar
Add toolbar to home activity
2021-06-12 01:59:03 -04:00
Niels van Velzen
f6432a2eba Use toolbar on home activity 2021-06-11 21:03:04 +02:00
Bill Thornton
c68bb02004 Merge pull request #954 from nielsvanvelzen/fix-grid-refresh
Fix StdGridFragment always refreshing on resume
2021-06-11 12:21:56 -04:00
Niels van Velzen
5cad7c5128 Fix StdGridFragment always refreshing on resume
Now properly checks changes and updates only when necessary
2021-06-11 16:15:17 +02:00
Niels van Velzen
894af9655a Add fade transition to buttons 2021-06-11 14:24:08 +02:00
Niels van Velzen
04e1718855 Add publish workflow 2021-06-11 11:59:28 +02:00
Bill Thornton
5029248804 Merge pull request #950 from nielsvanvelzen/str-fixes
Use ellipsis character instead of 3 dots and fix positional arguments
2021-06-11 01:43:32 -04:00
Niels van Velzen
ed2c19df95 Use ellipsis character instead of 3 dots and fix positional arguments 2021-06-10 17:50:52 +02:00
Niels van Velzen
3b67367987 Remove unused strings across all languages 2021-06-10 17:17:50 +02:00
Bill Thornton
9cf6803b27 Merge pull request #949 from nielsvanvelzen/unused-res
Remove unused non-string resources
2021-06-10 11:13:32 -04:00
Niels van Velzen
cbb5a46045 Remove unused non-string resources 2021-06-10 17:08:34 +02:00
Niels van Velzen
33465fe119 Translated using Weblate (English)
Currently translated at 93.5% (446 of 477 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/en/
2021-06-10 11:07:42 -04:00
Bill Thornton
c11ae6882d Merge pull request #946 from nielsvanvelzen/gradle-publishing
Prepare Gradle build scripts for new publish CI
2021-06-10 11:03:29 -04:00
Bill Thornton
4705cb6846 Merge pull request #948 from nielsvanvelzen/weblate-move
Update weblate links
2021-06-10 11:01:24 -04:00
Weblate
7ef2f7835b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-06-10 10:37:56 -04:00
Weblate
c7bf930dc4 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-06-10 10:37:54 -04:00
Weblate
94c4ce7a0f Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/
2021-06-10 10:37:54 -04:00
Niels van Velzen
79746d279c Translated using Weblate (Dutch)
Currently translated at 98.9% (471 of 476 strings)

Translation: Jellyfin Android/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/nl/
2021-06-10 10:37:54 -04:00
bugthug
a2734a8eb1 Translated using Weblate (Hebrew)
Currently translated at 97.6% (465 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2021-06-10 10:37:54 -04:00
Niels van Velzen
d3e94ad512 Translated using Weblate (Dutch)
Currently translated at 98.5% (469 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2021-06-10 10:37:54 -04:00
yasharnategh
46b0f0beb7 Added translation using Weblate (Persian) 2021-06-10 10:37:54 -04:00
Niels van Velzen
6157c247aa Merge pull request #932 from linetrimmer/next_up_external
Use Next Up screen when playing with an external app
2021-06-10 14:01:54 +02:00
linetrimmer
f668e1c66d Use extra constants in player activities 2021-06-10 07:52:06 -04:00
Niels van Velzen
2d8ba845c9 Updatew weblate links 2021-06-10 10:01:25 +02:00
Niels van Velzen
c1247fa068 Merge pull request #947 from thornbill/fix-clock-layout
Fix broken layout on grid pages
2021-06-10 08:51:12 +02:00
Bill Thornton
54b8c662e6 Fix broken layout on grid pages 2021-06-10 00:09:54 -04:00
linetrimmer
958c08fdbb Move extras to constants 2021-06-09 23:43:33 -04:00
Bill Thornton
cfed57921f Merge pull request #945 from nielsvanvelzen/UnusedIds-ignore 2021-06-09 17:46:46 -04:00
Niels van Velzen
e25f5a0693 Prepare Gradle build scripts for new publish CI
- Removes proguard (unused)
- Make output APK name consistent with jellyfin-android
- Add versionTxt task
- Add release signing configuration
2021-06-09 23:15:33 +02:00
Niels van Velzen
24c7b5cbef Merge pull request #920 from thornbill/clock-take-2
Refactor clock view
2021-06-09 22:36:02 +02:00
Niels van Velzen
67b8fc6cf5 Ignore UnusedIds linter check
Doesn't work properly with view binding (causing false-positives)
2021-06-09 22:28:18 +02:00
Bill Thornton
94c48f883b Fix review issues 2021-06-09 16:27:57 -04:00
Niels van Velzen
b6b3775c6b Merge pull request #943 from thornbill/playback-helper-cleanup
Improve null handling in PlaybackHelper.getItemsToPlay
2021-06-09 21:52:42 +02:00
Bill Thornton
8b2d05912b Call onError when current user is null 2021-06-09 15:32:22 -04:00
Bill Thornton
a64d54d78d Improve null handling in PlaybackHelper.getItemsToPlay 2021-06-09 11:41:43 -04:00
Bill Thornton
5516a07cd9 Merge pull request #940 from nielsvanvelzen/cards-against-droid
Refactor all card views
2021-06-09 10:50:27 -04:00
Bill Thornton
bb158f153a Fix review issues 2021-06-09 10:41:27 -04:00
Bill Thornton
27d5f9e7e9 Merge pull request #941 from nielsvanvelzen/IPositionablePresenter
Simplify IPositionablePresenter structure (removed interface)
2021-06-09 00:16:12 -04:00
Bill Thornton
6191a31f24 Merge pull request #914 from nielsvanvelzen/expandabletextview-popup
Rewrite ExpandableTextView to use a popup instead of activity
2021-06-09 00:13:29 -04:00
Bill Thornton
a04d72c8b4 Merge pull request #927 from nielsvanvelzen/actions-build
Move build CI to GitHub Actions
2021-06-09 00:06:54 -04:00
Bill Thornton
b5c3a1d0b0 Merge pull request #924 from nielsvanvelzen/emit-server-id-after-add
Emit server information after adding it in the ServerRepository
2021-06-09 00:04:27 -04:00
Bill Thornton
a922bc4721 Merge pull request #923 from nielsvanvelzen/invalid-token-check
Show login dialog when token is invalid
2021-06-09 00:03:31 -04:00
Bill Thornton
7023e78c58 Merge pull request #851 from linetrimmer/next_up_specials
Include specials when queuing subsequent episodes
2021-06-08 23:58:06 -04:00
Bill Thornton
f58480d4d5 Merge pull request #928 from nielsvanvelzen/sdk-master
Update SDK snapshot version to master-SNAPSHOT
2021-06-07 17:40:33 -04:00
Bill Thornton
c1c5fb7959 Merge pull request #939 from nielsvanvelzen/official-license-text
Update LICENSE file to match exact formatting from gnu.org
2021-06-07 17:39:36 -04:00
Bill Thornton
fbfb455483 Merge pull request #942 from nielsvanvelzen/unused-videoview
Remove unused StdVideoView and IVideoView
2021-06-07 17:38:00 -04:00
Niels van Velzen
1ce4cc59b5 Remove unused StdVideoView and IVideoView 2021-06-07 22:29:06 +02:00
Niels van Velzen
aeed12b938 Simplify IPositionablePresenter structure (removed interface) 2021-06-07 22:12:23 +02:00
Niels van Velzen
549b0aea44 Use view binding in all card views 2021-06-07 21:59:20 +02:00
Niels van Velzen
8204a01068 Rename all card related views to a consistent format 2021-06-07 21:51:42 +02:00
Niels van Velzen
efed4df383 Update LICENSE file to match exact formatting from gnu.org
Exact same license but formatting changed slightly. Sourced from https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
2021-06-05 22:00:45 +02:00
linetrimmer
9fa3993cb1 Use finishAfterTransition, pass boolean extra if using external player 2021-06-05 14:14:29 -04:00
Niels van Velzen
e6adac44a7 Merge pull request #936 from linetrimmer/separate_series_episodes
Separate series and episodes in person item details, sort items by name
2021-06-05 13:54:12 +02:00
Niels van Velzen
981a461ed3 Merge pull request #935 from linetrimmer/item_details_title
Fix long single-line title pushing item details text up
2021-06-05 10:43:55 +02:00
linetrimmer
d850fa9a66 Separate series and episodes in person item details, sort items by name 2021-06-05 04:34:17 -04:00
linetrimmer
d65428d5cb Add back missing finish(), clear video queue on cancel if not modified 2021-06-05 03:07:21 -04:00
linetrimmer
2c5e862863 Fix condition complexity 2021-06-03 19:52:00 -04:00
linetrimmer
7bf8c6c805 Autoplay with external player if next up screen disabled 2021-06-03 18:56:40 -04:00
linetrimmer
f6ac674008 Set limit as class level constant 2021-06-03 18:35:42 -04:00
linetrimmer
2ee7b77f8d Account for 'Always Ask' player option 2021-06-03 14:58:53 -04:00
linetrimmer
d14bd64c4f Adjust next up option dependencies 2021-06-03 14:20:50 -04:00
linetrimmer
fe5df36624 Use Next Up screen when using an external player 2021-06-03 14:03:00 -04:00
linetrimmer
f7be662aba Fix long single-line title pushing item details text up 2021-06-02 21:56:42 -04:00
Niels van Velzen
3f34bbd845 Merge pull request #929 from jellyfin/dependabot/github_actions/actions/cache-2.1.6
Bump actions/cache from 2.1.5 to 2.1.6
2021-05-31 10:35:14 +02:00
dependabot[bot]
f2661a8c7c Bump actions/cache from 2.1.5 to 2.1.6
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.5 to 2.1.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.5...v2.1.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-31 06:57:38 +00:00
Niels van Velzen
729ee7d70b Update SDK snapshot version to master-SNAPSHOT 2021-05-29 16:38:35 +02:00
Niels van Velzen
587c50d863 Move APK build CI to GitHub Actions
Azure still used for releases only (not triggered on pull requests anymore)
2021-05-29 09:58:14 +02:00
Niels van Velzen
83423a053e Merge pull request #919 from thornbill/hide-live-tv
Hide live TV section when unavailable
2021-05-28 18:50:56 +02:00
Bill Thornton
420ec1c59d Merge pull request #925 from nielsvanvelzen/compat-junk
Remove junk code from compat package
2021-05-28 10:42:17 -04:00
Bill Thornton
9571182c1f Skip live tv check if not in homesections 2021-05-28 10:22:44 -04:00
Bill Thornton
345dccf0d1 Fix review issues 2021-05-28 10:14:53 -04:00
Niels van Velzen
2e067b9ecc Remove unnecessary ITranscoderSupport and FullTranscoderSupport that always returned true 2021-05-27 19:38:25 +02:00
Niels van Velzen
d2fa4aaf4e Remove unused DrawingUtils compat functions 2021-05-27 19:37:31 +02:00
Niels van Velzen
764e2248df Removed unused compat classes 2021-05-27 19:37:15 +02:00
Niels van Velzen
a06843b801 Emit server information after adding it in the ServerRepository 2021-05-27 19:06:08 +02:00
Niels van Velzen
fac0b8cb81 Show login dialog when token is invalid 2021-05-27 18:56:17 +02:00
Niels van Velzen
a0c839261f Review changes 2021-05-26 16:45:51 +02:00
Bill Thornton
36e21ed66e Check live tv access before requesting recommendations 2021-05-26 09:40:45 -04:00
Bill Thornton
5271d138a6 Add shadows to clock view text 2021-05-26 00:09:16 -04:00
Bill Thornton
abcc5dca1f Add support for clock when user is not signed in 2021-05-25 23:36:17 -04:00
Bill Thornton
44a68535b6 Add viewbinding to ClockUserView 2021-05-25 23:36:01 -04:00
Bill Thornton
7a5bf393bc Convert ClockUserView to Kotlin 2021-05-25 23:30:41 -04:00
Bill Thornton
ec04217e9f Remove clock transparency 2021-05-25 23:18:46 -04:00
Bill Thornton
87b7d0a8df Merge pull request #897 from koying/chgswitchreso
CHG: Be smarter when switching reso
2021-05-25 23:06:39 -04:00
Niels van Velzen
9cd81e81a5 Add close hint to expandable text popup 2021-05-25 23:12:58 +02:00
Bill Thornton
4cf645b59f Hide live TV section when unavailable 2021-05-25 16:26:04 -04:00
Niels van Velzen
82652d6621 Rewrite ExpandableTextView to use a popup instead of activity 2021-05-25 20:02:40 +02:00
Bill Thornton
ef5339e334 Merge pull request #918 from nielsvanvelzen/preference-store-interface
Add PreferenceStore interface
2021-05-25 11:34:03 -04:00
Bill Thornton
65c102f844 Merge pull request #912 from nielsvanvelzen/system-user-api
Add SDK ApiClient and migrate LeanbackChannelWorker
2021-05-25 11:32:07 -04:00
Niels van Velzen
b17adc5f49 Migrate LeanbackChannelWorker to SDK with the system user 2021-05-25 16:45:36 +02:00
Niels van Velzen
6b6a762c24 Add KtorClient instances for user and system and apply sessions in SessionRepository
This allows the use of the new SDK while keeping the old apiclient working
2021-05-25 16:43:01 +02:00
Niels van Velzen
15157fbb5e Merge pull request #917 from thornbill/allow-wildcards
Allow wildcard imports in detekt
2021-05-25 16:40:03 +02:00
Niels van Velzen
94a0f1f882 Add PreferenceStore interface to allow multiple kinds of storage backends in the future 2021-05-25 16:40:01 +02:00
Bill Thornton
e7ab1bad9f Allow wildcard imports in detekt 2021-05-25 10:28:38 -04:00
Niels van Velzen
1609d5d270 Merge pull request #905 from thornbill/blurhashs-back-alright
Decode blur hashes in background thread
2021-05-24 20:16:25 +02:00
Niels van Velzen
95168854f4 Use lifecycle when loading BlurHashes 2021-05-24 19:33:04 +02:00
Bill Thornton
2762b60140 Merge pull request #913 from nielsvanvelzen/sdk-snapshot
Add Gradle property to use SDK snapshot version
2021-05-24 10:11:14 -04:00
Bill Thornton
d5a4751da5 Allow null blur hash strings 2021-05-24 10:08:40 -04:00
Niels van Velzen
75a9ae4e15 Update SDK to 1.0.0-beta.7 2021-05-24 15:29:37 +02:00
Tiago Pinto
4fcc7e9a54 Translated using Weblate (Portuguese (Portugal))
Currently translated at 98.7% (470 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_PT/
2021-05-23 14:31:01 -04:00
Thomas Schwery
f7581b795b Translated using Weblate (French)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-05-23 14:31:01 -04:00
Niels van Velzen
e934e40378 Add gradle property to use snapshot version for the SDK 2021-05-22 11:00:08 +02:00
linetrimmer
8dd4fcf9fd Check for null current user, add limit and StartItemId TODO 2021-05-21 15:26:07 -04:00
Niels van Velzen
ed6b94faa8 Merge pull request #911 from thornbill/can-i-has-flac
Add flac support to exoplayer profile
2021-05-21 20:30:11 +02:00
Bill Thornton
dd60acf58a Merge pull request #910 from nielsvanvelzen/koin-kt15
Update Koin to 2.2.3 and remove temporary logging change to prevent crashes
2021-05-21 14:23:40 -04:00
Bill Thornton
91896c7b80 Add flac support to exoplayer profile 2021-05-21 14:17:57 -04:00
Bill Thornton
fcbd2e375f Merge pull request #880 from nielsvanvelzen/sdk-in-login
Use new Kotlin SDK for server repository
2021-05-21 13:33:52 -04:00
Niels van Velzen
21ce46c3b5 Update sdk version 2021-05-21 19:01:42 +02:00
Niels van Velzen
982bfe5698 Add login disclaimer and version to stored servers 2021-05-21 19:01:41 +02:00
Niels van Velzen
d3ace02ba4 Remove apiclient model extensions 2021-05-21 19:01:41 +02:00
Niels van Velzen
438904ed35 Use UUID functions from SDK 2021-05-21 19:01:41 +02:00
Niels van Velzen
ca1dffb57a Use new SDK for discovery and public user detection in ServerRepository 2021-05-21 19:01:40 +02:00
Niels van Velzen
f765d17306 Add instance of new SDK Jellyfin class to dependency injection module 2021-05-21 19:01:39 +02:00
nextlooper42
10ba2b149c Translated using Weblate (Slovak)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2021-05-21 12:31:01 -04:00
Niels van Velzen
d9afe54f98 Merge pull request #899 from thornbill/separate-profiles
Refactor player profiles
2021-05-21 18:16:34 +02:00
Bill Thornton
d1aee92319 Fix review issues 2021-05-21 12:07:07 -04:00
Bill Thornton
f47fc8fcb6 Merge pull request #908 from nielsvanvelzen/backoff
Add backoff setting for leanback channel worker
2021-05-21 11:24:34 -04:00
Bill Thornton
fcfe4768cb Move shared profile logic to ProfileHelper 2021-05-21 11:01:28 -04:00
Niels van Velzen
734817e191 Merge pull request #903 from thornbill/grid-performance
Grid view improvements
2021-05-21 09:14:55 +02:00
Niels van Velzen
a3e1102239 Merge pull request #888 from thornbill/fireos-alpha-picker
Refactor alpha picker in Kotlin and fix Fire OS compatability
2021-05-21 09:06:59 +02:00
Bill Thornton
db6303b822 Fix code style issues 2021-05-21 01:35:10 -04:00
Bill Thornton
2b79c32eab Refactor profile helper in Kotlin 2021-05-21 01:35:10 -04:00
Bill Thornton
afdd3229cb Move ExoPlayer profile to class 2021-05-21 01:35:08 -04:00
Bill Thornton
f7c20c015a Fix code style issues 2021-05-21 01:31:49 -04:00
Bill Thornton
1f0a4e332b Fix spaces in device profiles 2021-05-21 01:30:15 -04:00
Bill Thornton
44595575d0 Move libVLC profile to class 2021-05-21 01:30:13 -04:00
Bill Thornton
e4b83a3640 Move base player profile to class 2021-05-21 01:11:27 -04:00
Bill Thornton
c4c1ae5350 Move external player profile to class 2021-05-21 01:11:27 -04:00
Bill Thornton
8d33039692 Move device profile classes to new package 2021-05-21 01:11:27 -04:00
Bill Thornton
632260e501 Remove unused imports 2021-05-21 01:09:05 -04:00
Bill Thornton
e90c9bbbca Disable scroll bar in alpha picker 2021-05-21 01:05:01 -04:00
Bill Thornton
5cf988a2d1 Use medium cards by default 2021-05-21 01:00:27 -04:00
Niels van Velzen
8d6b82f258 Update Koin to 2.2.3 and remove temporary logging change to prevent crashes
New Koin version now supports Kotlin 1.5
2021-05-20 22:26:45 +02:00
Niels van Velzen
42b71bd6c5 Use backwards compatible setBackoffCriteria function
Using a Duration class is only possible on Android API 26 and up
2021-05-20 18:47:33 +02:00
Marius Lindvall
661f326ff5 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2021-05-20 06:31:00 -04:00
Page Asgardius
1397b77d7d Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2021-05-20 06:31:00 -04:00
Niels van Velzen
87a367ef45 Merge pull request #907 from thornbill/disable-ac3-on-fs1
Disable AC3 for Fire Stick Gen 1 devices
2021-05-19 22:30:45 +02:00
Bill Thornton
85cc84e6e9 Add migration for ac3 setting for Gen 1 Fire Sticks 2021-05-19 16:06:49 -04:00
Bill Thornton
c7ff1e5202 Merge pull request #906 from nielsvanvelzen/GradleDependency
Disable GradleDependency lint check
2021-05-19 14:45:07 -04:00
Bill Thornton
ae683291cd Use screen density in size calculations 2021-05-19 13:49:08 -04:00
Niels van Velzen
ace1849a89 Add backoff setting for leanback channel worker 2021-05-19 19:30:59 +02:00
Bill Thornton
5a8783bc0b Disable ac3 for Fire Stick Gen 1 devices 2021-05-19 13:15:44 -04:00
Bill Thornton
7c754cef73 Merge pull request #843 from nielsvanvelzen/google-exo
Update ExoPlayer to 2.14.0
2021-05-19 13:06:25 -04:00
Niels van Velzen
36b62ed858 Disable GradleDependency lint check 2021-05-19 17:45:05 +02:00
Bill Thornton
0a053005e7 Add card image background color 2021-05-19 10:40:06 -04:00
Bill Thornton
716843ba3c Move width/height calculation for blurhash 2021-05-19 10:39:46 -04:00
Bill Thornton
84908e0f79 Added blur hash service and glide extension 2021-05-19 10:39:30 -04:00
Bill Thornton
3924a109d9 Disable blurhash due to performance issues 2021-05-19 10:39:18 -04:00
Bill Thornton
9b5fb35ee0 Use constant fields for preference values 2021-05-19 10:34:31 -04:00
Bill Thornton
eb361585b8 Merge pull request #904 from nielsvanvelzen/my-media-ignore
Hide ignored media libraries from leanback channel integration
2021-05-19 10:25:45 -04:00
Niels van Velzen
33911392bf Hide ignored media libraries from leanback channel integration 2021-05-19 16:10:51 +02:00
Bill Thornton
b9175cd7d4 Reduce chunk size in grids to improve serialization time 2021-05-18 16:11:14 -04:00
Bill Thornton
fa8c9f27b6 Use screen size not library size to determine default card size 2021-05-18 15:18:12 -04:00
Bill Thornton
aa0f05a863 Remove "spinner" from grid fragment 2021-05-18 15:16:49 -04:00
Bill Thornton
2f663992fa Merge pull request #902 from nielsvanvelzen/inject-insulin-into-the-droid
Add desugaring to support java.time
2021-05-18 12:31:09 -04:00
Niels van Velzen
f63de47cba Add desugaring to support java.time 2021-05-18 18:20:07 +02:00
Niels van Velzen
5e27237e97 Merge pull request #901 from koying/fixstartup
FIX: unnecessary object at each startup
2021-05-18 15:33:30 +02:00
Chris "koying" Browet
2be96d9aae FIX: unnecessary object at each startup 2021-05-18 14:54:12 +02:00
Bill Thornton
318a8951e0 Move scroll view to alpha picker 2021-05-18 00:13:57 -04:00
Bill Thornton
06b4b5ee06 Add horizontal scrolling to alpha picker 2021-05-17 14:12:31 -04:00
Niels van Velzen
89565ce6fd Merge pull request #898 from thornbill/no-alpha-icons
Remove transparency from card badges
2021-05-17 19:43:08 +02:00
Niels van Velzen
7e863d401f Merge pull request #896 from koying/fixaudioswitch
FIX: allow switch audio from paused
2021-05-17 19:41:09 +02:00
Bill Thornton
e7fb865972 Merge pull request #891 from koying/fixvlcpt
FIX: [vlc] "setAudioOutput" disables passthrough
2021-05-17 13:27:28 -04:00
Jorge Rodriguez
284be90e6b Translated using Weblate (Spanish)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2021-05-17 11:30:58 -04:00
Bill Thornton
75acd2b034 Rename alpha picker button view 2021-05-17 10:48:57 -04:00
Bill Thornton
aee2c21633 Remove transparency from card badges 2021-05-17 09:58:12 -04:00
Chris "koying" Browet
9697732ac2 CHG: Be smarter when switching reso 2021-05-17 11:19:02 +02:00
Chris "koying" Browet
6add9bbd74 FIX: allow switch audio from paused 2021-05-17 10:13:46 +02:00
Niels van Velzen
0c2eb17c28 Merge pull request #895 from thornbill/fix-subtitles-out-of-bounds
Fix subtitles out of bounds crash
2021-05-17 08:57:42 +02:00
Bill Thornton
367ead6965 Fix subtitles out of bounds crash 2021-05-17 00:41:25 -04:00
Bill Thornton
f9ca944a1d Fix alpha picker review issues 2021-05-17 00:26:21 -04:00
Chris "koying" Browet
b7118c22b0 FIX: [vlc] "setAudioOutput" disables passthrough 2021-05-16 11:06:30 +02:00
Marcin Woliński
8437707b47 Translated using Weblate (Polish)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-05-15 14:30:57 -04:00
wolong gl
941b7f3047 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2021-05-15 14:30:57 -04:00
WWWesten
8f63de4b6d Translated using Weblate (Russian)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-05-15 14:30:57 -04:00
WWWesten
2b62e132e9 Translated using Weblate (Kazakh)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-05-15 14:30:57 -04:00
cocool97
3c46bd1d9d Translated using Weblate (French)
Currently translated at 99.7% (475 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-05-15 14:30:57 -04:00
Bill Thornton
930cdb6847 Merge pull request #890 from jellyfin/gradlew-update-7.0.2
Update Gradle Wrapper from 7.0.1 to 7.0.2
2021-05-15 01:04:26 -04:00
Bill Thornton
760b100acb Fix alpha picker button styling 2021-05-15 00:57:21 -04:00
gradle-update-robot
8d638ee7eb Update Gradle Wrapper from 7.0.1 to 7.0.2.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-05-15 04:30:00 +00:00
Bill Thornton
76664890a5 Fix variable scoping in StdGridFragment 2021-05-14 17:37:23 -04:00
Bill Thornton
b05127f45e Fix Kotlin review issues 2021-05-14 17:26:16 -04:00
Bill Thornton
a5a2af4902 Refactor alpha picker in Kotlin and fix Fire OS compatability 2021-05-14 16:48:50 -04:00
Niels van Velzen
9c516db187 Update ExoPlayer to 2.14.0 (was 2.11.3) and switch from Amazon fork to official Google version 2021-05-14 14:57:42 +02:00
Niels van Velzen
eea080cd7b Merge pull request #882 from ferferga/master
Replace GH_TOKEN with JF_BOT_TOKEN
2021-05-13 20:00:28 +02:00
Fernando Fernández
8ad8eefb4f chore: replace GH_TOKEN with JF_BOT_TOKEN 2021-05-13 19:45:48 +02:00
newton181
81fec42371 Translated using Weblate (Spanish (Mexico))
Currently translated at 93.6% (446 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2021-05-13 04:29:06 -04:00
Federico Antoniazzi
9a37ea0667 Translated using Weblate (Italian)
Currently translated at 99.7% (475 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-05-13 04:29:06 -04:00
danielxb-ar
9e58e9479d Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-05-13 04:29:06 -04:00
Oatavandi
b7a03efbe4 Translated using Weblate (Tamil)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-05-13 04:29:06 -04:00
Moritz
befd10ef7b Translated using Weblate (German)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-05-13 04:29:06 -04:00
danielxb-ar
d6d5e4994e Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-05-13 04:29:06 -04:00
Csaba
33e2689d4b Translated using Weblate (Hungarian)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-05-13 04:29:06 -04:00
hoanghuy309
06196473f7 Translated using Weblate (Vietnamese)
Currently translated at 99.5% (474 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-05-13 04:29:06 -04:00
Lukáš Kucharczyk
f6f9760cc7 Translated using Weblate (Czech)
Currently translated at 100.0% (476 of 476 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2021-05-13 04:29:06 -04:00
Niels van Velzen
431dcc40dd Merge pull request #874 from thornbill/lacking-focus
Fix Fire OS focus issues on login
2021-05-13 08:37:12 +02:00
Bill Thornton
c7422b614c Merge pull request #878 from nielsvanvelzen/session-start
Move worker initialization and auto bitrate test to after session is created
2021-05-12 18:08:22 -04:00
Bill Thornton
f1431beef4 Merge pull request #879 from nielsvanvelzen/remove-unused-resources
Remove a bunch of unused resources
2021-05-12 17:46:00 -04:00
Bill Thornton
b1c460e771 Fix return value in alert fragments 2021-05-12 17:40:15 -04:00
Niels van Velzen
f99422afe3 Remove a bunch of unused resources 2021-05-12 19:47:46 +02:00
Niels van Velzen
f87d32577c Move worker initialization and auto bitrate test to after session is created 2021-05-12 19:38:52 +02:00
Niels van Velzen
2b6973b8d6 Merge pull request #877 from thornbill/no-dim-card-text
Remove text dimming on inactive cards
2021-05-12 17:02:13 +02:00
Bill Thornton
bb2fc475ed Remove unused lb_basic_card_title_text_color_inactive value 2021-05-12 09:29:08 -04:00
Niels van Velzen
d9b909f417 Merge pull request #876 from thornbill/exoplayer-dvdsubs
Change subtitle delivery method for dvdsubs in exoplayer
2021-05-12 09:08:17 +02:00
Bill Thornton
ea3498f118 Remove text dimming on inactive cards 2021-05-12 01:44:10 -04:00
Bill Thornton
f215b188f3 Fix style issues 2021-05-12 00:01:56 -04:00
Bill Thornton
f829a78e25 Change subtitle delivery method for dvdsubs in exoplayer 2021-05-11 23:53:47 -04:00
Vitorvlv
27d874816b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2021-05-11 17:30:57 -04:00
millallo
721955e3f0 Translated using Weblate (Italian)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-05-11 17:30:57 -04:00
Julio García
b5c9b7fb53 Translated using Weblate (Spanish)
Currently translated at 97.6% (463 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2021-05-11 17:30:57 -04:00
Niels van Velzen
07972c4778 Merge pull request #875 from thornbill/default-default-view
Fix default value for DefaultView preference
2021-05-11 22:06:55 +02:00
Bill Thornton
2448c831cf Fix default value for DefaultView preference 2021-05-11 15:04:04 -04:00
Bill Thornton
25d2e2b8c4 Fix focus on disabled username field 2021-05-11 11:14:13 -04:00
Bill Thornton
e04a2f6f79 Fix clearing focus on add user and server screens 2021-05-11 11:14:13 -04:00
Bill Thornton
56cae15d95 Ensure focus is cleared when confirm is clicked 2021-05-11 11:14:13 -04:00
Bill Thornton
3c446f4209 Allow navigating down to confirm button on alert fragments 2021-05-11 11:14:13 -04:00
Bill Thornton
d61b118ca8 Disable automatically opening the keyboard on Fire OS 2021-05-11 11:14:13 -04:00
Bill Thornton
e76e51e798 Merge pull request #853 from nielsvanvelzen/startupactivity-refactor
Refactor StartupActivity with Kotlin extensions and new permission contracts
2021-05-11 09:51:02 -04:00
Niels van Velzen
02a1e83939 Merge branch 'master' into startupactivity-refactor 2021-05-11 11:56:41 +02:00
Niels van Velzen
111eda4f98 Merge pull request #873 from thornbill/subtitle-padding
Add horizontal padding to subtitles
2021-05-11 09:02:36 +02:00
Bill Thornton
f45bd0c6d1 Merge pull request #872 from jellyfin/gradlew-update-7.0.1
Update Gradle Wrapper from 7.0 to 7.0.1
2021-05-11 00:50:54 -04:00
Bill Thornton
390175fbaa Merge pull request #871 from nielsvanvelzen/reenable-localefolder-lint
Enable LocaleFolder lint rule again
2021-05-11 00:50:00 -04:00
Bill Thornton
66ee4d5a08 Merge pull request #869 from nielsvanvelzen/apibinder-logging
Add additional logging to ApiBinder and redo asynchronous functionality
2021-05-11 00:49:26 -04:00
Bill Thornton
c812f9e09c Add horizontal padding to subtitles 2021-05-11 00:46:05 -04:00
gradle-update-robot
c9a13878e3 Update Gradle Wrapper from 7.0 to 7.0.1.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-05-11 04:25:54 +00:00
Niels van Velzen
2a469183f3 Set session to null if it can't be established 2021-05-10 20:42:43 +02:00
Niels van Velzen
e5e5cd8703 Add additional logging to ApiBinder and redo asynchronous functionality 2021-05-10 20:21:56 +02:00
Bill Thornton
46fc788aa5 Merge pull request #849 from linetrimmer/themes
Allow themes to change rounding values/indicator shape, add Muted Purple theme
2021-05-10 11:40:38 -04:00
Niels van Velzen
380fdcbde4 Enable LocaleFolder lint rule again 2021-05-10 17:13:43 +02:00
Niels van Velzen
0e37a97c88 Merge pull request #861 from thornbill/subtitle-render
Improve subtitle rendering
2021-05-10 16:28:23 +02:00
Bill Thornton
aa4de02811 Fix review issues in subtitle rendering 2021-05-10 10:10:04 -04:00
Niels van Velzen
6d60702aad Merge pull request #870 from thornbill/fix-null-url-crash
Fix null media url crash
2021-05-10 15:58:45 +02:00
Bill Thornton
1849cdaae6 Fix null media url crash 2021-05-10 09:47:12 -04:00
hoanghuy309
a319306d07 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (473 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-05-09 13:30:58 -04:00
Oatavandi
8c8fdda3db Translated using Weblate (Tamil)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-05-09 13:30:58 -04:00
danielxb-ar
721a249376 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-05-09 13:30:58 -04:00
danielxb-ar
2d5144fa44 Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-05-09 13:30:58 -04:00
Marcin Woliński
5267094274 Translated using Weblate (Polish)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-05-09 13:30:58 -04:00
Csaba
8dac7b6d82 Translated using Weblate (Hungarian)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-05-09 13:30:58 -04:00
WWWesten
0ca379dff9 Translated using Weblate (Russian)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-05-09 13:30:58 -04:00
WWWesten
a1fbfb2451 Translated using Weblate (Kazakh)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-05-09 13:30:58 -04:00
Thomas Schwery
c78ad60845 Translated using Weblate (French)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-05-09 13:30:58 -04:00
Moritz
d6b7beae29 Translated using Weblate (German)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-05-09 13:30:58 -04:00
Lukáš Kucharczyk
9f6e1b1e73 Translated using Weblate (Czech)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2021-05-09 13:30:58 -04:00
Niels van Velzen
43cd58a80d Merge pull request #865 from jsquyres/pr/fix-getting-help-url
ISSUE_TEMPLATE/config.yml: fix URL
2021-05-08 22:17:06 +02:00
Jeff Squyres
1bae2d130a ISSUE_TEMPLATE/config.yml: fix URL
Fix the "Getting help" URL in ISSUE_TEMPLATE/config.yml.

Signed-off-by: Jeff Squyres <jeff@squyres.com>
2021-05-08 14:17:40 -04:00
linetrimmer
9b5110d154 Update string name 2021-05-07 15:13:15 -04:00
Niels van Velzen
b3d7854372 Merge pull request #862 from thornbill/koin-patch
Add workaround for koin logging issue
2021-05-07 19:44:16 +02:00
Bill Thornton
97d45228ad Update detekt config to allow TODOs and FIXMEs 2021-05-07 13:35:04 -04:00
Bill Thornton
b2c997a8c2 Add workaround for koin logging issue 2021-05-07 11:52:39 -04:00
Bill Thornton
7a2807b2f6 Merge pull request #859 from nielsvanvelzen/android-lint
Update Kotlin and Gradle plugin to latest version and add Android linter to linting workflow
2021-05-06 13:19:20 -04:00
Bill Thornton
5c13500a4f Merge pull request #857 from nielsvanvelzen/worker-fix
Always cancel existing workers before recreating
2021-05-06 13:13:01 -04:00
Bill Thornton
c8115e185a Merge pull request #855 from nielsvanvelzen/readme-2021
Update README to 2021
2021-05-06 12:52:01 -04:00
Bill Thornton
2ec1e94270 Fix looping through all subtitles on each render 2021-05-06 12:33:06 -04:00
Jack Comer
93d1a7c009 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2021-05-06 10:30:53 -04:00
Bill Thornton
99ddaaac6c Refactor subtitle render methods 2021-05-05 18:11:36 -04:00
Bill Thornton
6fc81b73d0 Fix nullability issues 2021-05-05 17:24:13 -04:00
Niels van Velzen
3b66db8a13 Update README to 2021 2021-05-05 20:55:47 +02:00
Niels van Velzen
5a577a8098 Remove koin-androidx-workmanager 2021-05-05 20:45:26 +02:00
Niels van Velzen
903033b936 Ignore broken LocaleFolder linter rule 2021-05-05 20:16:04 +02:00
Bill Thornton
234c531919 Merge pull request #818 from nielsvanvelzen/lazy-add-server
Use the AddressCandidateHelper of the Kotlin SDK to normalize the inputted server address
2021-05-05 14:10:52 -04:00
Bill Thornton
c382f1037a Merge pull request #858 from nielsvanvelzen/auth-settings-viewmodel
Use viewmodel in startup preferences
2021-05-05 13:58:36 -04:00
Niels van Velzen
69472cd50a Update Kotlin and Gradle plugin to latest version and add Android linter to linting workflow 2021-05-05 17:41:18 +02:00
Bill Thornton
1f81afd449 Merge pull request #854 from nielsvanvelzen/🤖
Remove the hidden robots from the deep depths of the code
2021-05-05 11:32:18 -04:00
Bill Thornton
332418562b Merge pull request #856 from nielsvanvelzen/gh-lint
Move linting and testing to GitHub actions
2021-05-05 11:30:40 -04:00
Niels van Velzen
f4dfa7b8f6 Use viewmodel in startup preferences 2021-05-04 20:22:34 +02:00
Niels van Velzen
4d206301ca Use eps1lon/actions-label-merge-conflict 2021-05-04 16:12:08 +02:00
Niels van Velzen
6b97f082ba Remove linting and testing from Azure pipeline 2021-05-04 15:17:34 +02:00
Niels van Velzen
6fdc61e7d1 Add testing with GitHub Actions 2021-05-04 15:17:13 +02:00
Niels van Velzen
9e80a25a19 Add linting with GitHub Actions 2021-05-04 15:14:22 +02:00
Niels van Velzen
7e367043da Remove the hidden robots from the deep depths of the code
// give some audible feedback
2021-05-04 14:44:39 +02:00
Niels van Velzen
06aa0fea55 Refactor StartupActivity with Kotlin extensions and new permission contracts 2021-05-04 14:07:12 +02:00
linetrimmer
5639c04bf9 Use EpisodeQuery to get next episodes 2021-05-03 23:18:29 -04:00
linetrimmer
0dece23cf1 Include specials when queuing subsequent episodes 2021-05-02 19:09:36 -04:00
Levi
f77f0b8974 Translated using Weblate (Swedish)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2021-05-02 18:30:52 -04:00
Chris Browet
909d12d110 Translated using Weblate (French)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-05-02 18:30:51 -04:00
linetrimmer
65b4a099c9 Allow themes to change rounding values/indicator shape, add Muted Purple theme, adjust grid dim level 2021-05-02 16:39:38 -04:00
kiferd
d761ccb5ce Translated using Weblate (Croatian)
Currently translated at 87.3% (414 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hr/
2021-04-30 05:30:53 -04:00
Marcus Hsu
9bb3c0607e Translated using Weblate (Chinese (Traditional))
Currently translated at 97.6% (463 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2021-04-30 05:30:53 -04:00
wolong gl
5c321dfad7 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2021-04-30 05:30:53 -04:00
Bill Thornton
5bf960b144 Merge pull request #840 from nielsvanvelzen/koin-maven
Use Koin version published on Maven Central
2021-04-29 13:49:22 -04:00
Niels van Velzen
bef42e8f54 Merge pull request #842 from linetrimmer/glide_cache
Use DiskCacheStrategy.RESOURCE
2021-04-28 22:15:23 +02:00
linetrimmer
8b7b3ba613 Use DiskCacheStrategy.RESOURCE 2021-04-27 02:52:40 -04:00
Niels van Velzen
9e4b622698 Merge pull request #830 from linetrimmer/grid_option
Move grid direction option to DisplayPreferencesScreen
2021-04-26 22:45:26 +02:00
linetrimmer
bf7114c51a Pass String, not GridDirection 2021-04-26 16:32:37 -04:00
Niels van Velzen
65ed62e385 Use Koin from Maven Central 2021-04-26 22:29:32 +02:00
Niels van Velzen
a5cae1ebd6 Prefer Maven Central repository 2021-04-26 22:29:16 +02:00
linetrimmer
2bd150c8aa Check for valid grid direction value 2021-04-26 16:24:54 -04:00
linetrimmer
db3a07853e Remove suppress unused 2021-04-26 14:57:25 -04:00
linetrimmer
a403b9e5b8 Use enums, horizontal default, fix small square spacing 2021-04-26 14:57:25 -04:00
linetrimmer
6cae95e499 Fix shifting columns when a card is missing an image 2021-04-26 14:55:36 -04:00
linetrimmer
121b039518 Add card sizes for square cards 2021-04-26 14:55:36 -04:00
linetrimmer
57a24590c0 Add column sizes for square cards 2021-04-26 14:55:36 -04:00
linetrimmer
6171e91bd6 Move grid direction option to DisplayPreferencesScreen, set default to vertical 2021-04-26 14:55:36 -04:00
Bill Thornton
9e6abf8167 Merge pull request #836 from nielsvanvelzen/duration-round-up
Always round up in runtime calculation
2021-04-26 14:03:13 -04:00
Bill Thornton
90dfb66000 Merge pull request #826 from nielsvanvelzen/addDate-localized
Switch to android DateFormat in addDate function in InfoLayoutHelper
2021-04-26 14:00:06 -04:00
Bill Thornton
29ba6bbb51 Merge pull request #835 from nielsvanvelzen/crashing-favorites
Fix crash when genres in baseitem is null
2021-04-26 13:54:40 -04:00
Niels van Velzen
3975d431ff Use getMediumDateFormat instead of getDateFormat and switch from using an activity reference to a context 2021-04-26 19:51:27 +02:00
Bill Thornton
c971570631 Merge pull request #829 from nielsvanvelzen/remove-loading-card
Remove the static loading.png card when loading item rows
2021-04-26 13:47:55 -04:00
Bill Thornton
82f815960b Merge pull request #827 from jellyfin/nvv-dependabot
Add Dependabot for GitHub Actions updates
2021-04-26 13:44:22 -04:00
Niels van Velzen
fe67b1f039 Merge pull request #837 from linetrimmer/episode_height
Fix height of first episode of next up row in the main item details page
2021-04-26 19:33:09 +02:00
Bill Thornton
847ca9df8f Merge pull request #825 from nielsvanvelzen/819-android-dateformat
Switch to android DateFormat for "ends at" time in playback overlay
2021-04-26 13:32:54 -04:00
Bill Thornton
d4fe7b5434 Merge pull request #824 from nielsvanvelzen/822-save-displaypreferences
Fix DisplayPreferencesScreen not saving the preferences
2021-04-26 13:30:42 -04:00
ClankJake
e2cc67af76 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2021-04-24 17:30:48 -04:00
linetrimmer
e54df3df8b Set height of first episode of next up row 2021-04-24 12:29:05 -04:00
Niels van Velzen
ff8e59719e Always round up in runtime calculation 2021-04-24 14:44:48 +02:00
Niels van Velzen
29c671164b Fix crash when genres in baseitem is null 2021-04-24 14:22:27 +02:00
WWWesten
cf62e4b0dd Translated using Weblate (Kazakh)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-04-23 15:30:50 -04:00
hoanghuy309
428bf429ab Translated using Weblate (Vietnamese)
Currently translated at 99.7% (473 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-04-21 11:30:49 -04:00
Jussi Kauppinen
51ec9446e9 Translated using Weblate (Finnish)
Currently translated at 50.6% (240 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fi/
2021-04-21 11:30:48 -04:00
PA3LIT0
f8d3ae7cfe Translated using Weblate (Polish)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-04-21 11:30:47 -04:00
Oatavandi
e98d269494 Translated using Weblate (Tamil)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-04-20 01:30:51 -04:00
danielxb-ar
660fd11fa9 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-04-20 01:30:51 -04:00
danielxb-ar
f59354690d Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-04-20 01:30:51 -04:00
Csaba
2ab07bcf54 Translated using Weblate (Hungarian)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-04-20 01:30:51 -04:00
nextlooper42
2901e923e6 Translated using Weblate (Slovak)
Currently translated at 97.2% (461 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2021-04-20 01:30:51 -04:00
WWWesten
08e51cad9d Translated using Weblate (Russian)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-04-20 01:30:51 -04:00
WWWesten
36999290c4 Translated using Weblate (Kazakh)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-04-20 01:30:51 -04:00
millallo
e3d5009aef Translated using Weblate (Italian)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-04-20 01:30:50 -04:00
Andreas Maier
66c7460251 Translated using Weblate (German)
Currently translated at 100.0% (474 of 474 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-04-20 01:30:50 -04:00
Niels van Velzen
fd1906381a Merge pull request #821 from linetrimmer/vertical_grid
Adjust card and column sizes for vertical grid
2021-04-18 18:50:32 +02:00
Niels van Velzen
43c8f583ec Merge pull request #820 from linetrimmer/episode_card
Display episode cards as 16x9 when no image is present
2021-04-18 18:46:03 +02:00
Niels van Velzen
1582831eb8 Remove the static loading.png card when loading item rows 2021-04-18 18:41:21 +02:00
TheGoose
2126391421 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2021-04-17 07:30:49 -04:00
Bill Thornton
3731b25674 Merge pull request #817 from nielsvanvelzen/no-activity-labels
Remove activity labels
2021-04-17 02:16:12 -04:00
Bill Thornton
1a383dfd29 Merge pull request #816 from nielsvanvelzen/switch-user
Replace logout button with switch user button
2021-04-17 02:14:22 -04:00
Bill Thornton
1f26ddb62a Merge pull request #815 from nielsvanvelzen/remove-server-update-screen
Rebuild AuthPreferencesScreen when server is removed
2021-04-17 02:12:08 -04:00
Bill Thornton
2ec7cdd204 Merge pull request #813 from nielsvanvelzen/theme-crash
Fix crash in home when changing theme
2021-04-17 01:03:49 -04:00
Niels van Velzen
f0201ea8dd Replace logout button with switch user button 2021-04-16 20:38:40 +02:00
Niels van Velzen
307d0f29b9 Use the AddressCandidateHelper of the Kotlin SDK to normalize the inputted server address 2021-04-15 19:35:41 +02:00
hoanghuy309
e5c39429ae Translated using Weblate (Vietnamese)
Currently translated at 99.7% (472 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-04-15 04:30:45 -04:00
Niels van Velzen
5e580c1ba0 Update .github/dependabot.yml 2021-04-14 23:00:34 +02:00
Niels van Velzen
ac891071dd Add Dependabot for GitHub Actions updates 2021-04-14 22:53:12 +02:00
Niels van Velzen
e8b5788ff6 Switch to android DateFormat in addDate function in InfoLayoutHelper 2021-04-14 19:37:24 +02:00
Niels van Velzen
5fa1798232 Switch to android DateFormat for "ends at" time in playback overlay 2021-04-14 19:20:37 +02:00
Niels van Velzen
da21fb83f4 Fix DisplayPreferencesScreen not saving the preferences 2021-04-14 19:06:36 +02:00
linetrimmer
de21b8c740 Get card height after setting grid type 2021-04-13 22:10:14 -04:00
linetrimmer
4a595f99b4 Adjust card and column sizes for vertical grid 2021-04-13 20:17:57 -04:00
linetrimmer
20f9c21e4a Display episode cards as 16x9 when no image is present 2021-04-13 16:14:25 -04:00
WWWesten
02df583bf2 Translated using Weblate (Tamil)
Currently translated at 99.5% (471 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-04-12 14:52:21 -04:00
danielxb-ar
7554aa4287 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-04-12 14:52:21 -04:00
Csaba
98357b4ccf Translated using Weblate (Hungarian)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-04-12 14:52:21 -04:00
WWWesten
a50e91de52 Translated using Weblate (Russian)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-04-12 14:52:21 -04:00
WWWesten
2610e9bba5 Translated using Weblate (Italian)
Currently translated at 99.7% (472 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-04-12 14:52:21 -04:00
WWWesten
3ceafadb9b Translated using Weblate (French)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-04-12 14:52:21 -04:00
mLgz0rn
3cf5b24226 Translated using Weblate (Danish)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2021-04-12 14:52:21 -04:00
Niels van Velzen
5f4dadfa85 Translated using Weblate (English)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en/
2021-04-12 14:52:21 -04:00
Niels van Velzen
da5e99db86 Remove activity labels 2021-04-10 15:11:41 +02:00
Niels van Velzen
ed358c3716 Rebuild AuthPreferencesScreen when server is removed 2021-04-10 14:58:22 +02:00
Niels van Velzen
639d76af04 Merge pull request #814 from jellyfin/gradlew-update-7.0
Update Gradle Wrapper from 6.8.3 to 7.0
2021-04-10 11:25:46 +02:00
gradle-update-robot
06615a73c3 Update Gradle Wrapper from 6.8.3 to 7.0.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-04-10 04:08:21 +00:00
WWWesten
59d84e7d81 Translated using Weblate (Polish)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-04-09 15:30:45 -04:00
WWWesten
670b63ee94 Translated using Weblate (Slovenian)
Currently translated at 83.2% (394 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2021-04-09 15:30:45 -04:00
WWWesten
225974d217 Translated using Weblate (Danish)
Currently translated at 97.4% (461 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2021-04-09 15:30:45 -04:00
Niels van Velzen
84f2647ee8 Fix logo position after theme change 2021-04-09 17:55:31 +02:00
Niels van Velzen
e481ab8c92 Fix crash in home when changing theme 2021-04-09 17:16:46 +02:00
Niels van Velzen
e2647af2f2 Merge pull request #801 from linetrimmer/blurhashes
Use blurhashes while loading card images
2021-04-09 08:56:02 +02:00
Bill Thornton
6b4bb19bc2 Merge pull request #797 from nielsvanvelzen/fragment-constructor-empty
Rewrite login alerts
2021-04-09 00:13:09 -04:00
linetrimmer
9fc0e37b9b Fix aspect conditions 2021-04-08 18:59:14 -04:00
linetrimmer
a81d3a97bf Adjust blurhash for aspect ratio 2021-04-08 18:43:58 -04:00
Niels van Velzen
9e8185e0c9 Merge pull request #810 from thornbill/fix-null-session-callback
Fix null session causing app to hang
2021-04-08 20:11:38 +02:00
Bill Thornton
9b83f93096 Fix null session causing app to hang 2021-04-08 14:03:03 -04:00
nextlooper42
4fefefbd48 Translated using Weblate (Slovak)
Currently translated at 97.0% (459 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2021-04-08 11:30:46 -04:00
Robolov
35db292e31 Translated using Weblate (French)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-04-08 11:30:46 -04:00
Bill Thornton
c0a932faed Merge pull request #808 from nielsvanvelzen/validate-session
Cancel setCurrentSession call if the UserDto cannot be retrieved
2021-04-07 17:26:54 -04:00
linetrimmer
d73b7ebc5b Add BlurHashDecoder source link and get blurhash by image tag 2021-04-07 16:00:09 -04:00
Niels van Velzen
eb370f1a21 Cancel setCurrentSession call if the UserDto cannot be retrieved 2021-04-07 19:34:59 +02:00
WWWesten
720ef8369b Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-04-07 03:30:44 -04:00
WWWesten
0a8d8a0e8c Translated using Weblate (Dutch)
Currently translated at 99.5% (471 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2021-04-07 03:30:44 -04:00
Niels van Velzen
9a28cebc25 Simplify AlertFragment 2021-04-07 09:27:19 +02:00
Niels van Velzen
e88a885a66 Rewrite add server alert 2021-04-07 09:27:19 +02:00
Niels van Velzen
19bae4e49c Rewrite login alert 2021-04-07 09:27:19 +02:00
Bill Thornton
9e6dbfc35a Merge pull request #784 from nielsvanvelzen/sessions
Implement auto-login and introduce SessionRepository for managing sessions
2021-04-07 00:56:54 -04:00
linetrimmer
3ddeb94e9a Move all blurhash code to CardPresenter 2021-04-06 18:54:22 -04:00
Niels van Velzen
771b961ce3 Merge pull request #806 from linetrimmer/background_crash
Change exception type for background service crash
2021-04-06 22:43:43 +02:00
linetrimmer
e382c13063 Change exception type to ExecutionException 2021-04-06 16:11:41 -04:00
linetrimmer
9823dc269f Fix preferParentThumb behavior for episodes 2021-04-06 16:05:37 -04:00
linetrimmer
6e4e3d7ebc Fix blurhash on My Media cards 2021-04-06 15:03:38 -04:00
Bill Thornton
0646712c41 Merge pull request #804 from nielsvanvelzen/dedotated-wam
Use the jvmargs from kotlin sdk to increase memory available to Java process
2021-04-06 13:16:27 -04:00
Niels van Velzen
b30f6e2ad6 Use the jvmargs from kotlin sdk to increase memory available to Java process 2021-04-06 09:10:54 +02:00
Niels van Velzen
9c4cc07dbc Fix nullability in SessionRepository 2021-04-06 09:03:35 +02:00
Niels van Velzen
8693807f23 Add additional logging to StartupActivity 2021-04-06 08:51:09 +02:00
Niels van Velzen
aa0d206bdd Fix session capabilities and socket connection 2021-04-06 08:51:07 +02:00
Niels van Velzen
76fdc702c0 Add SessionRepository to manage sessions 2021-04-06 08:51:05 +02:00
Bill Thornton
a4723e4aa1 Merge pull request #803 from nielsvanvelzen/workmanager-koin
Initialize workmanager factory after setting the modules
2021-04-05 23:29:06 -04:00
Bill Thornton
fd422bf3b1 Merge pull request #792 from nielsvanvelzen/no-flex
Remove flexbox dependency and move GenreButton uses to a simple TextView
2021-04-05 23:22:52 -04:00
Niels van Velzen
41ec249a80 Initialize workmanager factory after setting the modules 2021-04-05 22:20:05 +02:00
Niels van Velzen
c84d4e15e3 Remove flexbox dependency and move GenreButton uses to a simple TextView 2021-04-05 21:56:28 +02:00
Bill Thornton
320a50131a Merge pull request #796 from nielsvanvelzen/795-fix-missing-add-buttonm
Fix missing add user button when no users found for server
2021-04-05 14:16:45 -04:00
Niels van Velzen
423357894d Merge pull request #793 from nielsvanvelzen/updep
Update dependencies
2021-04-05 17:48:24 +02:00
Niels van Velzen
2d4b0c931b Merge pull request #791 from nielsvanvelzen/use-maven
Use Maven Central as primary dependency repository
2021-04-05 17:47:56 +02:00
linetrimmer
09a9e84c4a Add BlurHashDecoder class with license header 2021-04-05 10:40:09 -04:00
Niels van Velzen
e501326565 Merge pull request #802 from linetrimmer/season_headers
Use season name for season row header
2021-04-05 09:33:17 +02:00
linetrimmer
31745fedd5 Use season name for season row header 2021-04-04 21:35:25 -04:00
linetrimmer
1d79b4e242 Fix unnecessary use of ImageType name 2021-04-04 21:26:11 -04:00
linetrimmer
defac12417 Use blurhashes while loading card images 2021-04-04 20:48:01 -04:00
Sebastijan Sivec
562f930108 Translated using Weblate (Slovenian)
Currently translated at 83.2% (394 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2021-04-03 05:30:42 -04:00
Jacob Shen
34bbbb7126 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2021-04-03 05:30:41 -04:00
danielxb-ar
3da0e38034 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-04-01 07:46:23 -04:00
Sebastijan Sivec
0975a3da03 Translated using Weblate (Slovenian)
Currently translated at 82.4% (390 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2021-04-01 07:46:23 -04:00
Predrag Ljubenović
baf15f810b Translated using Weblate (Serbian)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sr/
2021-03-31 05:17:52 -04:00
Niels van Velzen
5bdff251ff Fix missing add user button when no users found for server 2021-03-28 10:17:27 +02:00
Niels van Velzen
b363590220 Update dependencies 2021-03-27 21:37:35 +01:00
Niels van Velzen
cf61ad4169 Use maven central as primary repository 2021-03-27 21:02:24 +01:00
Niels van Velzen
20f9e89fd9 Merge pull request #749 from linetrimmer/leanback_channel_order
Leanback channel changes
2021-03-26 17:04:50 +01:00
Niels van Velzen
808f265702 Update LeanbackChannelWorker indentation 2021-03-26 16:45:03 +01:00
4d1m
406ceb37bf Translated using Weblate (Romanian)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2021-03-26 06:52:50 -04:00
Rutger
99cb900bdc Translated using Weblate (Dutch)
Currently translated at 99.5% (471 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2021-03-25 20:44:47 -04:00
linetrimmer
b60211c681 Remove item parameter in getPosterArtImageUrl 2021-03-25 19:39:24 -04:00
linetrimmer
32032dccef Review changes and move NextUpQuery to its own function 2021-03-25 19:32:28 -04:00
linetrimmer
d2695166e2 Initial review changes 2021-03-25 16:06:11 -04:00
Bill Thornton
21669c70cd Merge pull request #783 from nielsvanvelzen/faster-stored-user-loading
Show stored users instantly and update row when public users are retrieved
2021-03-25 13:46:27 -04:00
Niels van Velzen
fe005fcbdd Merge pull request #787 from linetrimmer/always_hdr
Fix for HDR always being activated
2021-03-24 17:30:02 +01:00
Marcin Woliński
bed51d2b2f Translated using Weblate (Polish)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-03-24 03:26:54 -04:00
Niels van Velzen
dedf75749e Fix duplicate rows 2021-03-23 17:26:01 +01:00
danielxb-ar
84e7c93c6d Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-03-23 08:56:50 -04:00
Vitorvlv
c6b9a5211b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2021-03-23 02:12:30 -04:00
Bill Thornton
105b467228 Merge pull request #785 from nielsvanvelzen/bgservice-crash
Fix BackgroundService fragment crash and default background not restoring
2021-03-22 23:21:34 -04:00
cocool97
8d0e4bc3a0 Translated using Weblate (French)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-03-22 21:01:39 -04:00
Thomas Schwery
e712b2da53 Translated using Weblate (French)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-03-22 21:01:38 -04:00
linetrimmer
ac283783e4 Remove wideColorGamut colorMode 2021-03-22 19:02:27 -04:00
Niels van Velzen
b1f4de1699 Fix BackgroundService fragment crash and default background not restoring
The default background didn't restore properly because a bitmap of the backgroundservice background was saved (whoops)
The fragment could crash because it didn't have an empty constructor (as is required for fragments)
2021-03-22 21:23:53 +01:00
Csaba
250e764d21 Translated using Weblate (Hungarian)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-03-22 10:33:31 -04:00
Andreas Maier
21533844bf Translated using Weblate (German)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-03-21 12:45:38 -04:00
millallo
4fab2fe534 Translated using Weblate (Italian)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-03-21 05:38:57 -04:00
hoanghuy309
758ed1fc95 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (472 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-03-21 03:11:47 -04:00
WWWesten
67be765ffc Translated using Weblate (Russian)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-03-20 19:32:18 -04:00
WWWesten
772e7f8729 Translated using Weblate (Kazakh)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-03-20 19:32:17 -04:00
Oatavandi
63b5bfc2f4 Translated using Weblate (Tamil)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-03-20 13:20:19 -04:00
Lukáš Kucharczyk
5d0e43ff8c Translated using Weblate (Czech)
Currently translated at 100.0% (473 of 473 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2021-03-20 13:20:17 -04:00
Nyanmisaka
7926306294 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2021-03-20 07:05:51 -04:00
Niels van Velzen
b5fce1cbbf Show stored users instantly and update row when public users are retrieved 2021-03-20 11:42:36 +01:00
Niels van Velzen
34fde67a02 Merge pull request #774 from MrChip53/fix-background-crash
Fix crash in background service
2021-03-18 19:19:54 +01:00
Niels van Velzen
bb734f00a3 Reformat 2021-03-18 19:10:57 +01:00
Chris Simoni
67be8a54a4 Requested changes 2021-03-18 12:56:04 -05:00
Bill Thornton
93d2e398a5 Merge pull request #767 from nielsvanvelzen/auto-login
Add new autologin preferences
2021-03-18 11:11:57 -04:00
Niels van Velzen
77d8937ce1 Update strings 2021-03-17 17:11:18 +01:00
Niels van Velzen
f63a6db72d Merge pull request #780 from thornbill/fix-discover-buttons
Fix discovered server button text colors
2021-03-17 17:00:48 +01:00
Bill Thornton
c7b43ef4a7 Fix discovered server button text colors 2021-03-17 00:37:45 -04:00
Bill Thornton
c87d37ba7a Merge pull request #770 from nielsvanvelzen/static
Remove a bunch of static
2021-03-16 23:37:41 -04:00
Vitorvlv
f1675ee65b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2021-03-16 23:19:46 -04:00
Thomas Schwery
217b3b1f92 Translated using Weblate (French)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-03-16 23:19:46 -04:00
Niels van Velzen
71e52b1bb2 Use static final for consts 2021-03-16 09:08:03 +01:00
Bill Thornton
679d1d9328 Merge pull request #771 from nielsvanvelzen/itemlauncher-crash
Fix ItemLauncher crashing due to unsafe casting
2021-03-16 01:01:38 -04:00
Bill Thornton
7b858940f8 Merge pull request #778 from nielsvanvelzen/baseactivity-aids
Use BaseActivity as parent class for MainActivity
2021-03-15 23:47:04 -04:00
linetrimmer
7bd493e819 Add 'Next Up' channel 2021-03-15 18:00:03 -04:00
Niels van Velzen
a75e30c418 Use BaseActivity as parent class for MainActivity 2021-03-15 18:53:48 +01:00
crybakk
7af0e39531 Translated using Weblate (Italian)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-03-15 09:17:06 -04:00
Lukáš Kucharczyk
a60bf67acc Translated using Weblate (Czech)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2021-03-14 19:39:54 -04:00
Chris Simoni
622b188d40 Fix issue #752 2021-03-14 18:01:58 -05:00
millallo
8c2afee4cb Translated using Weblate (Italian)
Currently translated at 98.7% (460 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-03-14 14:22:31 -04:00
Jacob1532
1bcbbcea40 Translated using Weblate (German)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-03-14 13:06:27 -04:00
Niels van Velzen
7f013d8fa2 Merge pull request #769 from nielsvanvelzen/graphic-design-is-my-passion
Remove background from overview row in FullDetailsActivity
2021-03-13 19:06:39 +01:00
Niels van Velzen
c57dbcfac7 Fix ItemLauncher crashing due too unsafe casting 2021-03-13 16:28:48 +01:00
Niels van Velzen
928f927ff1 Convert MediaManager to be non-static 2021-03-13 16:22:12 +01:00
Niels van Velzen
8920fc32e3 Replace static classes 2021-03-13 16:03:13 +01:00
Niels van Velzen
a63efc1d4e Use authentication repository to retrieve users in EditServerScreen
This fixes the ordering
2021-03-13 15:49:23 +01:00
Niels van Velzen
c253c0bd7c Move server and user sorting to their repositories 2021-03-13 15:46:03 +01:00
Niels van Velzen
c54a0f5269 Remove unused code and reformat file 2021-03-13 15:36:53 +01:00
Niels van Velzen
df905067de Remove background from overview row in FullDetailsActivity 2021-03-13 15:34:36 +01:00
ClankJake
1ed56bda92 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.5% (464 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2021-03-13 06:52:33 -05:00
Oatavandi
f9b99dcf94 Translated using Weblate (Tamil)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-03-13 03:22:23 -05:00
mychenj
054bfc4805 Translated using Weblate (Chinese (Simplified))
Currently translated at 99.1% (462 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2021-03-12 22:51:35 -05:00
hwa-ryun
b428e492b6 Translated using Weblate (German)
Currently translated at 99.5% (464 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-03-12 21:21:29 -05:00
linetrimmer
480e829427 Fix 'New' episode condition 2021-03-12 19:38:14 -05:00
hwa-ryun
fe53321fc7 Translated using Weblate (German)
Currently translated at 99.1% (462 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-03-12 18:04:18 -05:00
erikjunker
c659ad76d3 Translated using Weblate (Danish)
Currently translated at 99.1% (462 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2021-03-12 18:04:18 -05:00
Niels van Velzen
099eebb05a Merge pull request #768 from thornbill/disable-folder
Disable folders views because types are missing in the apiclient
2021-03-12 22:22:02 +01:00
Bill Thornton
037e0cdee7 Disable folders views because types are missing in the apiclient 2021-03-12 16:11:58 -05:00
Niels van Velzen
ab0e758ea2 Implement new authentication preference UI 2021-03-12 17:50:01 +01:00
Niels van Velzen
39727f63b3 Add AuthenticationPreferences 2021-03-12 16:07:12 +01:00
Niels van Velzen
52acbf8fab Merge ManageServersScreen into AuthPreferencesScreen 2021-03-12 16:07:11 +01:00
WWWesten
caca21cc5e Translated using Weblate (Kazakh)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-03-12 08:21:08 -05:00
WWWesten
943886b89a Translated using Weblate (Kazakh)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-03-12 04:55:46 -05:00
SiderealArt
f05dfa88b2 Translated using Weblate (Chinese (Traditional))
Currently translated at 98.7% (460 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2021-03-12 03:44:47 -05:00
WWWesten
ac96e06846 Translated using Weblate (Russian)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-03-12 03:44:42 -05:00
millallo
796a518ef3 Translated using Weblate (Italian)
Currently translated at 98.0% (457 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-03-11 16:54:48 -05:00
Marcin Woliński
e4fe087b47 Translated using Weblate (Polish)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-03-11 16:09:26 -05:00
Bill Thornton
7d9500597a Merge pull request #766 from thornbill/remove-forum-badge
Remove forum badge
2021-03-11 10:04:12 -05:00
danielxb-ar
2bff86b7a2 Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-03-11 10:03:47 -05:00
Bill Thornton
66688c7539 Remove forum badge 2021-03-11 09:28:10 -05:00
hoanghuy309
5212328303 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (465 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-03-11 05:47:07 -05:00
Csaba
5d1bdda011 Translated using Weblate (Hungarian)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-03-11 05:47:06 -05:00
cocool97
e8b35260f3 Translated using Weblate (French)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-03-11 05:47:06 -05:00
Odd-Roar Brouer-Wangen
18a0715235 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (466 of 466 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2021-03-10 18:40:15 -05:00
hoanghuy309
070810bf35 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (463 of 464 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-03-10 17:22:24 -05:00
Oatavandi
fd0908dacc Translated using Weblate (Tamil)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-03-10 17:22:24 -05:00
Detsibli
b51968a89e Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-03-10 17:22:24 -05:00
Markus Pettersson
a3480676c7 Translated using Weblate (Swedish)
Currently translated at 99.5% (462 of 464 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2021-03-10 17:22:24 -05:00
Niels van Velzen
7005ac8c84 Merge pull request #764 from thornbill/fix-live-tv-size
Fix live tv library image size
2021-03-10 23:10:35 +01:00
Bill Thornton
c4632f7a31 Add landscape folder drawable for libraries 2021-03-10 16:59:05 -05:00
Bill Thornton
a8654f614b Fix live tv library image size 2021-03-10 15:34:54 -05:00
linetrimmer
3c6f1a9c62 Aspect ratio line + indent 2021-03-10 15:01:44 -05:00
linetrimmer
1118f9e8a1 Use series thumbnail preference, always check runtime 2021-03-10 15:01:44 -05:00
Niels van Velzen
73cfb02d2f Merge pull request #761 from thornbill/fix-transparent-headers
Fix semitransparent row headers
2021-03-10 19:27:57 +01:00
Bill Thornton
7362b3ba05 Merge pull request #753 from linetrimmer/row_thumbnails
Display episode thumbnails on home screen, add option for series
2021-03-10 12:46:40 -05:00
Bill Thornton
e74cd2422e Fix nullability of ViewHolder 2021-03-10 12:40:30 -05:00
linetrimmer
0d23d8f881 Fix indent 2021-03-10 10:06:22 -05:00
linetrimmer
d74740f79a Merge branch 'master' into row_thumbnails 2021-03-10 10:04:46 -05:00
danielxb-ar
0e7d50c9b6 Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-03-10 09:24:29 -05:00
cocool97
ccf564dec8 Translated using Weblate (French)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-03-10 09:24:28 -05:00
cocool97
fdb953bb53 Translated using Weblate (French)
Currently translated at 100.0% (464 of 464 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-03-10 05:33:18 -05:00
Moritz
978f5ab9c0 Translated using Weblate (German)
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-03-10 03:41:35 -05:00
Niels van Velzen
c4c111a586 Merge pull request #762 from thornbill/remove-shadows
Remove random text shadows
2021-03-10 09:06:59 +01:00
Bill Thornton
3c0be70a21 Remove random text shadows 2021-03-10 00:43:35 -05:00
Bill Thornton
c279487f43 Fix semitransparent row headers 2021-03-10 00:21:02 -05:00
Bill Thornton
894a58cd58 Merge pull request #757 from nielsvanvelzen/rich-list-preference
Rich list preference
2021-03-09 23:12:07 -05:00
Bill Thornton
a775fd42aa Merge pull request #760 from nielsvanvelzen/enhanced-browse-fragment-fucking-handler
Show item info instantly instead of delayed in EnhancedBrowseFragment
2021-03-09 22:40:38 -05:00
Bill Thornton
fba552a31a Merge pull request #756 from nielsvanvelzen/remap-fix
Refactor remap preference dialog to fix crash
2021-03-09 22:31:23 -05:00
Bill Thornton
0aea2960d1 Merge pull request #741 from linetrimmer/indicator_settings
Add the ability to hide watched/unwatched indicators on cards
2021-03-09 22:23:59 -05:00
Bill Thornton
cc75792fd1 Merge pull request #705 from MrChip53/search-fixes
Improve search activity
2021-03-09 22:23:25 -05:00
Marcin Woliński
816ef6d838 Translated using Weblate (Polish)
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-03-09 18:23:07 -05:00
ClankJake
0ee66460ec Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.5% (459 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2021-03-09 18:23:04 -05:00
danielxb-ar
126d739695 Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-03-09 07:56:54 -05:00
Lukáš Kucharczyk
055a869a37 Translated using Weblate (Czech)
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2021-03-09 07:00:23 -05:00
Davide-Chioatto
2e27150f42 Translated using Weblate (Italian)
Currently translated at 97.6% (450 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-03-08 19:02:14 -05:00
Niels van Velzen
c8b848ce43 Reformat EnhancedBrowseFragment and replace some getActivity() usages with requireActivity() 2021-03-08 18:05:11 +01:00
Niels van Velzen
d69b009bca Show item info instantly instead of delayed in EnhancedBrowseFragment 2021-03-08 17:59:53 +01:00
Bill Thornton
b30ad7f404 Merge pull request #759 from nielsvanvelzen/no-unsafe-cast
Fix EnhancedBrowseFragment crash
2021-03-08 11:27:32 -05:00
Niels van Velzen
7fc909cd8c Add visibility to all properties in EnhancedBrowseFragment 2021-03-08 17:16:37 +01:00
Niels van Velzen
7af6228b95 Use BaseActivity for all activities indirectly using EnhancedBrowseFragment 2021-03-08 16:58:56 +01:00
Niels van Velzen
8aa4f293e5 Fix crash in EnhancedBrowseFragment caused by unsafe casting 2021-03-08 16:57:03 +01:00
Csaba
9b9684f551 Translated using Weblate (Hungarian)
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-03-08 09:23:46 -05:00
nextlooper42
4e6ebac384 Translated using Weblate (Slovak)
Currently translated at 99.3% (458 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2021-03-08 06:05:48 -05:00
Frans Saris
2cdf072470 Translated using Weblate (Dutch)
Currently translated at 99.7% (460 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2021-03-07 13:02:22 -05:00
Frans Saris
001a97e83f Translated using Weblate (Dutch)
Currently translated at 97.8% (451 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2021-03-07 11:59:59 -05:00
Thomas Schwery
82b6ae3507 Translated using Weblate (French)
Currently translated at 93.9% (433 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-03-07 11:14:35 -05:00
幻月丶沧歌
77b3f8ff0e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2021-03-07 06:33:11 -05:00
hoanghuy309
0d22729aa2 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (460 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-03-07 05:38:24 -05:00
hoanghuy309
d8adb6cd27 Translated using Weblate (Vietnamese)
Currently translated at 99.3% (458 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-03-06 15:22:20 -05:00
Niels van Velzen
e904c9b0b2 Fix linter issue 2021-03-06 19:23:16 +01:00
Niels van Velzen
63c5f009fd Add RichListPreference and convert OptionsItemEnum 2021-03-06 18:34:58 +01:00
Niels van Velzen
8372c955a6 Add RichListDialogFragment to replace LeanbackListPreferenceDialogFragmentCompat 2021-03-06 17:59:29 +01:00
Niels van Velzen
41e2c97837 Refactor ButtonRemapDialogFragment to use view binding 2021-03-06 16:21:10 +01:00
Niels van Velzen
96f3165de5 Rename button_remap_preference.xml to preference_button_remap.xml 2021-03-06 16:16:10 +01:00
WWWesten
21844341bf Translated using Weblate (Russian)
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-03-06 09:22:02 -05:00
WWWesten
ef5da23ad5 Translated using Weblate (Russian)
Currently translated at 95.8% (442 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-03-06 09:08:04 -05:00
WWWesten
77c6f98181 Translated using Weblate (Kazakh)
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-03-06 09:08:03 -05:00
WWWesten
17cf8595cd Translated using Weblate (Kazakh)
Currently translated at 98.2% (453 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-03-06 08:20:10 -05:00
Oatavandi
29dd288d67 Translated using Weblate (Tamil)
Currently translated at 100.0% (461 of 461 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-03-06 05:53:23 -05:00
Detsibli
19382722e6 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (430 of 430 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2021-03-05 22:45:17 -05:00
linetrimmer
abf20b14b4 Oops\n 2021-03-04 22:03:19 -05:00
linetrimmer
f7f0473937 Default and string changes 2021-03-04 13:34:29 -05:00
Mr. Chip53
443dbad9ba Last changes 🤞 2021-03-04 10:15:48 -06:00
Mr. Chip53
05b6e69faa Some requested changes 2021-03-04 09:51:59 -06:00
linetrimmer
ee54f7534a Display episode thumbnails on home screen, add option for series thumbnails 2021-03-04 03:30:07 -05:00
Niels van Velzen
f881c4de44 Merge pull request #751 from linetrimmer/grid_null
Null check for StdGridFragment
2021-03-04 08:51:55 +01:00
linetrimmer
e05155f17a stdgridfragment null check 2021-03-04 00:18:56 -05:00
linetrimmer
1ad1715cb6 Merge branch 'master' into indicator_settings 2021-03-03 16:15:35 -05:00
Bill Thornton
b3060e4dde Merge pull request #750 from nielsvanvelzen/backgroundservice-clear-cancel-load
Cancel loading backgrounds on clear
2021-03-03 15:52:58 -05:00
Bill Thornton
ea1d37a0c9 Merge pull request #730 from nielsvanvelzen/auth-ui
Screen based login UI and tons of fixes
2021-03-03 15:52:25 -05:00
Niels van Velzen
ea665bd4bc Cancel loading backgrounds on clear 2021-03-03 21:07:54 +01:00
Niels van Velzen
c4ad7cac80 Mirate the credentials 2021-03-03 21:02:19 +01:00
Bill Thornton
fed62abce4 Merge pull request #743 from nielsvanvelzen/baseactivity-mess
Remove more code from BaseActivity
2021-03-03 14:08:19 -05:00
Bill Thornton
6e2cd818d8 Merge pull request #748 from nielsvanvelzen/cardview-thumb
Hide cardview overlay by default
2021-03-01 22:49:18 -05:00
linetrimmer
8b6571311e Simplify and revert MyImageCardView 2021-03-01 13:30:34 -05:00
Niels van Velzen
6c56c52cf2 Apply review suggestions
- Fix focus issue when no servers discovered
- Rename "Add server" tab to "Connect"
- Fix NPE
- Change "Need help?" top margin
- Remove descriptions
2021-03-01 19:24:10 +01:00
Niels van Velzen
1bdd477b1e Implement swipe based login UI
- Discovery servers are not shown by default
- Discovery servers are shown in the "add server" tab
- Add button to add server to the same tab
- Add help text in add server tab
- Servers are now sorted on last use
- Users are now sorted on last use
- Servers now update when a new server is added
- Fixed some behavior issues
- Simplified authentication and server repositories
- Miscellaneous fixes
2021-03-01 19:24:10 +01:00
Niels van Velzen
4ecd753c76 Fix null check in StdBrowseFragment 2021-03-01 18:34:30 +01:00
Niels van Velzen
bede87383d Hide cardview overlay by default 2021-03-01 18:30:17 +01:00
linetrimmer
40bc739336 Merge branch 'master' into indicator_settings 2021-03-01 03:13:56 -05:00
Niels van Velzen
c31e5650ab Merge pull request #747 from linetrimmer/My_name_is_checkMark
Check mark name fix
2021-03-01 09:04:09 +01:00
linetrimmer
b79c0fc9fe Indicator fix 2021-03-01 02:45:22 -05:00
linetrimmer
9ccb54b43c Add option to show check marks on episodes only 2021-03-01 01:12:04 -05:00
linetrimmer
bc853abe4b Add an option to hide watched indicators on cards 2021-03-01 01:12:04 -05:00
linetrimmer
0cc353c06d Add an option to hide watched indicators on cards 2021-03-01 01:12:04 -05:00
Bill Thornton
d0b56094c4 Merge pull request #744 from nielsvanvelzen/cardview-refactor
Cardview refactoring
2021-03-01 00:09:43 -05:00
Bill Thornton
473c24aa98 Merge pull request #745 from nielsvanvelzen/cardpresenter-clear-rating
Fix rating not clearing properly
2021-02-28 22:33:41 -05:00
Bill Thornton
691c522549 Merge pull request #742 from nielsvanvelzen/search-activity-fragmentactivity
Use FragmentActivity in SearchActivity
2021-02-28 22:27:34 -05:00
Niels van Velzen
e5858cdeee Fix rating not clearing properly 2021-02-28 12:09:25 +01:00
Niels van Velzen
59981db5a7 Use view binding in MyImageCardView 2021-02-28 12:01:58 +01:00
Niels van Velzen
3bdd3b1f47 Remove dead code from MyImageCardView 2021-02-28 11:54:17 +01:00
Niels van Velzen
3df4561d88 Add tools attributes to card view
Makes it easier to work with in Android Studio
2021-02-28 11:36:08 +01:00
Niels van Velzen
47513bcc20 Remove more code from BaseActivity 2021-02-27 12:17:41 +01:00
Niels van Velzen
2cc1149042 Use FragmentActivity in most browsing activities 2021-02-27 12:17:03 +01:00
Niels van Velzen
bcdbf533f4 Rewrite SearchActivity in Kotlin
Now uses FragmentActivity instead of BaseActivity
2021-02-27 11:39:15 +01:00
Niels van Velzen
03569b07d9 Rename .java to .kt 2021-02-27 11:39:14 +01:00
Niels van Velzen
48f45f670a Merge pull request #740 from linetrimmer/hidden_ratings
Add an option to hide ratings on cards/item details
2021-02-27 11:12:21 +01:00
Mr. Chip53
9c586c5bab Remove duplicate background image loading code 2021-02-25 15:02:28 -06:00
linetrimmer
9e622a28e7 Add setting to hide ratings 2021-02-25 15:50:14 -05:00
Bill Thornton
9a167d7c99 Merge pull request #713 from MrChip53/login-stuff
Manage Servers menu
2021-02-25 13:07:54 -05:00
Mr. Chip53
ec443c3a37 Fix build errors 2021-02-25 10:56:03 -06:00
Chris
21189878ee Merge branch 'master' into login-stuff 2021-02-25 08:47:46 -06:00
Niels van Velzen
3141e28c11 Merge pull request #738 from jellyfin/gradlew-update-6.8.3
Update Gradle Wrapper from 6.7 to 6.8.3
2021-02-25 08:46:55 +01:00
gradle-update-robot
3e52b20292 Update Gradle Wrapper from 6.7 to 6.8.3.
Signed-off-by: gradle-update-robot <gradle-update-robot@regolo.cc>
2021-02-25 04:22:27 +00:00
Bill Thornton
ba2674dea5 Merge pull request #706 from nielsvanvelzen/preferences-2.1_displayprefspopup
Use preferences UI for library display preferences
2021-02-24 13:16:18 -05:00
Niels van Velzen
4888610fc4 Merge branch 'master' into preferences-2.1_displayprefspopup 2021-02-24 19:07:27 +01:00
Bill Thornton
435e06bd9f Merge pull request #737 from nielsvanvelzen/gh-actions-gradle-conflict
Add merge conflict labeler and gradle update and validate tasks
2021-02-24 12:16:02 -05:00
Niels van Velzen
c58d435e3f Use ubuntu-latest image and change some naming 2021-02-24 17:37:06 +01:00
Bill Thornton
d283394b92 Merge pull request #715 from nielsvanvelzen/dev-prefs
Add developer preferences screen
2021-02-24 11:22:21 -05:00
Niels van Velzen
10d346a208 Update gradle validate and add gradle update tasks 2021-02-23 17:04:42 +01:00
Niels van Velzen
9aa7158ac5 Update merge conflict labeler task 2021-02-23 17:04:17 +01:00
Mr. Chip53
3c99d7cd7f Use shiny, new background service 2021-02-22 20:21:58 -06:00
Mr. Chip53
ff2e0df5cf Use CustomListRowPresenter in SearchProvider.java 2021-02-22 20:21:58 -06:00
Chris
e6a5a4c0b7 Merge branch 'master' into login-stuff 2021-02-22 20:01:02 -06:00
Niels van Velzen
42dd789cfb Don't build preferences twice during creation when rebuildOnResume is true 2021-02-22 19:57:48 -06:00
Niels van Velzen
31243c8de5 Miscellaneous fixes
- refresh server/user lists
- small string changes
- update OptionsAction listener (renamed, slightly different behavior)
- renamed optionsScreen to lazyOptionsScreen, add new optionsScreen with direct return
2021-02-22 19:57:47 -06:00
Mr. Chip53
a1e7142aa3 Add EditUserScreen.kt; update strings 2021-02-22 19:57:47 -06:00
Mr. Chip53
6e94db4cfb Fix OptionsLink and OptionsAction to work inside categories properly 2021-02-22 19:57:44 -06:00
Mr. Chip53
2990e240b6 Update OptionsAction.kt comment and imports 2021-02-22 19:57:43 -06:00
Mr. Chip53
6119264998 Remove fragment navigation from OptionsAction.kt and pop back stack manually instead 2021-02-22 19:57:43 -06:00
Mr. Chip53
1060054246 Move manageServers code to StartupToolbarFragment.kt 2021-02-22 19:57:43 -06:00
Mr. Chip53
04d5f0cd53 Finish the screens for managing servers and server users 2021-02-22 19:57:42 -06:00
Mr. Chip53
263b8e22a7 Add ManageServersScreen.kt and click listener to Startup 2021-02-22 19:57:41 -06:00
Marcin Woliński
a916b5ba8d Translated using Weblate (Polish)
Currently translated at 100.0% (430 of 430 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-02-21 19:24:09 -05:00
Niels van Velzen
c705c32f9d Add developer preferences screen 2021-02-17 21:07:09 +01:00
Niels van Velzen
2324fe59de Merge branch 'master' into preferences-2.1_displayprefspopup
# Conflicts:
#	app/src/main/java/org/jellyfin/androidtv/ui/browsing/StdGridFragment.java
2021-02-17 21:05:39 +01:00
Bill Thornton
9c1238300b Merge pull request #718 from nielsvanvelzen/jumplist-centered-button
Rewrite TextButton in Kotlin and center content.
2021-02-17 14:54:22 -05:00
Bill Thornton
6c502d99fc Merge pull request #735 from jellyfin/nielsvanvelzen-merge-conflict-conflict
Fix merge conflict labeler version
2021-02-17 14:36:26 -05:00
Niels van Velzen
68cdbf18ec Fix merge conflict labeler version 2021-02-17 20:24:29 +01:00
Niels van Velzen
b5aa8123a3 Merge pull request #734 from thornbill/merge-conflict-action
Add github action to label PRs with merge conflicts
2021-02-17 20:21:21 +01:00
Bill Thornton
e1e40678d1 Use specific version for github action
Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2021-02-17 13:02:54 -05:00
Bill Thornton
392a4b76fd Add github action to label PRs with merge conflicts 2021-02-17 10:24:05 -05:00
Bill Thornton
e1ca8ad3f7 Merge pull request #717 from nielsvanvelzen/disable-home-headers
Disable headers on home screen
2021-02-17 10:13:40 -05:00
Bill Thornton
7b7799165f Merge pull request #731 from nielsvanvelzen/static-height
Enable static height on most home rows
2021-02-16 16:57:52 -05:00
Niels van Velzen
6c50e0fd77 Enable static height on most home rows 2021-02-16 17:30:39 +01:00
Aragon
509724d51a Translated using Weblate (Hebrew)
Currently translated at 100.0% (430 of 430 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2021-02-15 03:47:47 -05:00
Aragon
4a24a1cbb6 Translated using Weblate (Hebrew)
Currently translated at 98.6% (427 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2021-02-14 16:01:22 -05:00
Aragon
37b2b392a6 Translated using Weblate (Hebrew)
Currently translated at 98.3% (426 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2021-02-14 16:00:48 -05:00
Niels van Velzen
02e4626804 Disable headers in StdBrowseFragment 2021-02-14 10:27:16 +01:00
Bill Thornton
427d08eea2 Merge pull request #721 from nielsvanvelzen/no-audio-warning
Remove audio behavior warning
2021-02-14 01:12:12 -05:00
Bill Thornton
01386d7d56 Merge pull request #703 from nielsvanvelzen/backgroundservice
Rewrite background code
2021-02-14 01:08:56 -05:00
Niels van Velzen
2fc88ca06f Fix NullPointerException 2021-02-12 09:06:29 +01:00
ClankJake
5f5ca7647c Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2021-02-11 02:20:32 -05:00
Novojit Das
441fd1ec8f Translated using Weblate (Bengali (Bangladesh))
Currently translated at 27.2% (118 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/bn_BD/
2021-02-10 05:51:16 -05:00
speedstyle
aa2927d1c1 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2021-02-10 04:05:20 -05:00
Niels van Velzen
741f21db00 Merge pull request #727 from MrChip53/server-enter
Connect to server instead of focusing on OK button
2021-02-08 22:59:30 +01:00
Mr. Chip53
a144c9a4e9 Kotlin suggested changes 2021-02-08 15:48:00 -06:00
Mr. Chip53
27541acba2 Requested changes 2021-02-08 15:46:17 -06:00
Mr. Chip53
4e2f4e3288 Add editor action listener in AddServerFragment.kt 2021-02-08 15:46:17 -06:00
Niels van Velzen
428ac3e836 Merge pull request #726 from MrChip53/login-enter
Sign in instead of focusing on the OK button
2021-02-08 22:42:18 +01:00
Niels van Velzen
f155c091e2 Merge pull request #725 from MrChip53/nextup-fix
Fix next up bug
2021-02-08 22:34:11 +01:00
Mr. Chip53
ff715870b2 Requested changes 2021-02-08 15:29:33 -06:00
Mr. Chip53
b1d9f71874 Add listener to cancel button in UserLoginFragment.kt 2021-02-08 14:22:18 -06:00
Mr. Chip53
631c664073 Submit login info when password EditText is done 2021-02-08 14:21:54 -06:00
Mr. Chip53
bb103c0c10 Fix next up bug 2021-02-07 17:06:52 -06:00
Niels van Velzen
d953c658c8 Remove unused strings from audio behavior popup 2021-02-06 13:20:12 +01:00
Bill Thornton
d859b63d18 Merge pull request #722 from nielsvanvelzen/deps-20210204
Update dependencies
2021-02-05 22:44:12 -05:00
Bill Thornton
fd495bd4f6 Merge pull request #720 from nielsvanvelzen/compat
Use HtmlCompat in TextUtils String.toHtmlSpanned function
2021-02-05 22:42:33 -05:00
WWWesten
f453efdc47 Translated using Weblate (Kazakh)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-02-05 14:00:52 -05:00
WWWesten
de7e9b4c26 Translated using Weblate (Kazakh)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-02-05 05:55:58 -05:00
Niels van Velzen
a2dc506d8a Use HtmlCompat in TextUtils String.toHtmlSpanned function 2021-02-04 22:21:52 +01:00
Niels van Velzen
b4b9c9385f Update dependencies
Kotlin 1.4.10 -> 1.4.20
Android Gradle Plugin 4.1.1 -> 4.1.2

Leanback, androidx work, Glide, Junit
2021-02-04 20:05:05 +01:00
Gerry
3eeb75624e Translated using Weblate (Indonesian)
Currently translated at 85.9% (372 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/id/
2021-02-04 07:47:40 -05:00
Niels van Velzen
5dc1cc0f99 Remove audio behavior warning 2021-02-03 20:36:22 +01:00
Niels van Velzen
bbe6cd237c Rewrite TextButton in Kotlin and center content. 2021-02-03 20:24:45 +01:00
Niels van Velzen
5b2662e158 Rename .java to .kt 2021-02-03 14:37:23 +01:00
Bill Thornton
036fb504a8 Merge pull request #710 from nielsvanvelzen/use-timber
Use Timber everywhere
2021-02-01 11:11:00 -05:00
Bill Thornton
e80b43cd08 Merge pull request #712 from nielsvanvelzen/auth-fix
Fix automatic sign out when switching users
2021-02-01 11:10:02 -05:00
Stelios Diamantis
3a2508a646 Translated using Weblate (Greek)
Currently translated at 84.9% (368 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2021-02-01 04:56:27 -05:00
Niels van Velzen
3355f83e42 Merge pull request #714 from MrChip53/episode-subtext
Add episode full name as subtitle while playing TV episode
2021-02-01 09:00:42 +01:00
Mr. Chip53
3dc2271405 Add episode full name as subtitle while playing TV episode 2021-01-31 21:42:29 -06:00
Baptiste Mille-Mathias
ca50ef2740 Translated using Weblate (French)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-01-31 17:20:47 -05:00
Niels van Velzen
f4eb9d714a Merge pull request #701 from thornbill/user-login-images
Add user images to login screen
2021-01-31 20:08:58 +01:00
WWWesten
36d1e11e5d Translated using Weblate (Kazakh)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-01-31 11:30:43 -05:00
Martin P
eb387e4e0b Translated using Weblate (French)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-01-31 11:14:10 -05:00
Niels van Velzen
ceb2f370e2 Update apiclient version 2021-01-31 17:00:30 +01:00
Niels van Velzen
8af9cbf93b Merge branch 'master' into use-timber 2021-01-31 11:19:49 +01:00
Baptiste Mille-Mathias
bb6789c94b Translated using Weblate (French)
Currently translated at 99.7% (432 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-01-31 01:05:48 -05:00
Bill Thornton
454226db44 Rename primaryImageTag to imageTag 2021-01-31 00:21:27 -05:00
Bill Thornton
c30faa6c11 Merge pull request #711 from nielsvanvelzen/no-export-auth
Don't export AuthenticatorService
2021-01-30 23:34:42 -05:00
Bill Thornton
00aad60e2a Merge pull request #709 from nielsvanvelzen/font-size-is-sp-not-dp
Use sp unit instead of dp for font size in horizontal_grid_browse.xml
2021-01-30 23:31:20 -05:00
Bill Thornton
5cf4f26bd9 Merge pull request #708 from nielsvanvelzen/fragment-container-view
Use FragmentContainerView instead of fragment in layout XML
2021-01-30 23:30:50 -05:00
Bill Thornton
39d1a69943 Merge pull request #707 from nielsvanvelzen/remove-delayed-message
Remove DelayedMessage
2021-01-30 23:28:25 -05:00
Niels van Velzen
b76d24a043 Set device for active session 2021-01-30 22:10:58 +01:00
Niels van Velzen
4e77a7c28a Use unique device id when requesting access token 2021-01-30 21:47:57 +01:00
Bill Thornton
6d3afb8890 Merge pull request #704 from nielsvanvelzen/leakcanary-disable
Disable LeakCanary by default and add option to gradle properties to enable
2021-01-30 14:46:12 -05:00
Niels van Velzen
c24b5e8fb1 Fix logging call in GridFragment too 2021-01-30 19:19:29 +01:00
Niels van Velzen
c76d8d65f1 Don't export AuthenticatorService 2021-01-30 19:12:42 +01:00
Niels van Velzen
377a4019f9 Fix binary operation in Timber 2021-01-30 19:08:06 +01:00
Niels van Velzen
827da71f67 Use Timber.d instead of Log.v in HorizontalGridPresenter 2021-01-30 19:07:02 +01:00
Niels van Velzen
b77ab018fa Use sp unit instead of dp for font size in horizontal_grid_browse.xml 2021-01-30 19:03:03 +01:00
Niels van Velzen
5e2da1101b Use FragmentContainerView instead of fragment in layout XML (lint issue FragmentTagUsage) 2021-01-30 18:57:37 +01:00
Niels van Velzen
fcd8004406 Remove DelayedMessage 2021-01-30 17:25:39 +01:00
Niels van Velzen
153c0c8d37 Use preferences UI for library display preferences 2021-01-30 17:15:02 +01:00
Niels van Velzen
cd94b3b081 Set backgrounds for FullDetailsActivity 2021-01-29 22:37:25 +01:00
Niels van Velzen
79e3e0eb6e Store backgrounds in fragment and restore on resume 2021-01-29 22:37:13 +01:00
Niels van Velzen
a32fee80c4 Disable LeakCanary by default and add option to gradle properties to enable 2021-01-29 19:30:01 +01:00
Niels van Velzen
7676c44778 Fix compatibility with older API's 2021-01-29 19:11:23 +01:00
Niels van Velzen
2f3847a5f1 Enable backgrounds on all browsing pages 2021-01-29 16:42:11 +01:00
Niels van Velzen
0637084a05 Use AbstractActivityLifecycleCallbacks in other activity lifecycle callback classes 2021-01-29 16:26:19 +01:00
Niels van Velzen
03aa851075 Set background on resume 2021-01-29 16:24:30 +01:00
Bill Thornton
b3c232fb38 Add user images to login screen 2021-01-28 16:30:03 -05:00
Niels van Velzen
b0a55f8357 Add update interval to not "spam update" the backgrounds 2021-01-28 19:28:18 +01:00
Bill Thornton
a1ed018ffd Merge pull request #688 from nielsvanvelzen/goodbye-livetv-mode
Remove live tv mode
2021-01-27 23:19:51 -05:00
WWWesten
808e495e1b Translated using Weblate (Macedonian)
Currently translated at 28.4% (123 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/mk/
2021-01-27 19:41:43 -05:00
WWWesten
ed1d8eed35 Translated using Weblate (Mongolian)
Currently translated at 45.7% (198 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/mn/
2021-01-27 19:41:43 -05:00
Niels van Velzen
d4dd3e1ac2 Don't show backdrops when user disabled them 2021-01-27 23:02:34 +01:00
Niels van Velzen
103b3459ac Use androidx.window to get window size 2021-01-27 22:23:25 +01:00
Niels van Velzen
9201096805 Read backgrounds from BaseItem and allow slideshows 2021-01-27 22:12:50 +01:00
Niels van Velzen
ad37160512 Rewrite background management code 2021-01-27 22:12:46 +01:00
Marcus Blennegård
f75f35d421 Translated using Weblate (Swedish)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2021-01-27 12:49:25 -05:00
Xavier Rosell
2c1c505710 Translated using Weblate (Catalan)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2021-01-25 11:04:27 -05:00
Xavier Rosell
58937efb00 Translated using Weblate (Catalan)
Currently translated at 79.4% (344 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2021-01-25 09:56:32 -05:00
Xavier Rosell
6dcbf53b1f Translated using Weblate (Catalan)
Currently translated at 61.8% (268 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2021-01-25 08:36:11 -05:00
Xavier Rosell
616355580e Translated using Weblate (Catalan)
Currently translated at 55.8% (242 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2021-01-25 08:28:28 -05:00
Xavier Rosell
9f92b23370 Translated using Weblate (Catalan)
Currently translated at 27.4% (119 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2021-01-25 07:41:13 -05:00
Thomas Schwery
e2227ff535 Translated using Weblate (French)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-01-25 02:57:13 -05:00
Niels van Velzen
1712a11006 Remove live tv mode
Crashed the app, implementation was stupid
2021-01-25 08:54:21 +01:00
Bill Thornton
c5399ff3c5 Merge pull request #684 from nielsvanvelzen/homesections-kt
Home screen rewrite in Kotlin
2021-01-25 00:11:31 -05:00
Bill Thornton
bf83ab76e4 Merge pull request #689 from nielsvanvelzen/mutable-object-adapter
Add mutable object adapter
2021-01-24 23:43:19 -05:00
Xavier Rosell
811c111d22 Translated using Weblate (Catalan)
Currently translated at 25.6% (111 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2021-01-24 23:06:30 -05:00
Niels van Velzen
0114ee0529 Add comment to uniqueRowId to explain it 2021-01-24 10:00:10 +01:00
Niels van Velzen
7576cad61e Add limit constants for HomeFragmentHelper 2021-01-23 10:40:26 +01:00
Norbi
b6750ee7b4 Translated using Weblate (Hungarian)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2021-01-22 17:25:48 -05:00
Frederik Gram
3f21a1e5b0 Translated using Weblate (Danish)
Currently translated at 99.7% (432 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2021-01-20 07:39:07 -05:00
Niels van Velzen
20f6accb16 Fix rows list type 2021-01-20 08:53:45 +01:00
Niels van Velzen
0bdaf44ed4 Remove autobitrate from TvApp 2021-01-20 08:53:44 +01:00
Niels van Velzen
89007754ac Convert complete home view to Kotlin
Includes a lot of refactoring and rewriting code while keeping the exact same behavior
2021-01-20 08:53:41 +01:00
Bill Thornton
61917677dc Merge pull request #683 from nielsvanvelzen/tvapp-direct-utils
Remove a lot of TvApp.getApplication() usages from utils package
2021-01-20 00:51:24 -05:00
Bill Thornton
b6e4b24c14 Merge pull request #682 from nielsvanvelzen/tvapp-direct
Don't store instances of TvApp
2021-01-20 00:25:12 -05:00
millallo
25d11f2a1b Translated using Weblate (Italian)
Currently translated at 99.5% (431 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2021-01-19 20:45:08 -05:00
Bill Thornton
bab86c288a Merge pull request #693 from nielsvanvelzen/release-auth
Fix authenticator store account type
2021-01-19 12:59:29 -05:00
Predrag Ljubenović
47d78be897 Translated using Weblate (Serbian)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sr/
2021-01-19 12:28:40 -05:00
WWWesten
32f896b0ac Translated using Weblate (Russian)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-01-17 08:30:54 -05:00
WWWesten
b2e0f327c6 Translated using Weblate (Kazakh)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-01-17 08:30:54 -05:00
Niels van Velzen
25ae4e9473 Fix authenticator store account type 2021-01-15 22:45:37 +01:00
hawken
b5d9bdb819 Translated using Weblate (Norwegian Bokmål)
Currently translated at 99.7% (432 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2021-01-14 20:17:21 -05:00
pcenta
62dda32d6c Translated using Weblate (Slovenian)
Currently translated at 90.0% (390 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2021-01-14 15:12:07 -05:00
Eli Yu
5010bb5b57 Translated using Weblate (Japanese)
Currently translated at 73.6% (319 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ja/
2021-01-14 04:11:23 -05:00
Eli Yu
14f47c3d3a Translated using Weblate (Japanese)
Currently translated at 71.3% (309 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ja/
2021-01-14 00:24:33 -05:00
Alexander Brissman
617ece649f Translated using Weblate (Norwegian Bokmål)
Currently translated at 99.7% (432 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2021-01-13 14:35:21 -05:00
Oriol Serra
55d06ace6f Translated using Weblate (Catalan)
Currently translated at 12.0% (52 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2021-01-12 16:28:16 -05:00
cikeZ00
c59e15ca93 Translated using Weblate (Croatian)
Currently translated at 96.3% (417 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hr/
2021-01-10 05:48:14 -05:00
Marcin Woliński
bcb8fe216e Translated using Weblate (Polish)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2021-01-10 05:48:14 -05:00
Niels van Velzen
1e86d66eca Fix ListServerFragment clearing it's rows 2021-01-10 11:47:09 +01:00
Niels van Velzen
caaa004867 Add MutableObjectAdapter to use type safe adapters in Leanback. 2021-01-10 11:21:40 +01:00
Niels van Velzen
f95b431f06 Merge pull request #686 from MrChip53/fix-tomatoes
Flip tomatoE icons because they are funny
2021-01-10 10:10:19 +01:00
Niels van Velzen
b942428f30 Merge pull request #687 from MrChip53/stars-on-cards
Take stars off UserView cards on home screen
2021-01-10 10:09:12 +01:00
Mr. Chip53
421a4c400c Take stars off UserView cards 2021-01-09 20:50:20 -06:00
Mr. Chip53
0756419bde Flip tomatoE icons because they are funny 2021-01-09 20:39:26 -06:00
rimuru-demon-lord
054d80f29f Translated using Weblate (Japanese)
Currently translated at 70.4% (305 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ja/
2021-01-09 15:35:20 -05:00
Niels van Velzen
80be2f4d11 Remove a lot of TvApp.getApplication() usages from utils package 2021-01-08 23:02:04 +01:00
Niels van Velzen
4f1d34662f Don't store instance of TvApp, use TvApp.getApplication() directly instead.
This helps with search operations for getApplication() usages
2021-01-08 22:34:12 +01:00
4d1m
e6a74fd103 Translated using Weblate (Romanian)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2021-01-08 08:52:23 -05:00
Christian
1efa5252f0 Translated using Weblate (German)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-01-08 08:52:22 -05:00
WWWesten
376851bd06 Translated using Weblate (Kazakh)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-01-07 09:37:17 -05:00
WWWesten
2901ea6689 Translated using Weblate (Kazakh)
Currently translated at 98.6% (427 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-01-06 17:01:03 -05:00
pixelomer
3acc6593e2 Translated using Weblate (Turkish)
Currently translated at 98.1% (425 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/tr/
2021-01-06 17:01:01 -05:00
WWWesten
0e6806e23a Translated using Weblate (Russian)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-01-06 17:01:00 -05:00
TF
abd24f21cc Translated using Weblate (Portuguese (Portugal))
Currently translated at 98.6% (427 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_PT/
2021-01-06 13:50:35 -05:00
Jorge Turrado Ferrero
28b76e3727 Translated using Weblate (Spanish)
Currently translated at 99.7% (432 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2021-01-06 13:50:35 -05:00
WWWesten
72c2145ac4 Translated using Weblate (Kazakh)
Currently translated at 87.9% (381 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2021-01-06 13:50:35 -05:00
Pavlos Papalexiou
72bb17bb91 Translated using Weblate (Greek)
Currently translated at 73.6% (319 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2021-01-06 13:50:35 -05:00
Niels van Velzen
01bd26f19a Merge pull request #680 from thornbill/ends-now
Hide end time when duration is unknown
2021-01-05 23:35:30 +01:00
Bill Thornton
27e29b277a Hide end time when duration is unknown 2021-01-05 17:24:04 -05:00
Niels van Velzen
626ba3ba46 Merge pull request #679 from thornbill/accountmanager-null-safety
Add null checks to AccountManagerHelper
2021-01-05 23:17:36 +01:00
Bill Thornton
ff915dff02 Add null checks to AccountManagerHelper 2021-01-05 16:46:05 -05:00
Bill Thornton
6a16c343c7 Merge pull request #678 from nielsvanvelzen/remove-stupid-dialogs
Remove more unnecessary popups
2021-01-05 13:34:20 -05:00
Bill Thornton
4a67024724 Merge pull request #672 from nielsvanvelzen/no-fragment-constructor
Remove constructors from fragments
2021-01-05 13:33:17 -05:00
Niels van Velzen
6adeea3d7d Remove more unnecessary popups 2021-01-05 19:05:53 +01:00
Bill Thornton
429798f9fe Merge pull request #677 from nielsvanvelzen/leakcanary
Add LeakCanary
2021-01-05 11:44:26 -05:00
Niels van Velzen
367fdf6ee8 Add leak canary 2021-01-05 14:18:44 +01:00
Bill Thornton
1bb20b7475 Merge pull request #676 from nielsvanvelzen/oops
Partially revert #656
2021-01-04 16:21:19 -05:00
Niels van Velzen
fce19ca9cf Partially revert #656
The watched state wasn't reset properly
2021-01-04 21:55:48 +01:00
Sam Stewart
51f0ef2fb3 Translated using Weblate (English)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en/
2021-01-04 05:47:34 -05:00
Eric
8d7408a919 Translated using Weblate (French)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-01-04 05:47:34 -05:00
Sam Stewart
aeb8b1976c Translated using Weblate (English (United Kingdom))
Currently translated at 98.8% (428 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2021-01-04 05:47:34 -05:00
Niels van Velzen
f2b638b1ee Translated using Weblate (French)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-01-04 05:47:34 -05:00
Bill Thornton
45a32bdec7 Merge pull request #673 from MrChip53/intro-nextup
Remove NextUpActivity from displaying after intro videos or trailers
2021-01-03 16:03:02 -05:00
Mr. Chip53
fe129399da Handle null current item in PlaybackController.java 2021-01-03 09:47:49 -06:00
hoanghuy309
0948c5ed02 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (432 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2021-01-03 08:15:05 -05:00
Oatavandi
502b6b5e26 Translated using Weblate (Tamil)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2021-01-03 08:15:05 -05:00
Franco Castillo
472d8818be Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2021-01-03 08:15:05 -05:00
nextlooper42
7c9cc76e36 Translated using Weblate (Slovak)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2021-01-03 08:15:05 -05:00
Nyanmisaka
cd3f600c9c Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2021-01-03 08:15:05 -05:00
WWWesten
fa5eb95d25 Translated using Weblate (Russian)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2021-01-03 08:15:05 -05:00
lemmens95
65bd0b0031 Translated using Weblate (Dutch)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2021-01-03 08:15:05 -05:00
Manjot Singh
423bafebf5 Translated using Weblate (French)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2021-01-03 08:15:05 -05:00
Lukáš Kucharczyk
25e26ee068 Translated using Weblate (Czech)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2021-01-03 08:15:05 -05:00
J. Beckmann
b94c5620c4 Translated using Weblate (German)
Currently translated at 100.0% (433 of 433 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2021-01-03 08:15:05 -05:00
Niels van Velzen
bc599c6c55 Use sharedViewModel in login fragments 2021-01-03 10:58:31 +01:00
Niels van Velzen
e1c890bc0c Remove constructor for StartupToolbarFragment 2021-01-03 10:58:31 +01:00
Niels van Velzen
e4837e5519 Use view model in next up activity/fragment
This removed the constructor
2021-01-03 10:58:30 +01:00
Bill Thornton
192bbee70e Merge pull request #669 from nielsvanvelzen/drop-kotlin-android-extensions
Remove Kotlin Android Extensions Gradle Plugin
2021-01-03 01:05:39 -05:00
Mr. Chip53
1a64794a9f Remove NextUpActivity from displaying after intro videos or trailers 2021-01-02 19:33:08 -06:00
Niels van Velzen
15a6b59e9d Fix cancel button listener in NextUpButtons 2021-01-02 12:13:30 +01:00
Niels van Velzen
5432abd1cb Merge pull request #671 from thornbill/you-get-hevc
Enable hevc support universally
2021-01-02 09:57:58 +01:00
Bill Thornton
6aeb0eced0 Enable hevc support universally 2021-01-02 02:01:34 -05:00
Andi Chandler
61fee4af97 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2021-01-01 05:06:43 -05:00
Niels van Velzen
424f1ddd8d Use view binding for NextUpFragment 2020-12-31 12:40:54 +01:00
Niels van Velzen
f22521630c Remove Kotlin Android Extensions Gradle Plugin
Replaced all synthetic uses with findViewById
2020-12-31 12:39:51 +01:00
Bill Thornton
d3fc28d8e5 Merge pull request #644 from nielsvanvelzen/accountmanager
Add initial authentication storage
2020-12-30 17:28:02 -05:00
Niels van Velzen
050fe767c9 Merge branch 'master' into accountmanager
# Conflicts:
#	app/src/main/java/org/jellyfin/androidtv/JellyfinApplication.kt
#	app/src/main/java/org/jellyfin/androidtv/TvApp.java
#	app/src/main/java/org/jellyfin/androidtv/di/AppModule.kt
#	app/src/main/java/org/jellyfin/androidtv/ui/home/HomeFragment.java
#	app/src/main/java/org/jellyfin/androidtv/ui/preference/category/authentication.kt
2020-12-30 22:56:25 +01:00
Bill Thornton
c64830892b Merge pull request #659 from nielsvanvelzen/preferences-2.1
Preferences 2.1
2020-12-30 16:35:16 -05:00
Bill Thornton
791ac440e4 Merge pull request #664 from nielsvanvelzen/workmanager-channels
Convert ChannelManager to work manager
2020-12-30 16:07:39 -05:00
Niels van Velzen
40960d8403 Update update request names
Now uses unique names for both types
2020-12-30 10:51:09 +01:00
Niels van Velzen
5e01dd4df5 Convert ChannelManager to a worker manager 2020-12-30 10:51:07 +01:00
Rubikscraft
865bea0f22 Translated using Weblate (Dutch)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-12-29 22:58:09 -05:00
Bill Thornton
32fd777655 Merge pull request #662 from nielsvanvelzen/use-me
Fix a bunch of "unused" warnings
2020-12-29 17:09:18 -05:00
Bill Thornton
c730f0e82d Merge pull request #666 from nielsvanvelzen/no-text-extend-for-empty-text
Disable text expansion for empty textview
2020-12-29 17:02:51 -05:00
Bill Thornton
1c454c1d08 Merge pull request #663 from nielsvanvelzen/covid19-vaccine-is-also-a-kind-of-dependency-injection
Move DataRefreshService to dependency injection
2020-12-29 17:02:32 -05:00
Niels van Velzen
b2fa8327cb Fix login for users without a password prompting for a password
We now remember if a user has a password (using a boolean) in the offline data set. If a user fails to authenticate because a password was added it will prompt for a password. If it's the other way around the user can just proceed in the password-prompt with an empty password and the boolean will be updated for future logins.
2020-12-29 19:26:53 +01:00
Niels van Velzen
5192d63ff9 Remove even more unused code from VideoManager 2020-12-29 18:42:22 +01:00
WWWesten
8c5daa80a9 Translated using Weblate (Kazakh)
Currently translated at 83.7% (356 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2020-12-29 01:06:19 -05:00
RTapeLoadingError
0962b5af83 Translated using Weblate (Spanish)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-12-28 12:11:56 -05:00
Niels van Velzen
99f6188b50 Disable text expansion for empty textview 2020-12-28 15:06:22 +01:00
Norbi
d44f687229 Translated using Weblate (Hungarian)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-12-27 13:17:24 -05:00
cseig
763aeddd3d Translated using Weblate (French)
Currently translated at 99.7% (424 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-12-27 07:46:54 -05:00
Mislav Milinković
59e9bb560c Translated using Weblate (Croatian)
Currently translated at 96.9% (412 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hr/
2020-12-26 02:48:26 -05:00
Taras
528e2962eb Translated using Weblate (Ukrainian)
Currently translated at 20.4% (87 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/uk/
2020-12-26 02:48:18 -05:00
Nyanmisaka
4dba5c7139 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-12-25 19:18:30 -05:00
Niels van Velzen
10baf8cdb5 Apply nullability to Kotlin usages 2020-12-24 17:03:13 +01:00
Niels van Velzen
6733c998c3 Resolve a bunch of linter warnings 2020-12-24 16:57:26 +01:00
Niels van Velzen
6ec00f7746 Add nullability annotations to all set functions in TvApp 2020-12-24 13:01:01 +01:00
Niels van Velzen
5c671ac07d Replace DataRefreshService usages with dependency injection 2020-12-24 12:50:27 +01:00
Niels van Velzen
adfd723159 Fix a bunch of "unused" warnings 2020-12-24 12:32:39 +01:00
nextlooper42
b2b6358345 Translated using Weblate (Slovak)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-12-22 23:27:19 -05:00
m0d3rnX
45252c3b2e Translated using Weblate (German)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-12-22 23:01:32 -05:00
Niels van Velzen
6ab60c9519 Allow setting the screen name + arguments when starting the preferences activity 2020-12-22 22:36:52 +01:00
Niels van Velzen
7e51a096e2 Fix linter issues 2020-12-22 22:36:52 +01:00
Niels van Velzen
142338ae90 Add icon support to links 2020-12-22 22:36:51 +01:00
Niels van Velzen
c12bf04661 Add utility function to create links in a screen 2020-12-22 22:36:50 +01:00
Niels van Velzen
e88442cc1d Fix dialog titles 2020-12-22 22:36:50 +01:00
Niels van Velzen
6f81d2ab52 Add option screen linking 2020-12-22 22:36:49 +01:00
Niels van Velzen
13e736a300 Fix ModelExtensionsTest 2020-12-22 22:34:10 +01:00
Niels van Velzen
7afe640bd1 Fix authentication failing for discovered servers 2020-12-22 22:34:10 +01:00
Niels van Velzen
5e4705d297 Rewrite server/user retrieval flow part 2/2 2020-12-22 22:34:09 +01:00
Niels van Velzen
30241d582d Rewrite server/user retrieval flow part 1/2 2020-12-22 22:34:08 +01:00
Niels van Velzen
16021d12e7 Skip login screen for passwordless public users 2020-12-22 22:34:06 +01:00
Niels van Velzen
a8788556ca Fix server info missing in legacy apiclient 2020-12-22 22:34:05 +01:00
Niels van Velzen
e9a45fb85f Fix discovery crashing the app 2020-12-22 22:34:04 +01:00
Niels van Velzen
c6d1f3e8f1 Fix tests 2020-12-22 22:34:01 +01:00
Niels van Velzen
021ca1c955 Catch bad token condition 2020-12-22 22:34:01 +01:00
Niels van Velzen
cd1ad2e02d Fix compile errors 2020-12-22 22:33:59 +01:00
Niels van Velzen
371320b75d -scratch.md 2020-12-22 22:33:57 +01:00
Niels van Velzen
1117987f97 Add more error handling 2020-12-22 22:33:57 +01:00
Niels van Velzen
87ca3e3069 Refactor packages 2020-12-22 22:33:54 +01:00
Niels van Velzen
ef729fcf6b Clean ModelExtensions 2020-12-22 22:33:52 +01:00
Niels van Velzen
7640ecd731 Refactor Server class 2020-12-22 22:33:49 +01:00
Niels van Velzen
77e2f7800c Refactor User class 2020-12-22 22:33:48 +01:00
Niels van Velzen
8002a68325 Remvoe profile picture (unused, can use id) 2020-12-22 22:33:47 +01:00
Niels van Velzen
7c27daeccc Convert legacy credentials to new format on boot 2020-12-22 22:33:45 +01:00
Niels van Velzen
26d8ceac80 Fix few crashes 2020-12-22 22:33:44 +01:00
Niels van Velzen
0abaff4b71 url -> address 2020-12-22 22:33:43 +01:00
Niels van Velzen
fb7ec6837d More cleaning 2020-12-22 22:33:41 +01:00
Niels van Velzen
d5baf94fe4 Add getUser/getServer functions 2020-12-22 22:33:40 +01:00
Niels van Velzen
6e9454fd1a Optimize models 2020-12-22 22:33:39 +01:00
Niels van Velzen
5cbc249701 Re-order manifest 2020-12-22 22:33:38 +01:00
Niels van Velzen
aa32bf3f90 Store imagetag instead of url 2020-12-22 22:33:37 +01:00
Niels van Velzen
876d87631d Fix legacy user not showing and duplicates not handled when UUID format was different 2020-12-22 22:33:36 +01:00
Niels van Velzen
c4dea67647 Allow login with server from legacy format 2020-12-22 22:33:35 +01:00
Niels van Velzen
80e6118bdd Store user dto after signing in 2020-12-22 22:33:34 +01:00
Niels van Velzen
0beb56edc7 Initial signin support 2020-12-22 22:33:33 +01:00
Niels van Velzen
b980aa9bd4 Save server 2020-12-22 22:33:31 +01:00
Niels van Velzen
07e20b3323 Fix legacy credential uuid's 2020-12-22 22:33:28 +01:00
Niels van Velzen
4c52ae5e9c Add other sources for servers and users and remove duplicates 2020-12-22 22:33:23 +01:00
Niels van Velzen
a4df38a10e New flow based server and user retrieval 2020-12-22 22:33:17 +01:00
Niels van Velzen
27add9f826 Add backups 2020-12-22 22:33:12 +01:00
Niels van Velzen
4836b8b27e Restore saved servers 2020-12-22 22:33:11 +01:00
Niels van Velzen
79e5151741 LiveData mess 2020-12-22 22:33:10 +01:00
Niels van Velzen
8bd6bc82d9 use uuid 2020-12-22 22:33:09 +01:00
Niels van Velzen
de661fe4d4 viewmodel progress 2020-12-22 22:33:07 +01:00
Niels van Velzen
c72895df5f extensions -> class 2020-12-22 22:33:06 +01:00
Niels van Velzen
5a3dcfc448 Integration test 2020-12-22 22:33:05 +01:00
Niels van Velzen
89b0dd577f Initial authentication storage code 2020-12-22 22:33:03 +01:00
Niels van Velzen
63e599f068 Implement the Android AccountStore to save users 2020-12-22 22:33:02 +01:00
Predrag Ljubenović
ae1d39f3f4 Translated using Weblate (Polish)
Currently translated at 97.4% (414 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-12-22 13:00:06 -05:00
danielxb-ar
c4cb5991cd Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-12-22 09:56:06 -05:00
Predrag Ljubenović
2d9c3534de Translated using Weblate (Serbian)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sr/
2020-12-22 07:24:06 -05:00
SaddFox
2a39ac399b Translated using Weblate (Slovenian)
Currently translated at 88.4% (376 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2020-12-22 07:24:05 -05:00
hoanghuy309
f6dddbea9c Translated using Weblate (Vietnamese)
Currently translated at 99.7% (424 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-12-22 02:46:52 -05:00
Lukáš Kucharczyk
cbbf9cc47e Translated using Weblate (Czech)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-12-22 02:46:52 -05:00
Oatavandi
fa3dc19021 Translated using Weblate (Tamil)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-12-21 22:50:22 -05:00
WWWesten
832e090fd5 Translated using Weblate (Russian)
Currently translated at 100.0% (425 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-12-21 22:50:22 -05:00
WWWesten
91832043b6 Translated using Weblate (Kazakh)
Currently translated at 83.0% (353 of 425 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2020-12-21 22:50:22 -05:00
Predrag Ljubenović
ed6c7a7d45 Translated using Weblate (Serbian)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sr/
2020-12-21 13:58:47 -05:00
Niels van Velzen
19cf80579b Merge pull request #631 from MrChip53/toggle-clock
Add a setting toggle to change the clocks display behavior
2020-12-20 14:56:21 +01:00
Oatavandi
5ad8837497 Translated using Weblate (Tamil)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-12-20 08:28:11 -05:00
WWWesten
865eddae54 Translated using Weblate (Russian)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-12-19 19:14:27 -05:00
WWWesten
18c83a04b9 Translated using Weblate (Russian)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-12-19 14:19:50 -05:00
WWWesten
cb9bf20f60 Translated using Weblate (Kazakh)
Currently translated at 83.6% (352 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2020-12-19 14:19:50 -05:00
Mr. Chip53
be5204eb8c Specify UserPreferences class in ToolbarView.kt 2020-12-19 12:05:30 -06:00
hoanghuy309
711ec24b03 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (420 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-12-19 10:03:10 -05:00
Predrag Ljubenović
9060a3d95a Translated using Weblate (Serbian)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sr/
2020-12-18 15:04:22 -05:00
Lukáš Kucharczyk
3d7dbaf5a9 Translated using Weblate (Czech)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-12-18 10:31:18 -05:00
Csaba
dd5e374ee5 Translated using Weblate (Hungarian)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-12-18 05:51:21 -05:00
m0d3rnX
25606ae849 Translated using Weblate (German)
Currently translated at 100.0% (421 of 421 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-12-18 02:13:52 -05:00
avicarpio
51a22d6cf5 Translated using Weblate (Catalan)
Currently translated at 11.7% (49 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2020-12-18 01:34:59 -05:00
Chris
118e6da2fc Update strings.xml 2020-12-17 12:38:19 -06:00
Niels van Velzen
b69f188bba Add a setting toggle to change the clocks display behavior 2020-12-17 12:28:40 -06:00
Niels van Velzen
909e0281ba Merge pull request #630 from MrChip53/imdb-cards
Add the ability to change the rating type shown on cards
2020-12-17 16:34:34 +01:00
Mr. Chip53
12fc12f124 Add the ability to change the default rating type displayed on cards 2020-12-16 22:24:22 -06:00
Bill Thornton
d690c021bc Merge pull request #656 from nielsvanvelzen/cardpresenter-optimize
Optimize image loading in card presenter
2020-12-16 22:28:11 -05:00
4d1m
bb3e7c2852 Translated using Weblate (Romanian)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-12-16 16:58:21 -05:00
Niels van Velzen
b855c35802 Optimize image loading in card presenter 2020-12-16 20:22:14 +01:00
Esli Alvarez
42b8b9ac13 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-12-16 04:22:29 -05:00
Bill Thornton
8460f99a7b Merge pull request #655 from nielsvanvelzen/ignore-captures
Ignore captures from Layout Inspector
2020-12-15 13:42:19 -05:00
Niels van Velzen
1ff474ecce Merge pull request #632 from MrChip53/detail-progressbar
Update the progress bar in FullDetailsActivity to the new design
2020-12-15 19:40:20 +01:00
Niels van Velzen
3425527c76 Ignore captures from Layout Inspector 2020-12-15 19:32:21 +01:00
Amit Bezalel
bb70db20ab Translated using Weblate (Hebrew)
Currently translated at 98.3% (411 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2020-12-15 06:57:08 -05:00
WWWesten
7e03c8278e Translated using Weblate (Russian)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-12-15 06:57:05 -05:00
Amit Bezalel
f9bb1af429 Translated using Weblate (Hebrew)
Currently translated at 76.7% (321 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2020-12-15 00:21:01 -05:00
Amit Bezalel
950fe5207a Translated using Weblate (Hebrew)
Currently translated at 62.2% (260 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2020-12-14 23:55:24 -05:00
Amit Bezalel
96823d03ab Translated using Weblate (Hebrew)
Currently translated at 60.0% (251 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he/
2020-12-14 23:46:08 -05:00
Julian Schmidt
89e0ef35e5 Translated using Weblate (German)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-12-14 18:22:06 -05:00
avicarpio
13703a3d82 Translated using Weblate (Catalan)
Currently translated at 5.0% (21 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ca/
2020-12-14 06:16:24 -05:00
avicarpio
98b5a0eaaa Added translation using Weblate (Catalan) 2020-12-14 04:09:17 -05:00
kaboom83
f83cfa270e Translated using Weblate (Slovenian)
Currently translated at 87.7% (367 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2020-12-13 06:34:04 -05:00
4d1m
f34761505b Translated using Weblate (Romanian)
Currently translated at 96.6% (404 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-12-01 10:36:40 -05:00
Niels van Velzen
7ba54b729a Merge pull request #645 from thornbill/fix-end-of-season-crash
Fix crash when the end of a season is reached
2020-11-30 07:22:33 +01:00
Bill Thornton
88c997b09a Merge pull request #642 from nielsvanvelzen/toolbar-view
Convert toolbar base to a view
2020-11-29 23:17:46 -05:00
Bill Thornton
92bea0a24f Fix crash when the end of a season is reached 2020-11-29 22:30:25 -05:00
Enes
093481b1a9 Translated using Weblate (Turkish)
Currently translated at 99.7% (417 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/tr/
2020-11-29 19:20:14 -05:00
Enes
e58de28bc5 Translated using Weblate (Turkish)
Currently translated at 99.7% (417 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/tr/
2020-11-29 17:30:43 -05:00
No Available
bcddd756af Translated using Weblate (Danish)
Currently translated at 99.0% (414 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-11-28 17:33:38 -05:00
Mr. Chip53
81ba524bd1 rename and use progress variable; use centerInside for image view 2020-11-28 11:28:33 -06:00
conashinck
51aca1a3bb Translated using Weblate (Chinese (Traditional))
Currently translated at 88.9% (372 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-11-27 22:23:02 -05:00
Lasse
12068ca9db Translated using Weblate (Swedish)
Currently translated at 99.5% (416 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-11-26 14:23:10 -05:00
WWWesten
db50eec496 Translated using Weblate (Russian)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-11-26 14:23:09 -05:00
nextlooper42
539f592be0 Translated using Weblate (Slovak)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-11-26 10:01:25 -05:00
Rubikscraft
16efced100 Translated using Weblate (Dutch)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-11-26 10:01:25 -05:00
Rubikscraft
764e898d1f Translated using Weblate (Dutch)
Currently translated at 99.0% (414 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-11-26 05:28:38 -05:00
nextlooper42
dbb1e998ab Translated using Weblate (Slovak)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-11-25 18:52:51 -05:00
OtharSmirnow
5ddd8e7916 Translated using Weblate (Polish)
Currently translated at 99.0% (414 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-11-24 05:33:58 -05:00
Csaba
0cad127171 Translated using Weblate (Hungarian)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-11-23 09:47:13 -05:00
Niels van Velzen
5ebbced939 Convert toolbar base to a view 2020-11-21 15:44:53 +01:00
nextlooper42
10cba2b2c0 Translated using Weblate (Slovak)
Currently translated at 89.7% (375 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-11-20 19:33:18 -05:00
Csaba
59855df0fd Translated using Weblate (Hungarian)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-11-20 09:10:05 -05:00
Csaba
479f17bb79 Translated using Weblate (Hungarian)
Currently translated at 96.4% (403 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-11-20 08:59:32 -05:00
Csaba
faee6135ee Translated using Weblate (Hungarian)
Currently translated at 91.8% (384 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-11-20 05:29:44 -05:00
Nyanmisaka
2c237d11c3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-11-18 10:05:49 -05:00
Fernando
a684f5bd7f Translated using Weblate (Spanish)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-11-18 07:15:55 -05:00
Mr. Chip53
5a76b7fa9c Update the progress bar in FullDetailsActivity to the new design 2020-11-17 22:44:07 -06:00
danielxb-ar
064e173b92 Translated using Weblate (Spanish (Argentina))
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-11-17 16:29:47 -05:00
HDmaniac
3406006088 Translated using Weblate (Spanish)
Currently translated at 99.7% (417 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-11-17 16:29:47 -05:00
Moritz
4bb57abbff Translated using Weblate (German)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-11-17 16:29:47 -05:00
Bill Thornton
319ec3a3dd Merge pull request #634 from MrChip53/browse-info
Add MediaSources and MediaStreams to additional queries
2020-11-17 16:14:10 -05:00
Niels van Velzen
54169523e6 Merge pull request #637 from thornbill/toolbar-background
Fix toolbar background color
2020-11-17 21:41:55 +01:00
Bill Thornton
04f35ef9b9 Fix toolbar background color 2020-11-17 14:49:46 -05:00
Bill Thornton
e42d4f7757 Merge pull request #636 from nielsvanvelzen/colors
Fix theme colors
2020-11-17 13:43:34 -05:00
Niels van Velzen
c8c20ee52a Fix colors in hotdog theme 2020-11-17 16:09:53 +01:00
Niels van Velzen
be4596cac9 Fix colors in emerald theme 2020-11-17 15:52:28 +01:00
Niels van Velzen
0e145c13b5 Merge pull request #635 from thornbill/live-tv-icons
Update live tv icons
2020-11-17 08:54:16 +01:00
Bill Thornton
883034d3bf Update live tv icons 2020-11-17 00:41:27 -05:00
Ygor Lhano
001049c6f0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-11-16 18:45:58 -05:00
Bill Thornton
03c71f5a90 Merge pull request #628 from nielsvanvelzen/res-update-themes
Make tiles themable
2020-11-16 17:45:34 -05:00
Niels van Velzen
d09acfcdf6 Add tile colors to theme and split themes to separate files 2020-11-16 16:34:17 +01:00
Niels van Velzen
ae9944311b Rewrite GridButton in Kotlin and don't use Glide to load the drawable for it 2020-11-16 16:34:17 +01:00
Bill Thornton
5fbc9c5714 Merge pull request #626 from nielsvanvelzen/res-update
Replace bitmaps with vectors
2020-11-16 10:25:49 -05:00
Bill Thornton
97b9e841a4 Merge pull request #625 from nielsvanvelzen/play-series
Fix some crashes when trying to play series
2020-11-16 10:24:55 -05:00
Bill Thornton
4bdcdaa058 Merge pull request #623 from nielsvanvelzen/deps-2020-11
Update dependencies (November edition)
2020-11-16 10:23:54 -05:00
Mr. Chip53
1b19de4a15 Remove from StdItemQuery so it is not grabbed when not required and add to SuggestedMoviesFragment 2020-11-15 21:28:24 -06:00
Mr. Chip53
305b0c227b Add ItemFields.MediaSources and ItemFields.MediaStreams to a few queries so this info will be added to the info row. 2020-11-15 21:13:36 -06:00
hoanghuy309
d9e1dd7726 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (417 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-11-15 14:53:38 -05:00
Thomas Schwery
ddd9a75520 Translated using Weblate (French)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-11-15 14:53:38 -05:00
4d1m
47bb824b72 Translated using Weblate (Romanian)
Currently translated at 96.4% (403 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-11-15 09:22:19 -05:00
Niels van Velzen
aa2a1a52a4 Fix codestyle in PlaybackController getCurrentMediaSource 2020-11-15 10:10:46 +01:00
TheGoose
f466e5c0cc Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-11-15 03:36:54 -05:00
Bill Thornton
1054766bfa Merge pull request #627 from nielsvanvelzen/backgroundmanager-double-attach
Don't attach the background manager when it's already attached
2020-11-15 01:22:25 -05:00
cemanga
f3571dd5ec Translated using Weblate (Tamil)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-11-15 00:25:56 -05:00
Bill Thornton
4add3ebd55 Merge pull request #624 from nielsvanvelzen/cleaning
Remove docker and jellyfin-build files
2020-11-14 23:44:55 -05:00
cemanga
576099c26e Translated using Weblate (Turkish)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/tr/
2020-11-14 20:56:39 -05:00
cemanga
6bbf82f591 Translated using Weblate (Turkish)
Currently translated at 67.2% (281 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/tr/
2020-11-14 19:08:53 -05:00
cemanga
6931a57ff5 Translated using Weblate (Turkish)
Currently translated at 67.2% (281 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/tr/
2020-11-14 19:08:53 -05:00
Lukáš Kucharczyk
27c89d23fc Translated using Weblate (Czech)
Currently translated at 100.0% (418 of 418 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-11-14 19:08:44 -05:00
cemanga
3b11edbe69 Added translation using Weblate (Turkish) 2020-11-14 17:43:21 -05:00
Niels van Velzen
7334886e87 Don't attach the background manager when it's already attached
Fixes an application crash
2020-11-14 18:51:34 +01:00
lelamamalgache
753410bb96 Translated using Weblate (French)
Currently translated at 100.0% (417 of 417 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-11-14 11:38:40 -05:00
Moritz
4f75ba1cd8 Translated using Weblate (German)
Currently translated at 100.0% (417 of 417 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-11-14 11:38:40 -05:00
Niels van Velzen
636926d761 Format all drawable files 2020-11-14 16:05:54 +01:00
Niels van Velzen
4540848e10 ic_channel_bar 2020-11-14 15:59:20 +01:00
Niels van Velzen
d51d45850d ic_jump_letter 2020-11-14 15:46:30 +01:00
Niels van Velzen
0f521c25c9 ic_unwatch custom icon 2020-11-14 15:39:27 +01:00
Niels van Velzen
15c9d637f2 Add landscape tiles and update a few others 2020-11-14 15:20:02 +01:00
Niels van Velzen
cb64822956 Add more tiles part 2 2020-11-14 15:02:40 +01:00
Niels van Velzen
83989e4108 Add more tiles 2020-11-14 14:49:31 +01:00
Niels van Velzen
6765df99c6 Add all missing tile colors 2020-11-14 14:17:30 +01:00
Niels van Velzen
c6ceb4b69e Add custom icon for ic_record_series and ic_record_series_red 2020-11-14 14:11:10 +01:00
Niels van Velzen
5b54c13653 Add ic_more 2020-11-14 12:01:00 +01:00
Niels van Velzen
3726405f6a Replace edit, settings and logout tiles with vector versions 2020-11-14 11:48:39 +01:00
Niels van Velzen
6d785b37d4 Add vector icons from item-details-redesign branch 2020-11-14 11:06:41 +01:00
Niels van Velzen
47b76c7283 Replace bitmap icons with vectors from material design library 2020-11-14 11:01:33 +01:00
Niels van Velzen
0ef742e859 Remove unused drawables 2020-11-14 11:01:14 +01:00
Niels van Velzen
cd0b46580a Move moviebg.jpg to dpi aware drawables 2020-11-14 11:00:54 +01:00
Niels van Velzen
751ba531b2 Merge pull request #585 from MrChip53/image-card-redesign
Image card redesign
2020-11-14 10:44:55 +01:00
Mr. Chip53
c8730df32f Review changes 2020-11-14 00:56:02 -06:00
Oatavandi
41184e1dd2 Translated using Weblate (Tamil)
Currently translated at 100.0% (417 of 417 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-11-13 17:28:15 -05:00
Niels van Velzen
e5c0acb0cd Fix issue where using the "Play Next Up" button on series would crash the app 2020-11-13 23:09:12 +01:00
Niels van Velzen
3241beec03 Fix issue where using the "Play All" button on series would crash the app 2020-11-13 23:04:35 +01:00
Mr. Chip53
e6a1c01963 Use CustomListRowPresenter 2020-11-13 15:14:07 -06:00
Chris
00af43ab87 Merge branch 'master' into image-card-redesign 2020-11-13 14:02:57 -06:00
Mr. Chip53
2ca1abc9d6 Shift import 2020-11-13 13:58:50 -06:00
Mr. Chip53
3adac0efdc Fix broken AudioNowPlayingActivity.java merge part 2 2020-11-13 13:56:59 -06:00
Mr. Chip53
f8e92b96d2 Fix broken AudioNowPlayingActivity.java merge 2020-11-13 13:55:10 -06:00
Mr. Chip53
0f62c7e2d8 Apply background alpha with Glide 2020-11-13 13:51:24 -06:00
Mr. Chip53
d4d7109d31 Unwatched 99+ 2020-11-13 12:35:43 -06:00
Mr. Chip53
fb48050f80 New progressbar and image_card_view.xml redesign 2020-11-13 12:31:39 -06:00
Niels van Velzen
553eeafd22 Remove unused build.sh/.yaml files 2020-11-13 19:13:01 +01:00
Niels van Velzen
df89e6b3e5 Remove outdated docker files 2020-11-13 19:05:07 +01:00
Niels van Velzen
f1d32efe01 Add missing super call for onRequestPermissionsResult 2020-11-13 18:43:53 +01:00
Bill Thornton
1a3f503923 Merge pull request #622 from nielsvanvelzen/login-ui
Small UI tweaks in login redesign
2020-11-13 11:30:20 -05:00
Niels van Velzen
8e4feafed5 Update Koin usages to fix compile errors 2020-11-13 17:08:35 +01:00
Niels van Velzen
4a7e94c02f Update Gradle, Gradle plugins, Android target/compile version and app dependencies to latest versions 2020-11-13 16:54:25 +01:00
Niels van Velzen
5f52249169 Remove unused dimens file 2020-11-13 16:20:48 +01:00
Niels van Velzen
264025aad3 Slightly improve button positioning 2020-11-13 16:06:01 +01:00
Niels van Velzen
98d0ae15eb Improve toolbar button design 2020-11-13 16:01:21 +01:00
Niels van Velzen
5b6b794777 Improve alert button design 2020-11-13 15:58:03 +01:00
Lukáš Kucharczyk
8139770c5e Translated using Weblate (Czech)
Currently translated at 100.0% (417 of 417 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-11-13 08:07:21 -05:00
PA3LIT0
82ddcad5ac Translated using Weblate (Polish)
Currently translated at 97.5% (403 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-11-13 02:30:13 -05:00
Bill Thornton
3e6c48c230 Merge pull request #621 from nielsvanvelzen/itemlistactivitygobackplease
Fix back action not working in ItemListActivity
2020-11-12 16:37:35 -05:00
Niels van Velzen
8907947e0a Merge pull request #620 from thornbill/apiclient-inject
Fix apiclient injection using Java method
2020-11-12 22:21:54 +01:00
Niels van Velzen
055d0023fb Fix back action not working in ItemListActivity 2020-11-12 22:14:55 +01:00
Bill Thornton
bcace214c9 Fix apiclient injection using Java method 2020-11-12 16:12:32 -05:00
Niels van Velzen
3a4716afc9 Merge pull request #616 from MrChip53/ends-at-v2
Re-add "Ends at" time to playback control overlay
2020-11-12 21:08:38 +01:00
Chris
4e770a45a3 Merge branch 'master' into ends-at-v2 2020-11-12 13:56:45 -06:00
Niels van Velzen
50e64c8840 Merge pull request #578 from thornbill/login-redesign
Login redesign
2020-11-12 20:29:15 +01:00
Mr. Chip53
b04856e58e Codacy issues; align ProgressBar to bottom of ImageView 2020-11-12 13:10:00 -06:00
Bill Thornton
ef88c0032a Fix review feedback 2020-11-12 13:58:41 -05:00
Bill Thornton
4167cb7887 Fix inconsistent message resource naming 2020-11-12 13:31:52 -05:00
Bill Thornton
b72993126d Fix failing tests 2020-11-12 13:15:09 -05:00
Mr. Chip53
3a9d1682cd Round image border 2020-11-12 12:14:40 -06:00
Bill Thornton
3631e2e33d Fix review feedback 2020-11-12 11:53:13 -05:00
Mr. Chip53
b5b0cfc1a1 Fix black bar issue 2020-11-11 19:31:28 -06:00
Mr. Chip53
4e9334d5f9 Fix background for chapter selection, make border color be based off theme, remove drop shadows 2020-11-11 19:31:18 -06:00
Mr. Chip53
79d01fdc60 More xml redesign 2020-11-11 19:31:18 -06:00
Mr. Chip53
d233701f77 Add focus listener for card views in MyImageCardView.java; Remove shadow in PositionableListRowPresenter.java 2020-11-11 19:31:18 -06:00
Mr. Chip53
6522a7670e Remove background transparent black in activity_full_details.xml 2020-11-11 19:31:18 -06:00
Mr. Chip53
8864db6000 Get rid of the RowPresenter out of focus shadow in PositionableListRowPresenter.java 2020-11-11 19:31:17 -06:00
Mr. Chip53
011c4aa163 More xml redesign 2020-11-11 19:31:17 -06:00
Mr. Chip53
1af3ff8083 Add focus listener for card views in MyImageCardView.java; Remove shadow in PositionableListRowPresenter.java 2020-11-11 19:31:17 -06:00
Mr. Chip53
d33b5b203d Add ColorFilter to background drawable in BackgroundManagerExtensions.kt 2020-11-11 19:31:17 -06:00
Mr. Chip53
33cc506665 Add white border and redesign image_card_view.xml 2020-11-11 19:31:17 -06:00
newton181
d7abfb4ed2 Translated using Weblate (Spanish (Mexico))
Currently translated at 99.7% (412 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-11-11 05:04:29 -05:00
Mr. Chip53
ec78e01e51 Remove refresh end time task when video is resumed 2020-11-10 22:33:58 -06:00
Mr. Chip53
5664e84f59 Use leanback style and initialize mEndsText earlier with proper displayed text 2020-11-10 22:21:30 -06:00
Ted van den Brink
30cdad8658 Translated using Weblate (Dutch)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-11-10 18:49:07 -05:00
nusu-github
2bb6842629 Translated using Weblate (Japanese)
Currently translated at 72.6% (300 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ja/
2020-11-10 14:48:43 -05:00
nusu-github
b7544a0e66 Translated using Weblate (Japanese)
Currently translated at 72.6% (300 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ja/
2020-11-10 10:16:44 -05:00
Mr. Chip53
361771836a Explicit scopes 2020-11-09 23:00:21 -06:00
Mr. Chip53
726632988c Address comments from review; change visibility accordingly in handler 2020-11-09 22:54:30 -06:00
Bill Thornton
83d5c0a4f1 Fix review feedback 2020-11-09 11:08:21 -05:00
Mr. Chip53
69094ffe4c Move TextView initialization back to createRowViewHolder in CustomPlaybackTransportControlGlue.java 2020-11-08 20:33:06 -06:00
Mr. Chip53
307f7962ca Null check mEndsText before adding to playback controls 2020-11-08 16:20:59 -06:00
Mr. Chip53
e6d7a43e2c Use leanback style and initialize mEndsText earlier with proper displayed text 2020-11-08 16:14:50 -06:00
Ricky Zhang
a0cf334189 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-11-08 12:52:54 -05:00
Mr. Chip53
f8a964d532 Add string entry for "Ends at"; Null checks on context 2020-11-07 13:54:34 -06:00
Mr. Chip53
9ff8654f43 Fix time displayed; moved TextView creation to onCreate; set default text of TextView to "Loading..." 2020-11-07 13:43:46 -06:00
Ludovico Besana
f9c2c1aa59 Translated using Weblate (Italian)
Currently translated at 96.3% (398 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-11-07 13:52:09 -05:00
Mr. Chip53
8e5db7a1d1 Codacy 2020-11-07 10:13:06 -06:00
Mr. Chip53
b10d90773d Re-add "Ends at" time to playback control overlay 2020-11-07 09:50:09 -06:00
Bill Thornton
e688d55666 Fix some login test feedback 2020-11-07 00:52:27 -05:00
Bill Thornton
33abd60eb0 Rewrite login flow
Rewrite auth to use mvvm and koin

Add add server button

Add catch for null ServerInfo in legacy saved credentials

Fix resource leaking in JsonFileSource

Enable improved logging for resource leaking

Add new login flow

Use KeyboardFocusChangeListener for handling keyboard hiding

Fix codacy issues

Add toolbar to server list screen

Fix padding on server list

Remove unused import

Fix back navigation in MainActivity

Fix crash due to missing ServerInfo

Convert StartupActivity to Kotlin

Move add server button to toolbar

Fix window not resizing in user login fragment

Add hints for username and password fields

Fix codacy issues

Remove old comment

Remove old login code

Test Codacy ignore

Use local serializer for JsonFileSource

Fix codacy issues

Move gson instance to koin module

Add prefill for username in login fragment

Add equals overrides for User and Server models

Update blank server name check

Add UserConfiguration and UserPolicy models

Move resource debug logging to JellyfinApplication

Suppress warnings

Fix formatting

Add loading state to server list

Prevent submission of empty login forms

Add basic error handling for invalid login

Suppress exception handling warnings

Remove hardcoded strings
2020-11-07 00:52:27 -05:00
Bill Thornton
e3459cb35c Translated using Weblate (Korean)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ko/
2020-11-07 00:51:30 -05:00
JB
b0617de6c0 Translated using Weblate (Korean)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ko/
2020-11-06 14:58:10 -05:00
Bill Thornton
e7a41aa654 Merge pull request #613 from nielsvanvelzen/translation-warn
Set "ExtraTranslation" linting rule to warning
2020-11-05 12:25:54 -05:00
Niels van Velzen
0c7ca926da Set "ExtraTranslation" linting rule to warning 2020-11-05 17:45:54 +01:00
SaddFox
5fbcc1aceb Translated using Weblate (Slovenian)
Currently translated at 54.9% (227 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2020-11-05 09:13:04 -05:00
lldsolitude
091608665f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-11-05 07:16:28 -05:00
Bill Thornton
787620e68c Merge pull request #611 from thornbill/fix-format-error
Fix formatting issue in Chinese translations
2020-11-05 01:07:56 -05:00
Bill Thornton
ae354de804 Fix formatting issue in Chinese translations 2020-11-05 00:59:20 -05:00
Tim Gels
f97bed33bf Translated using Weblate (Dutch)
Currently translated at 99.2% (410 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-11-04 15:27:30 -05:00
Jan-Pieter Baert
ba1e6f0ae7 Translated using Weblate (Dutch)
Currently translated at 99.2% (410 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-11-02 23:18:00 -05:00
Eduardo Fernández
17c33c662d Translated using Weblate (Spanish)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-11-01 12:37:23 -05:00
federico.antoniazzi.000
2e5744ad17 Translated using Weblate (Italian)
Currently translated at 95.6% (395 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-10-31 22:03:27 -04:00
Khang Phan
fe9b562518 Translated using Weblate (Vietnamese)
Currently translated at 99.7% (412 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-10-31 19:35:17 -04:00
Gubb Jonas
fa861801d8 Translated using Weblate (Swedish)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-10-30 19:36:33 -04:00
4d1m
002577e804 Translated using Weblate (Romanian)
Currently translated at 96.3% (398 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-10-30 08:47:33 -04:00
Carlos Romani
c8de9e8fd4 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-10-29 21:37:49 -04:00
Oatavandi
522491c7db Translated using Weblate (Tamil)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-10-29 14:56:56 -04:00
WWWesten
8879dc5243 Translated using Weblate (Russian)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-10-29 14:56:56 -04:00
hoanghuy309
b371976952 Translated using Weblate (Vietnamese)
Currently translated at 99.5% (411 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-10-28 10:07:55 -04:00
無情天
61ec27eaf9 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.0% (405 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-10-26 12:11:52 -04:00
Moritz
11a048bf4d Translated using Weblate (German)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-10-26 12:11:52 -04:00
Thomas Schwery
289e5f2149 Translated using Weblate (French)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-10-26 02:39:07 -04:00
Lukáš Kucharczyk
087babe3cc Translated using Weblate (Czech)
Currently translated at 100.0% (413 of 413 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-10-25 16:56:23 -04:00
Nikita Epifanov
47885a5997 Translated using Weblate (Russian)
Currently translated at 96.8% (397 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-10-25 16:00:40 -04:00
Niels van Velzen
ffc58b5a9e Merge pull request #604 from thornbill/libvlc-avi
Remove direct play support for avi with libvlc
2020-10-23 18:39:31 +02:00
Bill Thornton
4b23951f6d Remove direct play support for avi with libvlc 2020-10-23 10:44:11 -04:00
Niels van Velzen
092741f58d Merge pull request #586 from jemlule/content-labels
Fix unlabeled image buttons for accessibility
2020-10-23 10:20:48 +02:00
Niels van Velzen
dd8e8746a8 Merge pull request #603 from thornbill/bump-libvlc
Update to latest libvlc release
2020-10-23 09:06:12 +02:00
Pietro Iuliano
612c69c437 Translated using Weblate (Italian)
Currently translated at 93.4% (383 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-10-23 00:07:58 -04:00
Bill Thornton
a3e961ed00 Update to latest libvlc release 2020-10-22 23:57:02 -04:00
Bill Thornton
158841cb7d Merge pull request #599 from nielsvanvelzen/tired-of-apiclient-work
Add JellyfinApplication class
2020-10-22 10:06:50 -04:00
Moritz
4d8581d7b4 Translated using Weblate (German)
Currently translated at 100.0% (410 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-10-21 11:58:15 -04:00
CHO MIN-SOO
6963eb5417 Translated using Weblate (Korean)
Currently translated at 81.2% (333 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ko/
2020-10-21 02:26:51 -04:00
Daan
e5c09d27a4 Translated using Weblate (Dutch)
Currently translated at 91.4% (375 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-10-20 19:06:03 -04:00
Vitorvlv
3b8033fe29 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (410 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-10-19 17:44:21 -04:00
Gubb Jonas
2e051707a9 Translated using Weblate (Swedish)
Currently translated at 98.5% (404 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-10-19 16:43:21 -04:00
hoanghuy309
f6c18a7a45 Translated using Weblate (Vietnamese)
Currently translated at 99.0% (406 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-10-19 14:22:14 -04:00
Franco Castillo
4d101ba76e Translated using Weblate (Spanish (Argentina))
Currently translated at 28.2% (116 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-10-19 14:22:14 -04:00
lelamamalgache
b017dc7c13 Translated using Weblate (French)
Currently translated at 100.0% (410 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-10-19 13:40:09 -04:00
jemlule
b013c0fb65 Fix multiple declarations for content description 2020-10-19 18:39:26 +02:00
jemlule
2ada436e4d Remove private declaration for buttons view 2020-10-19 18:34:29 +02:00
Oatavandi
9971452f16 Translated using Weblate (Tamil)
Currently translated at 100.0% (410 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-10-19 12:02:09 -04:00
Calum Smith
af429f3c47 Translated using Weblate (English (United Kingdom))
Currently translated at 93.4% (383 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-10-19 07:57:46 -04:00
Lukáš Kucharczyk
ab337663e2 Translated using Weblate (Czech)
Currently translated at 100.0% (410 of 410 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-10-19 07:57:46 -04:00
Piotr Kraszewski
a97f3b77ee Translated using Weblate (Polish)
Currently translated at 99.2% (402 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-10-18 20:06:48 -04:00
Niels van Velzen
483937ca6b Move activity lifecycle callbacks to DI module 2020-10-18 19:45:14 +02:00
Niels van Velzen
813b5fe686 Rearrange JellyfinApplication.kt 2020-10-18 19:45:13 +02:00
Niels van Velzen
d0844470e2 Remove TvApp.getResumePreroll (moved to usage locations) 2020-10-18 19:45:07 +02:00
Niels van Velzen
bc091a8ff2 Remove TvApp.directItemId 2020-10-18 19:42:58 +02:00
Niels van Velzen
2631b9234f Add new JellyfinApplication class to replace TvApp 2020-10-18 19:42:57 +02:00
Niels van Velzen
2e930f90e3 Merge pull request #571 from okan35/featurePlayWith
Feature play with button
2020-10-18 19:39:03 +02:00
okan35
ea11eaadf7 episode check added for play with button 2020-10-18 19:34:11 +02:00
Gubb Jonas
8b9161c81c Translated using Weblate (Swedish)
Currently translated at 91.8% (372 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-10-17 05:25:46 -04:00
Niels van Velzen
a4013da616 Merge pull request #598 from thornbill/fix-kotlin-version
Fix invalid formatting of kotlin version
2020-10-15 15:41:38 +02:00
Bill Thornton
d39c4dbf1b Fix invalid formatting of kotlin version 2020-10-15 09:30:01 -04:00
wbrmdz
a6abd861b2 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-10-14 20:33:51 -04:00
wbrmdz
28864b63d5 Translated using Weblate (Spanish)
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-10-14 20:33:51 -04:00
Niels van Velzen
ec0a6ff4ac Merge pull request #597 from thornbill/bump-kotlin
Bump kotlin version
2020-10-14 20:36:08 +02:00
Bill Thornton
fb9b2b2259 Bump kotlin version 2020-10-14 13:49:31 -04:00
Thomas Schwery
1e97a8e9b8 Translated using Weblate (French)
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-10-13 18:18:46 -04:00
okan35
893a3bfa5b button icon change 2020-10-10 16:22:20 +02:00
Page Asgardius
727a2e8e35 Translated using Weblate (Spanish)
Currently translated at 99.2% (402 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-10-09 17:47:42 -04:00
Phillip Zhai
e6eecc8e4a Translated using Weblate (Chinese (Simplified))
Currently translated at 97.7% (396 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-10-09 00:11:00 -04:00
hanka456
df46fcf80e Translated using Weblate (Swedish)
Currently translated at 91.6% (371 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-10-08 17:39:04 -04:00
Erik Ušaj
bbaa008ffa Translated using Weblate (Slovenian)
Currently translated at 56.0% (227 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2020-10-08 07:47:28 -04:00
Niels van Velzen
c04eb0da53 Merge pull request #593 from thornbill/lint
Add Lint CI job
2020-10-08 09:01:40 +02:00
Bill Thornton
a03a0a604d Fix lint errors 2020-10-07 17:03:45 -04:00
Bill Thornton
d7a39f950e Move lint to separate job 2020-10-07 16:43:34 -04:00
Bill Thornton
039624622f Add lint task to Test CI job 2020-10-07 16:39:09 -04:00
Niels van Velzen
bc3f8d12d2 Merge pull request #592 from thornbill/use-context-compat
Use ContextCompat and ResourcesCompat for retrieving drawables
2020-10-07 22:28:39 +02:00
Bill Thornton
ebdcb74e4b Use ContextCompat and ResourcesCompat for retrieving drawables 2020-10-07 16:04:32 -04:00
Niels van Velzen
21d5946879 Merge pull request #591 from thornbill/unused-code
General cleanup
2020-10-07 20:01:09 +02:00
Juan Hernández
6189b862b2 Translated using Weblate (Spanish)
Currently translated at 94.0% (381 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-10-07 13:35:58 -04:00
Niels van Velzen
2d32196bda Merge pull request #589 from MrChip53/fix-live-tv-aspect
Fix Live TV tiles aspect ratio in CardPresenter.java
2020-10-07 08:46:47 +02:00
Mr. Chip53
6435fbd49d Unused import 2020-10-06 18:47:08 -05:00
Mr. Chip53
49fd2ce2da Move Live TV tile fix to ImageUtils and add check that only applies if tile has Primary image 2020-10-06 18:33:05 -05:00
Bill Thornton
e2e5a7f667 Merge pull request #579 from MrChip53/live-tv-favorites
Adds the ability to favorite live tv channels
2020-10-06 15:54:17 -04:00
Bill Thornton
1ec6dfca2b Remove unused imports 2020-10-06 15:40:56 -04:00
Bill Thornton
279e261d3b Use constants for SDK versions and remove unneeded check 2020-10-06 15:31:01 -04:00
Bill Thornton
fabfc60e39 Use ContextCompat for getting resources 2020-10-06 15:29:56 -04:00
Bill Thornton
a0a55599a2 Remove unused util methods 2020-10-06 15:21:00 -04:00
Bill Thornton
ab75388def Remove unused classes 2020-10-06 15:09:08 -04:00
Yoav Levi
78445674bd Translated using Weblate (Hebrew (Israel))
Currently translated at 7.9% (32 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/he_IL/
2020-10-06 11:18:13 -04:00
DrRenz
475fe0b4f0 Translated using Weblate (German)
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-10-06 05:28:25 -04:00
Mr. Chip53
47b466beb7 Fix Live TV tiles aspect ratio in CardPresenter.java 2020-10-06 00:14:20 -05:00
okan35
401799cb05 show playWith button on certain screens 2020-10-05 20:57:28 +02:00
shower
94b086ac0c Translated using Weblate (Chinese (Simplified))
Currently translated at 93.8% (380 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-10-05 07:47:22 -04:00
Moritz
03247dbe77 Translated using Weblate (German)
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-10-05 07:47:22 -04:00
jemlule
ef4c8a7eed Change PlayPauseButton label when updateButtons() 2020-10-04 14:09:00 +02:00
jemlule
420284414e Use context instead of TvApp.getApplication() 2020-10-04 14:09:00 +02:00
jemlule
c5b21c3478 Assign findViewById to a variable 2020-10-04 14:09:00 +02:00
Niels van Velzen
26158d8d43 Merge pull request #581 from MrChip53/improve-ff-rewind
Improvements to fast forward and rewind
2020-10-04 11:49:32 +02:00
Mr. Chip53
6c4309af42 Remove excess function calls 2020-10-03 16:57:29 -05:00
Odd-Roar Brouer-Wangen
4281096891 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-10-03 16:42:10 -04:00
Peter McNeil
f31cd6ec52 Translated using Weblate (English (United Kingdom))
Currently translated at 91.8% (372 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-10-03 16:42:09 -04:00
Oatavandi
ccb47ab9af Translated using Weblate (Tamil)
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-10-03 14:49:14 -04:00
jemlule
ae6760d20f Label image buttons for accessibility 2020-10-03 11:58:25 +02:00
Mr. Chip53
26680870c0 Fix null pointer bug in the guide activities 2020-10-03 02:22:07 -05:00
Mr. Chip53
2f3774d970 Revert seek bar jump back to 30 seconds in CustomSeekProvider.java 2020-10-02 23:12:50 -05:00
Thomas Schwery
53ef32e322 Translated using Weblate (French)
Currently translated at 99.0% (401 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-10-02 16:47:45 -04:00
Page Asgardius
07c585a335 Translated using Weblate (Spanish (Latin America))
Currently translated at 99.2% (402 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-10-02 12:19:00 -04:00
Page Asgardius
2b9918e02a Translated using Weblate (Spanish (Latin America))
Currently translated at 94.0% (381 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-10-02 11:18:15 -04:00
Page Asgardius
ae62627be6 Translated using Weblate (Spanish (Mexico))
Currently translated at 99.0% (401 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-10-02 11:18:14 -04:00
vinibutturi
4162e11cca Translated using Weblate (Portuguese (Brazil))
Currently translated at 94.3% (382 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-10-02 07:09:17 -04:00
Niels van Velzen
d623b10321 Merge pull request #583 from thornbill/remove-color-vomit
Remove color vomit card backgrounds
2020-10-01 22:52:36 +02:00
Bill Thornton
ee546ba963 Remove palette dependency 2020-10-01 16:44:03 -04:00
Bill Thornton
74600517af Remove color vomit card backgrounds 2020-10-01 16:27:10 -04:00
Niels van Velzen
5ffbfd98f2 Merge pull request #582 from thornbill/fix-card-bg
Update default card background color
2020-10-01 21:56:07 +02:00
Bill Thornton
24f2faced2 Update default card background color 2020-10-01 15:43:40 -04:00
Mr. Chip53
c55b2228e1 Fix CustomSeekProviderTest.java for real this time 2020-10-01 14:13:12 -05:00
Mr. Chip53
fe97fd56e7 Fix CustomSeekProviderTest.java 2020-10-01 14:08:10 -05:00
Mr. Chip53
c857b17df4 Fix fastForward() function in PlaybackController.java 2020-10-01 14:02:03 -05:00
Mr. Chip53
97f05390bc Remove unused variables in VideoPlayerAdapter.java 2020-10-01 13:50:32 -05:00
Mr. Chip53
6ccc1a6733 Add "dynamic" fast forward and rewind; split seek bar into more precise steps 2020-10-01 13:41:24 -05:00
hoanghuy309
e6f481ee51 Translated using Weblate (Vietnamese)
Currently translated at 99.0% (401 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-10-01 03:31:37 -04:00
Mr. Chip53
59896c3400 Implemented detail update task when scrolling channel headers 2020-10-01 01:15:11 -05:00
Mr. Chip53
9ebbd8348c Remove unused import 2020-10-01 00:38:14 -05:00
Mr. Chip53
57d60de15a Add explicit private scopes 2020-10-01 00:28:19 -05:00
Mr. Chip53
79b7c9f1d8 Adds the ability to favorite live tv channels 2020-10-01 00:09:13 -05:00
Bill Thornton
66d4691acc Merge pull request #577 from MrChip53/live-tv-settings-fix
Fix Live TV settings
2020-09-30 23:25:24 -04:00
Lukáš Kucharczyk
f7fb1a6d70 Translated using Weblate (Czech)
Currently translated at 100.0% (405 of 405 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-09-30 11:30:47 -04:00
Frederik Andersen
942ce35518 Translated using Weblate (Danish)
Currently translated at 92.0% (371 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-09-30 10:31:19 -04:00
Mr. Chip53
806baeec47 Fix Live TV settings 2020-09-30 00:56:55 -05:00
Bill Thornton
13e0177e87 Merge pull request #569 from MrChip53/live-tv-improvements
Live TV improvements
2020-09-29 23:23:15 -04:00
Mr. Chip53
0b14be1f4a Remove accidental commit 2020-09-29 19:43:17 -05:00
Mr. Chip53
d274b1d066 Requested changes and a couple more hardcoded strings 2020-09-29 19:37:15 -05:00
Niels van Velzen
96f599bef5 Merge pull request #576 from thornbill/fix-keyboard-focus
Fix keyboard not closing when focus is lost
2020-09-29 22:41:27 +02:00
Bill Thornton
b9d521d57e Remove unneeded null check 2020-09-29 16:11:20 -04:00
Bill Thornton
30d6d81ab5 Fix keyboard not closing when focus is lost 2020-09-29 15:39:05 -04:00
Panopoulos Andreas
a423c4908b Translated using Weblate (Greek)
Currently translated at 78.4% (316 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2020-09-29 07:35:57 -04:00
Tomi
5cc85c1f84 Translated using Weblate (Finnish)
Currently translated at 54.8% (221 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fi/
2020-09-29 04:18:38 -04:00
Mr. Chip53
8b0bacbc14 Fix for bug that locked up non-live guide when re-entering from main menu 2020-09-28 23:15:31 -05:00
Kristupas
f0cb5b3567 Translated using Weblate (Lithuanian)
Currently translated at 14.6% (59 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lt/
2020-09-28 05:13:09 -04:00
Mr. Chip53
c0da70177f Fix issue #284 and the issue I discovered with the infinite spinner when live guide refreshes 2020-09-27 22:08:07 -05:00
Bill Thornton
90df84faa0 Merge pull request #572 from nielsvanvelzen/stalebot
Add Stale bot configuration
2020-09-27 18:12:15 -04:00
Niels van Velzen
47f6541eba Add Stale bot configuration 2020-09-27 21:19:04 +02:00
Mr. Chip53
07e489f6f0 Fix favorites at top bug 2020-09-27 11:38:49 -05:00
okan35
908f99c801 removed unused imports - string change 2020-09-27 11:26:54 +02:00
okan35
8ffba55364 changes from review 2020-09-27 11:19:27 +02:00
Mr. Chip53
461fe1ceb7 Requested changes #1 2020-09-26 21:49:32 -05:00
okan35
d4f57744fe working external player 2020-09-26 20:28:22 +02:00
Panopoulos Andreas
73eb6d97a9 Translated using Weblate (Greek)
Currently translated at 76.1% (307 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2020-09-26 08:29:52 -04:00
okan35
502c3ff718 progress on play with feature 2020-09-26 14:21:03 +02:00
Finios
377f69fb51 Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-09-26 06:12:25 -04:00
Mr. Chip53
f782cf1dcd Change condition to start channel vs open options 2020-09-25 23:11:44 -05:00
hoanghuy309
a22da816b7 Translated using Weblate (Vietnamese)
Currently translated at 97.5% (393 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-09-25 23:54:01 -04:00
hoanghuy309
43a21dea6f Translated using Weblate (Vietnamese)
Currently translated at 82.8% (334 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-09-25 23:12:14 -04:00
Mr. Chip53
d468551207 change short press to play channel ONLY if its on the show currently airing; Remove comment 2020-09-25 20:56:29 -05:00
Mr. Chip53
809262a4a7 Long press and short press in live tv guide 2020-09-24 14:56:20 -05:00
Mr. Chip53
57cfc9acc0 Finished with channel surfing feature 2020-09-24 13:13:54 -05:00
Mr. Chip53
85ecab7250 Fix back button for Live TV while viewing show 2020-09-24 12:35:42 -05:00
Mr. Chip53
b452f7fe5f Attach channel header scrolling to program scrolling; fixed half of lost focus bug 2020-09-24 01:20:49 -05:00
Mr. Chip53
3524401a9b Add channel surfing in live guide using channel headers; long press and short press actions in non-live guide; skip adding programs that are for a time slot that has been filled by a previous program; fix issue with live guide over scrolling to the left 2020-09-24 00:46:35 -05:00
Bill Thornton
9e993eedd2 Merge pull request #570 from thornbill/theme-manager-package
Move ThemeManager to proper package
2020-09-23 17:37:00 -04:00
Bill Thornton
8916cb741f Move ThemeManager to proper package 2020-09-23 17:24:27 -04:00
Mr. Chip53
4e8d33d387 Last hard coded string 2020-09-22 23:31:17 -05:00
Mr. Chip53
a913f133c6 Remove hard coded strings; start implementing 30 minutes No Program segments 2020-09-22 23:24:02 -05:00
Mr. Chip53
eb37af39b1 Add channel name to info bar in CustomPlaybackOverlayFragment.java for <No Program Data> programs. 2020-09-22 21:41:16 -05:00
Mr. Chip53
8983d5c8f2 Add channel name to info bar for <No Program Data> programs. 2020-09-22 21:31:48 -05:00
hoanghuy309
ae01685e43 Translated using Weblate (Vietnamese)
Currently translated at 81.6% (329 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-09-22 21:47:12 -04:00
nextlooper42
55dda0fc18 Translated using Weblate (Slovak)
Currently translated at 92.8% (374 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-09-22 21:47:10 -04:00
okan35
219545b26a menu is working 2020-09-22 21:02:14 +02:00
Thomas Schwery
04d81b3e73 Translated using Weblate (French)
Currently translated at 99.0% (399 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-09-22 14:46:38 -04:00
Thomas Schwery
fb3616f021 Translated using Weblate (French)
Currently translated at 98.7% (398 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-09-21 15:21:58 -04:00
okan35
461255985c play with work 2020-09-21 21:16:41 +02:00
hoanghuy309
90618dbbfd Translated using Weblate (Vietnamese)
Currently translated at 66.0% (266 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-09-20 13:03:03 -04:00
jeremletrol81
6c3ab10dbc Translated using Weblate (French)
Currently translated at 98.7% (398 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-09-20 13:02:59 -04:00
jeremletrol81
58fe16d908 Translated using Weblate (French)
Currently translated at 98.0% (395 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-09-20 07:35:08 -04:00
hoanghuy309
081314a517 Translated using Weblate (Vietnamese)
Currently translated at 41.6% (168 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-09-19 04:39:24 -04:00
hoanghuy309
6cb87565ef Translated using Weblate (Vietnamese)
Currently translated at 29.7% (120 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/vi/
2020-09-19 03:50:41 -04:00
hoanghuy309
112bd33190 Added translation using Weblate (Vietnamese) 2020-09-19 02:09:09 -04:00
UltraHKR
909a2c24bc Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-09-17 19:06:02 -04:00
tluciomiranda
1903a677e4 Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.0% (399 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_PT/
2020-09-17 17:41:52 -04:00
tluciomiranda
363891d084 Translated using Weblate (Portuguese (Portugal))
Currently translated at 91.0% (367 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_PT/
2020-09-17 17:02:06 -04:00
tluciomiranda
de0196db21 Translated using Weblate (Portuguese (Portugal))
Currently translated at 91.0% (367 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_PT/
2020-09-17 16:56:45 -04:00
Oatavandi
67aa5e8df0 Translated using Weblate (Tamil)
Currently translated at 100.0% (403 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-09-17 16:33:35 -04:00
Thomas Schwery
caf68275a0 Translated using Weblate (French)
Currently translated at 96.0% (387 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-09-16 16:00:43 -04:00
Niels van Velzen
d308991090 Merge pull request #560 from thornbill/koin
Add Koin for dependency injection
2020-09-15 21:19:31 +02:00
Bill Thornton
2b10c69bf9 Fix spacing for kotlin files
Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2020-09-15 14:53:39 -04:00
Oatavandi
44e758ecda Translated using Weblate (Tamil)
Currently translated at 37.2% (150 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-09-15 12:32:15 -04:00
Lukáš Kucharczyk
65bb8a35ae Translated using Weblate (Czech)
Currently translated at 100.0% (403 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-09-15 12:32:11 -04:00
federico.antoniazzi.000
36cbe9ebdd Translated using Weblate (Italian)
Currently translated at 99.7% (370 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-09-15 10:33:40 -04:00
Bill Thornton
82ac4a136c Fix indentation 2020-09-14 14:52:53 -04:00
Bill Thornton
8f6307ad06 Fix function parameter alignment 2020-09-14 14:47:00 -04:00
Bill Thornton
382c1b27fc Remove unused app instance 2020-09-14 13:57:03 -04:00
Bill Thornton
795c88283d Remove unused imports 2020-09-14 11:52:15 -04:00
Bill Thornton
fc273d1663 Use lazy injection 2020-09-14 11:45:37 -04:00
Bill Thornton
acdaa29b20 Use lazy injection 2020-09-14 11:44:49 -04:00
Bill Thornton
637a17a76c Remove unused imports 2020-09-14 11:44:49 -04:00
Bill Thornton
6925390599 Move playback manager to koin 2020-09-14 11:44:49 -04:00
Bill Thornton
560f1e1394 Remove unused imports 2020-09-14 11:44:48 -04:00
Bill Thornton
5576e86e0c Move preferences to koin 2020-09-14 11:40:25 -04:00
Bill Thornton
63948c5c22 Move apiclient instance to koin 2020-09-14 11:39:17 -04:00
Bill Thornton
57ac78ae90 Move Jellyfin instance to Koin 2020-09-14 11:33:14 -04:00
Bill Thornton
00ce142fea Add koin and use di for serializer 2020-09-14 11:33:13 -04:00
Niels van Velzen
b1f9986f2a Merge pull request #557 from thornbill/comment-cruft
Remove the remaining "Created by" comments
2020-09-14 17:03:13 +02:00
Bill Thornton
53cca7982c Remove comment cruft 2020-09-14 08:59:17 -04:00
Niels van Velzen
3270289ff7 Merge pull request #556 from thornbill/restructure
Cleanup app structure
2020-09-14 09:48:48 +02:00
Bill Thornton
a51490b7c8 Update base and preference package names 2020-09-13 23:15:10 -04:00
Bill Thornton
abe5cb3085 Add activity alias for StartupActivity 2020-09-12 17:46:27 -04:00
Bill Thornton
213b91d61a Make package names singular 2020-09-12 17:33:20 -04:00
Bill Thornton
31e49fa8a0 Merge pull request #558 from nielsvanvelzen/consistency-fixes
Slightly change build files to be more consistent with Android mobile app
2020-09-12 13:13:37 -04:00
Niels van Velzen
bda73e9386 Slightly change build files to be more consistent with Android mobile app.
- Updated apiclient
- Changed how version is set
- Updated getVersionCode function to support RC etc.
- Updated Dependency Substitution code after review in Android mobile repo
2020-09-12 12:46:44 +02:00
Oatavandi
964af83ace Translated using Weblate (Tamil)
Currently translated at 2.4% (10 of 403 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ta/
2020-09-12 05:49:24 -04:00
Oatavandi
3b1320838c Added translation using Weblate (Tamil) 2020-09-12 03:48:54 -04:00
Bill Thornton
2de77f5719 Cleanup app structure 2020-09-11 17:10:42 -04:00
Hilman Maulana
3884c16735 Translated using Weblate (Indonesian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/id/
2020-09-11 03:14:25 -04:00
GiJaLo
35f03be038 Translated using Weblate (Dutch)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-09-09 06:46:06 -04:00
WWWesten
11850c21d5 Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-09-08 18:33:07 -04:00
WWWesten
832bc79993 Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-09-08 17:59:44 -04:00
WWWesten
8f43927943 Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-09-08 17:46:53 -04:00
Manuel
eb8e1c0c18 Translated using Weblate (Spanish)
Currently translated at 99.7% (370 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-09-07 21:07:57 -04:00
Hilman Maulana
32b0be3789 Translated using Weblate (Indonesian)
Currently translated at 95.4% (354 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/id/
2020-09-05 05:17:53 -04:00
Sverre
a27741b8ca Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-09-02 14:51:53 -04:00
WontTell
f248c95ae5 Translated using Weblate (Spanish (Latin America))
Currently translated at 99.7% (370 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-09-01 12:44:55 -04:00
nothing things
484633e3e3 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 29.9% (111 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/bn_BD/
2020-09-01 12:44:54 -04:00
IR0NCaT
7f101b4440 Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-09-01 12:44:53 -04:00
4d1m
35459b74d8 Translated using Weblate (Romanian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-09-01 12:44:53 -04:00
Mário Victor Ribeiro Silva
b809fccb17 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-09-01 12:44:53 -04:00
RiccardoDurante
4adc719ab1 Translated using Weblate (Italian)
Currently translated at 99.4% (369 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-09-01 12:44:53 -04:00
TheGoose
da7e13264b Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-09-01 12:44:52 -04:00
Moritz
d71e429474 Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-09-01 12:44:52 -04:00
XDavidT
bbd9daa137 Added translation using Weblate (Hebrew) 2020-09-01 12:44:36 -04:00
XDavidT
bcea76fb88 Added translation using Weblate (Hebrew (Israel)) 2020-09-01 12:44:36 -04:00
Niels van Velzen
311fafe2e6 Merge pull request #524 from willtrking/fix_vlc_atmos
Fix VLC audio passthrough
2020-08-21 20:58:04 +02:00
Bill Thornton
66d03cb48a Add missing setAudioOutput call 2020-08-21 14:38:32 -04:00
Bill Thornton
6e7ad894fd Merge pull request #540 from nielsvanvelzen/apiclient-070
Upgrade to apiclient 0.7.0
2020-08-21 14:30:14 -04:00
Niels van Velzen
2c2ac5780d Remove unused functions left over after removing server credential logic 2020-08-21 19:52:41 +02:00
Niels van Velzen
92cbb91227 Remove all "remember server" logic from StartupActivity for now
It's not working properly and needs to be rewritten, removing this code at least makes the app usable although each restart requires signin.
2020-08-21 19:45:13 +02:00
Niels van Velzen
ac66ed9875 Fix application crash when playback starts
Because somehow the playback manager needs the id of the server it's connected to (although a null value doesn't matter...)
2020-08-21 19:44:08 +02:00
Bill Thornton
ddcf6dae45 Merge pull request #549 from nielsvanvelzen/git-version
Git version
2020-08-21 10:50:22 -04:00
Niels van Velzen
a68fcc2e9a use JELLYFIN_VERSION for building/publishing in CI 2020-08-20 19:07:00 +02:00
Niels van Velzen
b2e73a1d5d Set app version from git tag 2020-08-20 19:02:12 +02:00
Niels van Velzen
1d931e030e Remove videolan maven repository
It's linked to jcenter so we don't need it
2020-08-19 11:32:56 +02:00
Niels van Velzen
bf823738a7 Use jcenter repository for apiclient and update version to 0.7.2 2020-08-19 11:28:50 +02:00
Niels van Velzen
d7516f6ddb Merge pull request #547 from nielsvanvelzen/😭
Fix weblate bad merge
2020-08-19 11:22:00 +02:00
Niels van Velzen
59aa0e695f Fix weblate bad merge 2020-08-19 10:14:19 +02:00
Hilman Maulana
4a116a9e75 Translated using Weblate (Indonesian)
Currently translated at 88.4% (328 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/id/
2020-08-19 03:26:35 -04:00
Hilman Maulana
6d88894870 Translated using Weblate (English)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en/
2020-08-19 03:26:35 -04:00
Niels van Velzen
ceb9d2ac8d Merge pull request #546 from PalAditya/master
Fix Hardcoded Texts
2020-08-19 09:24:58 +02:00
Marcin Woliński
cfb4f73a63 Translated using Weblate (Polish)
Currently translated at 99.1% (368 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-08-18 16:56:31 -04:00
PalAditya
ae8a4f973c Implementing requested changes with template string 2020-08-19 00:25:12 +05:30
Niels van Velzen
0ac19d3912 Merge pull request #545 from thornbill/fix-next-up-crash
Fix corrupt images crashing NextUpActivity
2020-08-18 16:49:35 +02:00
Bill Thornton
b870d02061 Fix code review issues 2020-08-18 09:58:33 -04:00
PalAditya
106f9f2635 Replacing all strings with resource representations 2020-08-18 18:46:31 +05:30
PalAditya
9b55d2368e Test build strategy 2020-08-18 15:19:03 +05:30
Bill Thornton
5865d9ca53 Fix corrupt images crashing NextUpActivity 2020-08-18 00:57:54 -04:00
Niels van Velzen
16fcd41b33 Fix rebase issue 2020-08-15 11:07:10 +02:00
Niels van Velzen
2e0200fb56 Fix latest compile errors 2020-08-15 11:03:49 +02:00
Niels van Velzen
171931cfed Initialize apiclient in tvapp 2020-08-15 11:03:48 +02:00
Niels van Velzen
70c3144d62 Initial connectionManager changes 2020-08-15 11:03:48 +02:00
Niels van Velzen
77fad41890 Fix logger calls and removal of loginApiClient 2020-08-15 11:03:46 +02:00
Niels van Velzen
bc1e84af16 Fix SerializerRepository 2020-08-15 11:03:45 +02:00
Niels van Velzen
f73e882a33 Update TvApp to use the new ApiClient constructors 2020-08-15 11:03:39 +02:00
Marcin Woliński
f23e4bf765 Translated using Weblate (Polish)
Currently translated at 95.9% (356 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-08-14 03:45:44 -04:00
Marcin Woliński
718d2abcae Translated using Weblate (Polish)
Currently translated at 73.3% (272 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-08-13 15:35:05 -04:00
Marcin Woliński
891e827274 Translated using Weblate (Polish)
Currently translated at 71.1% (264 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-08-13 15:27:31 -04:00
Marcin Woliński
9d65eb568b Translated using Weblate (Polish)
Currently translated at 59.8% (222 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-08-13 07:41:04 -04:00
biAji
fa80657377 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-08-13 07:41:04 -04:00
gnehs
2de08a44bc Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-08-12 11:39:13 -04:00
gnehs
082b9f06b4 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-08-12 11:10:38 -04:00
gnehs
befcab8e85 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-08-12 11:10:32 -04:00
gnehs
54f55a8dee Translated using Weblate (Chinese (Traditional))
Currently translated at 99.4% (369 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-08-12 11:00:23 -04:00
gnehs
35366a66c8 Translated using Weblate (Chinese (Traditional))
Currently translated at 99.4% (369 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-08-12 10:59:02 -04:00
Felipe
ac4d335c4e Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-08-10 00:20:04 -04:00
Felipe
a684acbc5b Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-08-09 23:33:59 -04:00
Felipe
b2e674a506 Translated using Weblate (Spanish (Latin America))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-08-09 22:51:30 -04:00
Bill Thornton
3a10fa5c2b Merge pull request #539 from nielsvanvelzen/apiclient-upgrade
Update apiclient version
2020-08-07 16:20:28 -04:00
Niels van Velzen
02667ce7ed Update apiclient version 2020-08-07 21:22:02 +02:00
Raif Coonjah
71a5e0c0e1 Translated using Weblate (Croatian)
Currently translated at 54.4% (202 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hr/
2020-08-05 06:19:29 -04:00
Bill Thornton
8df7e6eaaa Merge pull request #534 from vnidens/fix/enter_manually_after_users
`Enter manually` button position
2020-08-04 23:52:21 -04:00
PT
f096513959 Translated using Weblate (Croatian)
Currently translated at 53.9% (200 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hr/
2020-08-04 20:54:26 -04:00
PT
0f41fbfd99 Translated using Weblate (Croatian)
Currently translated at 28.5% (106 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hr/
2020-08-04 19:47:54 -04:00
schbal
284a41e604 Translated using Weblate (Korean)
Currently translated at 66.8% (248 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ko/
2020-08-01 12:33:34 -04:00
Ioan Constantin
8daff95552 Translated using Weblate (Romanian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-07-31 20:01:04 -04:00
Mednis
47cf206155 Translated using Weblate (Latvian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-07-31 13:38:54 -04:00
Niels van Velzen
3a808eecfd Merge pull request #533 from vnidens/fix/time_formatting
Fix time format for current and resume time
2020-07-31 17:15:13 +02:00
Victor Nidens
efcd11900c Updated methods names to follow Java naming conventions 2020-07-31 01:32:12 +03:00
Victor Nidens
65f5fc7221 fix #236 Enter manually button is now displayed after all available users 2020-07-31 01:11:18 +03:00
Victor Nidens
72a1cbc230 fix #505 Fix time format for current and resume time 2020-07-30 01:03:20 +03:00
Victor Nidens
105b52d153 Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-07-29 16:59:27 -04:00
Victor Nidens
cb53065822 Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-07-29 16:43:34 -04:00
Victor Nidens
0b1606f4da Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-07-29 16:35:46 -04:00
Marc Hulsebosch
89c5930e25 Translated using Weblate (Dutch)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-07-27 14:25:01 -04:00
Eddie Padilla
4e6948aa42 Translated using Weblate (Spanish (Mexico))
Currently translated at 99.7% (370 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-07-27 05:44:07 -04:00
daniel1v
99ed8703d4 Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-07-27 05:44:07 -04:00
Eddie Padilla
bec81e7592 Translated using Weblate (Spanish (Mexico))
Currently translated at 98.9% (367 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-07-27 02:48:48 -04:00
daniel1v
3981147220 Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-07-27 02:48:48 -04:00
daniel1v
5881662152 Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-07-27 02:39:26 -04:00
daniel1v
27210f80a2 Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-07-27 02:28:18 -04:00
Bill Thornton
b305a8573c Merge pull request #525 from sachk/master
Fix crash upon loading resumable episodes without runtime field
2020-07-26 18:37:40 -04:00
Wuzado
227269d77e Translated using Weblate (Polish)
Currently translated at 59.5% (221 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-07-26 10:21:46 -04:00
Wuzado
30a4469eec Translated using Weblate (Polish)
Currently translated at 57.4% (213 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-07-25 12:23:11 -04:00
Sacha Korban
60e2df219d Fix crash upon loading resumable episodes without runtime field 2020-07-25 12:34:12 +10:00
William King
c57454b366 address hdmi setting 2020-07-22 19:20:01 -07:00
SaddFox
2a6d25774b Translated using Weblate (Slovenian)
Currently translated at 51.2% (190 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2020-07-22 16:04:06 -04:00
William King
8c6050760e fix tabs 2020-07-21 17:20:56 -07:00
William King
c921fcdc2d remove tabs 2020-07-21 17:19:22 -07:00
William King
ecbb188062 Fix VLC atmos support 2020-07-21 17:13:37 -07:00
lei liu
b345937196 Translated using Weblate (Chinese (Traditional))
Currently translated at 63.8% (237 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-07-21 05:26:51 -04:00
lei liu
72aeadf200 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-07-21 05:26:50 -04:00
Yannick
a14f426027 Translated using Weblate (Dutch)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-07-20 12:20:04 -04:00
Thomas Schwery
be70c90ca3 Translated using Weblate (French)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-07-20 12:20:04 -04:00
LinFor
3b546ec7ca Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-07-19 04:12:29 -04:00
Luis Dominguez
3441749f96 Translated using Weblate (Spanish (Mexico))
Currently translated at 98.3% (365 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-07-19 00:59:16 -04:00
Jiacheng Hou
9736257e62 Translated using Weblate (Chinese (Traditional))
Currently translated at 59.0% (219 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-07-18 21:58:29 -04:00
Nicolas Kheirallah
08c90a2596 Translated using Weblate (Swedish)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-07-18 15:23:13 -04:00
Jiacheng Hou
df17efb950 Translated using Weblate (Chinese (Traditional))
Currently translated at 59.0% (219 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-07-18 14:24:09 -04:00
Franco Castillo
c0760d6519 Translated using Weblate (Spanish (Argentina))
Currently translated at 31.2% (116 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-07-17 17:02:57 -04:00
David
bb2b641fc6 Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-07-17 10:03:38 -04:00
lei liu
b8741f6461 Translated using Weblate (Chinese (Traditional))
Currently translated at 53.6% (199 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-07-16 23:16:26 -04:00
lei liu
46b702374e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-07-16 23:16:25 -04:00
Gerard Meier
992a9a8736 Translated using Weblate (Dutch)
Currently translated at 98.9% (367 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-07-16 17:42:50 -04:00
Martim Pinheiro
c8745be502 Translated using Weblate (Portuguese (Portugal))
Currently translated at 99.4% (369 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_PT/
2020-07-14 23:12:32 -04:00
fernando012
9c6d49eb12 Translated using Weblate (Spanish (Latin America))
Currently translated at 98.9% (367 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-07-12 21:35:58 -04:00
fernando012
3f2727cc15 Translated using Weblate (Spanish (Argentina))
Currently translated at 30.9% (115 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-07-12 21:35:58 -04:00
dkanada
f1e1935a72 Merge pull request #521 from nielsvanvelzen/nVidia
Fix spelling of Nvidia in README
2020-07-11 05:18:47 +09:00
Niels van Velzen
e44bd12461 Fix spelling of Nvidia in README 2020-07-10 22:11:24 +02:00
Alan Beale
e68137b6a5 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-07-10 15:45:24 -04:00
Alan Beale
470bc5b0a2 Translated using Weblate (English (United Kingdom))
Currently translated at 99.4% (369 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-07-10 08:56:57 -04:00
lelamamalgache
f491db8a41 Translated using Weblate (French)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-07-08 20:43:34 -04:00
Nelebh
3df3ffac17 Translated using Weblate (Spanish)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-07-03 05:35:27 -04:00
Alexander Brissman
b4480f5f41 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-07-01 20:40:50 -04:00
Viperinius
f3be16a51d Translated using Weblate (German)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-07-01 13:16:14 -04:00
4d1m
5fa7ecd942 Translated using Weblate (Romanian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-06-30 04:40:51 -04:00
moltrabella
20f639d6cd Translated using Weblate (Spanish)
Currently translated at 99.4% (369 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-06-28 15:40:24 -04:00
Bill Thornton
8e9b469c25 Merge pull request #517 from nielsvanvelzen/azure-ndk-trash-7
Set NDK version to 21.3.6528147
2020-06-28 14:37:25 -04:00
Adam Bokor
afc1c15b35 Translated using Weblate (Hungarian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-06-28 12:43:45 -04:00
Niels van Velzen
fbcc3371e4 Set NDK version to 21.3.6528147 2020-06-28 17:17:59 +02:00
de1eted
336db5286a Translated using Weblate (Russian)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-06-27 13:30:37 -04:00
nextlooper42
4bbf569244 Translated using Weblate (Slovak)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-06-26 17:33:28 -04:00
Vitorvlv
ce33d98e02 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-06-26 17:33:27 -04:00
Tamim Arafat
275f1afb33 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 22.3% (83 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/bn_BD/
2020-06-26 05:46:52 -04:00
Tamim Arafat
06f909dcb4 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 21.2% (79 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/bn_BD/
2020-06-26 05:18:12 -04:00
Lukáš Kucharczyk
01507bfd1b Translated using Weblate (Czech)
Currently translated at 100.0% (371 of 371 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-06-26 05:18:12 -04:00
Martin Eilsøe
4ea7d39f86 Translated using Weblate (Danish)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-06-26 04:59:09 -04:00
Bill Thornton
52891e04c5 Merge pull request #500 from nielsvanvelzen/preferences-dsl
Preferences DSL
2020-06-25 17:09:16 -04:00
Mednis
7a27e41adf Translated using Weblate (Latvian)
Currently translated at 99.7% (367 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-06-25 14:45:06 -04:00
Sasa
c49fae3e73 Translated using Weblate (Croatian)
Currently translated at 23.0% (85 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hr/
2020-06-24 17:39:18 -04:00
Sasa
333f6efec2 Added translation using Weblate (Croatian) 2020-06-24 16:30:42 -04:00
11112
1df86aeeda Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-06-23 23:50:04 -04:00
Guillaume QUERO
47328afb15 Translated using Weblate (French)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-06-22 12:17:05 -04:00
Dyberg
fa63d71ddb Translated using Weblate (Danish)
Currently translated at 99.4% (366 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-06-22 09:53:32 -04:00
Joshua Boniface
51a83d5aec Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-06-20 14:58:53 -04:00
Николай Иванов
2d8c09a7cc Translated using Weblate (Bulgarian)
Currently translated at 5.7% (21 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/bg/
2020-06-16 15:51:38 -04:00
Николай Иванов
982036fafb Translated using Weblate (Bulgarian)
Currently translated at 4.8% (18 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/bg/
2020-06-16 15:24:39 -04:00
Nainformatiq
85cb568086 Translated using Weblate (French)
Currently translated at 98.9% (364 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-06-16 15:24:39 -04:00
4d1m
56a83cae6f Translated using Weblate (Romanian)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-06-15 06:13:41 -04:00
Alitero K
2323ca2067 Translated using Weblate (French)
Currently translated at 99.7% (367 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-06-15 03:54:07 -04:00
Massimo Carrino
c76edb707c Translated using Weblate (Italian)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-06-14 11:02:16 -04:00
Massimo Carrino
81c0b727dc Translated using Weblate (Italian)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-06-14 10:53:45 -04:00
millallo
9f36e926f8 Translated using Weblate (Italian)
Currently translated at 99.4% (366 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-06-12 14:40:24 -04:00
Bill Thornton
eae15996cf Merge pull request #510 from nielsvanvelzen/ndk-build
Update ndk version
2020-06-10 14:27:08 -04:00
Niels van Velzen
c52c559702 Update NDK version 2020-06-10 20:20:43 +02:00
Joshua M. Boniface
bf57ae3101 Merge pull request #408 from thornbill/azure-build-updates
Update Azure builds
2020-06-10 13:41:31 -04:00
Николай Иванов
90e8d446a9 Added translation using Weblate (Bulgarian) 2020-06-10 11:36:52 -04:00
VaiTon
272f5f580e Translated using Weblate (Italian)
Currently translated at 99.4% (366 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-06-08 15:33:30 -04:00
Adam Bokor
d39d70eae8 Translated using Weblate (Hungarian)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-06-08 04:48:14 -04:00
Niels van Velzen
2e9e599014 Add on/off content for checkbox 2020-06-07 10:41:43 +02:00
Niels van Velzen
19f3466de1 Add dependency code 2020-06-07 10:41:42 +02:00
Niels van Velzen
08fd12bf00 Code cleanup 2020-06-07 10:41:42 +02:00
Niels van Velzen
7209a8763b Remove old preferences XML configuration 2020-06-07 10:41:41 +02:00
Niels van Velzen
64af0e458b Rewrite options DSL 2020-06-07 10:41:40 +02:00
Niels van Velzen
4bf4b2bb2c Fix AppTheme enum names capitalization 2020-06-07 10:41:40 +02:00
Niels van Velzen
8b3fecf279 Fix shortcut reset 2020-06-07 10:41:39 +02:00
Niels van Velzen
cc38559ed4 Remove longpreference 2020-06-07 10:41:38 +02:00
Niels van Velzen
1ff888f305 Split categories to own files 2020-06-07 10:41:29 +02:00
Niels van Velzen
66fe71f2db Add function to bind preferences to the preferences UI 2020-06-07 10:41:28 +02:00
Niels van Velzen
fdd1cf29e3 Add new preference syntax 2020-06-07 10:41:28 +02:00
Niels van Velzen
c2e7797c40 Add DSL for shortcut preference 2020-06-07 10:41:21 +02:00
Niels van Velzen
3eb3a2f5e9 Add custom DSL for preference screen and replace the XML preferences with it 2020-06-07 10:41:20 +02:00
tinect
9cdb6c8884 Translated using Weblate (German)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-06-06 17:26:12 -04:00
tinect
c01ee5ee1e Translated using Weblate (German)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-06-06 16:21:20 -04:00
tinect
e9b2a251a5 Translated using Weblate (German)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-06-06 16:14:12 -04:00
millallo
2fd689c770 Translated using Weblate (Italian)
Currently translated at 99.1% (365 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-06-06 11:43:56 -04:00
Bill Thornton
c3f26131c9 Merge pull request #508 from nielsvanvelzen/fix-480-bug
Fix rows not refreshing after playback
2020-06-06 11:40:50 -04:00
Nowoboy
85bfa3bc7a Translated using Weblate (German)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-06-06 09:41:04 -04:00
Niels van Velzen
e656fe151c Fix rows not refreshing after playback 2020-06-06 14:41:49 +02:00
Bill Thornton
e7107b656b Merge pull request #506 from nielsvanvelzen/gradle-wrapper-validation
Add GitHub action to validate the Gradle Wrapper blob
2020-06-06 01:06:07 -04:00
Bill Thornton
6a5fc12eb5 Merge pull request #496 from nielsvanvelzen/errors
Make sure all catch statements in the code log their exception
2020-06-06 01:04:11 -04:00
Ying-Kai Dang
97220ebd16 Translated using Weblate (German)
Currently translated at 99.7% (367 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-06-05 21:09:30 -04:00
nextlooper42
d162706bba Translated using Weblate (Slovak)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-06-05 16:23:20 -04:00
Niels van Velzen
fce49ec766 Add GitHub action to validate the Gradle Wrapper blob
I'd rather add it using the DevOps Pipeline to stay consistent but unfortunately this action is only available on GitHub.
2020-06-05 10:48:36 +02:00
WWWesten
1648b93ed6 Translated using Weblate (Russian)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-06-04 17:31:54 -04:00
Vitorvlv
9bb190d837 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-06-04 17:31:54 -04:00
Marius Lindvall
f28c5e6b9f Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-06-04 17:31:54 -04:00
Nelebh
214cf62d4c Translated using Weblate (Spanish)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-06-04 17:31:53 -04:00
Nelebh
6cb884a9c8 Translated using Weblate (Spanish)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-06-04 12:12:14 -04:00
Niels van Velzen
36f6808891 Merge pull request #504 from tukilo/removed_unneeded_code
Removed unneeded code
2020-06-03 21:22:32 +02:00
millallo
79562436eb Translated using Weblate (Italian)
Currently translated at 98.3% (362 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-06-03 14:36:24 -04:00
tukilo
f0d1f62ce2 Removed unneeded mServer obj 2020-06-03 20:29:59 +02:00
tukilo
c6d9ad767e Converted code to Kotlin 2020-06-03 20:16:53 +02:00
tukilo
77f1974d42 Renamed SelectUserFragment from .java to .kt 2020-06-03 20:14:01 +02:00
Niels van Velzen
615b7a6b7c Make sure all catch statements in the code log their exception 2020-06-03 09:55:26 +02:00
Bill Thornton
dcad04ea69 Merge pull request #497 from nielsvanvelzen/wasntevenhelping
Remove unused SubtitleHelper
2020-06-03 03:53:09 -04:00
Bill Thornton
e1a63020f9 Merge pull request #503 from nielsvanvelzen/improve-search
Search improvements
2020-06-03 03:51:25 -04:00
Anthony Rodriguez
7298cfb325 Translated using Weblate (French)
Currently translated at 99.7% (367 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-06-02 19:57:56 -04:00
Bill Thornton
1d6fb87989 Merge pull request #495 from nielsvanvelzen/detekt
Add Detekt support
2020-06-02 17:14:44 -04:00
Bill Thornton
e0ba1cc2a0 Merge pull request #499 from nielsvanvelzen/apiclient062
Update apiclient to version 0.6.2
2020-06-02 17:11:22 -04:00
Niels van Velzen
f5a572c3e5 Always show search results
Even if some requests failed
2020-06-02 22:49:22 +02:00
Niels van Velzen
7f48cec066 Don't search the same query twice and decrease search delay 2020-06-02 22:24:44 +02:00
Leo Verto
10b1910dba Translated using Weblate (German)
Currently translated at 99.4% (366 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-06-02 15:56:45 -04:00
Lukáš Kucharczyk
9bccc3570e Translated using Weblate (Czech)
Currently translated at 100.0% (368 of 368 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-06-02 15:56:45 -04:00
millallo
5bb24e9c77 Translated using Weblate (Italian)
Currently translated at 99.7% (361 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-06-02 12:02:39 -04:00
Niels van Velzen
8af8ff1877 Merge pull request #486 from Froghut/remap-tv-remote-buttons
add settings to remap tv remote buttons
2020-06-02 10:53:20 +02:00
Niels van Velzen
8827312f10 Update apiclient to version 0.6.2 2020-06-02 10:27:25 +02:00
Niels van Velzen
f1966e3eed Remove unused SubtitleHelper 2020-06-01 22:30:05 +02:00
Froghut
95c9faee1b make ButtonRemapSummaryProvider capitalize each word again 2020-06-01 21:37:31 +02:00
Niels van Velzen
4eaa2fc1bc Ignore failures 2020-06-01 16:50:30 +02:00
Niels van Velzen
2af454fa08 Add Detekt support 2020-06-01 16:41:21 +02:00
Froghut
1ecc55e4b2 make more strings use resources
code cleanup
2020-06-01 16:37:23 +02:00
Froghut
3383f9bd48 Apply suggestions from code review
Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2020-06-01 16:19:23 +02:00
Bill Thornton
0f0d2ceac8 Merge pull request #493 from nielsvanvelzen/mostimportantfeaturebroke
Fix photo viewer not working
2020-06-01 09:06:18 -04:00
Niels van Velzen
a32c4f9ddd Fix back button not working 2020-06-01 11:03:57 +02:00
Niels van Velzen
2dcaeb0154 Fix photos not loading in photo player 2020-06-01 10:41:35 +02:00
eclecticgeek
e053578846 Translated using Weblate (English (United Kingdom))
Currently translated at 98.8% (358 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-05-31 13:28:23 -04:00
Niels van Velzen
f276047df4 Merge pull request #490 from tukilo/bugfix/#403_unify_image_libraries
Removed Picasso to be replaced by Glide.
2020-05-31 18:49:50 +02:00
tukilo
bbfceb501f Small details 2020-05-31 18:40:53 +02:00
Froghut
de6fbf32a5 make SummaryProvider usable from the dialog again 2020-05-31 18:39:52 +02:00
Froghut
d59dc5fd2b fix variable names, use proper naming conventions
improve naming of preference keys + texts
convert strings to resources
2020-05-31 18:35:55 +02:00
Froghut
9074472612 Apply suggestions from code review
Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2020-05-31 18:20:53 +02:00
Bill Thornton
f776fa9f0b Merge pull request #488 from nielsvanvelzen/android-builds-tools-upgrade
Upgrade Android build tools
2020-05-31 10:20:44 -04:00
Niels van Velzen
0ee670e763 Update linting rules
Removed MissingRegistered (doesn't exist anymore)
Added KotlinPropertyAccess and LambdaLast
2020-05-30 22:47:39 +02:00
WontTell
42fdf0704f Translated using Weblate (Spanish (Latin America))
Currently translated at 99.1% (359 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_419/
2020-05-30 16:10:46 -04:00
omm
d21b97be9c Update app/src/main/java/org/jellyfin/androidtv/util/BackgroundManagerUtils.kt
Co-authored-by: Niels van Velzen <nielsvanvelzen@users.noreply.github.com>
2020-05-30 20:36:11 +02:00
tukilo
9f01b88996 Removed template by default "Created by". Removed all skipMemoryCache() calls. Removed unused imports. Removed SkipMemoryCache and Transformation params from BackgroundUtils. Added Timber.e in onLoadFailed 2020-05-30 18:32:02 +02:00
Froghut
54a76e555a use syntactic binding and fix complex code 2020-05-30 17:15:51 +02:00
Froghut
3b68e0a946 use SummaryProvider for ButtonRemapPreference and auto close dialog on Save/Reset click 2020-05-30 16:12:55 +02:00
omm
76387cae8e Glide migrated from 3 to 4. Removed Picasso to be replaced by Glide. 2020-05-30 15:37:29 +02:00
Froghut
2f12bb4b24 cleanup + comments 2020-05-30 14:59:39 +02:00
Froghut
f1bf9a2198 improve button remapping preference dialog 2020-05-30 14:57:50 +02:00
Niels van Velzen
65e2b1e1a0 Update Gradle wrapper to version 6.4.1 2020-05-30 10:30:36 +02:00
Niels van Velzen
e1c0fe055b Update Android build tools to version 4.0.0 2020-05-30 10:24:57 +02:00
WontTell
c387cafc88 Added translation using Weblate (Spanish (Latin America)) 2020-05-29 22:35:23 -04:00
WontTell
89c2b7e265 Translated using Weblate (Spanish (Mexico))
Currently translated at 99.1% (359 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-05-29 20:10:31 -04:00
jobhh
5a29234247 Translated using Weblate (Dutch)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-05-28 17:36:40 -04:00
Lumenol
dc6d5ce8f5 Translated using Weblate (French)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-05-28 17:36:40 -04:00
Froghut
418106128e add punctuation to KDoc 2020-05-28 09:53:17 +02:00
Gabriel Gil Pinto
c11921e282 Translated using Weblate (Spanish)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-05-27 23:52:39 -04:00
Peter
c0a71b2173 Translated using Weblate (Dutch)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-05-27 19:21:37 -04:00
Elouan MAILLY
cf9b5d10e1 Translated using Weblate (French)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-05-27 19:21:37 -04:00
Froghut
6b534d9c24 add missing code documentation 2020-05-27 22:26:43 +02:00
Froghut
b7dd9988c5 fix wrong indent 2020-05-27 22:15:48 +02:00
Froghut
2a12c25ce7 add settings to remap tv remote buttons, implemented are audio language button and subtitle language button
also add logic for handling audio language button
2020-05-27 22:10:41 +02:00
Kunio
ecc0351dd8 Translated using Weblate (Swedish)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-05-26 21:26:07 -04:00
lldsolitude
d1199deb0a Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-05-26 10:56:09 -04:00
lldsolitude
d88e1146ac Translated using Weblate (Chinese (Simplified))
Currently translated at 99.1% (359 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-05-26 09:57:08 -04:00
Franco Castillo
ee32b8b4aa Translated using Weblate (Spanish (Argentina))
Currently translated at 23.2% (84 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-05-26 08:58:54 -04:00
WWWesten
d5549373e3 Translated using Weblate (Russian)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-05-25 17:50:26 -04:00
Varga András
3a1389da54 Translated using Weblate (Hungarian)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-05-25 08:19:41 -04:00
Varga András
42701de0aa Translated using Weblate (Romanian)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-05-25 08:19:41 -04:00
GeraltOfTrivia
f60b25aa3b Translated using Weblate (Greek)
Currently translated at 70.7% (256 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2020-05-25 05:04:53 -04:00
Bill Thornton
52cd497517 Merge pull request #483 from nielsvanvelzen/hotdogcrash
Fix crash when changing theme
2020-05-25 01:08:16 -04:00
David
a051872d3d Translated using Weblate (German)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-05-24 12:28:23 -04:00
Libor Filípek
fde05deab1 Translated using Weblate (Czech)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-05-24 12:28:23 -04:00
Niels van Velzen
a6808a2112 Fix crash when changing theme 2020-05-23 20:16:01 +02:00
nextlooper42
4b0d033ff5 Translated using Weblate (Slovak)
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-05-23 12:08:08 -04:00
Viperinius
97962d683a Translated using Weblate (German)
Currently translated at 99.7% (361 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-05-23 12:08:08 -04:00
millallo
abf3b218eb Translated using Weblate (Italian)
Currently translated at 99.1% (359 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-05-23 08:14:52 -04:00
Vitorvlv
e3017da838 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (362 of 362 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-05-22 20:38:54 -04:00
WontTell
6093d7a8f6 Translated using Weblate (Spanish (Mexico))
Currently translated at 99.1% (355 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-05-22 20:14:18 -04:00
Bill Thornton
3bca99d058 Merge pull request #475 from nielsvanvelzen/vertical-grids
Add support for vertical grids
2020-05-22 13:07:18 -04:00
Niels van Velzen
b552d3a455 Change default to horizontal in XML 2020-05-22 18:45:07 +02:00
Niels van Velzen
850ae900a9 Fix some bugs, marked the vertical grid as experimental, determine column count based on image size 2020-05-22 18:45:06 +02:00
Niels van Velzen
cc5e5494ea Fix TODO 2020-05-22 18:45:06 +02:00
Niels van Velzen
d2c5ba8190 Add support for vertical grids 2020-05-22 18:45:06 +02:00
Bill Thornton
bdcaff2f5f Fix DeleteFiles task inputs 2020-05-22 12:35:23 -04:00
Bill Thornton
c38ec6665a Add publish job 2020-05-22 12:30:33 -04:00
Bill Thornton
e279c02368 Use separate azure jobs for tests and build 2020-05-22 11:36:54 -04:00
Bill Thornton
7ec64db24a Fix test reporting 2020-05-22 11:24:37 -04:00
Bill Thornton
b724bec626 Update Azure config for publishing 2020-05-22 11:24:37 -04:00
Niels van Velzen
a77bc227c7 Merge pull request #481 from thornbill/whats-my-device-again
Add device model to app settings about section
2020-05-20 19:15:26 +02:00
Bill Thornton
bd2fa673dc Add manufacturer to displayed device name 2020-05-20 12:27:30 -04:00
Bill Thornton
f8cca56b17 Add device model to app settings about section 2020-05-20 12:03:29 -04:00
Bill Thornton
33b2e7e40a Merge pull request #480 from nielsvanvelzen/tvapp-can-get-even-more-cleaner
Tvapp can get even more cleaner
2020-05-20 11:10:13 -04:00
Bill Thornton
96b13e94b7 Merge pull request #478 from MrLemur/fix-ff-rewind
Fix fast forward/rewind not working on Fire Stick
2020-05-20 10:30:47 -04:00
Niels van Velzen
a8ec656cb8 Move the simple "lastXXX" properties to a separate file 2020-05-20 14:41:02 +02:00
Niels van Velzen
1e8cae0aea Move the implementations for the TvApiEventListener functions 2020-05-20 14:20:45 +02:00
Kassim
c65e22320e Fix indext 2020-05-19 18:25:11 +01:00
Kassim
8e10f4e375 Add filter to only invoke once on key press 2020-05-19 17:26:05 +01:00
Kassim
d6feb0007d Add new logic to playback overlay for ff/rewind
This adds in some nrew logic to intercept the fast forward and rewind
keys presses if the popup panel is not in view.

If the media playing is not live TV, it will skip forwards or backwards
the appropriate amount of seconds. It will show the overlay as expected]
and then iniatite the fadeout timer.
2020-05-19 17:09:45 +01:00
Lukáš Kucharczyk
fb1fe2a3e3 Translated using Weblate (Czech)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-05-19 00:09:53 -04:00
erikasne6152
55ac470885 Translated using Weblate (Lithuanian)
Currently translated at 16.4% (59 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lt/
2020-05-18 09:44:34 -04:00
erikasne6152
b8e0cd9e8d Translated using Weblate (Lithuanian)
Currently translated at 13.6% (49 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lt/
2020-05-18 06:52:51 -04:00
gabtzi
5f1ed04d80 Translated using Weblate (Greek)
Currently translated at 68.1% (244 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2020-05-18 02:35:23 -04:00
Franco Castillo
7527c01154 Translated using Weblate (Spanish (Argentina))
Currently translated at 22.6% (81 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-05-17 16:29:31 -04:00
Bill Thornton
aa8c9cdc65 Merge pull request #476 from nielsvanvelzen/reduce-crap
More cleaning in TvApp.java
2020-05-17 09:55:02 -04:00
Mednis
76c034e632 Translated using Weblate (Latvian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-05-17 08:03:42 -04:00
Lin Ye Ze
cb49d2c506 Translated using Weblate (Chinese (Traditional))
Currently translated at 55.3% (198 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-05-16 02:31:51 -04:00
Niels van Velzen
8d97be727b Remove showSearch function from TvApp 2020-05-15 22:29:48 +02:00
Niels van Velzen
0f71655ff4 Remove TvApp.playingIntros (unused) 2020-05-15 22:19:14 +02:00
Niels van Velzen
b36c5c0501 Remove the "background gradient" artificial intelligence that wasn't even noticeable 2020-05-15 22:15:57 +02:00
Niels van Velzen
24e992a45f Remove unused getters/setters from TvApp 2020-05-15 22:02:40 +02:00
Niels van Velzen
a65e0c2c02 Remove "DisplayPriority" feature (unused) 2020-05-15 21:58:37 +02:00
Franco Castillo
f5e206e476 Translated using Weblate (Spanish (Argentina))
Currently translated at 20.9% (75 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_AR/
2020-05-14 23:26:50 -04:00
Franco Castillo
758c143c67 Added translation using Weblate (Spanish (Argentina)) 2020-05-14 17:59:17 -04:00
Marco Aceti
47001e6d95 Translated using Weblate (Italian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-05-14 10:26:14 -04:00
Nazar Bulavko
517f30de8f Translated using Weblate (Ukrainian)
Currently translated at 17.3% (62 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/uk/
2020-05-14 09:01:26 -04:00
Medzhnun Mehmed
4f1a3d5dfa Translated using Weblate (Russian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-05-13 14:16:34 -04:00
tanvir-ahmed-siddique
0b7fcd1f09 Translated using Weblate (Bengali (Bangladesh))
Currently translated at 19.8% (71 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/bn_BD/
2020-05-12 17:30:03 -04:00
tanvir-ahmed-siddique
5432d14abf Added translation using Weblate (Bengali (Bangladesh)) 2020-05-12 16:51:54 -04:00
Bill Thornton
f6404435e1 Merge pull request #474 from jellyfin/nielsvanvelzen-fixndk
Remove hardcoded NDK version
2020-05-12 16:22:47 -04:00
Niels van Velzen
689a8e6595 Explicitly set NDK version to 21.1.6352462 2020-05-12 17:50:31 +02:00
Niels van Velzen
8755f4a21b Remove hardcoded NDK version
Should fix the Azure errors
2020-05-12 09:38:25 +02:00
Federico Antoniazzi
5089109b56 Translated using Weblate (Italian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-05-11 18:58:03 -04:00
millallo
c15d30c64d Translated using Weblate (Italian)
Currently translated at 98.8% (354 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-05-11 16:55:56 -04:00
Federico Antoniazzi
cd4c328951 Translated using Weblate (Italian)
Currently translated at 98.8% (354 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-05-11 16:55:56 -04:00
Federico Antoniazzi
72766960db Translated using Weblate (Italian)
Currently translated at 98.6% (353 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-05-11 16:01:46 -04:00
Federico Antoniazzi
3e00cb9375 Translated using Weblate (Italian)
Currently translated at 97.4% (349 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-05-11 09:02:52 -04:00
Snurli
db1d6f5229 Translated using Weblate (Danish)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-05-10 14:49:17 -04:00
Vitorvlv
1f2cdc4a53 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-05-09 20:38:47 -04:00
Nazar Bulavko
df63b219bb Translated using Weblate (Ukrainian)
Currently translated at 17.0% (61 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/uk/
2020-05-06 13:09:24 -04:00
Muráncsik Sebestyén
a7d783c53a Translated using Weblate (Hungarian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-05-06 13:09:22 -04:00
newton181
cc0982e483 Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-05-06 13:09:22 -04:00
newton181
deca4afa65 Translated using Weblate (Spanish)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-05-06 08:10:04 -04:00
newton181
3991b9e41e Translated using Weblate (Spanish (Mexico))
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-05-06 08:10:04 -04:00
TheGoose
bffe2d78c2 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-05-06 08:10:04 -04:00
rasser900
7d50ee5db9 Translated using Weblate (Danish)
Currently translated at 97.2% (348 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-05-06 08:10:04 -04:00
Nazar Bulavko
da74f0f277 Translated using Weblate (Ukrainian)
Currently translated at 4.7% (17 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/uk/
2020-05-05 14:52:44 -04:00
Moritz
89d0d2ae60 Translated using Weblate (German)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-05-05 14:52:44 -04:00
Niels van Velzen
3c5ad27c87 Merge pull request #471 from thornbill/logging
Use Timber for logging
2020-05-05 09:58:03 +02:00
Nazar Bulavko
c24c3dfc06 Added translation using Weblate (Ukrainian) 2020-05-04 19:03:00 -04:00
Bill Thornton
86579739b0 Remove commented out logging lines 2020-05-04 16:48:05 -04:00
Bill Thornton
5b0dffbf8b Use timber for logging 2020-05-04 16:38:29 -04:00
Pyry Weckman
055cb602e9 Translated using Weblate (Finnish)
Currently translated at 61.7% (221 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fi/
2020-05-04 06:56:27 -04:00
Niels van Velzen
15887a6e13 Merge pull request #468 from thornbill/connectionmanagerrepository
Refactor ConnectionManager intialization
2020-05-02 10:04:39 +02:00
Heikki Jetsonen
1f75353071 Translated using Weblate (Finnish)
Currently translated at 55.5% (199 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fi/
2020-05-01 16:40:13 -04:00
Heikki Jetsonen
9acfa62a97 Added translation using Weblate (Finnish) 2020-05-01 09:22:39 -04:00
fesken
500bbac3f7 Translated using Weblate (Swedish)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-04-30 23:33:40 -04:00
Bill Thornton
4bad5edd51 Add constants for Extras 2020-04-30 17:14:55 -04:00
Bill Thornton
fbf63642ea Move PlaybackManager initialization 2020-04-30 16:54:13 -04:00
Bill Thornton
3725ce3d38 Remove ILogger instance from ConnectionManagerRepository 2020-04-30 16:47:13 -04:00
Bill Thornton
df3c57f866 Add SerializerRepository 2020-04-30 13:40:52 -04:00
Bill Thornton
2ea8848165 Remove unused HttpClient methods from TvApp 2020-04-30 13:01:12 -04:00
Bill Thornton
6f5f54fc43 Add ConnectionManagerRepository 2020-04-30 12:26:26 -04:00
Bill Thornton
d6aac77625 Merge pull request #467 from nielsvanvelzen/editorconfig-root
Add "root" property to editorconfig
2020-04-30 11:25:50 -04:00
Niels van Velzen
c4241c6fc8 Add "root" property to editorconfig 2020-04-30 16:57:56 +02:00
Bill Thornton
a90b0bed33 Merge pull request #466 from nielsvanvelzen/pin-apiclient
Pin the apiclient version to 0.6.0
2020-04-30 10:31:11 -04:00
Niels van Velzen
72058f0a42 Add the "v" prefix 2020-04-30 10:04:54 +02:00
Niels van Velzen
a28a27d697 Pin the apiclient version to 0.6.0 2020-04-30 09:49:13 +02:00
WWWesten
3f77cfbe06 Translated using Weblate (Russian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-04-30 00:07:04 -04:00
WWWesten
2f4df853df Translated using Weblate (Kazakh)
Currently translated at 98.3% (352 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2020-04-30 00:07:04 -04:00
Bill Thornton
94be57ba8b Merge pull request #465 from nielsvanvelzen/ijustwantedtowatchsomethingbuthadtospendtimefixingthisbecauseibrokeit
Fix playback activity crashing
2020-04-29 15:35:24 -04:00
Niels van Velzen
361beffd5c Fix playback activity crashing 2020-04-29 21:03:00 +02:00
Bill Thornton
1cd336e6d5 Merge pull request #458 from nielsvanvelzen/cinderellaskeys
Remove unnecessary layout xml files
2020-04-29 12:58:36 -04:00
Niels van Velzen
ba461b0165 Redo ExpandableTextView 2020-04-28 17:52:45 +02:00
Niels van Velzen
f5dbd02e58 Convert the modified activities to Kotlin 2020-04-28 17:52:44 +02:00
Niels van Velzen
41098f93a4 Replace all layouts with a single fragment to use the fragmentmanager 2020-04-28 17:52:43 +02:00
Niels van Velzen
33a94393c2 Add own key handling in ItemList and PhotoPlayer activities 2020-04-28 17:52:43 +02:00
Bill Thornton
c6cff6d69b Merge pull request #457 from nielsvanvelzen/feelinglikecinderella
Remove some currentActivity usages
2020-04-28 11:50:30 -04:00
Medzhnun Mehmed
35ca01d6fd Translated using Weblate (Russian)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-04-27 12:04:02 -04:00
Shillos
d50dfe9105 Translated using Weblate (Greek)
Currently translated at 50.0% (179 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2020-04-27 12:04:02 -04:00
Shillos
ebde583145 Translated using Weblate (Greek)
Currently translated at 40.7% (146 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/el/
2020-04-27 05:15:49 -04:00
Niels van Velzen
8ca7aa7f73 Merge pull request #459 from Vardex/set-higher-max-bitrate
Set higher max static bitrate
2020-04-27 09:10:53 +02:00
Vardex
431d08c34b Set higher max static bitrate 2020-04-27 01:55:12 +02:00
Unlimitediq
c1b9b2520e Translated using Weblate (Dutch)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-04-25 13:21:03 -04:00
Niels van Velzen
aa0955a66f Add comment as to why the onUnbindViewHolder function is unused 2020-04-25 16:15:56 +02:00
Niels van Velzen
7e25d470d7 Reduce usage of currentActivity in MyDetailsOverviewRowPresenter 2020-04-25 15:17:18 +02:00
Niels van Velzen
669f1f7d2f Don't depend on currentActivity in InfoCardPresenter 2020-04-25 15:09:12 +02:00
Niels van Velzen
0a3912392b Don't depend on currentActivity in GridButtonPresenter 2020-04-25 15:08:06 +02:00
Niels van Velzen
ca727fa05a Don't depend on currentActivity in Utils.getThemeColor 2020-04-25 15:06:36 +02:00
Niels van Velzen
082b5b3bec Don't depend on currentActivity in ChannelCardPresenter 2020-04-25 15:05:18 +02:00
Niels van Velzen
348d44c70e Don't depend on currentActivity in CardPresenter 2020-04-25 15:04:19 +02:00
Niels van Velzen
2161af15fb Remove interface already implemented by base class from BaseActivity 2020-04-25 15:00:09 +02:00
Niels van Velzen
943e35263a Remove the "showMessage" functions from TvApp/BaseActivity
Current usages are replaced with toasts
2020-04-25 14:57:13 +02:00
Thomas Wayne
ce48917f16 Translated using Weblate (Swedish)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-04-24 13:56:39 -04:00
Niels van Velzen
265b544ecf Merge pull request #454 from Froghut/hanging-playbackstate-fix
Stop progress report if playback was already stopped
2020-04-23 21:37:32 +02:00
Froghut
d18a61ba0a stop progress report if playback was already stopped 2020-04-23 21:09:27 +02:00
Bill Thornton
6c3687a00b Merge pull request #453 from nielsvanvelzen/pullrequesttemplatedidnotwork
Fix pull request template not working
2020-04-22 19:51:46 -04:00
Niels van Velzen
f40b03f53a Fix pull request template not working 2020-04-22 22:35:18 +02:00
Bill Thornton
cc4adbf2ee Merge pull request #449 from nielsvanvelzen/projectmanagement
Add issue and pull request templates
2020-04-22 15:17:57 -04:00
Bill Thornton
0f5d2e8087 Merge pull request #451 from Froghut/resume-button-focus-fix2
Focus resume button when returning from playback and it's visible
2020-04-22 15:17:22 -04:00
Froghut
9b46ab6d9d fix braces 2020-04-22 20:47:01 +02:00
Bill Thornton
375dd3854a Merge pull request #452 from Froghut/control-overlay-transparency
Change the background of the control overlay from dark to light
2020-04-22 13:25:23 -04:00
Bill Thornton
ec060a16e8 Merge pull request #450 from Froghut/tvremote-subtitlebutton
Add support for TV remote subtitle button
2020-04-22 10:04:58 -04:00
Froghut
472dc91d32 change the background of the control overlay from dark to light 2020-04-22 15:21:07 +02:00
Froghut
e79e611394 focus resume button when returning from playback and it's visible 2020-04-22 14:47:27 +02:00
Chen-Tai,Peng
6a3f3c9abe Translated using Weblate (Chinese (Traditional))
Currently translated at 54.1% (194 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-04-22 08:36:03 -04:00
Froghut
01bc7233fa handle TV remote subtitle button 2020-04-22 14:33:20 +02:00
Chen-Tai,Peng
aaca114166 Translated using Weblate (Chinese (Traditional))
Currently translated at 38.5% (138 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-04-21 16:56:10 -04:00
Chen-Tai,Peng
ea3b539b72 Translated using Weblate (Chinese (Traditional))
Currently translated at 35.1% (126 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-04-21 13:36:33 -04:00
4d1m
3cb1ae589b Translated using Weblate (Romanian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-04-21 13:36:33 -04:00
Gregor Hoffleit
68841db4aa Translated using Weblate (German)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-04-21 13:36:33 -04:00
Niels van Velzen
d390c885d5 Fix faulty whitespace 2020-04-21 15:24:43 +02:00
Niels van Velzen
657e0f06d8 Add config.yml for issues to add link to documentation 2020-04-21 15:22:02 +02:00
Niels van Velzen
4f00fd68d8 Update used labels 2020-04-21 15:21:47 +02:00
Niels van Velzen
f34208af29 Add feature request template 2020-04-21 15:18:55 +02:00
Niels van Velzen
102f415884 Add media playback issue template 2020-04-21 15:11:55 +02:00
Niels van Velzen
25a06f3d10 Add bug report template 2020-04-21 15:11:43 +02:00
Niels van Velzen
09ae1cac11 Add PR template 2020-04-21 15:11:35 +02:00
Bill Thornton
51351352f3 Merge pull request #448 from nielsvanvelzen/startup-layout
Startup layout redesign
2020-04-20 20:13:59 -04:00
Niels van Velzen
9772bff2f8 Remove the label in startup fragment 2020-04-20 22:06:44 +02:00
Bill Thornton
daf303c52d Merge pull request #447 from nielsvanvelzen/stopaskingme
Always replace audio queue
2020-04-20 11:19:53 -04:00
Niels van Velzen
1e730f03da Replace app logo with vector 2020-04-20 15:55:17 +02:00
Niels van Velzen
114ec223cf Improve startup design 2020-04-20 15:51:41 +02:00
Niels van Velzen
de77239ef3 Always replace audio queue 2020-04-20 12:33:04 +02:00
Libor Filípek
dcf2fcc848 Translated using Weblate (Czech)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-04-19 11:54:44 -04:00
Andreas
4f8630c9a1 Merge pull request #442 from nielsvanvelzen/userviewfixes
Misc fixes in grid browsing view
2020-04-19 15:16:08 +02:00
Andreas
cc5313366a Merge pull request #445 from nielsvanvelzen/byebyeitempanel
Completely remove the item panel
2020-04-19 15:12:58 +02:00
Andreas
e5f441b164 Merge pull request #446 from nielsvanvelzen/holidayisover
Remove the (badly implemented) HolidayManager
2020-04-19 15:01:07 +02:00
Louis Hermier
7676f58300 Translated using Weblate (French)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-04-19 08:47:17 -04:00
Mike
b5a594f196 Translated using Weblate (Hungarian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-04-18 17:34:23 -04:00
nextlooper42
2e9ccd557b Translated using Weblate (Slovak)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-04-18 17:34:23 -04:00
Barcode
05e4ab3e87 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-04-18 17:34:23 -04:00
memnos
6d1e756ca0 Translated using Weblate (Italian)
Currently translated at 89.1% (319 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-04-18 17:34:22 -04:00
Niels van Velzen
54c387ebd6 Translated using Weblate (English)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en/
2020-04-18 12:35:22 -04:00
Niels van Velzen
9bf688bbcb Remove the (badly implemented) HolidayManager 2020-04-18 17:43:14 +02:00
Niels van Velzen
3dc16a9f0f Completely remove the item panel 2020-04-18 17:36:11 +02:00
Niels van Velzen
315a7e247c Update grid sorting options to be more consistent with web 2020-04-18 10:54:16 +02:00
Niels van Velzen
7fb05e906c Replace other instances of HTML.fromHtml to use TextUtils 2020-04-18 10:46:39 +02:00
Niels van Velzen
18d3579474 Allow HTML in browse fragment summaries 2020-04-18 10:42:34 +02:00
Muráncsik Sebestyén
29068ad97b Translated using Weblate (Hungarian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-04-17 15:47:35 -04:00
Bill Thornton
b5c08bd229 Merge pull request #438 from nielsvanvelzen/crashbad
Fix NPE when finished playing media
2020-04-16 17:23:49 -04:00
Niels van Velzen
2df54f2da3 Fix NPE when finished playing media 2020-04-16 21:40:54 +02:00
Bill Thornton
c1fafb96fa Merge pull request #434 from nielsvanvelzen/direct-fragmentx-dependency
Add androidx.fragment as direct dependency, update androidx.preference & update kotlin/android plugins
2020-04-15 15:51:56 -04:00
Maerik
64b191c8a4 Translated using Weblate (Danish)
Currently translated at 95.8% (343 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-04-15 15:33:50 -04:00
Niels van Velzen
dfe4dbe74e Add androidx.fragment as direct dependency, update androidx.preference & update kotlin/android plugins 2020-04-15 21:28:10 +02:00
Muráncsik Sebestyén
8dc261b0cd Translated using Weblate (Hungarian)
Currently translated at 45.8% (164 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-04-14 15:52:25 -04:00
IBD3532
e111003f0f Translated using Weblate (Korean)
Currently translated at 68.1% (244 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ko/
2020-04-14 15:52:24 -04:00
Muráncsik Sebestyén
2e5c3b0f4c Translated using Weblate (Hungarian)
Currently translated at 40.5% (145 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-04-14 08:03:13 -04:00
millallo
194ac6c624 Translated using Weblate (Italian)
Currently translated at 87.9% (315 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-04-14 08:03:13 -04:00
Andreas
a63b1c614a Merge pull request #432 from nielsvanvelzen/iamnotadesigner
Add noisy background for "BrowseHeaders" in home screen
2020-04-13 19:35:30 +02:00
Bill Thornton
5d04521b1f Merge pull request #369 from nielsvanvelzen/sony-bravia-hdr-fix
Use transparent background in video player
2020-04-13 13:32:55 -04:00
Niels van Velzen
c40fa3eb61 Merge pull request #427 from thornbill/fix-exoplayer-wtf
Fix Exoplayer Caching
2020-04-13 19:24:20 +02:00
Bill Thornton
bedfe45680 Bump okhttp version 2020-04-13 13:07:15 -04:00
Niels van Velzen
2744604a1d Add noisy background for "BrowseHeaders" in home screen 2020-04-13 10:34:47 +02:00
Leo Verto
d395de6847 Translated using Weblate (German)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-04-12 18:57:59 -04:00
TheGoose
e77e5aea68 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-04-12 05:57:06 -04:00
darcostan
a36fdb612d Translated using Weblate (Serbian)
Currently translated at 29.6% (106 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sr/
2020-04-11 20:44:21 -04:00
millallo
954918f752 Translated using Weblate (Italian)
Currently translated at 87.9% (315 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-04-11 20:44:20 -04:00
Vitorvlv
70eb6bf17f Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-04-11 13:19:34 -04:00
Bill Thornton
0863abd93e Add note on why okhttp is needed 2020-04-11 00:44:00 -04:00
Bill Thornton
4b3805153b Revert "Remove (unused) okhttp dependency"
This reverts commit 1a4f9d29d3.
2020-04-11 00:39:07 -04:00
Vitorvlv
20fa5d31d1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-04-09 20:30:11 -04:00
Niels van Velzen
7d39cedc14 Merge pull request #423 from thornbill/fix-user-buttons
Fix user login buttons
2020-04-09 09:32:06 +02:00
Bill Thornton
d586b14025 Fix user login buttons 2020-04-08 22:13:25 -04:00
Niels van Velzen
95044a8c93 Merge pull request #419 from jassycliq/master
Fix issue #204
2020-04-07 09:35:05 +02:00
Jose Salgado
c393b54ed2 Changed genreRow to Flexbox as well 2020-04-06 13:28:43 -07:00
Proxycon
805fd4b300 Translated using Weblate (German)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-04-05 18:35:52 -04:00
Jose Salgado
27cb2759d3 Fix issue #204 2020-04-05 15:03:32 -07:00
adrian gustavo martinez
a862d1adaa Translated using Weblate (Spanish (Mexico))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-04-04 22:28:10 -04:00
MG
cd882e998a Translated using Weblate (Italian)
Currently translated at 86.5% (310 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-04-02 12:44:36 -04:00
MG
54cc84573f Translated using Weblate (Italian)
Currently translated at 81.0% (290 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-04-02 12:07:43 -04:00
DJSweder
b763879b23 Translated using Weblate (Czech)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-04-02 12:07:43 -04:00
MG
8a9207b503 Translated using Weblate (Italian)
Currently translated at 76.5% (274 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-04-01 23:14:24 -04:00
Vitorvlv
0358262869 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.3% (352 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-04-01 15:44:36 -04:00
MG
182f8dc5fc Translated using Weblate (Italian)
Currently translated at 72.0% (258 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-04-01 13:49:26 -04:00
KGT1
25eadad316 Translated using Weblate (German)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-04-01 13:49:25 -04:00
KGT1
917adf0d36 Translated using Weblate (German)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-03-31 19:33:13 -04:00
pucherot
e78fd76ff8 Translated using Weblate (Spanish)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-03-31 08:12:27 -04:00
Lukáš Viktora
0401e9999a Translated using Weblate (Czech)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-03-30 07:21:50 -04:00
Javier Lizano
981923045a Translated using Weblate (Spanish (Mexico))
Currently translated at 87.1% (312 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-03-29 08:48:38 -04:00
Niels van Velzen
07dde3abcc Merge branch 'master' into sony-bravia-hdr-fix
# Conflicts:
#	app/src/main/res/layout/vlc_player_interface.xml
2020-03-28 23:00:51 +01:00
Niels van Velzen
7c53b891dd Merge pull request #390 from jassycliq/fix-user-selection
Add enter_manually button to users list
2020-03-28 10:02:51 +01:00
Niels van Velzen
b5afd281cc Merge pull request #342 from Florianisme/overlay-improvements
New overlay: code cleanup, fixes and general enhancements
2020-03-27 09:18:20 +01:00
Niels van Velzen
6f46358b5f Apply background color to the window instead of the decoration view 2020-03-27 09:01:52 +01:00
Marjan Kolevski
979957a565 Translated using Weblate (Macedonian)
Currently translated at 34.6% (124 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/mk/
2020-03-25 20:30:18 -04:00
Niels van Velzen
ff2235ee82 Merge pull request #407 from thornbill/update-build-output
Update output filename to published format
2020-03-25 21:20:16 +01:00
Ken Ying-Kai Liao
e4e8930702 Translated using Weblate (Chinese (Traditional))
Currently translated at 29.6% (106 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hant/
2020-03-25 10:28:17 -04:00
Bill Thornton
2b7fc911ca Update output filename to published format 2020-03-24 15:49:37 -04:00
Wilson
fa2b579d1e Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-03-24 13:39:30 -04:00
Koos van Riemsdijk
3740e7aa82 Translated using Weblate (Dutch)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-03-22 15:55:27 -04:00
Louis Hermier
5ace054cd9 Translated using Weblate (French)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-03-22 15:55:26 -04:00
adrian gustavo martinez
9f67c37bfb Translated using Weblate (Spanish)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-03-22 15:55:26 -04:00
adrian gustavo martinez
0a9b66671b Translated using Weblate (Spanish (Mexico))
Currently translated at 86.8% (311 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_MX/
2020-03-22 11:51:36 -04:00
Alexander Brissman
e4d3e85224 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-03-21 22:12:20 -04:00
Vogete
f96cbd7360 Translated using Weblate (Hungarian)
Currently translated at 34.9% (125 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-03-21 16:00:19 -04:00
emmanuel billeaud
d4209afd25 Translated using Weblate (French)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-03-20 20:45:41 -04:00
Medzhnun
7376b45346 Translated using Weblate (Russian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-03-20 08:18:36 -04:00
Ioan Constantin
c45c2b67b9 Translated using Weblate (Romanian)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-03-20 04:59:59 -04:00
marys1234
9cb77098af Translated using Weblate (Polish)
Currently translated at 53.9% (193 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-03-19 14:33:09 -04:00
aw
fc912d526c Translated using Weblate (German)
Currently translated at 99.7% (357 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-03-19 14:33:07 -04:00
nextlooper42
940be768da Translated using Weblate (Slovak)
Currently translated at 100.0% (358 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-03-18 22:47:29 -04:00
Mednis
c89e8a795d Translated using Weblate (Latvian)
Currently translated at 99.1% (355 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-03-18 14:34:18 -04:00
Vytis
e857c04e8a Translated using Weblate (Lithuanian)
Currently translated at 13.6% (49 of 358 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lt/
2020-03-18 08:49:00 -04:00
Vytis
753dba1a1f Added translation using Weblate (Lithuanian) 2020-03-18 06:53:45 -04:00
Niels van Velzen
eb8e956be8 Merge pull request #401 from thornbill/themes
Add theme support
2020-03-17 10:20:09 +01:00
Bill Thornton
79ae013efb Use simple summary provider for preferences 2020-03-16 23:54:32 -04:00
Bill Thornton
4cd69936be Fix array values and default value 2020-03-16 16:24:33 -04:00
Niels van Velzen
c4f3d4325b Merge pull request #402 from thornbill/can-i-haz-ci
Update CI triggers
2020-03-16 20:56:06 +01:00
Bill Thornton
e771cc32e5 Fix code review feedback 2020-03-16 15:48:37 -04:00
Bill Thornton
e0f10a0e08 Update CI triggers 2020-03-16 15:20:45 -04:00
muhammad adinugroho
df9ab80bd2 Translated using Weblate (Indonesian)
Currently translated at 1.4% (5 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/id/
2020-03-16 08:41:28 -04:00
ogry
8405b6e55b Translated using Weblate (Spanish)
Currently translated at 100.0% (355 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-03-16 08:41:28 -04:00
Mednis
21b4612f35 Translated using Weblate (Latvian)
Currently translated at 99.1% (352 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-03-16 04:01:28 -04:00
rickyjoy
bbe298656b Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (355 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-03-16 04:01:28 -04:00
Bill Thornton
d226dc9fee Add special theme 2020-03-15 02:20:43 -04:00
Bill Thornton
8ca0ef3fd7 Fix app theme preference position 2020-03-15 02:08:18 -04:00
Bill Thornton
e046e08f13 Add user preference for app theme 2020-03-15 02:08:18 -04:00
Rasmus
d983b6775d Translated using Weblate (Danish)
Currently translated at 95.2% (338 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-14 10:42:08 -04:00
WWWesten
2801b60eb0 Translated using Weblate (Kazakh)
Currently translated at 98.3% (349 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2020-03-14 09:19:47 -04:00
Andy CHABALIER
7db8a3d3ba Translated using Weblate (French)
Currently translated at 100.0% (355 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-03-14 09:19:46 -04:00
Vitorvlv
d5d6479865 Translated using Weblate (Portuguese (Brazil))
Currently translated at 98.3% (349 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_BR/
2020-03-14 02:24:50 -04:00
Rasmus
d520d50cdc Translated using Weblate (Danish)
Currently translated at 95.2% (338 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-13 09:06:50 -04:00
Niels van Velzen
1118b6239c Merge pull request #396 from thornbill/subtitle-improvements
Improve subtitle rendering
2020-03-13 09:25:46 +01:00
Bill Thornton
e43540ee5b Improve subtitle rendering 2020-03-13 00:43:45 -04:00
Niels van Velzen
91992ba837 Merge pull request #395 from linetrimmer/patch-1
Update ProfileHelper.java to embed .ASS subtitles in external players
2020-03-12 17:48:09 +01:00
linetrimmer
c6f3c64e4a Update ProfileHelper.java 2020-03-12 12:35:43 -04:00
Rasmus
ee3a0ae986 Translated using Weblate (Danish)
Currently translated at 93.5% (332 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-12 01:38:07 -04:00
Rasmus
5be7d14e7c Translated using Weblate (Danish)
Currently translated at 89.0% (316 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-11 20:02:58 -04:00
Rasmus
c64776c793 Translated using Weblate (Danish)
Currently translated at 85.3% (303 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-11 19:53:54 -04:00
Rasmus
1589a4378b Translated using Weblate (Danish)
Currently translated at 85.3% (303 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-11 19:53:54 -04:00
byakurau
727d53c2cd Translated using Weblate (Polish)
Currently translated at 38.3% (136 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-03-11 13:03:56 -04:00
Rasmus
d8c1a64f7c Translated using Weblate (Danish)
Currently translated at 74.6% (265 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-11 13:03:55 -04:00
Rasmus
f6660ee2a9 Translated using Weblate (Danish)
Currently translated at 65.3% (232 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/da/
2020-03-11 06:37:05 -04:00
Marcus Schelin
503b9b66ae Translated using Weblate (Swedish)
Currently translated at 100.0% (355 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-03-10 07:39:03 -04:00
jassycliq
bce99b3070 Add enter_manually button to users list 2020-03-09 23:45:22 -07:00
Mednis
6ea143bfe3 Translated using Weblate (Latvian)
Currently translated at 98.8% (351 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-03-09 22:39:25 -04:00
Mednis
1a3e728af2 Translated using Weblate (Latvian)
Currently translated at 92.1% (327 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-03-09 17:12:21 -04:00
Andreas
c9af47c30e Merge pull request #381 from nielsvanvelzen/fixfont
Use system provided light font instead of Roboto-Light
2020-03-09 20:09:12 +01:00
Niels van Velzen
1c49f372d2 Use system provided light font instead of Roboto-Light 2020-03-09 20:00:29 +01:00
Niels van Velzen
0cd25288e7 Merge pull request #386 from thornbill/update-libvlc
Update libvlc and reset default audio delay
2020-03-09 18:50:30 +01:00
Bill Thornton
0c263f46be Update libvlc and reset default audio delay 2020-03-09 13:38:43 -04:00
Nutjob
4d19cbd1be Translated using Weblate (Italian)
Currently translated at 63.9% (227 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-03-09 11:27:17 -04:00
Mednis
70c0d7d8f4 Translated using Weblate (Latvian)
Currently translated at 78.3% (278 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/lv/
2020-03-08 20:08:28 -04:00
SaddFox
150e8ddaf9 Translated using Weblate (Slovenian)
Currently translated at 38.3% (136 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sl/
2020-03-08 20:08:18 -04:00
Mednis
ac0c9f2dff Added translation using Weblate (Latvian) 2020-03-08 18:07:35 -04:00
mostech
9c9c27bfbd Translated using Weblate (Korean)
Currently translated at 63.9% (227 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ko/
2020-03-08 09:01:05 -04:00
IDXK
1ad8dc26fa Translated using Weblate (Dutch)
Currently translated at 98.5% (350 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-03-07 22:03:49 -05:00
Andreas
bacbaf94bb Merge pull request #382 from nielsvanvelzen/linter
Add relevant linter issues disabled by default
2020-03-07 22:20:11 +01:00
Niels van Velzen
19cb25d5c5 Add relevant linter issues disabled by default 2020-03-07 22:07:05 +01:00
Terrance M
35f94f22da Translated using Weblate (Chinese (Simplified))
Currently translated at 99.4% (353 of 355 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-03-06 21:35:28 -05:00
Niels van Velzen
657137a8c7 Merge pull request #380 from thornbill/here-we-go-again
Fix weblate conflict
2020-03-06 22:34:40 +01:00
Bill Thornton
d000c60519 Fix weblate conflict 2020-03-06 16:28:51 -05:00
Scott Anecito
2d3cfddbac Translated using Weblate (Japanese)
Currently translated at 83.9% (299 of 356 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ja/
2020-03-06 14:45:59 -05:00
WWWesten
7a85ac18c7 Translated using Weblate (Russian)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-03-06 14:45:59 -05:00
WWWesten
0adc0ae0ca Translated using Weblate (Kazakh)
Currently translated at 92.9% (331 of 356 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/kk/
2020-03-06 14:45:59 -05:00
TheGoose
f390f0f1ed Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-03-06 14:45:59 -05:00
Bill Thornton
64ea84558f Merge pull request #378 from nielsvanvelzen/exoplayer2113
Upgrade Exoplayer to version 2.11.3
2020-03-06 13:21:30 -05:00
Bill Thornton
be9698ef57 Merge pull request #376 from AndreasGB/remove-stupid-timemachine
Remove auto-logoff "feature"
2020-03-06 13:18:26 -05:00
Niels van Velzen
e2753798d6 Upgrade Exoplayer to version 2.11.3 2020-03-06 19:12:06 +01:00
Andreas
22fb9e5237 Address code review 2020-03-06 18:44:07 +01:00
Andreas
ef99cf88c8 Delete translations of removed string 2020-03-06 00:24:29 +01:00
Andreas
d2e526920b Remove auto-logoff feature 2020-03-06 00:11:41 +01:00
Andreas
eaff7f8926 Merge pull request #374 from thornbill/the-clock-crash
Add ActivityLifecycleCallbacks implementation to check for null current user
2020-03-05 22:51:46 +01:00
Niels van Velzen
9b57487d35 Merge pull request #375 from thornbill/books-bad
Add books to excluded types in latest row fragment
2020-03-05 21:01:01 +01:00
Bill Thornton
476544c97c Add books to excluded types in latest row fragment 2020-03-05 14:31:44 -05:00
Bill Thornton
30006a2f47 Merge pull request #373 from nielsvanvelzen/kotlin1370
Upgrade Kotlin to 1.3.70
2020-03-03 16:35:12 -05:00
Bill Thornton
bf4d8b895d Add ActivityLifecycleCallbacks implementation to check for null current user 2020-03-03 16:19:17 -05:00
Niels van Velzen
ed9601f12d Upgrade Gradle wrapper to version 6.2.1 2020-03-03 21:31:53 +01:00
Niels van Velzen
efe7a50b36 Upgrade Kotlin to 1.3.70 2020-03-03 21:08:41 +01:00
Maurice Oegerli
dbdbd9cdb8 Translated using Weblate (German)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin Android TV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-03-03 05:26:59 -05:00
Ilija Apostolovski
60dadc4e4b Translated using Weblate (Macedonian)
Currently translated at 21.6% (77 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/mk/
2020-03-02 05:48:53 -05:00
Niels van Velzen
49f5474547 Format vlc_player_interface 2020-03-02 10:16:17 +01:00
Niels van Velzen
fad9d3faf7 Apply the initial hdr fix again 2020-03-02 10:15:41 +01:00
Bill Thornton
98083a1ba7 Merge pull request #370 from nielsvanvelzen/editorconfig
Remove "end_of_line" rule from editorconfig
2020-03-01 09:02:06 -05:00
Ilija Apostolovski
7c01c6896f Added translation using Weblate (Macedonian) 2020-03-01 07:59:34 -05:00
Niels van Velzen
ad760acf20 Add line feed settings to gitattributes 2020-03-01 09:20:30 +01:00
Václav Luňák
ee1476d2f1 Translated using Weblate (Czech)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-02-29 15:49:17 -05:00
Niels van Velzen
ec28d32eb1 Remove custom_player_interface.xml
It was unused and caused confusion about which xml was used for the player (spoiler: it is the VLC one, even for exoplayer). For some reason a view was still used (spinner) so I did the most basic removal of it
2020-02-29 18:07:02 +01:00
Niels van Velzen
00e9d4a6f9 Use the "colorMode" setting (since Android 9) to activate HDR in the player activity 2020-02-29 18:00:59 +01:00
Adam Bokor
e994da6250 Translated using Weblate (Hungarian)
Currently translated at 7.0% (25 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-02-29 06:29:23 -05:00
Niels van Velzen
ffadba497a Remove "end_of_line" rule from editorconfig
It caused issues in Android Studio on Windows where it would "detect" changed files but there were none. git will automatically convert line endings on windows so this should not cause any problems.
2020-02-29 10:03:26 +01:00
Niels van Velzen
0fb45bf90c Convert PlaybackOverlayActivity to Kotlin 2020-02-29 09:50:27 +01:00
Niels van Velzen
87029c8809 Use transparent background in video player to work around issues with Sony Bravia televisions 2020-02-29 09:38:10 +01:00
Alexander Brissman
606dabf6cb Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-02-28 23:29:43 -05:00
Alexander Brissman
0c193606c0 Translated using Weblate (Norwegian Bokmål)
Currently translated at 99.4% (354 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-02-28 13:12:33 -05:00
Andreas Olsson
78c5bdeec8 Translated using Weblate (Swedish)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-27 22:48:53 -05:00
NeuroBCN
956b4ac8b0 Translated using Weblate (Spanish)
Currently translated at 99.7% (355 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-02-27 22:48:53 -05:00
Bill Thornton
d2c6906f52 Merge pull request #366 from nielsvanvelzen/format
Use string formatter via `getString` instead of `String.format`.
2020-02-27 13:41:26 -05:00
Niels van Velzen
df559ba618 Use string formatter via getString instead of String.format.
This fixes a small code smell. The getString() function already supports formatting strings
2020-02-27 19:15:41 +01:00
Bill Thornton
7dd5b42bb8 Merge pull request #362 from nielsvanvelzen/abt-360
Upgrade Android Gradle build tools to version 3.6.0 (latest)
2020-02-26 14:46:11 -05:00
Niels van Velzen
afb42beb21 Fix new linting errors 2020-02-26 20:18:43 +01:00
Niels van Velzen
c9bfd90c08 Upgrade Android Gradle build tools to version 3.6.0 (latest) 2020-02-26 20:17:28 +01:00
Julien Quiévreux
97a3ed8b30 Translated using Weblate (French)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-02-26 14:01:44 -05:00
nextlooper42
155f598856 Translated using Weblate (Slovak)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-02-25 07:10:03 -05:00
Niels van Velzen
a5f8e29073 Merge pull request #361 from thornbill/fix-app-name
Add space to app name
2020-02-24 22:23:53 +01:00
Niels van Velzen
42cf6ebabb Merge pull request #360 from thornbill/for-the-children
Add child count to requested fields in queries
2020-02-24 22:23:17 +01:00
Bill Thornton
2c884e73a1 Fix formatting of StdItemQuery 2020-02-24 16:15:37 -05:00
Bill Thornton
08dbce5d93 Add space to app name 2020-02-24 16:13:05 -05:00
Bill Thornton
96af93d06e Add child count to requested fields in queries 2020-02-24 15:53:11 -05:00
4d1m
0ef0dae048 Translated using Weblate (Romanian)
Currently translated at 100.0% (356 of 356 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-02-24 13:40:43 -05:00
Anders Bengtsson
348d8772d5 Translated using Weblate (Swedish)
Currently translated at 100.0% (353 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: http://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-23 23:39:22 -05:00
Andreas Olsson
6ffee80a20 Translated using Weblate (Swedish)
Currently translated at 100.0% (353 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: http://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-23 23:39:22 -05:00
David Martins da Conceição
ff54c162a6 Translated using Weblate (Portuguese (Portugal))
Currently translated at 91.7% (324 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: http://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pt_PT/
2020-02-23 23:39:22 -05:00
Alex Camilleri
b841108c08 Translated using Weblate (Italian)
Currently translated at 63.7% (225 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: http://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-02-23 23:39:22 -05:00
Niels van Velzen
f6a22ed081 Merge pull request #358 from thornbill/libvlc-delay
Add default audio delay for libVLC
2020-02-23 09:39:10 +01:00
Bill Thornton
2b6c105496 Fix code review feedback 2020-02-23 00:31:05 -05:00
Andreas Olsson
9ba97421e3 Translated using Weblate (Swedish)
Currently translated at 100.0% (353 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-22 07:30:23 -05:00
Anders Bengtsson
35f54fcebb Translated using Weblate (Swedish)
Currently translated at 100.0% (353 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-22 07:30:22 -05:00
Anders Bengtsson
7c05f14901 Translated using Weblate (Swedish)
Currently translated at 100.0% (353 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-22 06:54:37 -05:00
Andreas Olsson
9021fbb4d2 Translated using Weblate (Swedish)
Currently translated at 100.0% (353 of 353 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-22 06:54:37 -05:00
Anders Bengtsson
2afa545eaa Translated using Weblate (Swedish)
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-22 06:39:14 -05:00
S1ckn3z
85a9eea34b Translated using Weblate (German)
Currently translated at 99.4% (349 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-02-22 06:39:14 -05:00
Anders Bengtsson
36dc568bc9 Translated using Weblate (Swedish)
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-22 06:39:14 -05:00
Andreas Olsson
d5e66ed6c5 Translated using Weblate (Swedish)
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sv/
2020-02-22 06:39:14 -05:00
Bill Thornton
35a150a1bb Add default audio delay for libVLC 2020-02-21 15:22:24 -05:00
Andreas
7bcd6db69c Merge pull request #356 from nielsvanvelzen/upprevious
Disable Up Next and show logo
2020-02-20 19:22:40 +01:00
Niels van Velzen
b4255e63fc Fix dependencies 2020-02-20 16:45:07 +01:00
Niels van Velzen
eafb04b40b Add logo 2020-02-20 15:49:44 +01:00
Niels van Velzen
1b7eb7b2a3 Add option to disable the next up screen 2020-02-20 15:32:44 +01:00
Niels van Velzen
3c927e3354 Merge pull request #352 from thornbill/music-artist-search-crash
Fix crash when selecting a music artist in search results
2020-02-20 10:09:53 +01:00
Niels van Velzen
74671b4e98 Merge pull request #353 from thornbill/no-shuffle-for-albums
Fix shuffle all option for albums
2020-02-20 10:08:19 +01:00
nextlooper42
ca9996a2cb Translated using Weblate (Slovak)
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-02-19 22:47:08 -05:00
Alexander Brissman
53ae33c398 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-02-19 22:47:08 -05:00
lelamamalgache
c2ed8c5a65 Translated using Weblate (French)
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-02-19 22:47:08 -05:00
Philmo67
42322dc767 Translated using Weblate (French)
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-02-19 22:47:08 -05:00
SleepyJesse
9ed3fc1ce6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (351 of 351 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-02-19 22:47:08 -05:00
Niels van Velzen
97ec6b4c5a Merge pull request #349 from nielsvanvelzen/remove-apiclient-library-dependency
Remove dependency on apiclient library
2020-02-19 09:24:17 +01:00
Niels van Velzen
8935a77f51 Merge branch 'master' into remove-apiclient-library-dependency 2020-02-19 09:13:22 +01:00
Daniel De Jesus
de84b4d470 Translated using Weblate (Spanish (Dominican Republic))
Currently translated at 4.9% (17 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es_DO/
2020-02-19 01:20:48 -05:00
Christian Elbrianno
1bd76d7477 Translated using Weblate (Indonesian)
Currently translated at 0.3% (1 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/id/
2020-02-19 01:20:48 -05:00
nextlooper42
efd5c7ca81 Translated using Weblate (Slovak)
Currently translated at 100.0% (348 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-02-19 01:20:48 -05:00
4d1m
c4f3c9c63a Translated using Weblate (Romanian)
Currently translated at 100.0% (348 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-02-19 01:20:48 -05:00
Alexander Brissman
27407a5974 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (348 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nb_NO/
2020-02-19 01:20:48 -05:00
zibius1
25bb4e7869 Translated using Weblate (French)
Currently translated at 96.3% (335 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-02-19 01:20:48 -05:00
TheGoose
5f439c7c6b Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (348 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-02-19 01:20:48 -05:00
Andreas
9160470f96 Translated using Weblate (German)
Currently translated at 100.0% (348 of 348 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-02-19 01:20:48 -05:00
Bill Thornton
79f93f5fb6 Fix shuffle all option for albums 2020-02-19 00:27:12 -05:00
Bill Thornton
11edeb6191 Fix crash when selecting a music artist in search results 2020-02-19 00:22:08 -05:00
Bill Thornton
d5f4e0e9ad Merge pull request #265 from nielsvanvelzen/upnext
Playing Next screen
2020-02-18 17:22:29 -05:00
Niels van Velzen
d412757272 Increase padding to prevent overscan issues 2020-02-18 22:08:04 +01:00
Niels van Velzen
021caf90e2 Remove dependency on apiclient library 2020-02-18 22:03:43 +01:00
Niels van Velzen
fb3d08baf0 Move colors to colors.xml 2020-02-18 09:43:23 +01:00
Bill Thornton
689611e1bd Merge pull request #348 from nielsvanvelzen/spam-all-the-users
Add ability to annoy users from server
2020-02-17 17:29:03 -05:00
Niels van Velzen
56fdaf70f5 Add ability to annoy users from server 2020-02-17 23:09:07 +01:00
Jared Allard
9c8e8222fb Translated using Weblate (English (United Kingdom))
Currently translated at 95.4% (331 of 347 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/en_GB/
2020-02-17 01:18:05 -05:00
Andreas
a787c01f95 Translated using Weblate (German)
Currently translated at 100.0% (347 of 347 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-02-17 01:18:05 -05:00
Niels van Velzen
c7bb1a9aaa Review changes 2020-02-16 15:33:31 +01:00
Andreas
beaca09d78 Merge pull request #344 from nielsvanvelzen/kotlin-18
Set Kotlin JVM target to Java 1.8 (from 1.6) to support inline functions
2020-02-16 15:08:39 +01:00
Niels van Velzen
a2dedfc07e Set Kotlin JVM target to Java 1.8 (from 1.6) to support inline functions 2020-02-16 14:54:30 +01:00
Niels van Velzen
badbd2d532 Remove debug code 2020-02-16 13:08:59 +01:00
Niels van Velzen
408548c5a2 Finish progress bar in button 2020-02-16 13:04:27 +01:00
Niels van Velzen
02f7bc0239 Start on custom button that can show progress 2020-02-16 12:44:29 +01:00
Niels van Velzen
9c9986229a Rename from upnext, UpNext and up_next to NextUp and next_up 2020-02-16 12:44:28 +01:00
Niels van Velzen
3fd1f9e3e8 Use buttons for a better user experience 2020-02-16 12:44:28 +01:00
Niels van Velzen
59a0fd9e6a Convert to constraint layout 2020-02-16 12:44:27 +01:00
Niels van Velzen
0443d9e553 Add setting to choose timeout 2020-02-16 12:44:26 +01:00
Niels van Velzen
5b20b49769 Fix import 2020-02-16 12:44:01 +01:00
Niels van Velzen
7baf50cf4d Fix text overflowing in large descriptions causing the layout to look weird 2020-02-16 12:44:00 +01:00
Niels van Velzen
bde415414d Log close reason 2020-02-16 12:43:59 +01:00
Niels van Velzen
afdc48146e Fix hardcoded string 2020-02-16 12:43:59 +01:00
Niels van Velzen
371d285e39 Fix up next not playing video 2020-02-16 12:43:59 +01:00
Niels van Velzen
6779869128 Misc 2020-02-16 12:43:58 +01:00
Niels van Velzen
374a9a5e57 Initial integration 2020-02-16 12:43:57 +01:00
Niels van Velzen
70db1529b8 Move content loading to activity 2020-02-16 12:43:56 +01:00
Niels van Velzen
0f8cc87279 Rewrite without leanback 2020-02-16 12:43:55 +01:00
Niels van Velzen
e16fae93be Start on actions 2020-02-16 12:43:55 +01:00
Niels van Velzen
35383f8478 Design update 2020-02-16 12:43:54 +01:00
Niels van Velzen
5b4c54711e Initial progress 2020-02-16 12:43:53 +01:00
Niels van Velzen
edf81ee04d Merge pull request #341 from thornbill/live-tv-player-enum
Use PreferredVideoPlayer enum for live tv preference
2020-02-15 19:08:43 +01:00
Adam Bokor
91735d8acf Translated using Weblate (Hungarian)
Currently translated at 5.8% (20 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-02-15 11:15:19 -05:00
Niels van Velzen
9c0d1ccb7f Merge pull request #343 from AndreasGB/requesting-landscape-for-preferences-broke-it
Fix preferences not showing, requesting landscape for their activity …
2020-02-15 17:04:01 +01:00
Andreas
ec18e08bf8 Fix preferences not showing, requesting landscape for their activity broke them 2020-02-15 16:46:04 +01:00
Adam Bokor
57646f0e43 Translated using Weblate (Hungarian)
Currently translated at 5.5% (19 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/hu/
2020-02-14 22:47:59 -05:00
nextlooper42
0b06c3b5e0 Translated using Weblate (Slovak)
Currently translated at 100.0% (346 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-02-14 22:47:59 -05:00
Jaimie85
3880287d7f Translated using Weblate (Dutch)
Currently translated at 99.4% (344 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-02-14 22:47:41 -05:00
Elouan MAILLY
2897e782cd Translated using Weblate (French)
Currently translated at 96.2% (333 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-02-14 22:47:41 -05:00
WWWesten
81ac9de655 Translated using Weblate (Russian)
Currently translated at 100.0% (346 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-02-14 22:47:41 -05:00
nicolasvac
c161fae963 Translated using Weblate (Italian)
Currently translated at 64.5% (223 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-02-14 22:47:41 -05:00
Niels van Velzen
23cb0a1277 Translated using Weblate (Dutch)
Currently translated at 98.8% (342 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/nl/
2020-02-14 22:47:41 -05:00
Axel Gabriel Calle Granda
ae7be2cceb Translated using Weblate (Spanish)
Currently translated at 100.0% (346 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-02-14 22:47:41 -05:00
Bill Thornton
7f79cfc34c Move live_tv_video_player to migration 3 2020-02-14 17:13:10 -05:00
Florianisme
63dc0e111e Update duration when next item starts playing 2020-02-14 22:54:17 +01:00
Bill Thornton
f8ef06b068 Use PreferredVideoPlayer enum for live tv preference 2020-02-14 16:35:23 -05:00
Bill Thornton
5aee2f8276 Merge pull request #331 from nielsvanvelzen/mymedia-channel
My media channel
2020-02-13 11:58:22 -05:00
Niels van Velzen
7967f5e0de Open correct UserView using ItemLauncher 2020-02-13 10:21:30 +01:00
Niels van Velzen
a46047d818 Use already available util methods 2020-02-12 20:34:06 +01:00
Bill Thornton
e1624b295a Merge pull request #260 from nielsvanvelzen/preference-refactor
Refactor preferences
2020-02-11 09:57:34 -05:00
Niels van Velzen
3f1fa1e150 Add intents 2020-02-11 15:07:52 +01:00
Niels van Velzen
e7a51cd173 Convert icon to bitmap to prevent crash. 2020-02-11 14:49:38 +01:00
Niels van Velzen
598f24654f Use vector icon for app 2020-02-11 14:21:38 +01:00
Niels van Velzen
d00d8121ef Add "My media" row to leanback home 2020-02-11 14:21:25 +01:00
Niels van Velzen
679c40c692 Fix some warnings 2020-02-11 10:19:04 +01:00
Niels van Velzen
de21599a36 Use androidx.preference library 2020-02-11 10:16:16 +01:00
Niels van Velzen
f1fe17aa4b Update migrations 2020-02-11 10:10:28 +01:00
Niels van Velzen
ccd31da814 Fix default values for boolean 2020-02-11 10:07:10 +01:00
Niels van Velzen
849622cd41 Fix bad merge 2020-02-11 10:03:57 +01:00
Niels van Velzen
84f7677f54 Merge branch 'master' into preference-refactor
# Conflicts:
#	app/src/main/AndroidManifest.xml
2020-02-11 10:02:39 +01:00
Andreas
1f823d758b Make Debug Builds distinguishable from Release (#330)
Add a banner and new app_name string for the debug build for distinguishability
2020-02-11 09:05:45 +01:00
Niels van Velzen
d1a3282cd5 Merge pull request #329 from AndreasGB/fix-music-playback-start-on-phones-lol
Fix music playback starting on phones + force landscape for all views
2020-02-10 18:33:14 +01:00
Niels van Velzen
3686914935 Merge branch 'master' into preference-refactor
# Conflicts:
#	app/build.gradle.kts
2020-02-10 17:39:12 +01:00
Bill Thornton
b147462104 Merge pull request #328 from nielsvanvelzen/revert-11e96f1d4ac5a19202d23f5dd7cd7019f02cc3ab
Revert "Remove androidx.appcompat dependency"
2020-02-10 11:37:20 -05:00
Niels van Velzen
8897c9a752 Fix missing super call 2020-02-10 17:30:06 +01:00
Andreas
7bad2cb448 Force every activity into landscape mode 2020-02-10 17:21:59 +01:00
Niels van Velzen
69dfcf8ac9 Revert "Remove androidx.appcompat dependency"
This reverts commit 11e96f1d
2020-02-10 17:13:12 +01:00
Andreas
5f2adb8ddd Fix popup-menus in ItemListActivity on phones 2020-02-10 17:10:17 +01:00
Niels van Velzen
7d2669f973 Use same version for leanback and leanback-preference 2020-02-10 17:01:11 +01:00
Niels van Velzen
07cf1a18c2 Fix misc merge issues 2020-02-10 16:55:58 +01:00
Niels van Velzen
5d4dd86f1e Fix dependency after merge 2020-02-10 16:51:05 +01:00
Niels van Velzen
d8afabf19f Merge branch 'master' into preference-refactor
# Conflicts:
#	app/build.gradle
#	app/src/main/java/org/jellyfin/androidtv/playback/CustomPlaybackOverlayFragment.java
#	app/src/main/java/org/jellyfin/androidtv/playback/ExternalPlayerActivity.java
#	app/src/main/java/org/jellyfin/androidtv/startup/StartupActivity.java
#	app/src/main/res/xml/preferences.xml
2020-02-10 16:50:25 +01:00
Bill Thornton
a5fc45aef9 Merge pull request #327 from nielsvanvelzen/gradle-without-the-weird-syntax
Update Gradle to Kotlin DSL
2020-02-10 08:28:17 -05:00
Niels van Velzen
9853e38916 Make enableDependencySubstitution configurable (enabled by default) 2020-02-10 09:50:14 +01:00
Niels van Velzen
c28502652e Add back mockito 2020-02-09 22:01:29 +01:00
Niels van Velzen
11e96f1d4a Remove androidx.appcompat dependency 2020-02-09 22:00:39 +01:00
Niels van Velzen
66e6b02643 Remove guava dependency 2020-02-09 22:00:38 +01:00
Niels van Velzen
3ea37fd033 Update android gradle build tools version 2020-02-09 22:00:38 +01:00
Niels van Velzen
f3c72412eb Update androidx dependencies 2020-02-09 22:00:38 +01:00
Niels van Velzen
1a4f9d29d3 Remove (unused) okhttp dependency 2020-02-09 22:00:38 +01:00
Niels van Velzen
e37eb1df2d Organize dependencies 2020-02-09 22:00:37 +01:00
Niels van Velzen
48875980f6 Convert Gradle files to Kotlin 2020-02-09 22:00:37 +01:00
Niels van Velzen
40a37d9418 Update Gradle and Gradle wrapper to latest version 2020-02-09 21:59:27 +01:00
Niels van Velzen
c954f9899d Merge pull request #251 from Florianisme/player-overlay-redesign
Player overlay redesign
2020-02-09 21:50:07 +01:00
Florianisme
b356904cb7 Merge remote-tracking branch 'upstream/master' into player-overlay-redesign
# Conflicts:
#	app/src/main/java/org/jellyfin/androidtv/playback/CustomPlaybackOverlayFragment.java
2020-02-09 21:43:04 +01:00
Niels van Velzen
515a1fa0c2 Merge pull request #324 from nielsvanvelzen/startup-activity-mess
Startup activity mess
2020-02-09 12:33:14 +01:00
Niels van Velzen
3c35ed0e85 Add null check 2020-02-09 11:10:43 +01:00
Niels van Velzen
fe64799015 Some random cleaning in StartupActivity 2020-02-09 10:57:42 +01:00
Niels van Velzen
b451c3fb85 Merge pull request #322 from nielsvanvelzen/leave-my-audio-alone
Remove audio mute features
2020-02-09 10:33:37 +01:00
Niels van Velzen
899d0dab3f Remove audio mute features 2020-02-08 22:58:17 +01:00
Niels van Velzen
3b09e2f3ef Merge pull request #315 from AndreasGB/logging-without-format-string-injections-is-hard
Fix broken logger calls
2020-02-08 13:23:13 +01:00
Andreas
5614469ffb Fix hopefully all the incorrect usages of the ILogger interface 2020-02-07 22:33:28 +01:00
Andreas
95dc24c869 Fix broken logger call 2020-02-07 22:32:03 +01:00
Florianisme
21a3e33956 Merge remote-tracking branch 'upstream/master' into player-overlay-redesign
# Conflicts:
#	app/src/main/java/org/jellyfin/androidtv/playback/VideoManager.java
2020-02-07 20:35:56 +01:00
Florianisme
0cc9430412 Fix quick channel switcher not showing when pressing DPAD_DOWN 2020-02-07 20:30:35 +01:00
Bill Thornton
e139331c7d Merge pull request #306 from nielsvanvelzen/two-subs-for-the-price-of-one
Partial fix for subtitles
2020-02-06 23:20:14 -05:00
Bill Thornton
ec6fa045ac Disable all subtitle rendering in exoplayer 2020-02-06 23:12:35 -05:00
Bill Thornton
0e2bf763ca Merge pull request #305 from nielsvanvelzen/297-fix-cherry
Fix wrong last position when media player is closed and progress still reported
2020-02-06 08:45:17 -05:00
Florianisme
8cd11c888c Fix wrong last position when media player is closed and progress still reported 2020-02-06 09:35:14 +01:00
dkanada
bd959b7d45 Merge pull request #304 from thornbill/fix-empty-address
Fix crash on empty server address
2020-02-06 15:02:14 +09:00
Bill Thornton
c407ff857c Fix crash on empty server address 2020-02-06 00:27:05 -05:00
Bill Thornton
5dc9582fd0 Merge pull request #299 from nielsvanvelzen/homesections-fix-defaults
Fix default home sections not used when the user partially changed them
2020-02-06 00:01:18 -05:00
Bill Thornton
fb0d39b4a3 Merge pull request #302 from AndreasGB/fix-acra-enabled-display
Fix displaying ACRA as enabled by default in preferences
2020-02-05 19:06:41 -05:00
Andreas
f5c37620e7 Fix displaying ACRA as enabled by default in preferences 2020-02-06 00:43:11 +01:00
Niels van Velzen
892d2488b6 Fix default home sections not used when the user partially changed them 2020-02-05 23:14:12 +01:00
Florianisme
c0b21764b0 Fix wrong last position when media player is closed and progress still reported 2020-02-05 19:37:33 +01:00
Florianisme
e83788b490 Fix play/pause out of sync error 2020-02-05 19:24:15 +01:00
Niels van Velzen
c67afcd438 Merge branch 'master' into preference-refactor 2020-02-05 17:48:08 +01:00
Florianisme
f8fe612bdb Merge remote-tracking branch 'upstream/master' into player-overlay-redesign 2020-02-05 17:44:30 +01:00
Niels van Velzen
d2f62be59f Merge pull request #293 from Florianisme/fix-weblate-merge-error
Fix weblate merge error
2020-02-05 17:41:23 +01:00
Florianisme
5118893514 Fix weblate merge error 2020-02-05 17:33:26 +01:00
Florianisme
b8415e6458 Merge remote-tracking branch 'upstream/master' into player-overlay-redesign 2020-02-05 17:23:14 +01:00
Arkadiusz Urbanski
a5aa0ed150 Translated using Weblate (Polish)
Currently translated at 34.1% (118 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-02-05 05:54:41 -05:00
nextlooper42
510deda126 Translated using Weblate (Slovak)
Currently translated at 100.0% (346 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-02-05 05:54:41 -05:00
Punxsu Phil
17fa06f39f Translated using Weblate (Spanish)
Currently translated at 99.7% (345 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/es/
2020-02-05 05:54:41 -05:00
Nutjob
33088a0eb2 Translated using Weblate (Italian)
Currently translated at 63.9% (221 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/it/
2020-02-05 05:54:40 -05:00
Jan Nowak
79e1292764 Translated using Weblate (Polish)
Currently translated at 27.5% (95 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/pl/
2020-02-05 05:54:40 -05:00
Jan Nowak
dc225ea46f Added translation using Weblate (Polish) 2020-02-05 05:54:40 -05:00
nextlooper42
03ec23978f Translated using Weblate (Slovak)
Currently translated at 97.1% (336 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/sk/
2020-02-05 05:54:40 -05:00
Meteor
b2e0aea79c Translated using Weblate (Chinese (Simplified))
Currently translated at 98.8% (342 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-02-05 05:54:40 -05:00
nikolusz
a5485a33f4 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.8% (342 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/zh_Hans/
2020-02-05 05:54:40 -05:00
WWWesten
f62f538cd0 Translated using Weblate (Russian)
Currently translated at 100.0% (346 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ru/
2020-02-05 05:54:40 -05:00
4d1m
fa973cbbbe Translated using Weblate (Romanian)
Currently translated at 100.0% (346 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/ro/
2020-02-05 05:54:40 -05:00
NunzioArdi
d330b043b6 Translated using Weblate (French)
Currently translated at 95.1% (329 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/fr/
2020-02-05 05:54:40 -05:00
KGT1
ef075df66d Translated using Weblate (German)
Currently translated at 99.7% (345 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-02-05 05:54:40 -05:00
Benjamin Risse
d9a35dc932 Translated using Weblate (German)
Currently translated at 99.7% (345 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/de/
2020-02-05 05:54:40 -05:00
Libor Filípek
4ff0367b09 Translated using Weblate (Czech)
Currently translated at 100.0% (346 of 346 strings)

Translation: Jellyfin/Jellyfin AndroidTV
Translate-URL: https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/cs/
2020-02-05 05:54:40 -05:00
dkanada
6752401030 Merge pull request #291 from thornbill/lost-in-translation
Add merge rule to (hopefully) avoid conflicts in weblate
2020-02-05 14:03:37 +09:00
Bill Thornton
d8a25f3558 Add merge rule to (hopefully) avoid conflicts in weblate 2020-02-04 23:19:21 -05:00
Niels van Velzen
d26db9cfbf Merge pull request #288 from AndreasGB/PersonTypeRefactor
Refactor PersonType into a proper enum
2020-02-04 10:59:34 +01:00
Andreas
ba9562eacd Refactor PersonType into a proper enum 2020-02-03 23:44:02 +01:00
Florianisme
2c2d18545c Keep chapter selection focused when pressing left on first item 2020-02-01 22:46:33 +01:00
Florianisme
a232313d8b Prevent seeking in live tv mode 2020-02-01 22:00:41 +01:00
Florianisme
1a044394e8 Fix crash when exiting playback view 2020-02-01 21:34:29 +01:00
Florianisme
0bfe099638 Extract click handling to each action class 2020-02-01 21:34:01 +01:00
Florianisme
a11141afe7 Set fixed seek duration of 30 seconds 2020-02-01 21:09:55 +01:00
Florianisme
944960540a Fix crash when exiting playback view 2020-02-01 14:02:39 +01:00
Niels van Velzen
df09859288 Use transparent background for preferences 2020-01-19 12:17:58 +01:00
Niels van Velzen
2e0f843112 Layout changes 2020-01-19 12:11:34 +01:00
Niels van Velzen
fd72b7819c Format preferences xml 2020-01-19 11:56:51 +01:00
Niels van Velzen
4a1c09a8d9 Convert to leanback preferences 2020-01-19 11:56:37 +01:00
Niels van Velzen
5e0784feec Use Jellyfin Appcompat theme 2020-01-19 10:26:14 +01:00
Niels van Velzen
bc6d8c9f6d Remove old migration code 2020-01-11 17:04:51 +01:00
Niels van Velzen
370473a699 Fix CI error 2020-01-11 17:04:00 +01:00
Niels van Velzen
8baafea76d Make enums not-null 2020-01-11 15:14:43 +01:00
Niels van Velzen
fad30d1a9d Convert PreferredVideoPlayer to enum 2020-01-11 15:07:55 +01:00
Niels van Velzen
e37ed85f44 Convert LoginBehavior to enum 2020-01-11 15:02:54 +01:00
Niels van Velzen
0d70907197 Convert AudioBehavior to enum 2020-01-11 14:55:11 +01:00
Niels van Velzen
4287d86498 Document UserPreferences 2020-01-11 14:27:55 +01:00
Niels van Velzen
7298a8e17a Convert settings activity and fragment to androidx with kotlin. Further changes should be done in a separate PR 2020-01-11 14:10:42 +01:00
Florianisme
5368e97333 Initial fix of requested changes 2020-01-10 23:57:16 +01:00
Florian
2ada7b65a8 Merge branch 'master' into player-overlay-redesign 2020-01-10 15:26:04 +01:00
Florianisme
2e199b6068 Fix inconsistent fading of overlays 2020-01-10 14:56:02 +01:00
Florianisme
37b64b350c Add chapter action 2020-01-10 14:28:51 +01:00
Florianisme
1ff16bee98 Fix quick channel changer layout 2020-01-10 14:12:01 +01:00
Niels van Velzen
4fa17f5982 Remove preferences.md (accidentally commited) 2020-01-09 22:42:56 +01:00
Niels van Velzen
a61dd5cf82 Add not-null version of stringPreference 2020-01-09 22:41:09 +01:00
Niels van Velzen
a97d1990cd Initial kdoc 2020-01-09 22:36:26 +01:00
Niels van Velzen
580636b8ee Remove sys_pref_config_version 2020-01-09 22:17:56 +01:00
Niels van Velzen
6f70c387d6 Move SettingsActivity and SettingsFragment to preferences.ui namespace 2020-01-09 22:17:30 +01:00
Niels van Velzen
2cb1939709 Move preferences to preferences namespace 2020-01-09 22:16:48 +01:00
Niels van Velzen
992737f865 Remove deprecated methods for getting preferences 2020-01-09 22:11:52 +01:00
Niels van Velzen
79d7e6ffd1 Add preference migrations 2020-01-09 22:08:33 +01:00
Niels van Velzen
3d80458d14 Replace 2 occurrences where SharedPreferences was called directly 2020-01-09 21:24:41 +01:00
Niels van Velzen
c5361af21d Replace TvApp.getPrefs() 2020-01-09 21:21:43 +01:00
Niels van Velzen
2c6b21f980 Create abstract SharedPreferenceStore and implement it for system preferences 2020-01-09 20:36:52 +01:00
Florianisme
ed01855a66 Begin cleanup of old overlay 2020-01-08 18:38:15 +01:00
Florianisme
cd4118d9b7 Remove Logo and full description for now 2020-01-07 20:07:46 +01:00
Florianisme
f1f1d01568 Add temporary banner and description to overlay 2020-01-06 20:56:15 +01:00
Florianisme
12eb56672c Replace zoom icon with more matching aspect ratio icon 2020-01-06 18:40:07 +01:00
Florianisme
a8984b7218 Add record action 2020-01-06 18:33:23 +01:00
Florianisme
a58e6845af Add guide action 2020-01-05 19:55:03 +01:00
Florianisme
0b93a4b0b1 Add quick channel changer action 2020-01-05 19:47:04 +01:00
Florianisme
f5f1971003 Intercept key events and integrate quick channel switcher 2020-01-05 19:42:42 +01:00
Florianisme
1f4b19d928 Add previous live tv channel action 2020-01-05 12:30:03 +01:00
Florianisme
650c144276 Reverts accidental change 2020-01-04 22:54:32 +01:00
Florianisme
2ce52ab755 Add conditions to button visibility 2020-01-04 22:51:32 +01:00
Florianisme
7450c63ed0 Cleanup and refactoring 2020-01-04 22:34:07 +01:00
Florianisme
ee44ff5786 Cleanup and refactoring 2020-01-04 22:32:19 +01:00
Florianisme
154ac9ea0a Add zoom adjustment action 2020-01-04 22:16:31 +01:00
Florianisme
71deb46486 Add audio adjustment action 2020-01-04 22:09:38 +01:00
Florianisme
d4988e9ab6 Add functionality to custom closed captioning action 2020-01-04 21:51:44 +01:00
Florianisme
53eaa593c0 Add audio track switching from custom action 2020-01-04 17:36:18 +01:00
Florianisme
b71f9db517 Refactor structure 2020-01-04 17:07:50 +01:00
Florianisme
395064ea71 Add custom language select action 2020-01-04 16:40:48 +01:00
Florianisme
de7fab20b6 Move subtitle action to primary row 2020-01-04 16:00:57 +01:00
Florianisme
0c8e217f5d Add support for custom actions 2020-01-04 16:00:36 +01:00
Florianisme
8c78c82c3e Set play button states appropriately 2020-01-03 19:28:31 +01:00
Florianisme
b816dd77a0 Add state change listener, Add seeking 2020-01-03 18:48:29 +01:00
Florianisme
e4cc64200e Initial migration to Leanback PlaybackSupportFragment 2020-01-03 13:52:15 +01:00
990 changed files with 51648 additions and 29512 deletions

View File

@@ -1,16 +0,0 @@
trigger:
- master
- release
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Gradle@2
inputs:
gradleWrapperFile: 'gradlew'
tasks: 'build'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
javaHomeOption: 'JDKVersion'
sonarQubeRunAnalysis: false

View File

@@ -1,7 +0,0 @@
.git*
.dockerignore
Dockerfile
build
new-file-header.txt
CONTRIBUTORS.md
README.md

View File

@@ -1,8 +1,17 @@
root = true
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[{*.kts, *.kt}]
charset = utf-8
indent_style = tab
tab_width = 4
# Disable wildcard imports in IntelliJ/Android Studio
ij_kotlin_name_count_to_use_star_import = 1000
ij_kotlin_name_count_to_use_star_import_for_members = 1000
ij_kotlin_packages_to_use_import_on_demand =
[*.md]
trim_trailing_whitespace = false

6
.gitattributes vendored
View File

@@ -1 +1,7 @@
*.kt text eol=lf
*.kts text eol=lf
*.java text eol=lf
*.xml text eol=lf
CONTRIBUTORS.md merge=union
app/src/main/res/values*/strings.xml merge=union

View File

@@ -0,0 +1,82 @@
name: Media playback bug report
description: Create a bug report related to media playback
labels:
- bug
- playback
body:
- type: textarea
id: description
attributes:
label: Describe the bug
description: |
A clear and concise description of the bug, including steps to reproduce it and the normally expected behavior.
You can also attach screenshots or screen recordings to help explain your issue.
placeholder: |
1. Go to …
2. Click on …
3. Scroll down to …
4. See error / the app crashes
Instead, I expect …
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
description: |
Please paste your crash logs here if applicable. You can find these in your servers dashboard under "logs".
The file name should start with "upload_org.jellyfin.androidtv".
Make sure that they don't contain any sensitive information like server URL, auth tokens or passwords.
placeholder: Paste logs…
- type: textarea
id: logs-ffmpeg
attributes:
label: FFmpeg logs
description: |
Please paste your FFmpeg logs here. You can find these in your servers dashboard under "logs".
placeholder: Paste logs…
render: shell
- type: textarea
id: mediainfo
attributes:
label: Media info of the file
description: |
Please share the media information for the file causing issues. You can use a variety of tools to retrieve this information.
- Use ffprobe (`ffprobe ./file.mp4`)
- Use the Media Info tool (set to text format, download here: https://mediaarea.net/en/MediaInfo)
- Copy the media info from the web interface
placeholder: Paste media info…
render: shell
- type: input
id: app-version
attributes:
label: Application version
description: The version of the installed Jellyfin Android TV app.
placeholder: 0.14.0
validations:
required: true
- type: input
id: device-info
attributes:
label: Device information
description: Manufacturer and model
placeholder: Nvidia Shield Pro (2017), Amazon Fire TV Stick v1 (2014)
validations:
required: true
- type: input
id: android-version
attributes:
label: Android version
description: Version of the OS and other information (e.g. custom ROM / OEM skin)
placeholder: Android 9, Fire OS 7
validations:
required: true
- type: input
id: server-version
attributes:
label: Jellyfin server version
description: If on unstable, please specify the commit hash.
placeholder: 10.8.1
validations:
required: true

71
.github/ISSUE_TEMPLATE/bug-report.yaml vendored Normal file
View File

@@ -0,0 +1,71 @@
name: Bug report
description: Create a bug report
labels:
- bug
body:
- type: textarea
id: description
attributes:
label: Describe the bug
description: |
A clear and concise description of the bug, including steps to reproduce it and the normally expected behavior.
You can also attach screenshots or screen recordings to help explain your issue.
placeholder: |
1. Go to …
2. Click on …
3. Scroll down to …
4. See error / the app crashes
Instead, I expect …
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
description: |
Please paste your crash logs here if applicable. You can find these in your servers dashboard under "logs".
The file name should start with "upload_org.jellyfin.androidtv".
Make sure that they don't contain any sensitive information like server URL, auth tokens or passwords.
placeholder: Paste logs…
- type: input
id: app-version
attributes:
label: Application version
description: The version of the installed Jellyfin Android TV app.
placeholder: 0.14.0
validations:
required: true
- type: dropdown
id: installation-source
attributes:
label: Where did you install the app from?
description: Choose the appropriate app store or installation method.
options:
- Google Play
- Amazon Appstore
- Sideloaded APK
- type: input
id: device-info
attributes:
label: Device information
description: Manufacturer and model
placeholder: Nvidia Shield Pro (2017), Amazon Fire TV Stick v1 (2014)
validations:
required: true
- type: input
id: android-version
attributes:
label: Android version
description: Version of the OS and other information (e.g. custom ROM / OEM skin)
placeholder: Android 9, Fire OS 7
validations:
required: true
- type: input
id: server-version
attributes:
label: Jellyfin server version
description: If on unstable, please specify the commit hash.
placeholder: 10.8.1
validations:
required: true

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Jellyfin documentation
url: https://jellyfin.org/docs/general/getting-help.html
about: Our documentation contains lots of help for common issues
- name: Jellyfin contact
url: https://jellyfin.org/contact/
about: Our community is ready to help you get started with Jellyfin

View File

@@ -0,0 +1,14 @@
name: Feature request
description: Request a new feature
labels:
- enhancement
body:
- type: textarea
id: description
attributes:
label: Describe the feature you'd like
description: |
A clear and concise description of what you want to request.
You can also attach screenshots or screen recordings to help explain your request.
validations:
required: true

11
.github/pull_request_template.md vendored Normal file
View File

@@ -0,0 +1,11 @@
<!--
Ensure your title is short, descriptive, and in the imperative mood (Fix X, Change Y, instead of Fixed X, Changed Y).
For a good inspiration of what to write in commit messages and PRs please review https://chris.beams.io/posts/git-commit/ and our https://docs.jellyfin.org/general/contributing/issues.html page.
-->
**Changes**
<!-- Describe your changes here in 1-5 sentences. -->
**Issues**
<!-- Tag any issues that this PR solves here.
ex. Fixes # -->

32
.github/workflows/app-build.yaml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: App Build
on:
push:
branches:
- master
pull_request:
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Setup Java
uses: actions/setup-java@2c7a4878f5d120bd643426d54ae1209b29cc01a3 # tag=v3
with:
distribution: adopt
java-version: 11
cache: gradle
- name: Assemble debug APKs
run: ./gradlew --build-cache --no-daemon --info assembleDebug
- name: Upload artifacts
uses: actions/upload-artifact@3cea5372237819ed00197afe530f5a7ea3e805c8 # tag=v3
with:
name: build-artifacts
retention-days: 14
if-no-files-found: error
path: app/build/outputs/apk/debug/*.apk

34
.github/workflows/app-lint.yaml vendored Normal file
View File

@@ -0,0 +1,34 @@
name: App Lint
on:
push:
branches:
- master
- release-*
pull_request:
permissions:
contents: read
jobs:
lint:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Setup Java
uses: actions/setup-java@2c7a4878f5d120bd643426d54ae1209b29cc01a3 # tag=v3
with:
distribution: adopt
java-version: 11
cache: gradle
- name: Run detekt and lint task
run: ./gradlew --build-cache --no-daemon --info detekt lint
- name: Upload SARIF files
uses: github/codeql-action/upload-sarif@2ca79b6fa8d3ec278944088b4aa5f46912db5d63 # tag=v2
if: ${{ always() }}
with:
sarif_file: .

77
.github/workflows/app-publish.yaml vendored Normal file
View File

@@ -0,0 +1,77 @@
name: App Publish
on:
push:
tags:
- v*
jobs:
build:
runs-on: ubuntu-20.04
if: ${{ github.repository == 'jellyfin/jellyfin-androidtv' }}
steps:
- name: Checkout repository
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Setup Java
uses: actions/setup-java@2c7a4878f5d120bd643426d54ae1209b29cc01a3 # tag=v3
with:
distribution: adopt
java-version: 11
- name: Set JELLYFIN_VERSION
run: echo "JELLYFIN_VERSION=$(echo ${GITHUB_REF#refs/tags/v} | tr / -)" >> $GITHUB_ENV
- name: Assemble release files
run: ./gradlew --no-daemon --info assemble bundleRelease versionTxt
- name: Sign APK
id: signApk
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # tag=v1
with:
releaseDirectory: app/build/outputs/apk/release
signingKeyBase64: ${{ secrets.KEYSTORE }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
alias: ${{ secrets.KEY_ALIAS }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Sign AAB
id: signAab
uses: r0adkll/sign-android-release@349ebdef58775b1e0d8099458af0816dc79b6407 # tag=v1
with:
releaseDirectory: app/build/outputs/bundle/release
signingKeyBase64: ${{ secrets.KEYSTORE }}
keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }}
alias: ${{ secrets.KEY_ALIAS }}
keyPassword: ${{ secrets.KEY_PASSWORD }}
- name: Prepare release archive
run: |
mkdir -p build/jellyfin-publish
mv app/build/outputs/apk/*/jellyfin-androidtv-*-debug.apk build/jellyfin-publish/
mv app/build/outputs/apk/*/jellyfin-androidtv-*-release-unsigned.apk build/jellyfin-publish/
mv ${{ steps.signApk.outputs.signedReleaseFile }} build/jellyfin-publish/jellyfin-androidtv-v${{ env.JELLYFIN_VERSION }}-release.apk
mv ${{ steps.signAab.outputs.signedReleaseFile }} build/jellyfin-publish/jellyfin-androidtv-v${{ env.JELLYFIN_VERSION }}-release.aab
mv app/build/version.txt build/jellyfin-publish/
- name: Upload release archive to GitHub release
uses: alexellis/upload-assets@5586bc227f8525a5e3525e6edf64da5350bfb5b1 # tag=0.3.0
env:
GITHUB_TOKEN: ${{ secrets.JF_BOT_TOKEN }}
with:
asset_paths: '["build/jellyfin-publish/*"]'
- name: Upload release archive to repo.jellyfin.org
uses: burnett01/rsync-deployments@0dc935cdecc5f5e571865e60d2a6cdc673704823 # tag=5.2
with:
switches: -vrptz
path: build/jellyfin-publish/
remote_path: /srv/repository/releases/client/androidtv/versions/v${{ env.JELLYFIN_VERSION }}
remote_host: ${{ secrets.DEPLOY_HOST }}
remote_user: ${{ secrets.DEPLOY_USER }}
remote_key: ${{ secrets.DEPLOY_KEY }}
- name: Update repo.jellyfin.org symlinks
uses: appleboy/ssh-action@f9010ff7f1bbd7db1a0b4bab661437550cea20c0 # tag=v0.1.5
with:
host: ${{ secrets.DEPLOY_HOST }}
username: ${{ secrets.DEPLOY_USER }}
key: ${{ secrets.DEPLOY_KEY }}
envs: JELLYFIN_VERSION
script_stop: true
script: |
cd /srv/repository/releases/client/androidtv;
rm -rf *.apk version.txt;
ln -s versions/v${JELLYFIN_VERSION}/jellyfin-androidtv-v${JELLYFIN_VERSION}-*.apk .;
ln -s versions/v${JELLYFIN_VERSION}/version.txt .;

26
.github/workflows/app-test.yaml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: App Test
on:
push:
branches:
- master
- release-*
pull_request:
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Setup Java
uses: actions/setup-java@2c7a4878f5d120bd643426d54ae1209b29cc01a3 # tag=v3
with:
distribution: adopt
java-version: 11
cache: gradle
- name: Run test task
run: ./gradlew --build-cache --no-daemon --info test

17
.github/workflows/gradlew-update.yaml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: Gradle update
on:
schedule:
- cron: '0 4 * * *'
jobs:
update:
runs-on: ubuntu-20.04
if: github.repository == 'jellyfin/jellyfin-androidtv'
steps:
- name: Checkout repository
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Update Gradle Wrapper
uses: gradle-update/update-gradle-wrapper-action@981c551b17dbcf1940b1b4435afdb79babb7c13a # tag=v1
with:
repo-token: ${{ secrets.JF_BOT_TOKEN }}

21
.github/workflows/gradlew-validate.yaml vendored Normal file
View File

@@ -0,0 +1,21 @@
name: Gradle validate
on:
push:
branches:
- master
pull_request:
paths:
- '**/gradlе-wrapper.jar'
permissions:
contents: read
jobs:
validate:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b # tag=v3
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b # tag=v1

View File

@@ -0,0 +1,17 @@
name: Merge conflict labeler
on:
push:
pull_request_target:
types:
- synchronize
jobs:
triage:
runs-on: ubuntu-20.04
if: github.repository == 'jellyfin/jellyfin-androidtv'
steps:
- uses: eps1lon/actions-label-merge-conflict@b8bf8341285ec9a4567d4318ba474fee998a6919 # tag=v2.0.1
with:
dirtyLabel: merge conflict
repoToken: ${{ secrets.JF_BOT_TOKEN }}

31
.github/workflows/repo-stale.yaml vendored Normal file
View File

@@ -0,0 +1,31 @@
name: Issue stale check
on:
schedule:
- cron: '30 3 * * *'
workflow_dispatch:
permissions:
issues: write
pull-requests: write
jobs:
stale:
runs-on: ubuntu-20.04
if: github.repository == 'jellyfin/jellyfin-androidtv'
steps:
- uses: actions/stale@9c1b1c6e115ca2af09755448e0dbba24e5061cc8 # tag=v5
with:
repo-token: ${{ secrets.JF_BOT_TOKEN }}
days-before-stale: 120
days-before-pr-stale: -1
days-before-close: 21
days-before-pr-close: -1
exempt-issue-labels: enhancement,confirmed
stale-issue-label: stale
stale-issue-message: |-
This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.
If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.
This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on [Matrix or Social Media](https://docs.jellyfin.org/general/getting-help.html).

3
.gitignore vendored
View File

@@ -3,5 +3,6 @@
local.properties
/.idea
/.gradle
.gradle
build/
captures/

15
CODEOWNERS Normal file
View File

@@ -0,0 +1,15 @@
# Build files
/.github/workflows/ @nielsvanvelzen
/.github/dependabot.yml @nielsvanvelzen
/gradle/ @nielsvanvelzen
/buildSrc/ @nielsvanvelzen
settings.gradle.ts @nielsvanvelzen
build.gradle.kts @nielsvanvelzen
gradle.properties @nielsvanvelzen
# Linting
android-lint.xml @nielsvanvelzen
detekt.yaml @nielsvanvelzen
# Playback code
/playback/ @nielsvanvelzen

View File

@@ -9,6 +9,7 @@
- [AndreasGB](https://github.com/andreasgb)
- [joern-h](https://github.com/joern-h)
- [Niels van Velzen](https://github.com/nielsvanvelzen)
- [GodTamIt](https://github.com/GodTamIt)
# Emby Contributors

View File

@@ -1,38 +0,0 @@
FROM debian:9
# Docker build arguments
ARG SOURCE_DIR=/repo
ARG ARTIFACT_DIR=/dist
ARG ANDROID_DIR=/usr/lib/android-sdk
# Docker run environment
ENV SOURCE_DIR=/repo
ENV ARTIFACT_DIR=/dist
ENV ANDROID_DIR=/usr/lib/android-sdk
# Prepare Debian build environment
RUN echo "deb http://deb.debian.org/debian stretch-backports main" >> /etc/apt/sources.list.d/backports.list \
&& apt-get update \
&& apt-get install -y mmv wget unzip git \
&& apt-get install -t stretch-backports -y android-sdk openjdk-8-jdk
# Install Android repository tools
RUN rm -rf ${ANDROID_DIR}/tools \
&& wget http://dl-ssl.google.com/android/repository/tools_r25.2.3-linux.zip -O tools.zip \
&& unzip tools.zip -d ${ANDROID_DIR}/ \
&& rm -f tools.zip
# Install SDK tools
# `yes` is required to accept licenses:
# https://stackoverflow.com/questions/38096225/automatically-accept-all-sdk-licences/42125740#42125740
# There will be no output to the screen while this runs - expect a delay of up to several minutes on the license
RUN yes | ${ANDROID_DIR}/tools/bin/sdkmanager "platform-tools" "platforms;android-27" "build-tools;27.0.3" "extras;android;m2repository" "extras;google;m2repository"
RUN ln -sf ${SOURCE_DIR}/docker-build.sh /docker-build.sh
# Prepare artifact volume
VOLUME ${ARTIFACT_DIR}/
# Copy repository
COPY . ${SOURCE_DIR}/
# Set docker-build entrypoint
ENTRYPOINT ["/docker-build.sh"]

11
LICENSE
View File

@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/>
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -290,8 +290,8 @@ to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{description}
Copyright (C) {year} {fullname}
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -329,7 +329,7 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
{signature of Ty Coon}, 1 April 1989
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
@@ -337,4 +337,3 @@ proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@@ -1,5 +1,5 @@
<h1 align="center">Jellyfin Android TV</h1>
<h3 align="center">Part of the <a href="https://jellyfin.media">Jellyfin Project</a></h3>
<h3 align="center">Part of the <a href="https://jellyfin.org">Jellyfin Project</a></h3>
---
@@ -12,8 +12,8 @@
<a href="https://github.com/jellyfin/jellyfin-androidtv/releases">
<img alt="Current Release" src="https://img.shields.io/github/release/jellyfin/jellyfin-androidtv.svg"/>
</a>
<a href="https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv/?utm_source=widget">
<img src="https://translate.jellyfin.org/widgets/jellyfin/-/jellyfin-androidtv/svg-badge.svg" alt="Translation status" />
<a href="https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv/">
<img alt="Translation Status" src="https://translate.jellyfin.org/widgets/jellyfin-android/-/jellyfin-androidtv/svg-badge.svg"/>
</a>
<br/>
<a href="https://opencollective.com/jellyfin">
@@ -22,9 +22,6 @@
<a href="https://features.jellyfin.org">
<img alt="Feature Requests" src="https://img.shields.io/badge/fider-vote%20on%20features-success.svg"/>
</a>
<a href="https://forum.jellyfin.org">
<img alt="Discuss on our Forum" src="https://img.shields.io/discourse/https/forum.jellyfin.org/users.svg"/>
</a>
<a href="https://matrix.to/#/+jellyfin:matrix.org">
<img alt="Chat on Matrix" src="https://img.shields.io/matrix/jellyfin:matrix.org.svg?logo=matrix"/>
</a>
@@ -33,18 +30,57 @@
</a>
<br/>
<a href="https://play.google.com/store/apps/details?id=org.jellyfin.androidtv">
<img width="200" src="https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png" alt="Get it on Google Play"/>
<img width="153" alt="Jellyfin on Google Play" src="https://jellyfin.org/images/store-icons/google-play.png"/>
</a>
<br/>
<a href="https://www.amazon.com/gp/aw/d/B07TX7Z725">
<img width="170" src="https://images-na.ssl-images-amazon.com/images/G/01/mobile-apps/devportal2/res/images/amazon-appstore-badge-english-black.png" alt="Available at Amazon Appstore"/>
<img width="153" alt="Jellyfin on Amazon Appstore" src="https://jellyfin.org/images/store-icons/amazon.png"/>
</a>
<br/>
<a href="https://repo.jellyfin.org/releases/client/androidtv/">Download archive</a>
</p>
Jellyfin Android TV is a Jellyfin client for Android TV, nVidia Shield, and Amazon Fire TV devices. We welcome all contributions and pull requests! If you have a larger feature in mind please open an issue so we can discuss the implementation before you start. Translations can be improved very easily from our <a href="https://translate.jellyfin.org/projects/jellyfin/jellyfin-androidtv">Weblate</a> instance. Look through the following graphic to see if your native language could use some work!
Jellyfin Android TV is a Jellyfin client for Android TV, Nvidia Shield, and Amazon Fire TV devices.
We welcome all contributions and pull requests! If you have a larger feature in mind please open an
issue so we can discuss the implementation before you start.
<a href="https://translate.jellyfin.org/engage/jellyfin/?utm_source=widget">
<img src="https://translate.jellyfin.org/widgets/jellyfin/-/jellyfin-androidtv/multi-auto.svg" alt="Detailed Translation Status"/>
## Translating
Translations can be improved very easily from our
[Weblate](https://translate.jellyfin.org/projects/jellyfin-android/jellyfin-androidtv) instance.
Look through the following graphic to see if your native language could use some work!
<a href="https://translate.jellyfin.org/engage/jellyfin-android/">
<img alt="Detailed Translation Status" src="https://translate.jellyfin.org/widgets/jellyfin-android/-/jellyfin-androidtv/multi-auto.svg"/>
</a>
## Build Process
### Dependencies
- Android Studio
### Build
1. Clone or download this repository
```sh
git clone https://github.com/jellyfin/jellyfin-androidtv.git
cd jellyfin-androidtv
```
2. Open the project in Android Studio and run it from there or build an APK directly through Gradle:
```sh
./gradlew assembleDebug
```
Add the Android SDK to your PATH environment variable or create the ANDROID_SDK_ROOT variable for
this to work.
### Deploy to device/emulator
```sh
./gradlew installDebug
```
*You can also replace the "Debug" with "Release" to get an optimized release binary.*

21
android-lint.xml Normal file
View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<lint>
<issue id="BinaryOperationInTimber" severity="error" />
<issue id="ConvertToWebp" severity="warning" />
<issue id="DuplicateStrings" severity="ignore" />
<issue id="EasterEgg" severity="fatal" />
<issue id="ExtraTranslation" severity="warning" />
<issue id="FragmentTagUsage" severity="error" />
<issue id="GradleDependency" severity="ignore" />
<issue id="KotlinPropertyAccess" severity="warning" />
<issue id="LambdaLast" severity="warning" />
<issue id="LogNotTimber" severity="error" />
<issue id="MangledCRLF" severity="warning" />
<issue id="NegativeMargin" severity="warning" />
<issue id="NoHardKeywords" severity="warning" />
<issue id="Registered" severity="warning" />
<issue id="RequiredSize" severity="error" />
<issue id="Typos" severity="ignore" />
<issue id="UnknownNullness" severity="informational" />
<issue id="UnusedIds" severity="ignore" />
</lint>

View File

@@ -1,71 +0,0 @@
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
def version = "0.11.0"
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 905
versionName version
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
applicationIdSuffix ".debug"
debuggable true
}
}
}
dependencies {
def acraVersion = '5.4.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
// This is split like this because this is a modular gradle project on jitpack
// see https://github.com/jitpack/gradle-modular
// The split allows dependency substitution to work in the settings.gradle file,
// at least for the 'library' part. 'android' part is still broken somehow, but this
// is better than nothing.
implementation 'com.github.jellyfin.jellyfin-apiclient-java:android:master-SNAPSHOT'
implementation 'com.github.jellyfin.jellyfin-apiclient-java:library:master-SNAPSHOT'
implementation 'com.amazon.android:exoplayer:2.10.6'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.leanback:leanback:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.palette:palette:1.0.0'
implementation 'com.squareup.picasso:picasso:2.3.2'
implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.squareup.okhttp:okhttp:2.7.0'
implementation 'com.squareup.okhttp:okhttp-urlconnection:2.7.0'
implementation 'com.google.guava:guava:18.0'
implementation 'com.flaviofaria:kenburnsview:1.0.6'
implementation 'org.videolan.android:libvlc-all:3.1.12'
implementation "ch.acra:acra-http:$acraVersion"
implementation "ch.acra:acra-dialog:$acraVersion"
implementation "ch.acra:acra-limiter:$acraVersion"
testImplementation 'junit:junit:4.12'
implementation "androidx.core:core-ktx:1.1.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.tvprovider:tvprovider:1.0.0'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.2'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.2'
}
repositories {
mavenCentral()
}

169
app/build.gradle.kts Normal file
View File

@@ -0,0 +1,169 @@
plugins {
id("com.android.application")
kotlin("android")
kotlin("kapt")
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.aboutlibraries)
}
android {
namespace = "org.jellyfin.androidtv"
compileSdk = 31
defaultConfig {
minSdk = 21
targetSdk = 31
// Release version
applicationId = namespace
versionName = project.getVersionName()
versionCode = getVersionCode(versionName!!)
setProperty("archivesBaseName", "jellyfin-androidtv-v$versionName")
}
sourceSets["main"].java.srcDirs("src/main/kotlin")
sourceSets["test"].java.srcDirs("src/test/kotlin")
buildFeatures {
viewBinding = true
}
compileOptions {
isCoreLibraryDesugaringEnabled = true
}
buildTypes {
val release by getting {
isMinifyEnabled = false
// Set package names used in various XML files
resValue("string", "app_id", namespace!!)
resValue("string", "app_search_suggest_authority", "${namespace}.content")
resValue("string", "app_search_suggest_intent_data", "content://${namespace}.content/intent")
// Set flavored application name
resValue("string", "app_name", "@string/app_name_release")
buildConfigField("boolean", "DEVELOPMENT", "false")
}
val debug by getting {
// Use different application id to run release and debug at the same time
applicationIdSuffix = ".debug"
// Set package names used in various XML files
resValue("string", "app_id", namespace + applicationIdSuffix)
resValue("string", "app_search_suggest_authority", "${namespace + applicationIdSuffix}.content")
resValue("string", "app_search_suggest_intent_data", "content://${namespace + applicationIdSuffix}.content/intent")
// Set flavored application name
resValue("string", "app_name", "@string/app_name_debug")
buildConfigField("boolean", "DEVELOPMENT", (defaultConfig.versionCode!! < 100).toString())
}
}
lint {
lintConfig = file("$rootDir/android-lint.xml")
abortOnError = false
sarifReport = true
checkDependencies = true
}
testOptions.unitTests.all {
it.useJUnitPlatform()
}
}
aboutLibraries {
// Remove the "generated" timestamp to allow for reproducible builds
excludeFields = arrayOf("generated")
}
val versionTxt by tasks.registering {
val path = buildDir.resolve("version.txt")
doLast {
val versionString = "v${android.defaultConfig.versionName}=${android.defaultConfig.versionCode}"
logger.info("Writing [$versionString] to $path")
path.writeText("$versionString\n")
}
}
dependencies {
// Jellyfin
implementation(projects.playback)
implementation(projects.preference)
implementation(libs.jellyfin.apiclient)
implementation(libs.jellyfin.sdk) {
// Change version if desired
val sdkVersion = findProperty("sdk.version")?.toString()
when (sdkVersion) {
"local" -> version { strictly("latest-SNAPSHOT") }
"snapshot" -> version { strictly("master-SNAPSHOT") }
"unstable-snapshot" -> version { strictly("openapi-unstable-SNAPSHOT") }
}
}
// Kotlin
implementation(libs.kotlinx.coroutines)
implementation(libs.kotlinx.serialization.json)
// Android(x)
implementation(libs.androidx.core)
implementation(libs.androidx.activity)
implementation(libs.androidx.fragment)
implementation(libs.androidx.leanback.core)
implementation(libs.androidx.leanback.preference)
implementation(libs.androidx.preference)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.tvprovider)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.recyclerview)
implementation(libs.androidx.work.runtime)
implementation(libs.bundles.androidx.lifecycle)
implementation(libs.androidx.window)
implementation(libs.androidx.cardview)
implementation(libs.androidx.startup)
// Dependency Injection
implementation(libs.bundles.koin)
// GSON
implementation(libs.gson)
// Media players
implementation(libs.exoplayer)
implementation(libs.jellyfin.exoplayer.ffmpegextension)
implementation(libs.libvlc)
// Markdown
implementation(libs.bundles.markwon)
// Image utility
implementation(libs.glide.core)
kapt(libs.glide.compiler)
implementation(libs.kenburnsview)
// Crash Reporting
implementation(libs.bundles.acra)
// Licenses
implementation(libs.aboutlibraries)
// Logging
implementation(libs.timber)
implementation(libs.slf4j.timber)
// Debugging
if (getProperty("leakcanary.enable")?.toBoolean() == true)
debugImplementation(libs.leakcanary)
// Compatibility (desugaring)
coreLibraryDesugaring(libs.android.desugar)
// Testing
testImplementation(libs.kotest.runner.junit5)
testImplementation(libs.kotest.assertions)
testImplementation(libs.mockk)
}

View File

@@ -1,17 +0,0 @@
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in C:\Users\Eric\AppData\Local\Android\android-sdk/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the proguardFiles
# directive in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="logo_gradient_start">#F2364D</color>
<color name="logo_gradient_stop">#FDC92F</color>
<color name="logo_background">#0A0A0A</color>
<color name="logo_text">#FFFFFF</color>
</resources>

View File

@@ -1,19 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="org.jellyfin.androidtv" >
package="org.jellyfin.androidtv"
android:installLocation="auto">
<!-- Android TV Integration -->
<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
<!-- AccountManager permissions -->
<uses-permission
android:name="android.permission.AUTHENTICATE_ACCOUNTS"
android:maxSdkVersion="22" />
<uses-permission
android:name="android.permission.GET_ACCOUNTS"
android:maxSdkVersion="22" />
<uses-permission
android:name="android.permission.MANAGE_ACCOUNTS"
android:maxSdkVersion="22" />
<!-- Generic permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission
android:name="android.permission.ACCESS_WIFI_STATE"
tools:ignore="LeanbackUsesWifi" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- Device feature requirements -->
<uses-feature
android:name="android.software.leanback"
android:required="false" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<!-- Needed for ChannelManager on older devices (< API 23) -->
<uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
@@ -22,71 +39,166 @@
android:required="false" />
<application
android:name=".TvApp"
android:banner="@drawable/app_logo"
android:icon="@drawable/app_icon_large"
android:name=".JellyfinApplication"
android:allowBackup="true"
android:appCategory="video"
android:banner="@drawable/app_banner"
android:dataExtractionRules="@xml/backup_rules"
android:fullBackupContent="@xml/backup_content"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:largeHeap="true"
android:roundIcon="@drawable/app_icon_round"
android:theme="@style/Theme.Jellyfin"
android:allowBackup="false"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
android:usesCleartextTraffic="true">
<service
android:name=".auth.service.AuthenticatorService"
android:exported="false">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator" />
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator" />
</service>
<service
android:name=".integration.dream.LibraryDreamService"
android:exported="true"
android:permission="android.permission.BIND_DREAM_SERVICE">
<intent-filter>
<action android:name="android.service.dreams.DreamService" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</service>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
android:initOrder="1000"
tools:node="merge">
<meta-data
android:name="org.jellyfin.androidtv.LogInitializer"
android:value="androidx.startup" />
<meta-data
android:name="org.jellyfin.androidtv.di.KoinInitializer"
android:value="androidx.startup" />
<meta-data
android:name="org.jellyfin.androidtv.SessionInitializer"
android:value="androidx.startup" />
<meta-data
android:name="org.jellyfin.androidtv.ProcessLifecycleInitializer"
android:value="androidx.startup" />
</provider>
<provider
android:name=".integration.MediaContentProvider"
android:authorities="${applicationId}.content"
android:exported="true"
android:initOrder="10" />
<activity
android:name=".browsing.MainActivity"
android:label="@string/app_name"
android:logo="@drawable/app_logo"
android:name=".ui.browsing.MainActivity"
android:screenOrientation="landscape" />
<activity
android:name=".startup.StartupActivity"
android:label="@string/app_name"
android:logo="@drawable/app_logo"
android:noHistory="true">
android:name=".ui.startup.StartupActivity"
android:exported="true"
android:noHistory="true"
android:screenOrientation="landscape"
android:windowSoftInputMode="adjustNothing">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.SEARCH" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.LEANBACK_LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".startup.SelectUserActivity"
android:label="@string/title_activity_select_user" />
<activity
android:name=".playback.PlaybackOverlayActivity"
android:label="PlaybackOverlayActivity" />
<activity android:name=".browsing.GenericFolderActivity" />
<activity android:name=".browsing.UserViewActivity" />
<activity android:name=".startup.SelectServerActivity" />
<activity android:name=".browsing.CollectionActivity" />
<activity android:name=".browsing.ByLetterActivity" />
<activity android:name=".browsing.ByGenreActivity" />
<activity android:name=".settings.SettingsActivity" />
<activity android:name=".browsing.SuggestedMoviesActivity" />
<activity android:name=".browsing.BrowsePersonsActivity" />
<activity android:name=".search.SearchActivity" />
<activity android:name=".details.FullDetailsActivity" />
<activity android:name=".livetv.LiveTvGuideActivity" />
<activity android:name=".browsing.GenericGridActivity" />
<activity android:name=".browsing.BrowseRecordingsActivity" />
<activity android:name=".browsing.BrowseScheduleActivity" />
<activity android:name=".details.PhotoPlayerActivity" />
<activity android:name=".details.ItemListActivity" />
<activity android:name=".playback.AudioNowPlayingActivity" />
<activity android:name=".playback.ExternalPlayerActivity" />
<activity
android:name=".startup.DpadPwActivity"
android:label="@string/title_activity_dpad_pw" >
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<receiver android:name=".util.RemoteControlReceiver">
<intent-filter>
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
<activity-alias
android:name=".startup.StartupActivity"
android:targetActivity=".ui.startup.StartupActivity" />
<activity
android:name=".details.ExpandedTextActivity"
android:label="@string/title_activity_expanded_text" />
android:name=".ui.playback.PlaybackOverlayActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.browsing.GenericFolderActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.browsing.UserViewActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.browsing.CollectionActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.browsing.GroupedItemsActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.preference.PreferencesActivity"
android:theme="@style/Theme.Jellyfin.Preferences" />
<activity
android:name=".ui.browsing.SuggestedMoviesActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.search.SearchActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.itemdetail.FullDetailsActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.livetv.LiveTvGuideActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.browsing.GenericGridActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.browsing.BrowseRecordingsActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.browsing.BrowseScheduleActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.itemdetail.PhotoPlayerActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.itemdetail.ItemListActivity"
android:screenOrientation="landscape" />
<activity
android:name=".ui.playback.AudioNowPlayingActivity"
android:screenOrientation="landscape" />
<activity android:name=".ui.playback.ExternalPlayerActivity" />
<activity
android:name=".ui.playback.nextup.NextUpActivity"
android:noHistory="true"
android:screenOrientation="landscape" />
<!-- Playback Rewrite - Temporary -->
<activity android:name=".ui.playback.rewrite.PlaybackForwardingActivity" />
</application>
</manifest>

View File

@@ -0,0 +1,72 @@
package org.jellyfin.androidtv
import android.app.Application
import android.content.Context
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.work.BackoffPolicy
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.PeriodicWorkRequestBuilder
import androidx.work.WorkManager
import androidx.work.await
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.acra.ACRA
import org.jellyfin.androidtv.data.eventhandling.SocketHandler
import org.jellyfin.androidtv.data.repository.NotificationsRepository
import org.jellyfin.androidtv.integration.LeanbackChannelWorker
import org.jellyfin.androidtv.telemetry.TelemetryService
import org.jellyfin.androidtv.util.AutoBitrate
import org.koin.android.ext.android.inject
import java.util.concurrent.TimeUnit
@Suppress("unused")
class JellyfinApplication : Application() {
override fun onCreate() {
super.onCreate()
// Don't run in ACRA service
if (ACRA.isACRASenderServiceProcess()) return
val notificationsRepository by inject<NotificationsRepository>()
notificationsRepository.addDefaultNotifications()
}
/**
* Called from the StartupActivity when the user session is started.
*/
suspend fun onSessionStart() = withContext(Dispatchers.IO) {
val workManager by inject<WorkManager>()
val autoBitrate by inject<AutoBitrate>()
val socketListener by inject<SocketHandler>()
// Update background worker
launch {
// Cancel all current workers
workManager.cancelAllWork().await()
// Recreate periodic workers
workManager.enqueueUniquePeriodicWork(
LeanbackChannelWorker.PERIODIC_UPDATE_REQUEST_NAME,
ExistingPeriodicWorkPolicy.REPLACE,
PeriodicWorkRequestBuilder<LeanbackChannelWorker>(1, TimeUnit.HOURS)
.setBackoffCriteria(BackoffPolicy.LINEAR, 10, TimeUnit.MINUTES)
.build()
).await()
}
// Update WebSockets
launch { socketListener.updateSession() }
// Detect auto bitrate
// running in a different scope to prevent slow startups
ProcessLifecycleOwner.get().lifecycleScope.launch { autoBitrate.detect() }
}
override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base)
TelemetryService.init(this)
}
}

View File

@@ -0,0 +1,22 @@
package org.jellyfin.androidtv
import android.content.Context
import android.util.Log
import com.bumptech.glide.GlideBuilder
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.module.AppGlideModule
import com.bumptech.glide.request.RequestOptions
@GlideModule
class JellyfinGlideModule : AppGlideModule() {
override fun applyOptions(context: Context, builder: GlideBuilder): Unit = with(builder) {
setDefaultRequestOptions(
// Set default disk cache strategy
RequestOptions().diskCacheStrategy(DiskCacheStrategy.RESOURCE)
)
// Silence image load errors
setLogLevel(Log.ERROR)
}
}

View File

@@ -0,0 +1,28 @@
package org.jellyfin.androidtv
import android.content.Context
import androidx.startup.Initializer
import timber.log.Timber
class LogInitializer : Initializer<Unit> {
override fun create(context: Context) {
// Enable improved logging for leaking resources
// https://wh0.github.io/2020/08/12/closeguard.html
if (BuildConfig.DEBUG) {
try {
Class.forName("dalvik.system.CloseGuard")
.getMethod("setEnabled", Boolean::class.javaPrimitiveType)
.invoke(null, true)
} catch (e: ReflectiveOperationException) {
@Suppress("TooGenericExceptionThrown")
throw RuntimeException(e)
}
}
// Initialize the logging library
Timber.plant(Timber.DebugTree())
Timber.i("Debug tree planted")
}
override fun dependencies() = emptyList<Class<out Initializer<*>>>()
}

View File

@@ -0,0 +1,50 @@
package org.jellyfin.androidtv
import android.app.Application
import android.content.Context
import androidx.lifecycle.DefaultLifecycleObserver
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.startup.AppInitializer
import androidx.startup.Initializer
import kotlinx.coroutines.launch
import org.jellyfin.androidtv.auth.repository.SessionRepository
import org.jellyfin.androidtv.di.KoinInitializer
import timber.log.Timber
@Suppress("unused")
class ProcessLifecycleInitializer : Initializer<Unit> {
override fun create(context: Context) {
val koin = AppInitializer.getInstance(context)
.initializeComponent(KoinInitializer::class.java)
.koin
// Register application lifecycle events
ProcessLifecycleOwner.get().lifecycle.addObserver(object : DefaultLifecycleObserver {
/**
* Called by the Process Lifecycle when the app is created. It is called after [onCreate].
*/
override fun onCreate(owner: LifecycleOwner) {
// Register activity lifecycle callbacks
val callbacks = koin.getAll<Application.ActivityLifecycleCallbacks>()
Timber.i("Registering ${callbacks.size} ActivityLifecycleCallbacks")
val app = context.applicationContext as Application
callbacks.forEach { callback -> app.registerActivityLifecycleCallbacks(callback) }
}
/**
* Called by the Process Lifecycle when the app is activated in the foreground (activity opened).
*/
override fun onStart(owner: LifecycleOwner) {
Timber.i("Process lifecycle started")
owner.lifecycleScope.launch {
koin.get<SessionRepository>().restoreSession()
}
}
})
}
override fun dependencies() = listOf(KoinInitializer::class.java)
}

View File

@@ -0,0 +1,26 @@
package org.jellyfin.androidtv
import android.content.Context
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.startup.AppInitializer
import androidx.startup.Initializer
import kotlinx.coroutines.launch
import org.jellyfin.androidtv.auth.repository.SessionRepository
import org.jellyfin.androidtv.di.KoinInitializer
@Suppress("unused")
class SessionInitializer : Initializer<Unit> {
override fun create(context: Context) {
val koin = AppInitializer.getInstance(context)
.initializeComponent(KoinInitializer::class.java)
.koin
// Restore system session
ProcessLifecycleOwner.get().lifecycleScope.launch {
koin.get<SessionRepository>().restoreSession()
}
}
override fun dependencies() = listOf(KoinInitializer::class.java)
}

View File

@@ -1,578 +0,0 @@
package org.jellyfin.androidtv;
import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.media.AudioManager;
import android.preference.PreferenceManager;
import org.acra.ACRA;
import org.acra.annotation.AcraCore;
import org.acra.annotation.AcraDialog;
import org.acra.annotation.AcraHttpSender;
import org.acra.annotation.AcraLimiter;
import org.acra.sender.HttpSender;
import org.jellyfin.androidtv.base.BaseActivity;
import org.jellyfin.androidtv.livetv.TvManager;
import org.jellyfin.androidtv.model.DisplayPriorityType;
import org.jellyfin.androidtv.model.LogonCredentials;
import org.jellyfin.androidtv.playback.ExternalPlayerActivity;
import org.jellyfin.androidtv.playback.MediaManager;
import org.jellyfin.androidtv.playback.PlaybackController;
import org.jellyfin.androidtv.playback.PlaybackManager;
import org.jellyfin.androidtv.playback.PlaybackOverlayActivity;
import org.jellyfin.androidtv.search.SearchActivity;
import org.jellyfin.androidtv.util.DeviceUtils;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.apiclient.interaction.ApiClient;
import org.jellyfin.apiclient.interaction.EmptyResponse;
import org.jellyfin.apiclient.interaction.IConnectionManager;
import org.jellyfin.apiclient.interaction.Response;
import org.jellyfin.apiclient.interaction.VolleyHttpClient;
import org.jellyfin.apiclient.logging.AndroidLogger;
import org.jellyfin.apiclient.model.configuration.ServerConfiguration;
import org.jellyfin.apiclient.model.dto.BaseItemDto;
import org.jellyfin.apiclient.model.dto.BaseItemType;
import org.jellyfin.apiclient.model.dto.UserDto;
import org.jellyfin.apiclient.model.entities.DisplayPreferences;
import org.jellyfin.apiclient.model.logging.ILogger;
import org.jellyfin.apiclient.model.serialization.GsonJsonSerializer;
import java.util.Calendar;
import java.util.HashMap;
import androidx.core.content.ContextCompat;
import androidx.palette.graphics.Palette;
@AcraCore(buildConfigClass = BuildConfig.class)
@AcraHttpSender(
uri = "https://collector.tracepot.com/a2eda9d9",
httpMethod = HttpSender.Method.POST
)
@AcraDialog(
resTitle = R.string.acra_dialog_title,
resText = R.string.acra_dialog_text,
resTheme = R.style.Theme_Jellyfin
)
@AcraLimiter
public class TvApp extends Application {
// The minimum supported server version. Trying to connect to an older server will display an error.
public static final String MINIMUM_SERVER_VERSION = "10.3.0";
public static final String CREDENTIALS_PATH = "org.jellyfin.androidtv.login.json";
public static final int LIVE_TV_GUIDE_OPTION_ID = 1000;
public static final int LIVE_TV_RECORDINGS_OPTION_ID = 2000;
public static final int VIDEO_QUEUE_OPTION_ID = 3000;
public static final int LIVE_TV_SCHEDULE_OPTION_ID = 4000;
public static final int LIVE_TV_SERIES_OPTION_ID = 5000;
private static final String TAG = "Jellyfin-AndroidTV";
private ILogger logger;
private IConnectionManager connectionManager;
private PlaybackManager playbackManager;
private GsonJsonSerializer serializer;
private static TvApp app;
private UserDto currentUser;
private BaseItemDto currentPlayingItem;
private BaseItemDto lastPlayedItem;
private PlaybackController playbackController;
private ApiClient loginApiClient;
private AudioManager audioManager;
private VolleyHttpClient httpClient;
private int autoBitrate;
private String directItemId;
private Typeface roboto;
private HashMap<String, DisplayPreferences> displayPrefsCache = new HashMap<>();
private String lastDeletedItemId = "";
private ServerConfiguration serverConfiguration;
private int maxRemoteBitrate = -1;
private Calendar lastPlayback = Calendar.getInstance();
private Calendar lastMoviePlayback = Calendar.getInstance();
private Calendar lastTvPlayback = Calendar.getInstance();
private Calendar lastLibraryChange = Calendar.getInstance();
private long lastVideoQueueChange = System.currentTimeMillis();
private long lastFavoriteUpdate = System.currentTimeMillis();
private long lastMusicPlayback = System.currentTimeMillis();
private long lastUserInteraction = System.currentTimeMillis();
private GradientDrawable currentBackgroundGradient;
private boolean audioMuted;
private boolean playingIntros;
private DisplayPriorityType displayPriority = DisplayPriorityType.Movies;
private BaseActivity currentActivity;
private LogonCredentials configuredAutoCredentials;
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
ACRA.init(this);
}
@Override
public void onCreate() {
super.onCreate();
logger = new AndroidLogger(TAG);
app = (TvApp) getApplicationContext();
audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
roboto = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Light.ttf");
setCurrentBackgroundGradient(new int[] {ContextCompat.getColor(this, R.color.lb_default_brand_color_dark), ContextCompat.getColor(this, R.color.lb_default_brand_color)});
logger.Info("Application object created");
}
public static TvApp getApplication() {
return app;
}
public ILogger getLogger() {
return logger;
}
public void setLogger(ILogger value) {
logger = value;
}
public Typeface getDefaultFont() { return roboto; }
public IConnectionManager getConnectionManager() {
return connectionManager;
}
public void setConnectionManager(IConnectionManager connectionManager) {
this.connectionManager = connectionManager;
}
public UserDto getCurrentUser() {
return currentUser;
}
public void setCurrentUser(UserDto currentUser) {
this.currentUser = currentUser;
TvManager.clearCache();
this.displayPrefsCache = new HashMap<>();
}
public GsonJsonSerializer getSerializer() {
return serializer;
}
public void setSerializer(GsonJsonSerializer serializer) {
this.serializer = serializer;
}
public ApiClient getApiClient() {
return currentUser != null ? connectionManager.GetApiClient(currentUser) : null;
}
public BaseItemDto getCurrentPlayingItem() {
return currentPlayingItem;
}
public BaseActivity getCurrentActivity() {
return currentActivity;
}
public void setCurrentActivity(BaseActivity activity) {
currentActivity = activity;
}
public void setCurrentPlayingItem(BaseItemDto currentPlayingItem) {
this.currentPlayingItem = currentPlayingItem;
}
public ApiClient getLoginApiClient() {
return loginApiClient;
}
public void setLoginApiClient(ApiClient loginApiClient) {
this.loginApiClient = loginApiClient;
}
public void setAudioMuted(boolean value) {
audioMuted = value;
getLogger().Info("Setting mute state to: "+audioMuted);
if (DeviceUtils.is60()) {
audioManager.adjustVolume(audioMuted ? AudioManager.ADJUST_MUTE : AudioManager.ADJUST_UNMUTE, 0);
} else {
audioManager.setStreamMute(AudioManager.STREAM_MUSIC, audioMuted);
}
}
public boolean isAudioMuted() { return audioMuted; }
public PlaybackController getPlaybackController() {
return playbackController;
}
public void setPlaybackController(PlaybackController playbackController) {
this.playbackController = playbackController;
}
public void showSearch(final Activity activity, boolean musicOnly) {
Intent intent = new Intent(activity, SearchActivity.class);
intent.putExtra("MusicOnly", musicOnly);
activity.startActivity(intent);
}
public void showMessage(String title, String msg) {
if (currentActivity != null) {
currentActivity.showMessage(title, msg);
}
}
public void showMessage(String title, String msg, int timeout, int iconResource) {
if (currentActivity != null) {
currentActivity.showMessage(title, msg, timeout, iconResource, null);
}
}
public LogonCredentials getConfiguredAutoCredentials() {
return configuredAutoCredentials;
}
public void setConfiguredAutoCredentials(LogonCredentials configuredAutoCredentials) {
this.configuredAutoCredentials = configuredAutoCredentials;
}
public SharedPreferences getPrefs() {
return PreferenceManager.getDefaultSharedPreferences(this);
}
public SharedPreferences getSystemPrefs() {
return getSharedPreferences("systemprefs", MODE_PRIVATE);
}
public String getConfigVersion() {
return getSystemPrefs().getString("sys_pref_config_version", "2");
}
public boolean getIsAutoLoginConfigured() {
return getPrefs().getString("pref_login_behavior", "0").equals("1") && getConfiguredAutoCredentials().getServerInfo().getId() != null;
}
public boolean useExternalPlayer(BaseItemType itemType) {
switch (itemType) {
case Movie:
case Episode:
case Video:
case Series:
case Recording:
return getPrefs().getString("pref_video_player", "auto").equals("external");
case TvChannel:
case Program:
return getPrefs().getBoolean("pref_live_tv_use_external", false);
default:
return false;
}
}
public Class getPlaybackActivityClass(BaseItemType itemType) {
return useExternalPlayer(itemType) ? ExternalPlayerActivity.class : PlaybackOverlayActivity.class;
}
public Calendar getLastMoviePlayback() {
return lastMoviePlayback.after(lastPlayback) ? lastMoviePlayback : lastPlayback;
}
public void setLastMoviePlayback(Calendar lastMoviePlayback) {
this.lastMoviePlayback = lastMoviePlayback;
this.lastPlayback = lastMoviePlayback;
}
public void setLastFavoriteUpdate(long time) { lastFavoriteUpdate = time; }
public long getLastFavoriteUpdate() { return lastFavoriteUpdate; }
public void setLastMusicPlayback(long time) { lastMusicPlayback = time; }
public long getLastMusicPlayback() { return lastMusicPlayback; }
public boolean directStreamLiveTv() { return getPrefs().getBoolean("pref_live_direct", true); }
public void setDirectStreamLiveTv(boolean value) { getPrefs().edit().putBoolean("pref_live_direct", value).commit(); }
public boolean useVlcForLiveTv() { return getPrefs().getBoolean("pref_enable_vlc_livetv", false); }
public int getResumePreroll() {
try {
return Integer.parseInt(getPrefs().getString("pref_resume_preroll","0")) * 1000;
} catch (Exception e) {
return 0;
}
}
public Calendar getLastTvPlayback() {
return lastTvPlayback.after(lastPlayback) ? lastTvPlayback : lastPlayback;
}
public void setLastTvPlayback(Calendar lastTvPlayback) {
this.lastTvPlayback = lastTvPlayback;
this.lastPlayback = lastTvPlayback;
}
public Calendar getLastLibraryChange() {
return lastLibraryChange;
}
public void setLastLibraryChange(Calendar lastLibraryChange) {
this.lastLibraryChange = lastLibraryChange;
}
public Calendar getLastPlayback() {
return lastPlayback;
}
public void setLastPlayback(Calendar lastPlayback) {
this.lastPlayback = lastPlayback;
}
public long getLastUserInteraction() {
return lastUserInteraction;
}
public void setLastUserInteraction(long lastUserInteraction) {
this.lastUserInteraction = lastUserInteraction;
}
public boolean canManageRecordings() {
return currentUser != null && currentUser.getPolicy().getEnableLiveTvManagement();
}
public PlaybackManager getPlaybackManager() {
return playbackManager;
}
public void setPlaybackManager(PlaybackManager playbackManager) {
this.playbackManager = playbackManager;
}
public Drawable getDrawableCompat(int id) {
// if (Build.VERSION.SDK_INT >= 21) {
// return getDrawable(id);
// }
return getResources().getDrawable(id);
}
public boolean isPlayingVideo() {
return playbackController != null && currentActivity != null && currentActivity instanceof PlaybackOverlayActivity;
}
public void stopPlayback() {
if (isPlayingVideo()) {
currentActivity.finish();
} else if (MediaManager.isPlayingAudio()) {
MediaManager.stopAudio();
}
}
public void pausePlayback() {
if (MediaManager.isPlayingAudio()) {
MediaManager.pauseAudio();
} else if (isPlayingVideo()) {
playbackController.playPause();
}
}
public void unPausePlayback() {
if (isPlayingVideo()) {
playbackController.playPause();
} else if (MediaManager.hasAudioQueueItems()) {
MediaManager.resumeAudio();
}
}
public void playbackNext() {
if (isPlayingVideo()) {
playbackController.next();
} else if (MediaManager.hasAudioQueueItems()) {
MediaManager.nextAudioItem();
}
}
public void playbackPrev() {
if (isPlayingVideo()) {
playbackController.prev();
} else if (MediaManager.hasAudioQueueItems()) {
MediaManager.prevAudioItem();
}
}
public void playbackSeek(int pos) {
if (isPlayingVideo()) {
playbackController.seek(pos);
}
}
public void playbackJump() {
if (isPlayingVideo()) {
playbackController.skip(30000);
}
}
public void playbackJumpBack() {
if (playbackController != null) {
playbackController.skip(-11000);
}
}
public DisplayPreferences getCachedDisplayPrefs(String key) {
return displayPrefsCache.containsKey(key) ? displayPrefsCache.get(key) : new DisplayPreferences();
}
public void updateDisplayPrefs(DisplayPreferences preferences) {
updateDisplayPrefs("ATV", preferences);
}
public void updateDisplayPrefs(String app, DisplayPreferences preferences) {
displayPrefsCache.put(preferences.getId(), preferences);
getApiClient().UpdateDisplayPreferencesAsync(preferences, getCurrentUser().getId(), app, new EmptyResponse());
logger.Debug("Display prefs updated for "+preferences.getId()+" isFavorite: "+preferences.getCustomPrefs().get("FavoriteOnly"));
}
public void getDisplayPrefsAsync(String key, Response<DisplayPreferences> response) {
getDisplayPrefsAsync(key, "ATV", response);
}
public void getDisplayPrefsAsync(final String key, String app, final Response<DisplayPreferences> outerResponse) {
if (displayPrefsCache.containsKey(key)) {
logger.Debug("Display prefs loaded from cache "+key);
outerResponse.onResponse(displayPrefsCache.get(key));
} else {
getApiClient().GetDisplayPreferencesAsync(key, getCurrentUser().getId(), app, new Response<DisplayPreferences>(){
@Override
public void onResponse(DisplayPreferences response) {
if (response.getSortBy() == null) response.setSortBy("SortName");
if (response.getCustomPrefs() == null) response.setCustomPrefs(new HashMap<String, String>());
displayPrefsCache.put(key, response);
logger.Debug("Display prefs loaded and saved in cache " + key);
outerResponse.onResponse(response);
}
@Override
public void onError(Exception exception) {
//Continue with defaults
logger.ErrorException("Unable to load display prefs ", exception);
DisplayPreferences prefs = new DisplayPreferences();
prefs.setId(key);
prefs.setSortBy("SortName");
prefs.setCustomPrefs(new HashMap<String, String>());
outerResponse.onResponse(prefs);
}
});
}
}
public int getAutoBitrate() {
return autoBitrate;
}
public void determineAutoBitrate() {
if (getApiClient() == null) return;
getApiClient().detectBitrate(new Response<Long>() {
@Override
public void onResponse(Long response) {
autoBitrate = response.intValue();
logger.Info("Auto bitrate set to: "+autoBitrate);
}
});
}
public String getDirectItemId() {
return directItemId;
}
public void setDirectItemId(String directItemId) {
this.directItemId = directItemId;
}
public String getLastDeletedItemId() {
return lastDeletedItemId;
}
public void setLastDeletedItemId(String lastDeletedItemId) {
this.lastDeletedItemId = lastDeletedItemId;
}
public VolleyHttpClient getHttpClient() {
return httpClient;
}
public void setHttpClient(VolleyHttpClient httpClient) {
this.httpClient = httpClient;
}
public BaseItemDto getLastPlayedItem() {
return lastPlayedItem;
}
public void setLastPlayedItem(BaseItemDto lastPlayedItem) {
this.lastPlayedItem = lastPlayedItem;
}
public long getLastVideoQueueChange() {
return lastVideoQueueChange;
}
public void setLastVideoQueueChange(long lastVideoQueueChange) {
this.lastVideoQueueChange = lastVideoQueueChange;
}
public boolean isPlayingIntros() {
return playingIntros;
}
public void setPlayingIntros(boolean playingIntros) {
this.playingIntros = playingIntros;
}
public ServerConfiguration getServerConfiguration() {
return serverConfiguration;
}
public int getServerBitrateLimit() { return maxRemoteBitrate > 0 ? maxRemoteBitrate : 100000000; }
public DisplayPriorityType getDisplayPriority() {
return displayPriority;
}
public void setDisplayPriority(DisplayPriorityType displayPriority) {
this.displayPriority = displayPriority;
}
public GradientDrawable getCurrentBackgroundGradient() {
return currentBackgroundGradient;
}
public void setCurrentBackground(Bitmap currentBackground) {
int[] colors = new int[2];
colors[0] = Utils.darker(Palette.from(currentBackground).generate().getMutedColor(ContextCompat.getColor(this, R.color.black_transparent)), .6f);
colors[1] = Utils.darker(colors[0], .1f);
setCurrentBackgroundGradient(colors);
}
private void setCurrentBackgroundGradient(int[] colors) {
currentBackgroundGradient = new GradientDrawable(GradientDrawable.Orientation.RIGHT_LEFT, colors);
currentBackgroundGradient.setCornerRadius(0f);
currentBackgroundGradient.setGradientCenter(.6f, .5f);
currentBackgroundGradient.setAlpha(200);
}
}

View File

@@ -0,0 +1,48 @@
package org.jellyfin.androidtv.auth.apiclient
import org.jellyfin.androidtv.auth.repository.Session
import org.jellyfin.androidtv.auth.store.AuthenticationStore
import org.jellyfin.androidtv.util.sdk.legacy
import org.jellyfin.apiclient.interaction.ApiClient
import org.jellyfin.apiclient.model.apiclient.ServerInfo
import org.jellyfin.sdk.model.DeviceInfo
import timber.log.Timber
class ApiBinder(
private val api: ApiClient,
private val authenticationStore: AuthenticationStore,
) {
fun updateSession(session: Session?, deviceInfo: DeviceInfo): Boolean {
@Suppress("TooGenericExceptionCaught")
val success = try {
updateSessionInternal(session, deviceInfo)
} catch (throwable: Throwable) {
Timber.e(throwable, "Unable to update legacy API session.")
false
}
return success
}
private fun updateSessionInternal(session: Session?, deviceInfo: DeviceInfo): Boolean {
if (session == null) return true
val server = authenticationStore.getServer(session.serverId)
if (server == null) {
Timber.e("Could not bind API because server ${session.serverId} was not found in the store.")
return false
}
api.device = deviceInfo.legacy()
api.SetAuthenticationInfo(session.accessToken, session.userId.toString())
api.EnableAutomaticNetworking(ServerInfo().apply {
id = session.serverId.toString()
name = server.name
address = server.address.removeSuffix("/")
userId = session.userId.toString()
accessToken = session.accessToken
})
return true
}
}

View File

@@ -0,0 +1,10 @@
package org.jellyfin.androidtv.auth.model
import java.util.UUID
data class AccountManagerAccount(
val id: UUID,
val server: UUID,
val name: String,
val accessToken: String? = null,
)

View File

@@ -0,0 +1,6 @@
package org.jellyfin.androidtv.auth.model
sealed class AuthenticateMethod
data class AutomaticAuthenticateMethod(val user: User) : AuthenticateMethod()
data class CredentialAuthenticateMethod(val username: String, val password: String = "") : AuthenticateMethod()
data class QuickConnectAuthenticateMethod(val secret: String) : AuthenticateMethod()

View File

@@ -0,0 +1,11 @@
package org.jellyfin.androidtv.auth.model
import org.jellyfin.androidtv.R
import org.jellyfin.androidtv.ui.preference.dsl.EnumDisplayOptions
enum class AuthenticationSortBy {
@EnumDisplayOptions(name = R.string.last_use)
LAST_USE,
@EnumDisplayOptions(name = R.string.alphabetical)
ALPHABETICAL
}

View File

@@ -0,0 +1,26 @@
@file:UseSerializers(UUIDSerializer::class)
package org.jellyfin.androidtv.auth.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers
import org.jellyfin.sdk.model.serializer.UUIDSerializer
import java.util.Date
import java.util.UUID
/**
* Locally stored server information. New properties require default values or deserialization will fail.
*/
@Serializable
data class AuthenticationStoreServer(
val name: String,
val address: String,
val version: String? = null,
@SerialName("login_disclaimer") val loginDisclaimer: String? = null,
@SerialName("splashscreen_enabled") val splashscreenEnabled: Boolean = false,
@SerialName("setup_completed") val setupCompleted: Boolean = true,
@SerialName("last_used") val lastUsed: Long = Date().time,
@SerialName("last_refreshed") val lastRefreshed: Long = Date().time,
val users: Map<UUID, AuthenticationStoreUser> = emptyMap(),
)

View File

@@ -0,0 +1,16 @@
package org.jellyfin.androidtv.auth.model
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
import java.util.Date
/**
* Locally stored user information. New properties require default values or deserialization will fail.
*/
@Serializable
data class AuthenticationStoreUser(
val name: String,
@SerialName("last_used") val lastUsed: Long = Date().time,
@SerialName("require_password") val requirePassword: Boolean = true,
@SerialName("image_tag") val imageTag: String? = null
)

View File

@@ -0,0 +1,8 @@
package org.jellyfin.androidtv.auth.model
sealed class LoginState
object AuthenticatingState : LoginState()
object RequireSignInState : LoginState()
object ServerUnavailableState : LoginState()
data class ServerVersionNotSupported(val server: Server) : LoginState()
object AuthenticatedState : LoginState()

View File

@@ -0,0 +1,23 @@
package org.jellyfin.androidtv.auth.model
sealed class QuickConnectState
/**
* State unknown untill first poll completed.
*/
object UnknownQuickConnectState : QuickConnectState()
/**
* Server does not have QuickConnect enabled.
*/
object UnavailableQuickConnectState : QuickConnectState()
/**
* Connection is pending.
*/
data class PendingQuickConnectState(val code: String) : QuickConnectState()
/**
* User connected.
*/
object ConnectedQuickConnectState : QuickConnectState()

View File

@@ -0,0 +1,35 @@
package org.jellyfin.androidtv.auth.model
import org.jellyfin.androidtv.auth.repository.ServerRepository
import org.jellyfin.sdk.model.ServerVersion
import java.util.Date
import java.util.UUID
/**
* Server model to use locally in place of ServerInfo model in ApiClient.
*/
data class Server(
var id: UUID,
var name: String,
var address: String,
val version: String? = null,
val loginDisclaimer: String? = null,
val splashscreenEnabled: Boolean = false,
val setupCompleted: Boolean = true,
var dateLastAccessed: Date = Date(0),
) {
private val serverVersion = version?.let(ServerVersion::fromString)
val versionSupported = serverVersion != null && serverVersion >= ServerRepository.minimumServerVersion
operator fun compareTo(other: ServerVersion): Int = serverVersion?.compareTo(other) ?: -1
override fun equals(other: Any?) = other is Server
&& id == other.id
&& address == other.address
override fun hashCode(): Int {
var result = id.hashCode()
result = 31 * result + address.hashCode()
return result
}
}

View File

@@ -0,0 +1,10 @@
package org.jellyfin.androidtv.auth.model
import org.jellyfin.sdk.discovery.RecommendedServerIssue
import org.jellyfin.sdk.model.api.PublicSystemInfo
import java.util.UUID
sealed class ServerAdditionState
data class ConnectingState(val address: String) : ServerAdditionState()
data class UnableToConnectState(val addressCandidates: Map<String, Collection<RecommendedServerIssue>>) : ServerAdditionState()
data class ConnectedState(val id: UUID, val publicInfo: PublicSystemInfo) : ServerAdditionState()

View File

@@ -0,0 +1,56 @@
package org.jellyfin.androidtv.auth.model
import java.util.UUID
/**
* User model used locally.
*/
sealed class User {
abstract val id: UUID
abstract val serverId: UUID
abstract val name: String
abstract val accessToken: String?
abstract val requirePassword: Boolean
abstract val imageTag: String?
abstract fun withToken(accessToken: String): User
override fun equals(other: Any?) = other is User
&& serverId == other.serverId
&& id == other.id
override fun hashCode(): Int {
var result = id.hashCode()
result = 31 * result + serverId.hashCode()
return result
}
}
/**
* Represents a user stored client side.
*/
data class PrivateUser(
override val id: UUID,
override val serverId: UUID,
override val name: String,
override val accessToken: String?,
override val requirePassword: Boolean,
override val imageTag: String?,
val lastUsed: Long,
) : User() {
override fun withToken(accessToken: String) = copy(accessToken = accessToken)
}
/**
* Represents a user stored server side. Found using the Public User endpoint.
*/
data class PublicUser(
override val id: UUID,
override val serverId: UUID,
override val name: String,
override val accessToken: String?,
override val requirePassword: Boolean,
override val imageTag: String?,
) : User() {
override fun withToken(accessToken: String) = copy(accessToken = accessToken)
}

View File

@@ -0,0 +1,203 @@
package org.jellyfin.androidtv.auth.repository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.emitAll
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.flowOf
import org.jellyfin.androidtv.auth.model.AccountManagerAccount
import org.jellyfin.androidtv.auth.model.AuthenticateMethod
import org.jellyfin.androidtv.auth.model.AuthenticatedState
import org.jellyfin.androidtv.auth.model.AuthenticatingState
import org.jellyfin.androidtv.auth.model.AuthenticationStoreUser
import org.jellyfin.androidtv.auth.model.AutomaticAuthenticateMethod
import org.jellyfin.androidtv.auth.model.CredentialAuthenticateMethod
import org.jellyfin.androidtv.auth.model.LoginState
import org.jellyfin.androidtv.auth.model.PrivateUser
import org.jellyfin.androidtv.auth.model.QuickConnectAuthenticateMethod
import org.jellyfin.androidtv.auth.model.RequireSignInState
import org.jellyfin.androidtv.auth.model.Server
import org.jellyfin.androidtv.auth.model.ServerUnavailableState
import org.jellyfin.androidtv.auth.model.ServerVersionNotSupported
import org.jellyfin.androidtv.auth.model.User
import org.jellyfin.androidtv.auth.store.AccountManagerStore
import org.jellyfin.androidtv.auth.store.AuthenticationPreferences
import org.jellyfin.androidtv.auth.store.AuthenticationStore
import org.jellyfin.androidtv.util.ImageUtils
import org.jellyfin.androidtv.util.sdk.forUser
import org.jellyfin.sdk.Jellyfin
import org.jellyfin.sdk.api.client.ApiClient
import org.jellyfin.sdk.api.client.exception.ApiClientException
import org.jellyfin.sdk.api.client.exception.TimeoutException
import org.jellyfin.sdk.api.client.extensions.authenticateUserByName
import org.jellyfin.sdk.api.client.extensions.authenticateWithQuickConnect
import org.jellyfin.sdk.api.client.extensions.imageApi
import org.jellyfin.sdk.api.client.extensions.userApi
import org.jellyfin.sdk.model.DeviceInfo
import org.jellyfin.sdk.model.api.AuthenticationResult
import org.jellyfin.sdk.model.api.ImageType
import org.jellyfin.sdk.model.api.UserDto
import timber.log.Timber
import java.util.Date
/**
* Repository to manage authentication of the user in the app.
*/
interface AuthenticationRepository {
fun authenticate(server: Server, method: AuthenticateMethod): Flow<LoginState>
fun logout(user: User): Boolean
fun getUserImageUrl(server: Server, user: User): String?
}
class AuthenticationRepositoryImpl(
private val jellyfin: Jellyfin,
private val sessionRepository: SessionRepository,
private val accountManagerStore: AccountManagerStore,
private val authenticationStore: AuthenticationStore,
private val userApiClient: ApiClient,
private val authenticationPreferences: AuthenticationPreferences,
private val defaultDeviceInfo: DeviceInfo,
) : AuthenticationRepository {
override fun authenticate(server: Server, method: AuthenticateMethod): Flow<LoginState> {
// Check server version first
if (!server.versionSupported) return flowOf(ServerVersionNotSupported(server))
return when (method) {
is AutomaticAuthenticateMethod -> authenticateAutomatic(server, method.user)
is CredentialAuthenticateMethod -> authenticateCredential(server, method.username, method.password)
is QuickConnectAuthenticateMethod -> authenticateQuickConnect(server, method.secret)
}
}
private fun authenticateAutomatic(server: Server, user: User): Flow<LoginState> {
Timber.d("Authenticating user %s", user)
// Automatic logic is disabled when the always authenticate preference is enabled
if (authenticationPreferences[AuthenticationPreferences.alwaysAuthenticate]) return flowOf(RequireSignInState)
val account = accountManagerStore.getAccount(user.id)
// Try login with access token
return if (account?.accessToken != null) authenticateToken(server, user.withToken(account.accessToken))
// Try login without password
else if (!user.requirePassword) authenticateCredential(server, user.name, "")
// Require login
else flowOf(RequireSignInState)
}
private fun authenticateCredential(server: Server, username: String, password: String) = flow {
val api = jellyfin.createApi(server.address, deviceInfo = defaultDeviceInfo.forUser(username))
val result = try {
val response = api.userApi.authenticateUserByName(username, password)
response.content
} catch (err: TimeoutException) {
Timber.e(err, "Failed to connect to server trying to sign in $username")
emit(ServerUnavailableState)
return@flow
} catch (err: ApiClientException) {
Timber.e(err, "Unable to sign in as $username")
emit(RequireSignInState)
return@flow
}
emitAll(authenticateAuthenticationResult(server, result))
}
private fun authenticateQuickConnect(server: Server, secret: String) = flow {
val api = jellyfin.createApi(server.address, deviceInfo = defaultDeviceInfo)
val result = try {
val response = api.userApi.authenticateWithQuickConnect(secret)
response.content
} catch (err: ApiClientException) {
Timber.e(err, "Unable to sign in with Quick Connect secret")
emit(RequireSignInState)
return@flow
}
emitAll(authenticateAuthenticationResult(server, result))
}
private fun authenticateAuthenticationResult(server: Server, result: AuthenticationResult) = flow {
val accessToken = result.accessToken ?:return@flow emit(RequireSignInState)
val userInfo = result.user ?: return@flow emit(RequireSignInState)
val user = PrivateUser(
id = userInfo.id,
serverId = server.id,
name = userInfo.name!!,
accessToken = result.accessToken,
requirePassword = userInfo.hasPassword,
imageTag = userInfo.primaryImageTag,
lastUsed = Date().time,
)
authenticateFinish(server, userInfo, accessToken)
val success = setActiveSession(user, server)
if (success) emit(AuthenticatedState)
else emit(RequireSignInState)
}
private fun authenticateToken(server: Server, user: User) = flow {
emit(AuthenticatingState)
val success = setActiveSession(user, server)
if (!success) {
emit(RequireSignInState)
} else try {
// Update user info
val userInfo by userApiClient.userApi.getCurrentUser()
authenticateFinish(server, userInfo, user.accessToken.orEmpty())
emit(AuthenticatedState)
} catch (err: ApiClientException) {
Timber.e(err, "Unable to get current user data")
emit(RequireSignInState)
}
}
private suspend fun authenticateFinish(server: Server, userInfo: UserDto, accessToken: String) {
val currentUser = authenticationStore.getUser(server.id, userInfo.id)
val updatedUser = currentUser?.copy(
name = userInfo.name!!,
lastUsed = Date().time,
requirePassword = userInfo.hasPassword,
imageTag = userInfo.primaryImageTag
) ?: AuthenticationStoreUser(
name = userInfo.name!!,
requirePassword = userInfo.hasPassword,
imageTag = userInfo.primaryImageTag
)
authenticationStore.putUser(server.id, userInfo.id, updatedUser)
val accountManagerAccount = AccountManagerAccount(userInfo.id, server.id, updatedUser.name, accessToken)
accountManagerStore.putAccount(accountManagerAccount)
}
private suspend fun setActiveSession(user: User, server: Server): Boolean {
val authenticated = sessionRepository.switchCurrentSession(user.id)
if (authenticated) {
// Update last use in store
authenticationStore.getServer(server.id)?.let { storedServer ->
authenticationStore.putServer(server.id, storedServer.copy(lastUsed = Date().time))
}
authenticationStore.getUser(server.id, user.id)?.let { storedUser ->
authenticationStore.putUser(server.id, user.id, storedUser.copy(lastUsed = Date().time))
}
}
return authenticated
}
override fun logout(user: User): Boolean {
val authInfo = accountManagerStore.getAccount(user.id) ?: return false
return accountManagerStore.removeAccount(authInfo)
}
override fun getUserImageUrl(server: Server, user: User): String? = user.imageTag?.let { tag ->
jellyfin.createApi(server.address).imageApi.getUserImageUrl(
userId = user.id,
tag = tag,
imageType = ImageType.PRIMARY,
maxHeight = ImageUtils.MAX_PRIMARY_IMAGE_HEIGHT
)
}
}

View File

@@ -0,0 +1,243 @@
package org.jellyfin.androidtv.auth.repository
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.map
import org.jellyfin.androidtv.auth.model.AuthenticationStoreServer
import org.jellyfin.androidtv.auth.model.ConnectedState
import org.jellyfin.androidtv.auth.model.ConnectingState
import org.jellyfin.androidtv.auth.model.Server
import org.jellyfin.androidtv.auth.model.ServerAdditionState
import org.jellyfin.androidtv.auth.model.UnableToConnectState
import org.jellyfin.androidtv.auth.store.AuthenticationStore
import org.jellyfin.androidtv.util.sdk.toServer
import org.jellyfin.sdk.Jellyfin
import org.jellyfin.sdk.api.client.ApiClient
import org.jellyfin.sdk.api.client.exception.ApiClientException
import org.jellyfin.sdk.api.client.exception.InvalidContentException
import org.jellyfin.sdk.api.client.extensions.brandingApi
import org.jellyfin.sdk.api.client.extensions.systemApi
import org.jellyfin.sdk.discovery.RecommendedServerInfo
import org.jellyfin.sdk.discovery.RecommendedServerInfoScore
import org.jellyfin.sdk.model.api.BrandingOptions
import org.jellyfin.sdk.model.api.ServerDiscoveryInfo
import org.jellyfin.sdk.model.serializer.toUUID
import timber.log.Timber
import java.util.Date
import java.util.UUID
/**
* Repository to maintain servers.
*/
interface ServerRepository {
val storedServers: StateFlow<List<Server>>
val discoveredServers: StateFlow<List<Server>>
suspend fun loadStoredServers()
suspend fun loadDiscoveryServers()
fun addServer(address: String): Flow<ServerAdditionState>
suspend fun getServer(id: UUID): Server?
suspend fun updateServer(server: Server): Boolean
suspend fun deleteServer(server: UUID): Boolean
companion object {
val minimumServerVersion = Jellyfin.minimumVersion.copy(build = null)
}
}
class ServerRepositoryImpl(
private val jellyfin: Jellyfin,
private val authenticationStore: AuthenticationStore,
) : ServerRepository {
// State
private val _storedServers = MutableStateFlow(emptyList<Server>())
override val storedServers = _storedServers.asStateFlow()
private val _discoveredServers = MutableStateFlow(emptyList<Server>())
override val discoveredServers = _discoveredServers.asStateFlow()
// Loading data
override suspend fun loadStoredServers() {
authenticationStore.getServers()
.map { (id, entry) -> entry.asServer(id) }
.sortedWith(compareByDescending<Server> { it.dateLastAccessed }.thenBy { it.name })
.let { _storedServers.emit(it) }
}
override suspend fun loadDiscoveryServers() {
val servers = mutableListOf<Server>()
jellyfin.discovery
.discoverLocalServers()
.map(ServerDiscoveryInfo::toServer)
.collect { server ->
servers += server
_discoveredServers.emit(servers.toList())
}
}
// Mutating data
override fun addServer(address: String): Flow<ServerAdditionState> = flow {
Timber.d("Adding server %s", address)
emit(ConnectingState(address))
val addressCandidates = jellyfin.discovery.getAddressCandidates(address)
Timber.d("Found ${addressCandidates.size} candidates")
val goodRecommendations = mutableListOf<RecommendedServerInfo>()
val badRecommendations = mutableListOf<RecommendedServerInfo>()
val greatRecommendaton = jellyfin.discovery.getRecommendedServers(addressCandidates).firstOrNull { recommendedServer ->
when (recommendedServer.score) {
RecommendedServerInfoScore.GREAT -> true
RecommendedServerInfoScore.GOOD -> {
goodRecommendations += recommendedServer
false
}
else -> {
badRecommendations += recommendedServer
false
}
}
}
Timber.d(buildString {
append("Recommendations: ")
if (greatRecommendaton == null) append(0)
else append(1)
append(" great, ")
append(goodRecommendations.size)
append(" good, ")
append(badRecommendations.size)
append(" bad")
})
val chosenRecommendation = greatRecommendaton ?: goodRecommendations.firstOrNull()
if (chosenRecommendation != null && chosenRecommendation.systemInfo.isSuccess) {
// Get system info
val systemInfo = chosenRecommendation.systemInfo.getOrThrow()
// Get branding info
val api = jellyfin.createApi(chosenRecommendation.address)
val branding = api.getBrandingOptionsOrDefault()
val id = systemInfo.id!!.toUUID()
val server = authenticationStore.getServer(id)?.copy(
name = systemInfo.serverName ?: "Jellyfin Server",
address = chosenRecommendation.address,
version = systemInfo.version,
loginDisclaimer = branding.loginDisclaimer,
splashscreenEnabled = branding.splashscreenEnabled,
setupCompleted = systemInfo.startupWizardCompleted ?: true,
lastUsed = Date().time
) ?: AuthenticationStoreServer(
name = systemInfo.serverName ?: "Jellyfin Server",
address = chosenRecommendation.address,
version = systemInfo.version,
loginDisclaimer = branding.loginDisclaimer,
splashscreenEnabled = branding.splashscreenEnabled,
setupCompleted = systemInfo.startupWizardCompleted ?: true,
)
authenticationStore.putServer(id, server)
loadStoredServers()
emit(ConnectedState(id, systemInfo))
} else {
// No great or good recommendations, only add bad recommendations
val addressCandidatesWithIssues = (badRecommendations + goodRecommendations)
.groupBy { it.address }
.mapValues { (_, entry) -> entry.flatMap { server -> server.issues } }
emit(UnableToConnectState(addressCandidatesWithIssues))
}
}
override suspend fun getServer(id: UUID): Server? {
val server = authenticationStore.getServer(id) ?: return null
val updatedServer = try {
updateServerInternal(id, server)
} catch (err: ApiClientException) {
Timber.e(err, "Unable to update server")
null
}
return (updatedServer ?: server).asServer(id)
}
override suspend fun updateServer(server: Server): Boolean {
// Only update existing servers
val serverInfo = authenticationStore.getServer(server.id) ?: return false
return try {
updateServerInternal(server.id, serverInfo) != null
} catch (err: ApiClientException) {
Timber.e(err, "Unable to update server")
false
}
}
private suspend fun updateServerInternal(id: UUID, server: AuthenticationStoreServer): AuthenticationStoreServer? {
val now = Date().time
// Only update every 10 minutes
if (now - server.lastRefreshed < 600000 && server.version != null) return null
val api = jellyfin.createApi(server.address)
// Get login disclaimer
val branding = api.getBrandingOptionsOrDefault()
val systemInfo by api.systemApi.getPublicSystemInfo()
val newServer = server.copy(
name = systemInfo.serverName ?: server.name,
version = systemInfo.version ?: server.version,
loginDisclaimer = branding.loginDisclaimer ?: server.loginDisclaimer,
splashscreenEnabled = branding.splashscreenEnabled,
setupCompleted = systemInfo.startupWizardCompleted ?: server.setupCompleted,
lastRefreshed = now
)
authenticationStore.putServer(id, newServer)
return newServer
}
override suspend fun deleteServer(server: UUID): Boolean {
val success = authenticationStore.removeServer(server)
if (success) loadStoredServers()
return success
}
// Helper functions
private fun AuthenticationStoreServer.asServer(id: UUID) = Server(
id = id,
name = name,
address = address,
version = version,
loginDisclaimer = loginDisclaimer,
splashscreenEnabled = splashscreenEnabled,
setupCompleted = setupCompleted,
dateLastAccessed = Date(lastUsed),
)
/**
* Try to retrieve the branding options. If the response JSON is invalid it will return a default value.
* This makes sure we can still work with older Jellyfin versions.
*/
private suspend fun ApiClient.getBrandingOptionsOrDefault() = try {
brandingApi.getBrandingOptions().content
} catch (exception: InvalidContentException) {
Timber.w(exception, "Invalid branding options response, using default value")
BrandingOptions(
loginDisclaimer = null,
customCss = null,
splashscreenEnabled = false,
)
}
}

View File

@@ -0,0 +1,71 @@
package org.jellyfin.androidtv.auth.repository
import org.jellyfin.androidtv.auth.model.PrivateUser
import org.jellyfin.androidtv.auth.model.PublicUser
import org.jellyfin.androidtv.auth.model.Server
import org.jellyfin.androidtv.auth.store.AccountManagerStore
import org.jellyfin.androidtv.auth.store.AuthenticationStore
import org.jellyfin.androidtv.util.sdk.toPublicUser
import org.jellyfin.sdk.Jellyfin
import org.jellyfin.sdk.api.client.exception.ApiClientException
import org.jellyfin.sdk.api.client.extensions.userApi
import org.jellyfin.sdk.model.api.UserDto
import timber.log.Timber
/**
* Repository to maintain users for servers.
* Authentication is done using the [AuthenticationRepository].
*/
interface ServerUserRepository {
//server
fun getStoredServerUsers(server: Server): List<PrivateUser>
suspend fun getPublicServerUsers(server: Server): List<PublicUser>
fun deleteStoredUser(user: PrivateUser)
}
class ServerUserRepositoryImpl(
private val jellyfin: Jellyfin,
private val authenticationStore: AuthenticationStore,
private val accountManagerStore: AccountManagerStore,
) : ServerUserRepository {
override fun getStoredServerUsers(server: Server) = authenticationStore.getUsers(server.id)
?.mapNotNull { (userId, userInfo) ->
val authInfo = accountManagerStore.getAccount(userId)
PrivateUser(
id = authInfo?.id ?: userId,
serverId = authInfo?.server ?: server.id,
name = userInfo.name,
accessToken = authInfo?.accessToken,
requirePassword = userInfo.requirePassword,
imageTag = userInfo.imageTag,
lastUsed = userInfo.lastUsed,
)
}
?.sortedWith(compareByDescending<PrivateUser> { it.lastUsed }.thenBy { it.name })
.orEmpty()
override suspend fun getPublicServerUsers(server: Server): List<PublicUser> {
// Create a fresh API because the shared one might be authenticated for a different server
val api = jellyfin.createApi(server.address)
return try {
val users by api.userApi.getPublicUsers()
users.mapNotNull(UserDto::toPublicUser)
} catch (err: ApiClientException) {
Timber.e(err, "Unable to retrieve public users")
emptyList()
}
}
override fun deleteStoredUser(user: PrivateUser) {
// Remove user info from store
authenticationStore.removeUser(user.serverId, user.id)
// Remove authentication info from system account manager
accountManagerStore.getAccount(user.id)?.let { accountManagerAccount ->
accountManagerStore.removeAccount(accountManagerAccount)
}
}
}

View File

@@ -0,0 +1,190 @@
package org.jellyfin.androidtv.auth.repository
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
import org.jellyfin.androidtv.auth.apiclient.ApiBinder
import org.jellyfin.androidtv.auth.store.AccountManagerStore
import org.jellyfin.androidtv.auth.store.AuthenticationPreferences
import org.jellyfin.androidtv.auth.store.AuthenticationStore
import org.jellyfin.androidtv.preference.PreferencesRepository
import org.jellyfin.androidtv.preference.TelemetryPreferences
import org.jellyfin.androidtv.preference.constant.UserSelectBehavior.DISABLED
import org.jellyfin.androidtv.preference.constant.UserSelectBehavior.LAST_USER
import org.jellyfin.androidtv.preference.constant.UserSelectBehavior.SPECIFIC_USER
import org.jellyfin.androidtv.util.sdk.forUser
import org.jellyfin.sdk.api.client.ApiClient
import org.jellyfin.sdk.api.client.exception.ApiClientException
import org.jellyfin.sdk.api.client.extensions.clientLogApi
import org.jellyfin.sdk.api.client.extensions.userApi
import org.jellyfin.sdk.model.DeviceInfo
import org.jellyfin.sdk.model.serializer.toUUIDOrNull
import timber.log.Timber
import java.util.UUID
data class Session(
val userId: UUID,
val serverId: UUID,
val accessToken: String,
)
enum class SessionRepositoryState {
READY,
RESTORING_SESSION,
SWITCHING_SESSION,
}
interface SessionRepository {
val currentSession: StateFlow<Session?>
val state: StateFlow<SessionRepositoryState>
suspend fun restoreSession()
suspend fun switchCurrentSession(userId: UUID): Boolean
fun destroyCurrentSession()
}
class SessionRepositoryImpl(
private val authenticationPreferences: AuthenticationPreferences,
private val accountManagerStore: AccountManagerStore,
private val apiBinder: ApiBinder,
private val authenticationStore: AuthenticationStore,
private val userApiClient: ApiClient,
private val preferencesRepository: PreferencesRepository,
private val defaultDeviceInfo: DeviceInfo,
private val userRepository: UserRepository,
private val serverRepository: ServerRepository,
private val telemetryPreferences: TelemetryPreferences,
) : SessionRepository {
private val currentSessionMutex = Mutex()
private val _currentSession = MutableStateFlow<Session?>(null)
override val currentSession = _currentSession.asStateFlow()
private val _state = MutableStateFlow(SessionRepositoryState.READY)
override val state = _state.asStateFlow()
override suspend fun restoreSession(): Unit = currentSessionMutex.withLock {
Timber.d("Restoring session")
_state.value = SessionRepositoryState.RESTORING_SESSION
if (authenticationPreferences[AuthenticationPreferences.alwaysAuthenticate]) return destroyCurrentSession()
val behavior = authenticationPreferences[AuthenticationPreferences.autoLoginUserBehavior]
val userId = authenticationPreferences[AuthenticationPreferences.autoLoginUserId].toUUIDOrNull()
when (behavior) {
DISABLED -> destroyCurrentSession()
LAST_USER -> setCurrentSession(createLastUserSession())
SPECIFIC_USER -> setCurrentSession(createUserSession(userId))
}
_state.value = SessionRepositoryState.READY
}
override suspend fun switchCurrentSession(userId: UUID): Boolean {
// No change in user - don't switch
if (currentSession.value?.userId == userId) return false
_state.value = SessionRepositoryState.SWITCHING_SESSION
Timber.d("Switching current session to user $userId")
val session = createUserSession(userId)
if (session == null) {
Timber.d("Could not switch to non-existing session for user $userId")
return false
}
val switched = setCurrentSession(session)
_state.value = SessionRepositoryState.READY
return switched
}
override fun destroyCurrentSession() {
Timber.d("Destroying current session")
userRepository.updateCurrentUser(null)
_currentSession.value = null
userApiClient.applySession(null)
apiBinder.updateSession(null, userApiClient.deviceInfo)
_state.value = SessionRepositoryState.READY
}
private suspend fun setCurrentSession(session: Session?): Boolean {
if (session != null) {
// No change in session - don't switch
if (currentSession.value?.userId == session.userId) return true
// Update last active user
authenticationPreferences[AuthenticationPreferences.lastUserId] = session.userId.toString()
// Check if server version is supported
val server = serverRepository.getServer(session.serverId)
if (server == null || !server.versionSupported) return false
}
// Update session after binding the apiclient settings
val deviceInfo = session?.let { defaultDeviceInfo.forUser(it.userId) } ?: defaultDeviceInfo
val success = apiBinder.updateSession(session, deviceInfo)
Timber.d("Updating current session. userId=${session?.userId} apiBindingSuccess=${success}")
if (success) {
userApiClient.applySession(session, deviceInfo)
if (session != null) {
// Update crash reporting URL
val crashReportUrl = userApiClient.clientLogApi.logFileUrl(includeCredentials = false)
telemetryPreferences[TelemetryPreferences.crashReportUrl] = crashReportUrl
telemetryPreferences[TelemetryPreferences.crashReportToken] = session.accessToken
try {
val user by userApiClient.userApi.getCurrentUser()
userRepository.updateCurrentUser(user)
} catch (err: ApiClientException) {
Timber.e(err, "Unable to authenticate: bad response when getting user info")
destroyCurrentSession()
return false
}
} else {
userRepository.updateCurrentUser(null)
}
preferencesRepository.onSessionChanged()
_currentSession.value = session
} else destroyCurrentSession()
return success
}
private fun createLastUserSession(): Session? {
val lastUserId = authenticationPreferences[AuthenticationPreferences.lastUserId].toUUIDOrNull()
return createUserSession(lastUserId)
}
private fun createUserSession(userId: UUID?): Session? {
if (userId == null) return null
val account = accountManagerStore.getAccount(userId)
if (account?.accessToken == null) return null
return Session(
userId = account.id,
serverId = account.server,
accessToken = account.accessToken
)
}
private fun ApiClient.applySession(session: Session?, newDeviceInfo: DeviceInfo = defaultDeviceInfo) {
deviceInfo = newDeviceInfo
if (session == null) {
baseUrl = null
accessToken = null
userId = null
} else {
val server = authenticationStore.getServer(session.serverId)
?: return applySession(null)
baseUrl = server.address
accessToken = session.accessToken
userId = session.userId
}
}
}

View File

@@ -0,0 +1,22 @@
package org.jellyfin.androidtv.auth.repository
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
import org.jellyfin.sdk.model.api.UserDto
/**
* Repository to get the current authenticated user.
*/
interface UserRepository {
val currentUser: StateFlow<UserDto?>
fun updateCurrentUser(user: UserDto?)
}
class UserRepositoryImpl : UserRepository {
override val currentUser = MutableStateFlow<UserDto?>(null)
override fun updateCurrentUser(user: UserDto?) {
if (currentUser.value !== user) currentUser.value = user
}
}

View File

@@ -0,0 +1,79 @@
package org.jellyfin.androidtv.auth.service
import android.accounts.AbstractAccountAuthenticator
import android.accounts.Account
import android.accounts.AccountAuthenticatorResponse
import android.accounts.AccountManager
import android.app.Service
import android.content.Intent
import android.os.Bundle
import android.os.IBinder
import androidx.core.os.bundleOf
import org.jellyfin.androidtv.ui.preference.PreferencesActivity
class AuthenticatorService : Service() {
private val authenticator by lazy {
Authenticator(this)
}
override fun onBind(intent: Intent): IBinder? = authenticator.iBinder
private inner class Authenticator(
private val service: AuthenticatorService
) : AbstractAccountAuthenticator(service) {
private val unsupportedOperationBundle = bundleOf(
AccountManager.KEY_ERROR_CODE to AccountManager.ERROR_CODE_REMOTE_EXCEPTION,
AccountManager.KEY_ERROR_MESSAGE to "Unsupported operation"
)
override fun addAccount(
response: AccountAuthenticatorResponse,
accountType: String,
authTokenType: String?,
requiredFeatures: Array<String>?,
options: Bundle,
): Bundle = unsupportedOperationBundle
override fun confirmCredentials(
response: AccountAuthenticatorResponse,
account: Account,
options: Bundle?,
): Bundle = unsupportedOperationBundle
override fun editProperties(
response: AccountAuthenticatorResponse,
accountType: String,
): Bundle = bundleOf(
AccountManager.KEY_INTENT to Intent(service, PreferencesActivity::class.java)
)
override fun getAccountRemovalAllowed(
response: AccountAuthenticatorResponse,
account: Account,
): Bundle = bundleOf(
AccountManager.KEY_BOOLEAN_RESULT to true
)
override fun getAuthToken(
response: AccountAuthenticatorResponse,
account: Account,
authTokenType: String,
options: Bundle,
): Bundle = unsupportedOperationBundle
override fun getAuthTokenLabel(authTokenType: String): String? = null
override fun hasFeatures(
response: AccountAuthenticatorResponse,
account: Account,
features: Array<String>,
): Bundle = unsupportedOperationBundle
override fun updateCredentials(
response: AccountAuthenticatorResponse,
account: Account,
authTokenType: String?,
options: Bundle?,
): Bundle = unsupportedOperationBundle
}
}

View File

@@ -0,0 +1,82 @@
package org.jellyfin.androidtv.auth.store
import android.accounts.Account
import android.accounts.AccountManager
import android.os.Bundle
import org.jellyfin.androidtv.BuildConfig
import org.jellyfin.androidtv.auth.model.AccountManagerAccount
import org.jellyfin.sdk.model.serializer.toUUID
import org.jellyfin.sdk.model.serializer.toUUIDOrNull
import java.util.UUID
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
class AccountManagerStore(
private val accountManager: AccountManager
) {
companion object {
const val ACCOUNT_TYPE = BuildConfig.APPLICATION_ID
const val ACCOUNT_DATA_ID = "$ACCOUNT_TYPE.id"
const val ACCOUNT_DATA_SERVER = "$ACCOUNT_TYPE.server"
const val ACCOUNT_DATA_NAME = "$ACCOUNT_TYPE.name"
const val ACCOUNT_ACCESS_TOKEN_TYPE = "$ACCOUNT_TYPE.access_token"
}
private fun getAccountData(account: Account): AccountManagerAccount = AccountManagerAccount(
id = accountManager.getUserData(account, ACCOUNT_DATA_ID).toUUID(),
server = accountManager.getUserData(account, ACCOUNT_DATA_SERVER).toUUID(),
name = accountManager.getUserData(account, ACCOUNT_DATA_NAME),
accessToken = accountManager.peekAuthToken(account, ACCOUNT_ACCESS_TOKEN_TYPE)
)
suspend fun putAccount(accountManagerAccount: AccountManagerAccount) {
var androidAccount = accountManager.getAccountsByType(ACCOUNT_TYPE)
.firstOrNull { accountManager.getUserData(it, ACCOUNT_DATA_ID)?.toUUIDOrNull() == accountManagerAccount.id }
// Update credentials
if (androidAccount == null) {
androidAccount = Account(accountManagerAccount.name, ACCOUNT_TYPE)
accountManager.addAccountExplicitly(
androidAccount,
"", // Leave password empty
Bundle()
)
accountManager.setUserData(androidAccount, ACCOUNT_DATA_ID, accountManagerAccount.id.toString())
}
// Update name
if (androidAccount.name != accountManagerAccount.name) {
androidAccount = suspendCoroutine { continuation ->
accountManager.renameAccount(androidAccount, accountManagerAccount.name, { continuation.resume(it.result) }, null)
}
}
accountManager.setUserData(androidAccount, ACCOUNT_DATA_NAME, accountManagerAccount.name)
accountManager.setUserData(androidAccount, ACCOUNT_DATA_SERVER, accountManagerAccount.server.toString())
accountManager.setAuthToken(androidAccount, ACCOUNT_ACCESS_TOKEN_TYPE, accountManagerAccount.accessToken)
}
fun removeAccount(accountManagerAccount: AccountManagerAccount): Boolean {
val androidAccount = accountManager.getAccountsByType(ACCOUNT_TYPE)
.firstOrNull { accountManager.getUserData(it, ACCOUNT_DATA_ID)?.toUUIDOrNull() == accountManagerAccount.id }
?: return false
// Remove current account info
@Suppress("DEPRECATION")
return if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP_MR1) {
accountManager.removeAccount(androidAccount, null, null)
true
} else accountManager.removeAccountExplicitly(androidAccount)
}
fun getAccounts() = accountManager.getAccountsByType(ACCOUNT_TYPE).map(::getAccountData)
fun getAccountsByServer(server: UUID) = accountManager.getAccountsByType(ACCOUNT_TYPE).filter { account ->
accountManager.getUserData(account, ACCOUNT_DATA_SERVER)?.toUUIDOrNull() == server
}.map(::getAccountData)
fun getAccount(id: UUID) = accountManager.getAccountsByType(ACCOUNT_TYPE).firstOrNull { account ->
accountManager.getUserData(account, ACCOUNT_DATA_ID)?.toUUIDOrNull() == id
}?.let(::getAccountData)
}

View File

@@ -0,0 +1,25 @@
package org.jellyfin.androidtv.auth.store
import android.content.Context
import org.jellyfin.androidtv.auth.model.AuthenticationSortBy
import org.jellyfin.androidtv.preference.constant.UserSelectBehavior
import org.jellyfin.preference.booleanPreference
import org.jellyfin.preference.enumPreference
import org.jellyfin.preference.store.SharedPreferenceStore
import org.jellyfin.preference.stringPreference
class AuthenticationPreferences(context: Context) : SharedPreferenceStore(
sharedPreferences = context.getSharedPreferences("authentication", Context.MODE_PRIVATE)
) {
companion object {
// Preferences
val autoLoginUserBehavior = enumPreference("auto_login_user_behavior", UserSelectBehavior.LAST_USER)
val autoLoginUserId = stringPreference("auto_login_user_id", "")
val sortBy = enumPreference("sort_by", AuthenticationSortBy.LAST_USE)
val alwaysAuthenticate = booleanPreference("always_authenticate", false)
// Persistent state
val lastUserId = stringPreference("last_user_id", "")
}
}

View File

@@ -0,0 +1,120 @@
package org.jellyfin.androidtv.auth.store
import android.content.Context
import kotlinx.serialization.SerializationException
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonObject
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.decodeFromJsonElement
import kotlinx.serialization.json.encodeToJsonElement
import kotlinx.serialization.json.intOrNull
import kotlinx.serialization.json.jsonObject
import kotlinx.serialization.json.jsonPrimitive
import kotlinx.serialization.modules.SerializersModule
import kotlinx.serialization.modules.contextual
import org.jellyfin.androidtv.auth.model.AuthenticationStoreServer
import org.jellyfin.androidtv.auth.model.AuthenticationStoreUser
import org.jellyfin.sdk.model.serializer.UUIDSerializer
import timber.log.Timber
import java.util.UUID
/**
* Storage for authentication related entities. Stores servers with users inside. Should be used in
* combination with the [AccountManagerStore] to store access tokens and integrate with the
* operating system.
*
* The data is stored in a JSON file located in the applications data directory.
*/
class AuthenticationStore(
private val context: Context
) {
private val storePath
get() = context.filesDir.resolve("authentication_store.json")
private val json = Json {
encodeDefaults = true
serializersModule = SerializersModule {
contextual(UUIDSerializer())
}
ignoreUnknownKeys = true
}
private val store by lazy {
load().toMutableMap()
}
private fun load(): Map<UUID, AuthenticationStoreServer> {
// No store found
if (!storePath.exists()) return emptyMap()
// Parse JSON document
val root = try {
json.parseToJsonElement(storePath.readText()).jsonObject
} catch (e: SerializationException) {
Timber.e(e, "Unable to read JSON")
JsonObject(emptyMap())
}
// Check for version
return when (root["version"]?.jsonPrimitive?.intOrNull) {
1 -> json.decodeFromJsonElement<Map<UUID, AuthenticationStoreServer>>(root["servers"]!!)
null -> {
Timber.e("Authentication Store is corrupt!")
emptyMap()
}
else -> {
Timber.e("Authentication Store is using an unknown version!")
emptyMap()
}
}
}
private fun save(): Boolean {
val root = JsonObject(mapOf(
"version" to JsonPrimitive(1),
"servers" to json.encodeToJsonElement(store)
))
storePath.writeText(json.encodeToString(root))
return true
}
fun getServers(): Map<UUID, AuthenticationStoreServer> = store
fun getUsers(server: UUID): Map<UUID, AuthenticationStoreUser>? = getServer(server)?.users
fun getServer(serverId: UUID) = store[serverId]
fun getUser(serverId: UUID, userId: UUID) = getUsers(serverId)?.get(userId)
fun putServer(id: UUID, server: AuthenticationStoreServer): Boolean {
store[id] = server
return save()
}
fun putUser(server: UUID, userId: UUID, userInfo: AuthenticationStoreUser): Boolean {
val serverInfo = store[server] ?: return false
store[server] = serverInfo.copy(users = serverInfo.users.toMutableMap().apply { put(userId, userInfo) })
return save()
}
/**
* Removes the server and stored users from the credential store.
*/
fun removeServer(server: UUID): Boolean {
store.remove(server)
return save()
}
fun removeUser(server: UUID, user: UUID): Boolean {
val serverInfo = store[server] ?: return false
store[server] = serverInfo.copy(users = serverInfo.users.toMutableMap().apply { remove(user) })
return save()
}
}

View File

@@ -1,192 +0,0 @@
package org.jellyfin.androidtv.base;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Handler;
import android.preference.PreferenceManager;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.util.Utils;
import androidx.core.app.ActivityCompat;
import androidx.fragment.app.FragmentActivity;
public abstract class BaseActivity extends FragmentActivity implements ActivityCompat.OnRequestPermissionsResultCallback {
private TvApp app = TvApp.getApplication();
private long timeoutInterval = 3600000;
private Handler handler = new Handler();
private Runnable loop;
private IKeyListener keyListener;
private IMessageListener messageListener;
private View messageUi;
private TextView messageTitle;
private TextView messageMessage;
private ImageView messageIcon;
private int messageTimeout = 6000;
private int farRight;
private int msgPos;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
timeoutInterval = Long.parseLong(PreferenceManager.getDefaultSharedPreferences(app).getString("pref_auto_logoff_timeout", "3600000"));
startAutoLogoffLoop();
TvApp.getApplication().setCurrentActivity(this);
//Add message UI - delay to ensure on top of other views
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (!isFinishing() && app.getCurrentActivity() != null) {
FrameLayout root = findViewById(android.R.id.content);
messageUi = View.inflate(app.getCurrentActivity(), R.layout.message, null);
messageTitle = messageUi.findViewById(R.id.msgTitle);
messageMessage = messageUi.findViewById(R.id.message);
messageIcon = messageUi.findViewById(R.id.msgIcon);
messageUi.setAlpha(0);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.BOTTOM);
params.bottomMargin = Utils.convertDpToPixel(TvApp.getApplication().getCurrentActivity(), 50);
Rect windowSize = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(windowSize);
farRight = windowSize.right;
msgPos = farRight - Utils.convertDpToPixel(TvApp.getApplication().getCurrentActivity(), 500);
messageUi.setLeft(farRight);
root.addView(messageUi, params);
}
}
}, 500);
}
public void showMessage(String title, String msg) {
showMessage(title, msg, messageTimeout, null, null);
}
public void showMessage(String title, String msg, int timeout) {
showMessage(title, msg, timeout, null, null);
}
public void showMessage(String title, String msg, int timeout, Integer icon, Integer background) {
if (messageUi != null && !isFinishing()) {
messageTitle.setText(title);
messageMessage.setText(msg);
if (icon != null) {
messageIcon.setImageResource(icon);
}
if (background != null) {
messageUi.setBackgroundResource(background);
}
messageUi.animate().x(msgPos).alpha(1).setDuration(300);
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (messageUi != null && !isFinishing()) {
messageUi.animate().alpha(0).x(farRight).setDuration(300);
}
}
}, timeout);
}
}
//Banish task bars and navigation controls on non-TV devices
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && android.os.Build.VERSION.SDK_INT >= 19) {
getWindow().getDecorView().setSystemUiVisibility(
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);}
}
@Override
protected void onResume() {
super.onResume();
TvApp.getApplication().setCurrentActivity(this);
}
@Override
protected void onPause() {
super.onPause();
TvApp.getApplication().setCurrentActivity(null);
}
@Override
protected void onDestroy() {
if (handler != null && loop != null) {
handler.removeCallbacks(loop);
}
super.onDestroy();
}
@Override
public void onUserInteraction() {
super.onUserInteraction();
app.setLastUserInteraction(System.currentTimeMillis());
}
private void startAutoLogoffLoop() {
if (loop != null) {
return;
}
loop = new Runnable() {
@Override
public void run() {
if (app != null && System.currentTimeMillis() > app.getLastUserInteraction() + timeoutInterval) {
app.getLogger().Info("Logging off due to inactivity %d", app.getLastUserInteraction());
Utils.showToast(app, "Jellyfin Logging off due to inactivity...");
if (app.getPlaybackController() != null && app.getPlaybackController().isPaused()) {
app.getLogger().Info("Playback was paused, stopping gracefully...");
app.getPlaybackController().stop();
}
handler.removeCallbacks(this);
finish();
} else {
handler.postDelayed(this, 60000);
}
}
};
handler.postDelayed(loop, 60000);
}
public void registerKeyListener(IKeyListener listener) {
keyListener = listener;
}
public void registerMessageListener(IMessageListener listener) {
messageListener = listener;
}
public void sendMessage(CustomMessage message) {
if (messageListener != null) {
messageListener.onMessageReceived(message);
}
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
return keyListener != null ? keyListener.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event) : super.onKeyUp(keyCode, event);
}
@Override
public boolean onSearchRequested() {
TvApp.getApplication().showSearch(this, false);
return true;
}
}

View File

@@ -1,9 +0,0 @@
package org.jellyfin.androidtv.base;
/**
* Created by Eric on 4/20/2015.
*/
public enum CustomMessage {
RefreshCurrentItem,
RemoveCurrentItem, ActionComplete, RefreshRows
}

View File

@@ -1,10 +0,0 @@
package org.jellyfin.androidtv.base;
import android.view.KeyEvent;
/**
* Created by Eric on 4/16/2015.
*/
public interface IKeyListener {
public boolean onKeyUp(int key, KeyEvent event);
}

View File

@@ -1,8 +0,0 @@
package org.jellyfin.androidtv.base;
/**
* Created by Eric on 4/20/2015.
*/
public interface IMessageListener {
public void onMessageReceived(CustomMessage message);
}

View File

@@ -1,125 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.content.Intent;
import android.os.Bundle;
import androidx.leanback.widget.ArrayObjectAdapter;
import androidx.leanback.widget.HeaderItem;
import androidx.leanback.widget.ListRow;
import androidx.leanback.widget.OnItemViewClickedListener;
import androidx.leanback.widget.Presenter;
import androidx.leanback.widget.Row;
import androidx.leanback.widget.RowPresenter;
import android.widget.Toast;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.presentation.GridButtonPresenter;
import org.jellyfin.androidtv.ui.GridButton;
import org.jellyfin.apiclient.model.dto.BaseItemDto;
/**
* Created by Eric on 12/4/2014.
*/
public class BrowseFolderFragment extends StdBrowseFragment {
protected static final int BY_LETTER = 0;
protected static final int GENRES = 1;
protected static final int YEARS = 2;
protected static final int PERSONS = 3;
protected static final int SUGGESTED = 4;
protected BaseItemDto mFolder;
protected String itemTypeString;
protected boolean showViews = true;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
mFolder = TvApp.getApplication().getSerializer().DeserializeFromString(getActivity().getIntent().getStringExtra("Folder"),BaseItemDto.class);
if (MainTitle == null) MainTitle = mFolder.getName();
ShowBadge = false;
if (mFolder.getCollectionType() != null) {
switch (mFolder.getCollectionType()) {
case "movies":
itemTypeString = "Movie";
break;
case "tvshows":
itemTypeString = "Series";
break;
case "folders":
showViews = false;
break;
default:
showViews = false;
}
} else {
showViews = false;
}
super.onActivityCreated(savedInstanceState);
}
@Override
protected void addAdditionalRows(ArrayObjectAdapter rowAdapter) {
super.addAdditionalRows(rowAdapter);
if (showViews) {
HeaderItem gridHeader = new HeaderItem(rowAdapter.size(), mApplication.getString(R.string.lbl_views));
GridButtonPresenter mGridPresenter = new GridButtonPresenter();
ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(mGridPresenter);
gridRowAdapter.add(new GridButton(BY_LETTER, mApplication.getString(R.string.lbl_by_letter), R.drawable.tile_letters));
if (itemTypeString != null && itemTypeString.equals("Movie"))
gridRowAdapter.add(new GridButton(SUGGESTED, mApplication.getString(R.string.lbl_suggested), R.drawable.tile_suggestions));
gridRowAdapter.add(new GridButton(GENRES, mApplication.getString(R.string.lbl_genres), R.drawable.tile_genres));
gridRowAdapter.add(new GridButton(PERSONS, mApplication.getString(R.string.lbl_performers), R.drawable.tile_actors));
rowAdapter.add(new ListRow(gridHeader, gridRowAdapter));
}
}
@Override
protected void setupEventListeners() {
super.setupEventListeners();
if (showViews) mClickedListener.registerListener(new ItemViewClickedListener());
}
private final class ItemViewClickedListener implements OnItemViewClickedListener {
@Override
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (item instanceof GridButton) {
switch (((GridButton) item).getId()) {
case BY_LETTER:
Intent intent = new Intent(getActivity(), ByLetterActivity.class);
intent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
intent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(intent);
break;
case GENRES:
Intent genreIntent = new Intent(getActivity(), ByGenreActivity.class);
genreIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
genreIntent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(genreIntent);
break;
case SUGGESTED:
Intent suggIntent = new Intent(getActivity(), SuggestedMoviesActivity.class);
suggIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
suggIntent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(suggIntent);
break;
case PERSONS:
Intent personIntent = new Intent(getActivity(), BrowsePersonsActivity.class);
personIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
personIntent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(personIntent);
break;
default:
Toast.makeText(getActivity(), item.toString() + mApplication.getString(R.string.msg_not_implemented), Toast.LENGTH_SHORT).show();
break;
}
}
}
}
}

View File

@@ -1,74 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.model.ChangeTriggerType;
import org.jellyfin.androidtv.querying.StdItemQuery;
import org.jellyfin.apiclient.model.dto.BaseItemType;
import org.jellyfin.apiclient.model.querying.ArtistsQuery;
import org.jellyfin.apiclient.model.querying.ItemFields;
/**
* Created by Eric on 8/16/2015.
*/
public class BrowseGridFragment extends StdGridFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
protected void setupQueries(IGridLoader gridLoader) {
StdItemQuery query = new StdItemQuery(new ItemFields[] {ItemFields.PrimaryImageAspectRatio});
query.setParentId(mParentId);
if (mFolder.getBaseItemType() == BaseItemType.UserView || mFolder.getBaseItemType() == BaseItemType.CollectionFolder) {
String type = mFolder.getCollectionType() != null ? mFolder.getCollectionType().toLowerCase() : "";
switch (type) {
case "movies":
query.setIncludeItemTypes(new String[]{"Movie"});
query.setRecursive(true);
break;
case "tvshows":
query.setIncludeItemTypes(new String[]{"Series"});
query.setRecursive(true);
break;
case "boxsets":
query.setIncludeItemTypes(new String[]{"BoxSet"});
query.setParentId(null);
query.setRecursive(true);
break;
case "music":
mAllowViewSelection = false;
//Special queries needed for album artists
String includeType = getActivity().getIntent().getStringExtra("IncludeType");
if ("AlbumArtist".equals(includeType)) {
ArtistsQuery albumArtists = new ArtistsQuery();
albumArtists.setUserId(TvApp.getApplication().getCurrentUser().getId());
albumArtists.setFields(new ItemFields[]{ItemFields.PrimaryImageAspectRatio, ItemFields.ItemCounts});
albumArtists.setParentId(mParentId);
mRowDef = new BrowseRowDef("", albumArtists, 150, new ChangeTriggerType[] {});
gridLoader.loadGrid(mRowDef);
return;
}
query.setIncludeItemTypes(new String[]{includeType != null ? includeType : "MusicAlbum"});
query.setRecursive(true);
break;
}
}
mRowDef = new BrowseRowDef("", query, 150, false, true);
gridLoader.loadGrid(mRowDef);
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class BrowsePersonsActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse_persons);
}
}

View File

@@ -1,49 +0,0 @@
package org.jellyfin.androidtv.browsing;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.apiclient.model.querying.ItemSortBy;
import org.jellyfin.apiclient.model.querying.PersonsQuery;
public class BrowsePersonsFragment extends CustomViewFragment {
private static String letters = TvApp.getApplication().getResources().getString(R.string.byletter_letters);
@Override
protected void setupQueries(IRowLoader rowLoader) {
if (Utils.getSafeValue(mFolder.getChildCount(), 0) > 0) {
//First add a '#' item
PersonsQuery numbers = new PersonsQuery();
numbers.setParentId(mFolder.getId());
numbers.setSortBy(new String[]{ItemSortBy.SortName});
if (includeType != null) numbers.setIncludeItemTypes(new String[]{includeType});
numbers.setNameLessThan("A");
numbers.setRecursive(true);
mRows.add(new BrowseRowDef("#", numbers, 25));
//Then all the defined letters
for (Character letter : letters.toCharArray()) {
PersonsQuery letterQuery = new PersonsQuery();
letterQuery.setParentId(mFolder.getId());
letterQuery.setSortBy(new String[]{ItemSortBy.SortName});
if (includeType != null) letterQuery.setIncludeItemTypes(new String[]{includeType});
letterQuery.setNameStartsWith(letter.toString());
letterQuery.setRecursive(true);
mRows.add(new BrowseRowDef(letter.toString(), letterQuery, 25));
}
if (mRows.size() < 2) setHeadersState(HEADERS_DISABLED);
rowLoader.loadRows(mRows);
}
else {
setHeadersState(HEADERS_DISABLED);
}
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class BrowseRecordingsActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_recordings);
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class BrowseScheduleActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_schedule);
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class ByGenreActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_by_genre);
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class ByLetterActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_by_letter);
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class CollectionActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_collection);
}
}

View File

@@ -1,299 +0,0 @@
package org.jellyfin.androidtv.browsing;
import androidx.fragment.app.Fragment;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import androidx.leanback.app.BackgroundManager;
import androidx.leanback.app.RowsSupportFragment;
import androidx.leanback.widget.ArrayObjectAdapter;
import androidx.leanback.widget.HeaderItem;
import androidx.leanback.widget.ListRow;
import androidx.leanback.widget.OnItemViewClickedListener;
import androidx.leanback.widget.OnItemViewSelectedListener;
import androidx.leanback.widget.Presenter;
import androidx.leanback.widget.Row;
import androidx.leanback.widget.RowPresenter;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.base.BaseActivity;
import org.jellyfin.androidtv.itemhandling.BaseRowItem;
import org.jellyfin.androidtv.itemhandling.ItemLauncher;
import org.jellyfin.androidtv.itemhandling.ItemRowAdapter;
import org.jellyfin.androidtv.presentation.CardPresenter;
import org.jellyfin.androidtv.presentation.PositionableListRowPresenter;
import org.jellyfin.androidtv.querying.QueryType;
import org.jellyfin.androidtv.querying.ViewQuery;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
public class CustomBrowseFragment extends Fragment implements IRowLoader {
private RowsSupportFragment mRowsFragment;
private static final int BACKGROUND_UPDATE_DELAY = 100;
protected String MainTitle;
protected boolean ShowBadge = true;
protected TvApp mApplication;
protected BaseActivity mActivity;
protected BaseRowItem mCurrentItem;
protected ListRow mCurrentRow;
protected CompositeClickedListener mClickedListener = new CompositeClickedListener();
protected CompositeSelectedListener mSelectedListener = new CompositeSelectedListener();
protected ArrayObjectAdapter mRowsAdapter;
private SimpleTarget<Bitmap> mBackgroundTarget;
private DisplayMetrics mMetrics;
private Timer mBackgroundTimer;
private final Handler mHandler = new Handler();
private String mBackgroundUrl;
protected ArrayList<BrowseRowDef> mRows = new ArrayList<>();
CardPresenter mCardPresenter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.fragment_custom_browse, container, false);
// Inject the RowsSupportFragment in the results container
if (getChildFragmentManager().findFragmentById(R.id.rows_area) == null) {
mRowsFragment = new RowsSupportFragment();
getChildFragmentManager().beginTransaction()
.replace(R.id.rows_area, mRowsFragment).commit();
} else {
mRowsFragment = (RowsSupportFragment) getChildFragmentManager()
.findFragmentById(R.id.rows_area);
}
mRowsAdapter = new ArrayObjectAdapter(new PositionableListRowPresenter());
mRowsFragment.setAdapter(mRowsAdapter);
return root;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mApplication = TvApp.getApplication();
//mActivity = (BaseActivity) getActivity();
prepareBackgroundManager();
setupUIElements();
setupQueries(this);
setupEventListeners();
}
protected void setupQueries(IRowLoader rowLoader) {
rowLoader.loadRows(mRows);
}
@Override
public void onDestroy() {
super.onDestroy();
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
}
@Override
public void onResume() {
super.onResume();
//Re-retrieve anything that needs it but delay slightly so we don't take away gui landing
if (mRowsAdapter != null) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
for (int i = 0; i < mRowsAdapter.size(); i++) {
if (mRowsAdapter.get(i) instanceof ListRow) {
if (((ListRow) mRowsAdapter.get(i)).getAdapter() instanceof ItemRowAdapter) {
((ItemRowAdapter) ((ListRow) mRowsAdapter.get(i)).getAdapter()).ReRetrieveIfNeeded();
}
}
}
}
},1500);
}
}
public void loadRows(List<BrowseRowDef> rows) {
mRowsAdapter = new ArrayObjectAdapter(new PositionableListRowPresenter());
mCardPresenter = new CardPresenter();
for (BrowseRowDef def : rows) {
HeaderItem header = new HeaderItem(def.getHeaderText());
ItemRowAdapter rowAdapter;
switch (def.getQueryType()) {
case NextUp:
rowAdapter = new ItemRowAdapter(def.getNextUpQuery(), true, mCardPresenter, mRowsAdapter);
break;
case Season:
rowAdapter = new ItemRowAdapter(def.getSeasonQuery(), mCardPresenter, mRowsAdapter);
break;
case Upcoming:
rowAdapter = new ItemRowAdapter(def.getUpcomingQuery(), mCardPresenter, mRowsAdapter);
break;
case Views:
rowAdapter = new ItemRowAdapter(new ViewQuery(), mCardPresenter, mRowsAdapter);
break;
case SimilarSeries:
rowAdapter = new ItemRowAdapter(def.getSimilarQuery(), QueryType.SimilarSeries, mCardPresenter, mRowsAdapter);
break;
case SimilarMovies:
rowAdapter = new ItemRowAdapter(def.getSimilarQuery(), QueryType.SimilarMovies, mCardPresenter, mRowsAdapter);
break;
case Persons:
rowAdapter = new ItemRowAdapter(def.getPersonsQuery(), def.getChunkSize(), mCardPresenter, mRowsAdapter);
break;
case LiveTvChannel:
rowAdapter = new ItemRowAdapter(def.getTvChannelQuery(), 40, mCardPresenter, mRowsAdapter);
break;
case LiveTvProgram:
rowAdapter = new ItemRowAdapter(def.getProgramQuery(), mCardPresenter, mRowsAdapter);
break;
case LiveTvRecording:
rowAdapter = new ItemRowAdapter(def.getRecordingQuery(), def.getChunkSize(), mCardPresenter, mRowsAdapter);
break;
default:
rowAdapter = new ItemRowAdapter(def.getQuery(), def.getChunkSize(), def.getPreferParentThumb(), def.isStaticHeight(), mCardPresenter, mRowsAdapter);
break;
}
rowAdapter.setReRetrieveTriggers(def.getChangeTriggers());
ListRow row = new ListRow(header, rowAdapter);
mRowsAdapter.add(row);
rowAdapter.setRow(row);
rowAdapter.Retrieve();
}
addAdditionalRows(mRowsAdapter);
mRowsFragment.setAdapter(mRowsAdapter);
}
protected void addAdditionalRows(ArrayObjectAdapter rowAdapter) {
}
private void prepareBackgroundManager() {
final BackgroundManager backgroundManager = BackgroundManager.getInstance(getActivity());
backgroundManager.attach(getActivity().getWindow());
mMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
mBackgroundTarget = new SimpleTarget<Bitmap>(mMetrics.widthPixels, mMetrics.heightPixels) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
backgroundManager.setBitmap(resource);
}
};
}
protected void setupUIElements() {
}
protected void setupEventListeners() {
mRowsFragment.setOnItemViewClickedListener(mClickedListener);
mClickedListener.registerListener(new ItemViewClickedListener());
mRowsFragment.setOnItemViewSelectedListener(mSelectedListener);
mSelectedListener.registerListener(new ItemViewSelectedListener());
}
private final class ItemViewClickedListener implements OnItemViewClickedListener {
@Override
public void onItemClicked(final Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (!(item instanceof BaseRowItem)) return;
ItemLauncher.launch((BaseRowItem) item, (ItemRowAdapter) ((ListRow)row).getAdapter(), ((BaseRowItem) item).getIndex(), getActivity());
}
}
private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (!(item instanceof BaseRowItem)) {
//fill in default background
mBackgroundUrl = null;
startBackgroundTimer();
return;
}
BaseRowItem rowItem = (BaseRowItem) item;
mCurrentItem = rowItem;
mCurrentRow = (ListRow) row;
//mApplication.getLogger().Debug("Selected Item "+rowItem.getIndex() + " type: "+ (rowItem.getItemType().equals(BaseRowItem.ItemType.BaseItem) ? rowItem.getBaseItem().getType() : "other"));
ItemRowAdapter adapter = (ItemRowAdapter) ((ListRow)row).getAdapter();
adapter.loadMoreItemsIfNeeded(rowItem.getIndex());
mBackgroundUrl = rowItem.getBackdropImageUrl();
startBackgroundTimer();
}
}
protected void updateBackground(String url) {
if (url == null) {
clearBackground();
} else {
Glide.with(getActivity())
.load(url)
.asBitmap()
.override(mMetrics.widthPixels, mMetrics.heightPixels)
.centerCrop()
.into(mBackgroundTarget);
}
}
protected void clearBackground() {
BackgroundManager.getInstance(getActivity()).setDrawable(null);
}
private void startBackgroundTimer() {
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
mBackgroundTimer = new Timer();
mBackgroundTimer.schedule(new UpdateBackgroundTask(), BACKGROUND_UPDATE_DELAY);
}
private class UpdateBackgroundTask extends TimerTask {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
updateBackground(mBackgroundUrl);
}
});
}
}
}

View File

@@ -1,21 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.TvApp;
/**
* Created by Eric on 1/18/2015.
*/
public class CustomViewFragment extends BrowseFolderFragment {
protected String includeType;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
includeType = getActivity().getIntent().getStringExtra("IncludeType");
TvApp.getApplication().getLogger().Debug("Item type: "+includeType);
showViews = false;
super.onActivityCreated(savedInstanceState);
}
}

View File

@@ -1,647 +0,0 @@
package org.jellyfin.androidtv.browsing;
import androidx.fragment.app.Fragment;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.Nullable;
import androidx.leanback.app.BackgroundManager;
import androidx.leanback.app.RowsSupportFragment;
import androidx.leanback.widget.ArrayObjectAdapter;
import androidx.leanback.widget.ClassPresenterSelector;
import androidx.leanback.widget.HeaderItem;
import androidx.leanback.widget.ListRow;
import androidx.leanback.widget.OnItemViewClickedListener;
import androidx.leanback.widget.OnItemViewSelectedListener;
import androidx.leanback.widget.Presenter;
import androidx.leanback.widget.Row;
import androidx.leanback.widget.RowPresenter;
import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.base.BaseActivity;
import org.jellyfin.androidtv.base.CustomMessage;
import org.jellyfin.androidtv.base.IKeyListener;
import org.jellyfin.androidtv.base.IMessageListener;
import org.jellyfin.androidtv.details.ItemListActivity;
import org.jellyfin.androidtv.itemhandling.BaseRowItem;
import org.jellyfin.androidtv.itemhandling.ItemLauncher;
import org.jellyfin.androidtv.itemhandling.ItemRowAdapter;
import org.jellyfin.androidtv.playback.MediaManager;
import org.jellyfin.androidtv.presentation.CardPresenter;
import org.jellyfin.androidtv.presentation.GridButtonPresenter;
import org.jellyfin.androidtv.presentation.PositionableListRowPresenter;
import org.jellyfin.androidtv.querying.QueryType;
import org.jellyfin.androidtv.querying.ViewQuery;
import org.jellyfin.androidtv.ui.GridButton;
import org.jellyfin.androidtv.util.InfoLayoutHelper;
import org.jellyfin.androidtv.util.KeyProcessor;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import org.jellyfin.apiclient.interaction.EmptyResponse;
import org.jellyfin.apiclient.interaction.Response;
import org.jellyfin.apiclient.model.dto.BaseItemDto;
import org.jellyfin.apiclient.model.dto.BaseItemType;
import org.jellyfin.apiclient.model.entities.DisplayPreferences;
public class EnhancedBrowseFragment extends Fragment implements IRowLoader {
private static final int BACKGROUND_UPDATE_DELAY = 100;
Typeface roboto;
BaseActivity mActivity;
TvApp mApplication;
TextView mTitle;
LinearLayout mInfoRow;
TextView mSummary;
protected static final int BY_LETTER = 0;
protected static final int GENRES = 1;
protected static final int YEARS = 2;
protected static final int PERSONS = 3;
protected static final int SUGGESTED = 4;
protected static final int SEARCH = 5;
protected static final int GRID = 6;
protected static final int ALBUMS = 7;
protected static final int ARTISTS = 8;
public static final int FAVSONGS = 9;
protected static final int SCHEDULE = 10;
protected static final int SERIES = 11;
protected BaseItemDto mFolder;
protected String itemTypeString;
protected boolean showViews = true;
protected boolean justLoaded = true;
protected boolean ShowFanart = false;
protected BaseRowItem favSongsRowItem;
private SimpleTarget<Bitmap> mBackgroundTarget;
private DisplayMetrics mMetrics;
RowsSupportFragment mRowsFragment;
protected CompositeClickedListener mClickedListener = new CompositeClickedListener();
protected CompositeSelectedListener mSelectedListener = new CompositeSelectedListener();
protected ArrayObjectAdapter mRowsAdapter;
private Timer mBackgroundTimer;
private final Handler mHandler = new Handler();
private String mBackgroundUrl;
protected ArrayList<BrowseRowDef> mRows = new ArrayList<>();
CardPresenter mCardPresenter;
protected BaseRowItem mCurrentItem;
protected ListRow mCurrentRow;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BaseItemDto item = new BaseItemDto();
item.setId(ItemListActivity.FAV_SONGS);
item.setBaseItemType(BaseItemType.Playlist);
item.setIsFolder(true);
favSongsRowItem = new BaseRowItem(0, item);
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View root = inflater.inflate(R.layout.enhanced_detail_browse, container, false);
mActivity = (BaseActivity) getActivity();
roboto = TvApp.getApplication().getDefaultFont();
mTitle = (TextView) root.findViewById(R.id.title);
mTitle.setTypeface(roboto);
mTitle.setShadowLayer(5, 5, 5, Color.BLACK);
mInfoRow = (LinearLayout) root.findViewById(R.id.infoRow);
mSummary = (TextView) root.findViewById(R.id.summary);
mSummary.setTypeface(roboto);
mSummary.setShadowLayer(5, 5, 5, Color.BLACK);
// Inject the RowsSupportFragment in the results container
if (getChildFragmentManager().findFragmentById(R.id.rowsFragment) == null) {
mRowsFragment = new RowsSupportFragment();
getChildFragmentManager().beginTransaction()
.replace(R.id.rowsFragment, mRowsFragment).commit();
} else {
mRowsFragment = (RowsSupportFragment) getChildFragmentManager()
.findFragmentById(R.id.rowsFragment);
}
mRowsAdapter = new ArrayObjectAdapter(new PositionableListRowPresenter());
mRowsFragment.setAdapter(mRowsAdapter);
return root;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mApplication = TvApp.getApplication();
prepareBackgroundManager();
setupViews();
setupUIElements();
setupQueries(this);
setupEventListeners();
}
protected void setupQueries(IRowLoader rowLoader) {
rowLoader.loadRows(mRows);
}
protected void setupViews() {
mFolder = TvApp.getApplication().getSerializer().DeserializeFromString(getActivity().getIntent().getStringExtra("Folder"),BaseItemDto.class);
if (mFolder == null) return;
if (mFolder.getCollectionType() != null) {
switch (mFolder.getCollectionType()) {
case "movies":
itemTypeString = "Movie";
break;
case "tvshows":
itemTypeString = "Series";
break;
case "music":
itemTypeString = "MusicAlbum";
break;
case "folders":
showViews = false;
break;
default:
showViews = false;
}
} else {
showViews = false;
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
}
@Override
public void onResume() {
super.onResume();
ShowFanart = mApplication.getPrefs().getBoolean("pref_show_backdrop", true);
//React to deletion
if (getActivity() != null && !getActivity().isFinishing() && mCurrentRow != null && mCurrentItem != null && mCurrentItem.getItemId() != null && mCurrentItem.getItemId().equals(TvApp.getApplication().getLastDeletedItemId())) {
((ItemRowAdapter)mCurrentRow.getAdapter()).remove(mCurrentItem);
TvApp.getApplication().setLastDeletedItemId(null);
}
if (!justLoaded) {
//Re-retrieve anything that needs it but delay slightly so we don't take away gui landing
if (mRowsAdapter != null) {
refreshCurrentItem();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (mActivity.isFinishing()) return;
for (int i = 0; i < mRowsAdapter.size(); i++) {
if (mRowsAdapter.get(i) instanceof ListRow) {
if (((ListRow) mRowsAdapter.get(i)).getAdapter() instanceof ItemRowAdapter && !mActivity.isFinishing()) {
((ItemRowAdapter) ((ListRow) mRowsAdapter.get(i)).getAdapter()).ReRetrieveIfNeeded();
}
}
}
}
}, 1500);
}
} else {
justLoaded = false;
}
}
public void loadRows(List<BrowseRowDef> rows) {
mRowsAdapter = new ArrayObjectAdapter(new PositionableListRowPresenter());
mCardPresenter = new CardPresenter(false, 280);
ClassPresenterSelector ps = new ClassPresenterSelector();
ps.addClassPresenter(BaseRowItem.class, mCardPresenter);
ps.addClassPresenter(GridButton.class, new GridButtonPresenter(false, 310, 280));
for (BrowseRowDef def : rows) {
HeaderItem header = new HeaderItem(def.getHeaderText());
ItemRowAdapter rowAdapter;
switch (def.getQueryType()) {
case NextUp:
rowAdapter = new ItemRowAdapter(def.getNextUpQuery(), true, mCardPresenter, mRowsAdapter);
break;
case LatestItems:
rowAdapter = new ItemRowAdapter(def.getLatestItemsQuery(), true, mCardPresenter, mRowsAdapter);
break;
case Season:
rowAdapter = new ItemRowAdapter(def.getSeasonQuery(), mCardPresenter, mRowsAdapter);
break;
case Upcoming:
rowAdapter = new ItemRowAdapter(def.getUpcomingQuery(), mCardPresenter, mRowsAdapter);
break;
case Views:
rowAdapter = new ItemRowAdapter(new ViewQuery(), mCardPresenter, mRowsAdapter);
break;
case SimilarSeries:
rowAdapter = new ItemRowAdapter(def.getSimilarQuery(), QueryType.SimilarSeries, mCardPresenter, mRowsAdapter);
break;
case SimilarMovies:
rowAdapter = new ItemRowAdapter(def.getSimilarQuery(), QueryType.SimilarMovies, mCardPresenter, mRowsAdapter);
break;
case Persons:
rowAdapter = new ItemRowAdapter(def.getPersonsQuery(), def.getChunkSize(), mCardPresenter, mRowsAdapter);
break;
case LiveTvChannel:
rowAdapter = new ItemRowAdapter(def.getTvChannelQuery(), 40, mCardPresenter, mRowsAdapter);
break;
case LiveTvProgram:
rowAdapter = new ItemRowAdapter(def.getProgramQuery(), mCardPresenter, mRowsAdapter);
break;
case LiveTvRecording:
rowAdapter = new ItemRowAdapter(def.getRecordingQuery(), def.getChunkSize(), mCardPresenter, mRowsAdapter);
break;
case LiveTvRecordingGroup:
rowAdapter = new ItemRowAdapter(def.getRecordingGroupQuery(), mCardPresenter, mRowsAdapter);
break;
case Premieres:
rowAdapter = new ItemRowAdapter(def.getQuery(), def.getChunkSize(), def.getPreferParentThumb(), def.isStaticHeight(), mCardPresenter, mRowsAdapter, def.getQueryType());
break;
case SeriesTimer:
rowAdapter = new ItemRowAdapter(def.getSeriesTimerQuery(), mCardPresenter, mRowsAdapter);
break;
default:
rowAdapter = new ItemRowAdapter(def.getQuery(), def.getChunkSize(), def.getPreferParentThumb(), def.isStaticHeight(), ps, mRowsAdapter, def.getQueryType());
break;
}
rowAdapter.setReRetrieveTriggers(def.getChangeTriggers());
ListRow row = new ListRow(header, rowAdapter);
mRowsAdapter.add(row);
rowAdapter.setRow(row);
rowAdapter.Retrieve();
}
addAdditionalRows(mRowsAdapter);
mRowsFragment.setAdapter(mRowsAdapter);
}
protected void addAdditionalRows(ArrayObjectAdapter rowAdapter) {
if (showViews) {
HeaderItem gridHeader = new HeaderItem(rowAdapter.size(), mApplication.getString(R.string.lbl_views));
GridButtonPresenter mGridPresenter = new GridButtonPresenter();
ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(mGridPresenter);
switch (itemTypeString) {
case "Movie":
gridRowAdapter.add(new GridButton(SUGGESTED, mApplication.getString(R.string.lbl_suggested), R.drawable.tile_suggestions));
addStandardViewButtons(gridRowAdapter);
break;
case "MusicAlbum":
gridRowAdapter.add(new GridButton(ALBUMS, TvApp.getApplication().getString(R.string.lbl_albums), R.drawable.tile_audio));
gridRowAdapter.add(new GridButton(ARTISTS, TvApp.getApplication().getString(R.string.lbl_artists), R.drawable.tile_artists));
gridRowAdapter.add(new GridButton(GENRES, mApplication.getString(R.string.lbl_genres), R.drawable.tile_genres));
gridRowAdapter.add(new GridButton(SEARCH, mApplication.getString(R.string.lbl_search), R.drawable.tile_search));
break;
default:
addStandardViewButtons(gridRowAdapter);
break;
}
rowAdapter.add(new ListRow(gridHeader, gridRowAdapter));
}
}
protected void addStandardViewButtons(ArrayObjectAdapter gridRowAdapter) {
gridRowAdapter.add(new GridButton(GRID, TvApp.getApplication().getString(R.string.lbl_all_items), R.drawable.tile_port_grid));
gridRowAdapter.add(new GridButton(BY_LETTER, mApplication.getString(R.string.lbl_by_letter), R.drawable.tile_letters));
gridRowAdapter.add(new GridButton(GENRES, mApplication.getString(R.string.lbl_genres), R.drawable.tile_genres));
//gridRowAdapter.add(new GridButton(PERSONS, mApplication.getString(R.string.lbl_performers), R.drawable.tile_actors));
gridRowAdapter.add(new GridButton(SEARCH, mApplication.getString(R.string.lbl_search), R.drawable.tile_search));
}
protected void setupUIElements() {
}
protected void setupEventListeners() {
mRowsFragment.setOnItemViewClickedListener(mClickedListener);
mClickedListener.registerListener(new ItemViewClickedListener());
if (showViews) mClickedListener.registerListener(new SpecialViewClickedListener());
mRowsFragment.setOnItemViewSelectedListener(mSelectedListener);
mSelectedListener.registerListener(new ItemViewSelectedListener());
if (mActivity != null) {
mActivity.registerKeyListener(new IKeyListener() {
@Override
public boolean onKeyUp(int key, KeyEvent event) {
return KeyProcessor.HandleKey(key, mCurrentItem, mActivity);
}
});
mActivity.registerMessageListener(new IMessageListener() {
@Override
public void onMessageReceived(CustomMessage message) {
switch (message) {
case RefreshCurrentItem:
refreshCurrentItem();
break;
}
}
});
}
}
private void refreshCurrentItem() {
if (mCurrentItem != null && mCurrentItem.getBaseItemType() != BaseItemType.Photo && mCurrentItem.getBaseItemType() != BaseItemType.MusicArtist
&& mCurrentItem.getBaseItemType() != BaseItemType.MusicAlbum && mCurrentItem.getBaseItemType() != BaseItemType.Playlist) {
mCurrentItem.refresh(new EmptyResponse() {
@Override
public void onResponse() {
ItemRowAdapter adapter = (ItemRowAdapter) ((ListRow) mCurrentRow).getAdapter();
adapter.notifyArrayItemRangeChanged(adapter.indexOf(mCurrentItem), 1);
}
});
}
}
private final class SpecialViewClickedListener implements OnItemViewClickedListener {
@Override
public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (item instanceof GridButton) {
switch (((GridButton) item).getId()) {
case GRID:
TvApp.getApplication().getDisplayPrefsAsync(mFolder.getDisplayPreferencesId(), new Response<DisplayPreferences>() {
@Override
public void onResponse(DisplayPreferences response) {
Intent folderIntent = new Intent(getActivity(), GenericGridActivity.class);
folderIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
getActivity().startActivity(folderIntent);
}
});
break;
case ALBUMS:
mFolder.setDisplayPreferencesId(mFolder.getId()+"AL");
TvApp.getApplication().getDisplayPrefsAsync(mFolder.getDisplayPreferencesId(), new Response<DisplayPreferences>() {
@Override
public void onResponse(DisplayPreferences response) {
Intent folderIntent = new Intent(getActivity(), GenericGridActivity.class);
folderIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
folderIntent.putExtra("IncludeType", "MusicAlbum");
getActivity().startActivity(folderIntent);
}
});
break;
case ARTISTS:
mFolder.setDisplayPreferencesId(mFolder.getId()+"AR");
TvApp.getApplication().getDisplayPrefsAsync(mFolder.getDisplayPreferencesId(), new Response<DisplayPreferences>() {
@Override
public void onResponse(DisplayPreferences response) {
Intent folderIntent = new Intent(getActivity(), GenericGridActivity.class);
folderIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
folderIntent.putExtra("IncludeType", "AlbumArtist");
getActivity().startActivity(folderIntent);
}
});
break;
case BY_LETTER:
Intent intent = new Intent(getActivity(), ByLetterActivity.class);
intent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
intent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(intent);
break;
case GENRES:
Intent genreIntent = new Intent(getActivity(), ByGenreActivity.class);
genreIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
genreIntent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(genreIntent);
break;
case SUGGESTED:
Intent suggIntent = new Intent(getActivity(), SuggestedMoviesActivity.class);
suggIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
suggIntent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(suggIntent);
break;
case PERSONS:
Intent personIntent = new Intent(getActivity(), BrowsePersonsActivity.class);
personIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(mFolder));
personIntent.putExtra("IncludeType", itemTypeString);
getActivity().startActivity(personIntent);
break;
case SEARCH:
TvApp.getApplication().showSearch(getActivity(), "MusicAlbum".equals(itemTypeString));
break;
case FAVSONGS:
Intent favIntent = new Intent(getActivity(), ItemListActivity.class);
favIntent.putExtra("ItemId", ItemListActivity.FAV_SONGS);
favIntent.putExtra("ParentId", mFolder.getId());
getActivity().startActivity(favIntent);
break;
case SERIES:
case TvApp.LIVE_TV_SERIES_OPTION_ID:
Intent seriesIntent = new Intent(mActivity, UserViewActivity.class);
BaseItemDto seriesTimers = new BaseItemDto();
seriesTimers.setId("SERIESTIMERS");
seriesTimers.setCollectionType("SeriesTimers");
seriesTimers.setName(mActivity.getString(R.string.lbl_series_recordings));
seriesIntent.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(seriesTimers));
getActivity().startActivity(seriesIntent);
break;
case SCHEDULE:
case TvApp.LIVE_TV_SCHEDULE_OPTION_ID:
Intent schedIntent = new Intent(mActivity, BrowseScheduleActivity.class);
getActivity().startActivity(schedIntent);
break;
case TvApp.LIVE_TV_RECORDINGS_OPTION_ID:
Intent recordings = new Intent(mActivity, BrowseRecordingsActivity.class);
BaseItemDto folder = new BaseItemDto();
folder.setId("");
folder.setName(TvApp.getApplication().getResources().getString(R.string.lbl_recorded_tv));
recordings.putExtra("Folder", TvApp.getApplication().getSerializer().SerializeToString(folder));
mActivity.startActivity(recordings);
break;
default:
Toast.makeText(getActivity(), item.toString() + mApplication.getString(R.string.msg_not_implemented), Toast.LENGTH_SHORT)
.show();
break;
}
}
}
}
private final class ItemViewClickedListener implements OnItemViewClickedListener {
@Override
public void onItemClicked(final Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (!(item instanceof BaseRowItem)) return;
MediaManager.setCurrentMediaTitle(row.getHeaderItem().getName());
ItemLauncher.launch((BaseRowItem) item, (ItemRowAdapter) ((ListRow)row).getAdapter(), ((BaseRowItem)item).getIndex(), getActivity());
}
}
private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
mHandler.removeCallbacks(updateContentTask);
if (item instanceof GridButton && ((GridButton)item).getId() == FAVSONGS) {
//set to specialized item
mCurrentItem = favSongsRowItem;
}
if (!(item instanceof BaseRowItem)) {
mTitle.setText(mFolder != null ? mFolder.getName() : "");
mInfoRow.removeAllViews();
mSummary.setText("");
//fill in default background
mBackgroundUrl = null;
startBackgroundTimer();
return;
}
BaseRowItem rowItem = (BaseRowItem) item;
mCurrentItem = rowItem;
mCurrentRow = (ListRow) row;
mTitle.setText(mCurrentItem.getName());
mInfoRow.removeAllViews();
mSummary.setText("");
mHandler.postDelayed(updateContentTask, 500);
//mApplication.getLogger().Debug("Selected Item "+rowItem.getIndex() + " type: "+ (rowItem.getItemType().equals(BaseRowItem.ItemType.BaseItem) ? rowItem.getBaseItem().getType() : "other"));
ItemRowAdapter adapter = (ItemRowAdapter) ((ListRow)row).getAdapter();
adapter.loadMoreItemsIfNeeded(rowItem.getIndex());
if (ShowFanart) {
mBackgroundUrl = rowItem.getBackdropImageUrl();
startBackgroundTimer();
}
}
}
protected Runnable updateContentTask = new Runnable() {
@Override
public void run() {
if (mCurrentItem == null) return;
mTitle.setText(mCurrentItem.getName());
mSummary.setText(mCurrentItem.getSummary());
InfoLayoutHelper.addInfoRow(mActivity, mCurrentItem, mInfoRow, true, true);
}
};
private void prepareBackgroundManager() {
final BackgroundManager backgroundManager = BackgroundManager.getInstance(getActivity());
backgroundManager.attach(getActivity().getWindow());
mMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
mBackgroundTarget = new SimpleTarget<Bitmap>(mMetrics.widthPixels, mMetrics.heightPixels) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
backgroundManager.setBitmap(resource);
TvApp.getApplication().setCurrentBackground(resource);
}
};
}
protected void updateBackground(String url) {
if (url == null) {
clearBackground();
} else {
Glide.with(getActivity())
.load(url)
.asBitmap()
.override(mMetrics.widthPixels, mMetrics.heightPixels)
.centerCrop()
.into(mBackgroundTarget);
}
}
protected void clearBackground() {
BackgroundManager.getInstance(getActivity()).setDrawable(null);
}
private void startBackgroundTimer() {
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
mBackgroundTimer = new Timer();
mBackgroundTimer.schedule(new UpdateBackgroundTask(), BACKGROUND_UPDATE_DELAY);
}
private class UpdateBackgroundTask extends TimerTask {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
updateBackground(mBackgroundUrl);
}
});
}
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class GenericFolderActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_generic_folder);
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class GenericGridActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse_grid);
}
}

View File

@@ -1,5 +0,0 @@
package org.jellyfin.androidtv.browsing;
public interface IGridLoader {
void loadGrid(BrowseRowDef rowDef);
}

View File

@@ -1,7 +0,0 @@
package org.jellyfin.androidtv.browsing;
import java.util.List;
public interface IRowLoader {
void loadRows(List<BrowseRowDef> rows);
}

View File

@@ -1,12 +0,0 @@
package org.jellyfin.androidtv.browsing
import android.os.Bundle
import org.jellyfin.androidtv.R
import org.jellyfin.androidtv.base.BaseActivity
class MainActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_home)
}
}

View File

@@ -1,510 +0,0 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.jellyfin.androidtv.browsing;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import androidx.leanback.app.BackgroundManager;
import androidx.leanback.app.BrowseSupportFragment;
import androidx.leanback.widget.ArrayObjectAdapter;
import androidx.leanback.widget.HeaderItem;
import androidx.leanback.widget.ListRow;
import androidx.leanback.widget.OnItemViewClickedListener;
import androidx.leanback.widget.OnItemViewSelectedListener;
import androidx.leanback.widget.Presenter;
import androidx.leanback.widget.Row;
import androidx.leanback.widget.RowPresenter;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.base.BaseActivity;
import org.jellyfin.androidtv.base.CustomMessage;
import org.jellyfin.androidtv.base.IKeyListener;
import org.jellyfin.androidtv.base.IMessageListener;
import org.jellyfin.androidtv.itemhandling.AudioQueueItem;
import org.jellyfin.androidtv.itemhandling.BaseRowItem;
import org.jellyfin.androidtv.itemhandling.ItemLauncher;
import org.jellyfin.androidtv.itemhandling.ItemRowAdapter;
import org.jellyfin.androidtv.presentation.CardPresenter;
import org.jellyfin.androidtv.presentation.PositionableListRowPresenter;
import org.jellyfin.androidtv.querying.QueryType;
import org.jellyfin.androidtv.querying.ViewQuery;
import org.jellyfin.androidtv.ui.ClockUserView;
import org.jellyfin.androidtv.ui.ItemPanel;
import org.jellyfin.androidtv.util.KeyProcessor;
import org.jellyfin.androidtv.util.Utils;
import java.util.ArrayList;
import java.util.List;
import java.util.Timer;
import java.util.TimerTask;
import org.jellyfin.apiclient.interaction.EmptyResponse;
import org.jellyfin.apiclient.model.dto.BaseItemType;
public class StdBrowseFragment extends BrowseSupportFragment implements IRowLoader {
private static final String TAG = "StdBrowseFragment";
private static final int BACKGROUND_UPDATE_DELAY = 100;
protected String MainTitle;
protected boolean ShowBadge = true;
protected boolean ShowInfoPanel = true;
protected boolean ShowFanart = false;
protected TvApp mApplication;
protected BaseActivity mActivity;
protected BaseRowItem mCurrentItem;
protected ListRow mCurrentRow;
protected CompositeClickedListener mClickedListener = new CompositeClickedListener();
protected CompositeSelectedListener mSelectedListener = new CompositeSelectedListener();
protected ArrayObjectAdapter mRowsAdapter;
private SimpleTarget<Bitmap> mBackgroundTarget;
private DisplayMetrics mMetrics;
private Timer mBackgroundTimer;
private final Handler mHandler = new Handler();
private String mBackgroundUrl;
protected ArrayList<BrowseRowDef> mRows = new ArrayList<>();
protected CardPresenter mCardPresenter;
protected boolean justLoaded = true;
private ItemPanel mItemPanel;
private Animation fadeInPanel;
private Animation fadeOutPanel;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mApplication = TvApp.getApplication();
if (getActivity() instanceof BaseActivity) mActivity = (BaseActivity)getActivity();
prepareBackgroundManager();
setupUIElements();
setupQueries(this);
setupEventListeners();
}
protected void setupQueries(IRowLoader rowLoader) {
rowLoader.loadRows(mRows);
}
@Override
public void onDestroy() {
super.onDestroy();
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onResume() {
super.onResume();
// set info panel option
ShowInfoPanel = mApplication.getPrefs().getBoolean("pref_enable_info_panel", true);
ShowFanart = mApplication.getPrefs().getBoolean("pref_show_backdrop", true);
//React to deletion
if (getActivity() != null && !getActivity().isFinishing() && mCurrentRow != null && mCurrentItem != null && mCurrentItem.getItemId() != null && mCurrentItem.getItemId().equals(TvApp.getApplication().getLastDeletedItemId())) {
((ItemRowAdapter)mCurrentRow.getAdapter()).remove(mCurrentItem);
TvApp.getApplication().setLastDeletedItemId(null);
}
if (!justLoaded) {
//Re-retrieve anything that needs it but delay slightly so we don't take away gui landing
if (mRowsAdapter != null) {
refreshCurrentItem();
refreshRows();
}
} else {
justLoaded = false;
}
}
protected void refreshRows() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (mActivity.isFinishing()) return;
for (int i = 0; i < mRowsAdapter.size(); i++) {
if (mRowsAdapter.get(i) instanceof ListRow) {
if (((ListRow) mRowsAdapter.get(i)).getAdapter() instanceof ItemRowAdapter && !mActivity.isFinishing()) {
((ItemRowAdapter) ((ListRow) mRowsAdapter.get(i)).getAdapter()).ReRetrieveIfNeeded();
}
}
}
}
},1500);
}
public void loadRows(List<BrowseRowDef> rows) {
mRowsAdapter = new ArrayObjectAdapter(new PositionableListRowPresenter());
mCardPresenter = new CardPresenter();
for (BrowseRowDef def : rows) {
HeaderItem header = new HeaderItem(def.getHeaderText());
ItemRowAdapter rowAdapter;
switch (def.getQueryType()) {
case NextUp:
rowAdapter = new ItemRowAdapter(def.getNextUpQuery(), true, mCardPresenter, mRowsAdapter);
break;
case LatestItems:
rowAdapter = new ItemRowAdapter(def.getLatestItemsQuery(), true, mCardPresenter, mRowsAdapter);
break;
case Season:
rowAdapter = new ItemRowAdapter(def.getSeasonQuery(), mCardPresenter, mRowsAdapter);
break;
case Upcoming:
rowAdapter = new ItemRowAdapter(def.getUpcomingQuery(), mCardPresenter, mRowsAdapter);
break;
case Views:
rowAdapter = new ItemRowAdapter(new ViewQuery(), mCardPresenter, mRowsAdapter);
break;
case SimilarSeries:
rowAdapter = new ItemRowAdapter(def.getSimilarQuery(), QueryType.SimilarSeries, mCardPresenter, mRowsAdapter);
break;
case SimilarMovies:
rowAdapter = new ItemRowAdapter(def.getSimilarQuery(), QueryType.SimilarMovies, mCardPresenter, mRowsAdapter);
break;
case Persons:
rowAdapter = new ItemRowAdapter(def.getPersonsQuery(), def.getChunkSize(), mCardPresenter, mRowsAdapter);
break;
case LiveTvChannel:
rowAdapter = new ItemRowAdapter(def.getTvChannelQuery(), 40, mCardPresenter, mRowsAdapter);
break;
case LiveTvProgram:
rowAdapter = new ItemRowAdapter(def.getProgramQuery(), mCardPresenter, mRowsAdapter);
break;
case LiveTvRecording:
rowAdapter = new ItemRowAdapter(def.getRecordingQuery(), def.getChunkSize(), mCardPresenter, mRowsAdapter);
break;
case LiveTvRecordingGroup:
rowAdapter = new ItemRowAdapter(def.getRecordingGroupQuery(), mCardPresenter, mRowsAdapter);
break;
default:
rowAdapter = new ItemRowAdapter(def.getQuery(), def.getChunkSize(), def.getPreferParentThumb(), def.isStaticHeight(), mCardPresenter, mRowsAdapter, def.getQueryType());
break;
}
rowAdapter.setReRetrieveTriggers(def.getChangeTriggers());
ListRow row = new ListRow(header, rowAdapter);
mRowsAdapter.add(row);
rowAdapter.setRow(row);
rowAdapter.Retrieve();
}
addAdditionalRows(mRowsAdapter);
setAdapter(mRowsAdapter);
}
protected void addAdditionalRows(ArrayObjectAdapter rowAdapter) {
}
private void prepareBackgroundManager() {
final BackgroundManager backgroundManager = BackgroundManager.getInstance(getActivity());
backgroundManager.attach(getActivity().getWindow());
mMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
mBackgroundTarget = new SimpleTarget<Bitmap>(mMetrics.widthPixels, mMetrics.heightPixels) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
backgroundManager.setBitmap(resource);
mApplication.setCurrentBackground(resource);
}
};
}
protected void setupUIElements() {
if (ShowBadge) setBadgeDrawable(getActivity().getResources().getDrawable(R.drawable.app_logo_transparent));
setTitle(MainTitle); // Badge, when set, takes precedent over title
setHeadersState(HEADERS_ENABLED);
setHeadersTransitionOnBackEnabled(true);
// move the badge/title to the left to make way for our clock/user bug
ImageView badge = (ImageView) getActivity().findViewById(R.id.title_badge);
if (badge != null) {
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) badge.getLayoutParams();
lp.rightMargin = Utils.convertDpToPixel(getActivity(), 120);
lp.width = Utils.convertDpToPixel(getActivity(), 250);
badge.setLayoutParams(lp);
}
TextView title = (TextView) getActivity().findViewById(R.id.title_text);
if (title != null) {
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) title.getLayoutParams();
lp.rightMargin = Utils.convertDpToPixel(getActivity(), 120);
lp.width = Utils.convertDpToPixel(getActivity(), 250);
title.setLayoutParams(lp);
}
ViewGroup root = (ViewGroup) getActivity().findViewById(android.R.id.content);
// add item panel
mItemPanel = new ItemPanel(getActivity());
FrameLayout.LayoutParams panelLayout = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, Utils.convertDpToPixel(TvApp.getApplication(), 145));
panelLayout.gravity = Gravity.BOTTOM;
panelLayout.bottomMargin = -10;
mItemPanel.setLayoutParams(panelLayout);
root.addView(mItemPanel);
mItemPanel.setVisibility(View.INVISIBLE);
// and add the clock element
FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
ClockUserView clock = new ClockUserView(getActivity());
layoutParams.gravity = Gravity.TOP | Gravity.RIGHT;
layoutParams.rightMargin = Utils.convertDpToPixel(getActivity(), 40);
layoutParams.topMargin = Utils.convertDpToPixel(getActivity(), 20);
clock.setLayoutParams(layoutParams);
root.addView(clock);
// load item panel animation
fadeInPanel = AnimationUtils.loadAnimation(mActivity, R.anim.abc_fade_in);
fadeInPanel.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
mItemPanel.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
fadeOutPanel = AnimationUtils.loadAnimation(mActivity, R.anim.abc_fade_out);
fadeOutPanel.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
mItemPanel.setVisibility(View.INVISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
private Runnable showItemPanel = new Runnable() {
@Override
public void run() {
if (mCurrentItem != null && !mCurrentItem.isFolder() && (mCurrentItem.getRuntimeTicks() > 0 || (mCurrentItem.getSummary() != null && mCurrentItem.getSummary().length() > 0))) {
mItemPanel.setItem(mCurrentItem);
mItemPanel.startAnimation(fadeInPanel);
mHandler.removeCallbacks(hideItemPanel);
mHandler.postDelayed(hideItemPanel, 20000);
} else {
mItemPanel.setVisibility(View.INVISIBLE);
}
}
};
private Runnable hideItemPanel = new Runnable() {
@Override
public void run() {
mItemPanel.startAnimation(fadeOutPanel);
}
};
protected void setupEventListeners() {
setOnSearchClickedListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
TvApp.getApplication().showSearch(getActivity(), false);
}
});
setOnItemViewClickedListener(mClickedListener);
mClickedListener.registerListener(new ItemViewClickedListener());
setOnItemViewSelectedListener(mSelectedListener);
mSelectedListener.registerListener(new ItemViewSelectedListener());
if (mActivity != null) {
mActivity.registerKeyListener(new IKeyListener() {
@Override
public boolean onKeyUp(int key, KeyEvent event) {
return KeyProcessor.HandleKey(key, mCurrentItem, mActivity);
}
});
mActivity.registerMessageListener(new IMessageListener() {
@Override
public void onMessageReceived(CustomMessage message) {
switch (message) {
case RefreshCurrentItem:
refreshCurrentItem();
break;
}
}
});
}
}
private void refreshCurrentItem() {
if (mCurrentItem != null && mCurrentItem.getBaseItemType() != BaseItemType.UserView && mCurrentItem.getBaseItemType() != BaseItemType.CollectionFolder) {
TvApp.getApplication().getLogger().Debug("Refresh item "+mCurrentItem.getFullName());
mCurrentItem.refresh(new EmptyResponse() {
@Override
public void onResponse() {
ItemRowAdapter adapter = (ItemRowAdapter) ((ListRow)mCurrentRow).getAdapter();
adapter.notifyArrayItemRangeChanged(adapter.indexOf(mCurrentItem), 1);
}
});
}
}
private final class ItemViewClickedListener implements OnItemViewClickedListener {
@Override
public void onItemClicked(final Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (!(item instanceof BaseRowItem)) return;
ItemLauncher.launch((BaseRowItem) item, (ItemRowAdapter) ((ListRow)row).getAdapter(), ((BaseRowItem)item).getIndex(), getActivity());
}
}
private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (ShowInfoPanel) {
// cancel any delayed showing and hide item panel
mHandler.removeCallbacks(showItemPanel);
mItemPanel.setVisibility(View.INVISIBLE);
}
if (!(item instanceof BaseRowItem)) {
mCurrentItem = null;
mHandler.removeCallbacks(hideItemPanel);
//fill in default background
mBackgroundUrl = null;
startBackgroundTimer();
return;
} else {
mCurrentItem = (BaseRowItem)item;
if (!isShowingHeaders() && ShowInfoPanel && !(item instanceof AudioQueueItem)) {
// delay show the item panel
mHandler.postDelayed(showItemPanel, 1000);
}
}
mCurrentRow = (ListRow) row;
BaseRowItem rowItem = (BaseRowItem) item;
if (((ListRow) row).getAdapter() instanceof ItemRowAdapter) {
//mApplication.getLogger().Debug("Selected Item "+rowItem.getIndex() + " type: "+ (rowItem.getItemType().equals(BaseRowItem.ItemType.BaseItem) ? rowItem.getBaseItem().getType() : "other"));
ItemRowAdapter adapter = (ItemRowAdapter) ((ListRow) row).getAdapter();
adapter.loadMoreItemsIfNeeded(rowItem.getIndex());
}
if (ShowFanart) {
mBackgroundUrl = rowItem.getBackdropImageUrl();
startBackgroundTimer();
}
}
}
protected void updateBackground(String url) {
if (url == null) {
clearBackground();
} else {
Glide.with(getActivity())
.load(url)
.asBitmap()
.override(mMetrics.widthPixels, mMetrics.heightPixels)
.centerCrop()
.into(mBackgroundTarget);
}
}
protected void clearBackground() {
BackgroundManager.getInstance(getActivity()).setDrawable(null);
}
private void startBackgroundTimer() {
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
mBackgroundTimer = new Timer();
mBackgroundTimer.schedule(new UpdateBackgroundTask(), BACKGROUND_UPDATE_DELAY);
}
private class UpdateBackgroundTask extends TimerTask {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
updateBackground(mBackgroundUrl);
}
});
}
}
}

View File

@@ -1,703 +0,0 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.jellyfin.androidtv.browsing;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Handler;
import androidx.leanback.app.BackgroundManager;
import androidx.leanback.widget.OnItemViewClickedListener;
import androidx.leanback.widget.OnItemViewSelectedListener;
import androidx.leanback.widget.Presenter;
import androidx.leanback.widget.Row;
import androidx.leanback.widget.RowPresenter;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.LinearLayout;
import android.widget.PopupMenu;
import android.widget.PopupWindow;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.animation.GlideAnimation;
import com.bumptech.glide.request.target.SimpleTarget;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.TvApp;
import org.jellyfin.androidtv.base.BaseActivity;
import org.jellyfin.androidtv.base.CustomMessage;
import org.jellyfin.androidtv.base.IKeyListener;
import org.jellyfin.androidtv.base.IMessageListener;
import org.jellyfin.androidtv.itemhandling.BaseRowItem;
import org.jellyfin.androidtv.itemhandling.ItemLauncher;
import org.jellyfin.androidtv.itemhandling.ItemRowAdapter;
import org.jellyfin.androidtv.model.FilterOptions;
import org.jellyfin.androidtv.model.ImageType;
import org.jellyfin.androidtv.model.PosterSize;
import org.jellyfin.androidtv.playback.MediaManager;
import org.jellyfin.androidtv.presentation.CardPresenter;
import org.jellyfin.androidtv.presentation.HorizontalGridPresenter;
import org.jellyfin.androidtv.querying.QueryType;
import org.jellyfin.androidtv.querying.ViewQuery;
import org.jellyfin.androidtv.ui.CharSelectedListener;
import org.jellyfin.androidtv.ui.DisplayPrefsPopup;
import org.jellyfin.androidtv.ui.HorizontalGridFragment;
import org.jellyfin.androidtv.ui.ImageButton;
import org.jellyfin.androidtv.ui.JumpList;
import org.jellyfin.androidtv.util.KeyProcessor;
import org.jellyfin.androidtv.util.Utils;
import java.util.HashMap;
import java.util.Timer;
import java.util.TimerTask;
import org.jellyfin.apiclient.interaction.EmptyResponse;
import org.jellyfin.apiclient.interaction.Response;
import org.jellyfin.apiclient.model.dto.BaseItemDto;
import org.jellyfin.apiclient.model.dto.BaseItemType;
import org.jellyfin.apiclient.model.entities.DisplayPreferences;
public class StdGridFragment extends HorizontalGridFragment implements IGridLoader {
private static final String TAG = "StdGridFragment";
private static final int BACKGROUND_UPDATE_DELAY = 100;
protected String MainTitle;
protected TvApp mApplication;
protected BaseActivity mActivity;
protected BaseRowItem mCurrentItem;
protected CompositeClickedListener mClickedListener = new CompositeClickedListener();
protected CompositeSelectedListener mSelectedListener = new CompositeSelectedListener();
protected ItemRowAdapter mGridAdapter;
private SimpleTarget<Bitmap> mBackgroundTarget;
private DisplayMetrics mMetrics;
private Timer mBackgroundTimer;
private final Handler mHandler = new Handler();
private String mBackgroundUrl;
protected BrowseRowDef mRowDef;
CardPresenter mCardPresenter;
protected boolean justLoaded = true;
protected boolean ShowFanart = false;
protected String mPosterSizeSetting = PosterSize.AUTO;
protected String mImageType = ImageType.DEFAULT;
protected boolean determiningPosterSize = false;
protected String mParentId;
protected BaseItemDto mFolder;
protected DisplayPreferences mDisplayPrefs;
private int mCardHeight = SMALL_CARD;
protected boolean mAllowViewSelection = true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mFolder = TvApp.getApplication().getSerializer().DeserializeFromString(getActivity().getIntent().getStringExtra("Folder"), BaseItemDto.class);
mParentId = mFolder.getId();
MainTitle = mFolder.getName();
mDisplayPrefs = TvApp.getApplication().getCachedDisplayPrefs(mFolder.getDisplayPreferencesId()); //These should have already been loaded
mPosterSizeSetting = mDisplayPrefs.getCustomPrefs().get("PosterSize");
mImageType = mDisplayPrefs.getCustomPrefs().get("ImageType");
if (mImageType == null) mImageType = ImageType.DEFAULT;
if (mPosterSizeSetting == null) mPosterSizeSetting = PosterSize.AUTO;
mCardHeight = getCardHeight(mPosterSizeSetting);
setupUIElements();
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mApplication = TvApp.getApplication();
if (getActivity() instanceof BaseActivity) mActivity = (BaseActivity)getActivity();
prepareBackgroundManager();
setupQueries(this);
addTools();
setupEventListeners();
}
protected void setupQueries(IGridLoader gridLoader) {
}
@Override
public void onDestroy() {
super.onDestroy();
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
}
@Override
public void onPause() {
super.onPause();
}
@Override
public void onResume() {
super.onResume();
ShowFanart = mApplication.getPrefs().getBoolean("pref_show_backdrop", true);
if (!justLoaded) {
//Re-retrieve anything that needs it but delay slightly so we don't take away gui landing
if (mGridAdapter != null) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
if (mActivity.isFinishing()) return;
if (mGridAdapter != null && mGridAdapter.size() > 0) {
if (!mGridAdapter.ReRetrieveIfNeeded()) refreshCurrentItem();
}
}
},500);
}
} else {
justLoaded = false;
}
}
public void setCardHeight(int height) {
mCardHeight = height;
}
public int getCardHeight() {
return mCardHeight;
}
protected void buildAdapter(BrowseRowDef rowDef) {
mCardPresenter = new CardPresenter(false, mImageType, mCardHeight);
switch (mRowDef.getQueryType()) {
case NextUp:
mGridAdapter = new ItemRowAdapter(mRowDef.getNextUpQuery(), true, mCardPresenter, null);
break;
case Season:
mGridAdapter = new ItemRowAdapter(mRowDef.getSeasonQuery(), mCardPresenter, null);
break;
case Upcoming:
mGridAdapter = new ItemRowAdapter(mRowDef.getUpcomingQuery(), mCardPresenter, null);
break;
case Views:
mGridAdapter = new ItemRowAdapter(new ViewQuery(), mCardPresenter, null);
break;
case SimilarSeries:
mGridAdapter = new ItemRowAdapter(mRowDef.getSimilarQuery(), QueryType.SimilarSeries, mCardPresenter, null);
break;
case SimilarMovies:
mGridAdapter = new ItemRowAdapter(mRowDef.getSimilarQuery(), QueryType.SimilarMovies, mCardPresenter, null);
break;
case Persons:
mGridAdapter = new ItemRowAdapter(mRowDef.getPersonsQuery(), mRowDef.getChunkSize(), mCardPresenter, null);
break;
case LiveTvChannel:
mGridAdapter = new ItemRowAdapter(mRowDef.getTvChannelQuery(), 40, mCardPresenter, null);
break;
case LiveTvProgram:
mGridAdapter = new ItemRowAdapter(mRowDef.getProgramQuery(), mCardPresenter, null);
break;
case LiveTvRecording:
mGridAdapter = new ItemRowAdapter(mRowDef.getRecordingQuery(), mRowDef.getChunkSize(), mCardPresenter, null);
break;
case LiveTvRecordingGroup:
mGridAdapter = new ItemRowAdapter(mRowDef.getRecordingGroupQuery(), mCardPresenter, null);
break;
case AlbumArtists:
mGridAdapter = new ItemRowAdapter(mRowDef.getArtistsQuery(), mRowDef.getChunkSize(), mCardPresenter, null);
break;
default:
mGridAdapter = new ItemRowAdapter(mRowDef.getQuery(), mRowDef.getChunkSize(), mRowDef.getPreferParentThumb(), mRowDef.isStaticHeight(), mCardPresenter, null);
break;
}
FilterOptions filters = new FilterOptions();
filters.setFavoriteOnly(Boolean.parseBoolean(mDisplayPrefs.getCustomPrefs().get("FavoriteOnly")));
filters.setUnwatchedOnly(Boolean.parseBoolean(mDisplayPrefs.getCustomPrefs().get("UnwatchedOnly")));
setupRetrieveListeners();
mGridAdapter.setFilters(filters);
setAdapter(mGridAdapter);
}
public void loadGrid(final BrowseRowDef rowDef) {
determiningPosterSize = true;
buildAdapter(rowDef);
if (mPosterSizeSetting.equals(PosterSize.AUTO)) {
mGridAdapter.GetResultSizeAsync(new Response<Integer>() {
@Override
public void onResponse(Integer response) {
int autoHeight = getAutoCardHeight(response);
if (autoHeight != mCardHeight) {
mCardHeight = autoHeight;
setNumberOfRows();
createGrid();
TvApp.getApplication().getLogger().Debug("Auto card height is "+mCardHeight);
buildAdapter(rowDef);
}
mGridAdapter.setSortBy(getSortOption(mDisplayPrefs.getSortBy()));
mGridAdapter.Retrieve();
determiningPosterSize = false;
}
});
} else {
mGridAdapter.setSortBy(getSortOption(mDisplayPrefs.getSortBy()));
mGridAdapter.Retrieve();
determiningPosterSize = false;
}
}
protected int getCardHeight(String heightSetting) {
switch (heightSetting) {
case PosterSize.MED:
return mImageType.equals(ImageType.BANNER) ? MED_BANNER : MED_CARD;
case PosterSize.LARGE:
return mImageType.equals(ImageType.BANNER) ? LARGE_BANNER : LARGE_CARD;
default:
return mImageType.equals(ImageType.BANNER) ? SMALL_BANNER : SMALL_CARD;
}
}
protected int getAutoCardHeight(Integer size) {
TvApp.getApplication().getLogger().Debug("Result size for auto card height is " + size);
if (size > 35)
return getCardHeight(PosterSize.SMALL);
else if (size > 10)
return getCardHeight(PosterSize.MED);
else
return getCardHeight(PosterSize.LARGE);
}
private void prepareBackgroundManager() {
final BackgroundManager backgroundManager = BackgroundManager.getInstance(getActivity());
backgroundManager.attach(getActivity().getWindow());
mMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
mBackgroundTarget = new SimpleTarget<Bitmap>(mMetrics.widthPixels, mMetrics.heightPixels) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
backgroundManager.setBitmap(resource);
mApplication.setCurrentBackground(resource);
}
};
}
protected void setupUIElements() {
HorizontalGridPresenter gridPresenter = new HorizontalGridPresenter();
setGridPresenter(gridPresenter);
setNumberOfRows();
mJumplistPopup = new JumplistPopup(getActivity());
}
protected void setNumberOfRows() {
// calculate number of rows based on card height
getGridPresenter().setNumberOfRows(getGridHeight() / getCardHeight());
}
protected ImageButton mUnwatchedButton;
protected ImageButton mFavoriteButton;
protected ImageButton mLetterButton;
protected DisplayPrefsPopup mDisplayPrefsPopup;
protected void updateDisplayPrefs() {
if (mDisplayPrefs.getCustomPrefs() == null)
mDisplayPrefs.setCustomPrefs(new HashMap<String, String>());
mDisplayPrefs.getCustomPrefs().put("UnwatchedOnly", mGridAdapter.getFilters().isUnwatchedOnly() ? "true" : "false");
mDisplayPrefs.getCustomPrefs().put("FavoriteOnly", mGridAdapter.getFilters().isFavoriteOnly() ? "true" : "false");
mDisplayPrefs.setSortBy(mGridAdapter.getSortBy());
mDisplayPrefs.setSortOrder(getSortOption(mGridAdapter.getSortBy()).order);
TvApp.getApplication().updateDisplayPrefs(mDisplayPrefs);
}
protected void addTools() {
//Add tools
LinearLayout toolBar = getToolBar();
int size = Utils.convertDpToPixel(getActivity(), 24);
mDisplayPrefsPopup = new DisplayPrefsPopup(getActivity(), mGridDock, mAllowViewSelection, new Response<Boolean>() {
@Override
public void onResponse(Boolean response) {
TvApp.getApplication().updateDisplayPrefs(mDisplayPrefs);
if (response)
{
mImageType = mDisplayPrefs.getCustomPrefs().get("ImageType");
mPosterSizeSetting = mDisplayPrefs.getCustomPrefs().get("PosterSize");
mCardHeight = getCardHeight(mPosterSizeSetting);
setNumberOfRows();
createGrid();
loadGrid(mRowDef);
}
}
});
toolBar.addView(new ImageButton(getActivity(), R.drawable.ic_sort, size, new View.OnClickListener() {
@Override
public void onClick(View v) {
//Create sort menu
PopupMenu sortMenu = Utils.createPopupMenu(getActivity(), getToolBar(), Gravity.RIGHT);
for (Integer key : sortOptions.keySet()) {
SortOption option = sortOptions.get(key);
if (option == null) option = sortOptions.get(0);
MenuItem item = sortMenu.getMenu().add(0, key, key, option.name);
if (option.value.equals(mDisplayPrefs.getSortBy())) item.setChecked(true);
}
sortMenu.getMenu().setGroupCheckable(0, true, true);
sortMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
mGridAdapter.setSortBy(sortOptions.get(item.getItemId()));
mGridAdapter.Retrieve();
item.setChecked(true);
updateDisplayPrefs();
return true;
}
});
sortMenu.show();
}
}));
if (mRowDef.getQueryType() == QueryType.Items) {
mUnwatchedButton = new ImageButton(getActivity(), mGridAdapter.getFilters().isUnwatchedOnly() ? R.drawable.ic_unwatch_red : R.drawable.ic_unwatch, size, new View.OnClickListener() {
@Override
public void onClick(View v) {
FilterOptions filters = mGridAdapter.getFilters();
if (filters == null) filters = new FilterOptions();
filters.setUnwatchedOnly(!filters.isUnwatchedOnly());
updateDisplayPrefs();
mGridAdapter.setFilters(filters);
if (mPosterSizeSetting.equals(PosterSize.AUTO)) {
loadGrid(mRowDef);
} else {
mGridAdapter.Retrieve();
}
mUnwatchedButton.setImageResource(filters.isUnwatchedOnly() ? R.drawable.ic_unwatch_red : R.drawable.ic_unwatch);
}
});
toolBar.addView(mUnwatchedButton);
}
mFavoriteButton =new ImageButton(getActivity(), mGridAdapter.getFilters().isFavoriteOnly() ? R.drawable.ic_heart_red : R.drawable.ic_heart, size, new View.OnClickListener() {
@Override
public void onClick(View v) {
FilterOptions filters = mGridAdapter.getFilters();
if (filters == null) filters = new FilterOptions();
filters.setFavoriteOnly(!filters.isFavoriteOnly());
mGridAdapter.setFilters(filters);
updateDisplayPrefs();
if (mPosterSizeSetting.equals(PosterSize.AUTO)) {
loadGrid(mRowDef);
} else {
mGridAdapter.Retrieve();
}
mFavoriteButton.setImageResource(filters.isFavoriteOnly() ? R.drawable.ic_heart_red : R.drawable.ic_heart);
}
});
toolBar.addView(mFavoriteButton);
mLetterButton = new ImageButton(getActivity(), R.drawable.ic_jump_letter, size, new View.OnClickListener() {
@Override
public void onClick(View v) {
//Open letter jump popup
mJumplistPopup.show();
}
});
toolBar.addView(mLetterButton);
toolBar.addView(new ImageButton(getActivity(), R.drawable.ic_search, size, new View.OnClickListener() {
@Override
public void onClick(View v) {
TvApp.getApplication().showSearch(getActivity(), "music".equals(mFolder.getCollectionType()) || mFolder.getBaseItemType() == BaseItemType.MusicAlbum || mFolder.getBaseItemType() == BaseItemType.MusicArtist);
}
}));
toolBar.addView(new ImageButton(getActivity(), R.drawable.ic_settings, size, new View.OnClickListener() {
@Override
public void onClick(View v) {
mDisplayPrefsPopup.show(mDisplayPrefs, mFolder.getCollectionType());
}
}));
}
private JumplistPopup mJumplistPopup;
class JumplistPopup {
final int WIDTH = Utils.convertDpToPixel(TvApp.getApplication(), 900);
final int HEIGHT = Utils.convertDpToPixel(TvApp.getApplication(), 55);
PopupWindow mPopup;
Activity mActivity;
JumpList mJumplist;
JumplistPopup(Activity activity) {
mActivity = activity;
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.empty_popup, null);
mPopup = new PopupWindow(layout, WIDTH, HEIGHT);
mPopup.setFocusable(true);
mPopup.setOutsideTouchable(true);
mPopup.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); // necessary for popup to dismiss
mPopup.setAnimationStyle(R.style.PopupSlideInTop);
mJumplist = new JumpList(activity, new CharSelectedListener() {
@Override
public void onCharSelected(String ch) {
mGridAdapter.setStartLetter(ch);
loadGrid(mRowDef);
dismiss();
}
});
mJumplist.setGravity(Gravity.CENTER_HORIZONTAL);
FrameLayout root = (FrameLayout) layout.findViewById(R.id.root);
root.addView(mJumplist);
}
public boolean isShowing() {
return (mPopup != null && mPopup.isShowing());
}
public void show() {
mPopup.showAtLocation(mGridDock, Gravity.TOP, mGridDock.getLeft(), mGridDock.getTop());
mJumplist.setFocus(mGridAdapter.getStartLetter());
}
public void dismiss() {
if (mPopup != null && mPopup.isShowing()) {
mPopup.dismiss();
}
}
}
protected void setupEventListeners() {
setOnItemViewClickedListener(mClickedListener);
mClickedListener.registerListener(new ItemViewClickedListener());
setOnItemViewSelectedListener(mSelectedListener);
mSelectedListener.registerListener(new ItemViewSelectedListener());
if (mActivity != null) {
mActivity.registerKeyListener(new IKeyListener() {
@Override
public boolean onKeyUp(int key, KeyEvent event) {
if (key == KeyEvent.KEYCODE_MEDIA_PLAY || key == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) {
MediaManager.setCurrentMediaAdapter(mGridAdapter);
MediaManager.setCurrentMediaPosition(mCurrentItem.getIndex());
MediaManager.setCurrentMediaTitle(mFolder.getName());
}
return KeyProcessor.HandleKey(key, mCurrentItem, mActivity);
}
});
mActivity.registerMessageListener(new IMessageListener() {
@Override
public void onMessageReceived(CustomMessage message) {
switch (message) {
case RefreshCurrentItem:
refreshCurrentItem();
break;
}
}
});
}
}
protected void setupRetrieveListeners() {
mGridAdapter.setRetrieveStartedListener(new EmptyResponse() {
@Override
public void onResponse() {
showSpinner();
}
});
mGridAdapter.setRetrieveFinishedListener(new EmptyResponse() {
@Override
public void onResponse() {
hideSpinner();
setStatusText(mFolder.getName());
updateCounter(mGridAdapter.getTotalItems() > 0 ? 1 : 0);
mLetterButton.setVisibility("SortName".equals(mGridAdapter.getSortBy()) ? View.VISIBLE : View.GONE);
setItem(null);
if (mGridAdapter.getTotalItems() == 0) {
mToolBar.requestFocus();
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
setTitle(mFolder.getName());
}
}, 500);
} else focusGrid();
}
});
}
private void refreshCurrentItem() {
if (MediaManager.getCurrentMediaPosition() >= 0) {
mCurrentItem = MediaManager.getCurrentMediaItem();
getGridPresenter().setPosition(MediaManager.getCurrentMediaPosition());
MediaManager.setCurrentMediaPosition(-1); // re-set so it doesn't mess with parent views
}
if (mCurrentItem != null && mCurrentItem.getBaseItemType() != BaseItemType.Photo && mCurrentItem.getBaseItemType() != BaseItemType.PhotoAlbum
&& mCurrentItem.getBaseItemType() != BaseItemType.MusicArtist && mCurrentItem.getBaseItemType() != BaseItemType.MusicAlbum) {
TvApp.getApplication().getLogger().Debug("Refresh item "+mCurrentItem.getFullName());
mCurrentItem.refresh(new EmptyResponse() {
@Override
public void onResponse() {
mGridAdapter.notifyArrayItemRangeChanged(mGridAdapter.indexOf(mCurrentItem), 1);
//Now - if filtered make sure we still pass
if (mGridAdapter.getFilters() != null) {
if ((mGridAdapter.getFilters().isFavoriteOnly() && !mCurrentItem.isFavorite()) || (mGridAdapter.getFilters().isUnwatchedOnly() && mCurrentItem.isPlayed())) {
//if we are about to remove last item, throw focus to toolbar so framework doesn't crash
if (mGridAdapter.size() == 1) mToolBar.requestFocus();
mGridAdapter.remove(mCurrentItem);
mGridAdapter.setTotalItems(mGridAdapter.getTotalItems() - 1);
updateCounter(mCurrentItem.getIndex());
}
}
}
});
}
}
private final class ItemViewClickedListener implements OnItemViewClickedListener {
@Override
public void onItemClicked(final Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
if (!(item instanceof BaseRowItem)) return;
ItemLauncher.launch((BaseRowItem) item, mGridAdapter, ((BaseRowItem)item).getIndex(), getActivity());
}
}
private final Runnable mDelayedSetItem = new Runnable() {
@Override
public void run() {
if (ShowFanart) {
mBackgroundUrl = mCurrentItem.getBackdropImageUrl();
startBackgroundTimer();
}
setItem(mCurrentItem);
}
};
private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
@Override
public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
RowPresenter.ViewHolder rowViewHolder, Row row) {
mHandler.removeCallbacks(mDelayedSetItem);
if (!(item instanceof BaseRowItem)) {
mCurrentItem = null;
setTitle(MainTitle);
//fill in default background
mBackgroundUrl = null;
startBackgroundTimer();
} else {
mCurrentItem = (BaseRowItem)item;
mTitleView.setText(mCurrentItem.getName());
mInfoRow.removeAllViews();
mHandler.postDelayed(mDelayedSetItem, 400);
if (!determiningPosterSize) mGridAdapter.loadMoreItemsIfNeeded(mCurrentItem.getIndex());
}
}
}
protected void updateBackground(String url) {
if (url == null) {
clearBackground();
} else {
Glide.with(getActivity())
.load(url)
.asBitmap()
.override(mMetrics.widthPixels, mMetrics.heightPixels)
.centerCrop()
.into(mBackgroundTarget);
}
}
protected void clearBackground() {
BackgroundManager.getInstance(getActivity()).setDrawable(null);
}
private void startBackgroundTimer() {
if (null != mBackgroundTimer) {
mBackgroundTimer.cancel();
}
mBackgroundTimer = new Timer();
mBackgroundTimer.schedule(new UpdateBackgroundTask(), BACKGROUND_UPDATE_DELAY);
}
private class UpdateBackgroundTask extends TimerTask {
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
updateBackground(mBackgroundUrl);
}
});
}
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class SuggestedMoviesActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_suggested_movie);
}
}

View File

@@ -1,15 +0,0 @@
package org.jellyfin.androidtv.browsing;
import android.os.Bundle;
import org.jellyfin.androidtv.R;
import org.jellyfin.androidtv.base.BaseActivity;
public class UserViewActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_view);
}
}

View File

@@ -1,126 +0,0 @@
package org.jellyfin.androidtv.channels
import android.content.Intent
import android.net.Uri
import android.os.Build
import androidx.tvprovider.media.tv.TvContractCompat.WatchNextPrograms
import androidx.tvprovider.media.tv.WatchNextProgram
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.jellyfin.androidtv.TvApp
import org.jellyfin.androidtv.startup.StartupActivity
import org.jellyfin.androidtv.util.apiclient.getNextUpEpisodes
import org.jellyfin.apiclient.model.drawing.ImageFormat
import org.jellyfin.apiclient.model.dto.BaseItemDto
import org.jellyfin.apiclient.model.dto.ImageOptions
import org.jellyfin.apiclient.model.querying.ItemFields
import org.jellyfin.apiclient.model.querying.NextUpQuery
/**
* Manages channels on the android tv home screen
*
* More info: https://developer.android.com/training/tv/discovery/recommendations-channel
*/
class ChannelManager {
private companion object {
/**
* Amount of ticks found in a millisecond, used for calculation
*/
private const val TICKS_IN_MILLISECOND = 10000
}
private val application = TvApp.getApplication()
/**
* Check if the app can use Leanback features and is API level 26 or higher
*/
private val isSupported = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O
&& application.packageManager.hasSystemFeature("android.software.leanback")
/**
* Update all channels for the currently authenticated user
*/
fun update() {
// Don't do anything if not supported
if (!isSupported) return
// Launch in separate coroutine scope
GlobalScope.launch {
updateWatchNext()
}
}
/**
* Updates the "watch next" row with new and unfinished episodes
* does not include movies, music or other types of media
*/
private suspend fun updateWatchNext() = withContext(Dispatchers.Default) {
// Delete current items
application.contentResolver.delete(WatchNextPrograms.CONTENT_URI, null, null)
// Get user or return if no user is found (not authenticated)
val user = application.currentUser ?: return@withContext
// Get new items
val response = application.apiClient.getNextUpEpisodes(NextUpQuery().apply {
userId = user.id
imageTypeLimit = 1
limit = 10
fields = arrayOf(ItemFields.DateCreated)
})
// Add new items
response?.items?.forEach { item ->
application.contentResolver.insert(
WatchNextPrograms.CONTENT_URI,
getBaseItemAsWatchNextProgram(item).toContentValues()
)
}
}
/**
* Convert [BaseItemDto] to [WatchNextProgram]
*
* Assumes the item type is "episode"
*/
private fun getBaseItemAsWatchNextProgram(item: BaseItemDto) = WatchNextProgram.Builder().apply {
setInternalProviderId(item.id)
setType(WatchNextPrograms.TYPE_TV_EPISODE)
setTitle("${item.seriesName} - ${item.name}")
// Poster image
setPosterArtAspectRatio(WatchNextPrograms.ASPECT_RATIO_16_9)
setPosterArtUri(Uri.parse(application.apiClient.GetImageUrl(item, ImageOptions().apply {
format = ImageFormat.Png
height = 288
width = 512
})))
// Use date created or fallback to current time if unavailable
setLastEngagementTimeUtcMillis(item.dateCreated?.time ?: System.currentTimeMillis())
when {
// User has started playing the episode
item.canResume -> {
setWatchNextType(WatchNextPrograms.WATCH_NEXT_TYPE_CONTINUE)
setLastPlaybackPositionMillis((item.resumePositionTicks / TICKS_IN_MILLISECOND).toInt())
setDurationMillis((item.runTimeTicks / TICKS_IN_MILLISECOND).toInt())
}
// First episode of the season
item.indexNumber == 0 -> {
setWatchNextType(WatchNextPrograms.WATCH_NEXT_TYPE_NEW)
}
// Default
else -> {
setWatchNextType(WatchNextPrograms.WATCH_NEXT_TYPE_NEXT)
}
}
// Set intent to open the episode
setIntent(Intent(application, StartupActivity::class.java).apply {
putExtra("ItemId", item.id)
})
}.build()
}

View File

@@ -0,0 +1,12 @@
package org.jellyfin.androidtv.constant
enum class ChangeTriggerType {
LibraryUpdated,
MoviePlayback,
TvPlayback,
GuideNeedsLoad,
MusicPlayback,
Always,
VideoQueueChange,
FavoriteUpdate,
}

View File

@@ -0,0 +1,80 @@
package org.jellyfin.androidtv.constant
object Codec {
object Container {
@Suppress("ObjectPropertyName", "ObjectPropertyNaming")
const val `3GP` = "3gp"
const val ASF = "asf"
const val AVI = "avi"
const val DVR_MS = "dvr-ms"
const val M2V = "m2v"
const val M4V = "m4v"
const val MKV = "mkv"
const val MOV = "mov"
const val MP3 = "mp3"
const val MP4 = "mp4"
const val MPEG = "mpeg"
const val MPEGTS = "mpegts"
const val MPG = "mpg"
const val OGM = "ogm"
const val OGV = "ogv"
const val TS = "ts"
const val VOB = "vob"
const val WEBM = "webm"
const val WMV = "wmv"
const val WTV = "wtv"
const val XVID = "xvid"
}
object Audio {
const val AAC = "aac"
const val AAC_LATM = "aac_latm"
const val AC3 = "ac3"
const val ALAC = "alac"
const val APE = "ape"
const val DCA = "dca"
const val DTS = "dts"
const val EAC3 = "eac3"
const val FLAC = "flac"
const val MLP = "mlp"
const val MP2 = "mp2"
const val MP3 = "mp3"
const val MPA = "mpa"
const val OGA = "oga"
const val OGG = "ogg"
const val OPUS = "opus"
const val PCM = "pcm"
const val PCM_ALAW = "pcm_alaw"
const val PCM_MULAW = "pcm_mulaw"
const val PCM_S16LE = "pcm_s16le"
const val PCM_S24LE = "pcm_s24le"
const val TRUEHD = "truehd"
const val WAV = "wav"
const val WEBMA = "webma"
const val WMA = "wma"
const val WMAV2 = "wmav2"
}
object Video {
const val H264 = "h264"
const val HEVC = "hevc"
const val MPEG = "mpeg"
const val MPEG2VIDEO = "mpeg2video"
const val VP8 = "vp8"
const val VP9 = "vp9"
}
object Subtitle {
const val ASS = "ass"
const val DVDSUB = "dvdsub"
const val IDX = "idx"
const val PGS = "pgs"
const val PGSSUB = "pgssub"
const val SMI = "smi"
const val SRT = "srt"
const val SSA = "ssa"
const val SUB = "sub"
const val SUBRIP = "subrip"
const val VTT = "vtt"
}
}

View File

@@ -0,0 +1,6 @@
package org.jellyfin.androidtv.constant
enum class CustomMessage {
RefreshCurrentItem,
ActionComplete,
}

View File

@@ -0,0 +1,6 @@
package org.jellyfin.androidtv.constant
object Extras {
const val Folder = "folder"
const val IncludeType = "type_include"
}

View File

@@ -0,0 +1,18 @@
package org.jellyfin.androidtv.constant
import org.jellyfin.androidtv.R
import org.jellyfin.androidtv.ui.preference.dsl.EnumDisplayOptions
enum class GridDirection {
/**
* Horizontal.
*/
@EnumDisplayOptions(R.string.grid_direction_horizontal)
HORIZONTAL,
/**
* Vertical.
*/
@EnumDisplayOptions(R.string.grid_direction_vertical)
VERTICAL,
}

View File

@@ -0,0 +1,44 @@
package org.jellyfin.androidtv.constant
import org.jellyfin.androidtv.R
import org.jellyfin.androidtv.ui.preference.dsl.EnumDisplayOptions
import org.jellyfin.preference.PreferenceEnum
/**
* All possible homesections, "synced" with jellyfin-web.
*
* https://github.com/jellyfin/jellyfin-web/blob/master/src/components/homesections/homesections.js
*/
enum class HomeSectionType(
override val serializedName: String
) : PreferenceEnum {
@EnumDisplayOptions(R.string.home_section_latest_media)
LATEST_MEDIA("latestmedia"),
@EnumDisplayOptions(R.string.home_section_library)
LIBRARY_TILES_SMALL("smalllibrarytiles"),
@EnumDisplayOptions(R.string.home_section_library_small)
LIBRARY_BUTTONS("librarybuttons"),
@EnumDisplayOptions(R.string.home_section_resume)
RESUME("resume"),
@EnumDisplayOptions(R.string.home_section_resume_audio)
RESUME_AUDIO("resumeaudio"),
@EnumDisplayOptions(R.string.home_section_resume_book)
RESUME_BOOK("resumebook"),
@EnumDisplayOptions(R.string.home_section_active_recordings)
ACTIVE_RECORDINGS("activerecordings"),
@EnumDisplayOptions(R.string.home_section_next_up)
NEXT_UP("nextup"),
@EnumDisplayOptions(R.string.home_section_livetv)
LIVE_TV("livetv"),
@EnumDisplayOptions(R.string.home_section_none)
NONE("none"),
}

View File

@@ -0,0 +1,24 @@
package org.jellyfin.androidtv.constant
import org.jellyfin.androidtv.R
import org.jellyfin.androidtv.ui.preference.dsl.EnumDisplayOptions
enum class ImageType {
/**
* Poster.
*/
@EnumDisplayOptions(R.string.image_type_poster)
POSTER,
/**
* Thumbnail.
*/
@EnumDisplayOptions(R.string.image_type_thumbnail)
THUMB,
/**
* Banner.
*/
@EnumDisplayOptions(R.string.image_type_banner)
BANNER
}

View File

@@ -0,0 +1,9 @@
package org.jellyfin.androidtv.constant
object LiveTvOption {
const val LIVE_TV_GUIDE_OPTION_ID = 1000
const val LIVE_TV_RECORDINGS_OPTION_ID = 2000
const val VIDEO_QUEUE_OPTION_ID = 3000
const val LIVE_TV_SCHEDULE_OPTION_ID = 4000
const val LIVE_TV_SERIES_OPTION_ID = 5000
}

View File

@@ -0,0 +1,35 @@
package org.jellyfin.androidtv.constant
import org.jellyfin.androidtv.R
import org.jellyfin.androidtv.ui.preference.dsl.EnumDisplayOptions
enum class PosterSize {
/**
* Smallest.
*/
@EnumDisplayOptions(R.string.image_size_smallest)
SMALLEST,
/**
* Small.
*/
@EnumDisplayOptions(R.string.image_size_small)
SMALL,
/**
* Medium.
*/
@EnumDisplayOptions(R.string.image_size_medium)
MED,
/**
* Large.
*/
@EnumDisplayOptions(R.string.image_size_large)
LARGE,
/**
* Extra Large.
*/
@EnumDisplayOptions(R.string.image_size_xlarge)
X_LARGE
}

View File

@@ -0,0 +1,29 @@
package org.jellyfin.androidtv.constant
enum class QueryType {
Items,
NextUp,
Views,
Season,
Upcoming,
SimilarSeries,
SimilarMovies,
StaticPeople,
StaticChapters,
Search,
Specials,
AdditionalParts,
Trailers,
LiveTvChannel,
LiveTvProgram,
LiveTvRecording,
LiveTvRecordingGroup,
StaticItems,
Persons,
StaticAudioQueueItems,
AlbumArtists,
AudioPlaylists,
LatestItems,
SeriesTimer,
Premieres,
}

View File

@@ -1,37 +0,0 @@
package org.jellyfin.androidtv.constants;
public class CodecTypes {
/* Audio Codec Types */
public static final String AAC = "aac";
public static final String AAC_LATM = "aac_latm";
public static final String AC3 = "ac3";
public static final String APE = "ape";
public static final String DCA = "dca";
public static final String DTS = "dts";
public static final String EAC3 = "eac3";
public static final String FLAC = "flac";
public static final String MP2 = "mp2";
public static final String MP3 = "mp3";
public static final String MPA = "mpa";
public static final String OPUS = "opus";
public static final String PCM = "pcm";
public static final String PCM_S16LE = "PCM_S16LE";
public static final String PCM_S24LE = "PCM_S24LE";
public static final String TRUEHD = "truehd";
public static final String VORBIS = "vorbis";
public static final String WAV = "wav";
public static final String WMA = "wma";
public static final String WMAV2 = "wmav2";
/* Video Codec Types */
public static final String AVC = "avc";
public static final String H264 = "h264";
public static final String H265 = "h265";
public static final String HEVC = "hevc";
public static final String MPEG2 = "mpeg2";
public static final String MPEG2VIDEO = "mpeg2video";
public static final String MPEG4 = "mpeg4";
public static final String VP8 = "vp8";
public static final String VP9 = "vp9";
public static final String VPX = "vpx";
}

View File

@@ -1,29 +0,0 @@
package org.jellyfin.androidtv.constants;
public class ContainerTypes {
public static final String _3GP = "3gp";
public static final String _3GPP = "3gpp";
public static final String ASF = "asf";
public static final String AVI = "avi";
public static final String DVR_MS = "dvr-ms";
public static final String M2TS = "m2ts";
public static final String M2V = "m2v";
public static final String M4V = "m4v";
public static final String MKV = "mkv";
public static final String MOV = "mov";
public static final String MP4 = "mp4";
public static final String MPEG = "mpeg";
public static final String MPEGTS = "mpegts";
public static final String MPG = "mpg";
public static final String OGA = "oga";
public static final String OGG = "ogg";
public static final String OGM = "ogm";
public static final String OGV = "ogv";
public static final String TS = "ts";
public static final String VOB = "vob";
public static final String WEBM = "webm";
public static final String WEBMA = "webma";
public static final String WMV = "wmv";
public static final String WTV = "wtv";
public static final String XVID = "xvid";
}

View File

@@ -1,28 +0,0 @@
package org.jellyfin.androidtv.constants;
// Names used in jellyfin-web
// Only uses those that are configurable in web settings
public enum HomeSectionType {
LATEST_MEDIA("latestmedia"),
LIBRARY_TILES_SMALL("smalllibrarytiles"),
LIBRARY_BUTTONS("librarybuttons"),
RESUME("resume"),
RESUME_AUDIO("resumeaudio"),
ACTIVE_RECORDINGS("activerecordings"),
NEXT_UP("nextup"),
LIVE_TV("livetv");
public static HomeSectionType getByName(String name) {
for (HomeSectionType type : HomeSectionType.values()) {
if (type.name.equalsIgnoreCase(name)) return type;
}
return null;
}
public final String name;
HomeSectionType(String name) {
this.name = name;
}
}

View File

@@ -1,5 +0,0 @@
package org.jellyfin.androidtv.constants;
public class MediaTypes {
public static final String HLS = "hls";
}

View File

@@ -1,11 +1,11 @@
package org.jellyfin.androidtv.model.compat;
import java.util.ArrayList;
package org.jellyfin.androidtv.data.compat;
import org.jellyfin.apiclient.model.dlna.DeviceProfile;
import org.jellyfin.apiclient.model.dlna.EncodingContext;
import org.jellyfin.apiclient.model.dto.MediaSourceInfo;
import java.util.ArrayList;
/**
* Class AudioOptions.
*
@@ -40,26 +40,6 @@ public class AudioOptions {
EnableDirectStream = value;
}
private boolean ForceDirectPlay;
public final boolean getForceDirectPlay() {
return ForceDirectPlay;
}
public final void setForceDirectPlay(boolean value) {
ForceDirectPlay = value;
}
private boolean ForceDirectStream;
public final boolean getForceDirectStream() {
return ForceDirectStream;
}
public final void setForceDirectStream(boolean value) {
ForceDirectStream = value;
}
private String ItemId;
public final String getItemId() {
@@ -103,16 +83,6 @@ public class AudioOptions {
MediaSourceId = value;
}
private String DeviceId;
public final String getDeviceId() {
return DeviceId;
}
public final void setDeviceId(String value) {
DeviceId = value;
}
/**
* Allows an override of supported number of audio channels
* Example: DeviceProfile supports five channel, but user only has stereo speakers
@@ -154,43 +124,4 @@ public class AudioOptions {
public final void setContext(EncodingContext value) {
Context = value;
}
/**
* Gets or sets the audio transcoding bitrate.
*
* <value>The audio transcoding bitrate.</value>
*/
private Integer AudioTranscodingBitrate = null;
public final Integer getAudioTranscodingBitrate() {
return AudioTranscodingBitrate;
}
public final void setAudioTranscodingBitrate(Integer value) {
AudioTranscodingBitrate = value;
}
/**
* Gets the maximum bitrate.
*
* @return System.Nullable&lt;System.Int32&gt;.
*/
public final Integer GetMaxBitrate(boolean isAudio) {
if (getMaxBitrate() != null) {
return getMaxBitrate();
}
if (getProfile() != null) {
if (getContext() == EncodingContext.Static) {
if (isAudio && getProfile().getMaxStaticMusicBitrate() != null) {
return getProfile().getMaxStaticMusicBitrate();
}
return getProfile().getMaxStaticBitrate();
}
return getProfile().getMaxStreamingBitrate();
}
return null;
}
}
}

View File

@@ -1,4 +1,4 @@
package org.jellyfin.androidtv.model.compat;
package org.jellyfin.androidtv.data.compat;
import org.jellyfin.apiclient.model.dlna.PlaybackErrorCode;
@@ -13,4 +13,4 @@ public class PlaybackException extends RuntimeException {
public final void setErrorCode(PlaybackErrorCode value) {
ErrorCode = value;
}
}
}

View File

@@ -0,0 +1,87 @@
package org.jellyfin.androidtv.data.compat;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.apiclient.model.dlna.SubtitleDeliveryMethod;
import org.jellyfin.apiclient.model.dlna.SubtitleProfile;
import org.jellyfin.apiclient.model.entities.MediaStream;
import org.jellyfin.apiclient.model.session.PlayMethod;
@Deprecated
public class StreamBuilder
{
public static SubtitleProfile GetSubtitleProfile(MediaStream subtitleStream, SubtitleProfile[] subtitleProfiles, PlayMethod playMethod)
{
if (playMethod != PlayMethod.Transcode && !subtitleStream.getIsExternal())
{
// Look for supported embedded subs
for (SubtitleProfile profile : subtitleProfiles)
{
if (!profile.SupportsLanguage(subtitleStream.getLanguage()))
{
continue;
}
if (profile.getMethod() != SubtitleDeliveryMethod.Embed)
{
continue;
}
if (subtitleStream.getIsTextSubtitleStream() == MediaStream.IsTextFormat(profile.getFormat()) && Utils.equalsIgnoreCase(profile.getFormat(), subtitleStream.getCodec()))
{
return profile;
}
}
}
// Look for an external or hls profile that matches the stream type (text/graphical) and doesn't require conversion
SubtitleProfile tempVar = new SubtitleProfile();
tempVar.setMethod(SubtitleDeliveryMethod.Encode);
tempVar.setFormat(subtitleStream.getCodec());
SubtitleProfile tempVar2 = GetExternalSubtitleProfile(subtitleStream, subtitleProfiles, playMethod, false);
SubtitleProfile tempVar3 = GetExternalSubtitleProfile(subtitleStream, subtitleProfiles, playMethod, true);
return (tempVar2 != null) ? tempVar2 : (tempVar3 != null) ? tempVar3 : tempVar;
}
private static SubtitleProfile GetExternalSubtitleProfile(MediaStream subtitleStream, SubtitleProfile[] subtitleProfiles, PlayMethod playMethod, boolean allowConversion)
{
for (SubtitleProfile profile : subtitleProfiles)
{
if (profile.getMethod() != SubtitleDeliveryMethod.External && profile.getMethod() != SubtitleDeliveryMethod.Hls)
{
continue;
}
if (profile.getMethod() == SubtitleDeliveryMethod.Hls && playMethod != PlayMethod.Transcode)
{
continue;
}
if (!profile.SupportsLanguage(subtitleStream.getLanguage()))
{
continue;
}
if ((profile.getMethod() == SubtitleDeliveryMethod.External && subtitleStream.getIsTextSubtitleStream() == MediaStream.IsTextFormat(profile.getFormat())) || (profile.getMethod() == SubtitleDeliveryMethod.Hls && subtitleStream.getIsTextSubtitleStream()))
{
boolean requiresConversion = !Utils.equalsIgnoreCase(subtitleStream.getCodec(), profile.getFormat());
if (!requiresConversion)
{
return profile;
}
if (!allowConversion)
{
continue;
}
if (subtitleStream.getIsTextSubtitleStream() && subtitleStream.getSupportsExternalStream() && subtitleStream.SupportsSubtitleConversionTo(profile.getFormat()))
{
return profile;
}
}
}
return null;
}
}

View File

@@ -0,0 +1,372 @@
package org.jellyfin.androidtv.data.compat;
import org.jellyfin.androidtv.util.Utils;
import org.jellyfin.apiclient.model.dlna.DeviceProfile;
import org.jellyfin.apiclient.model.dlna.DlnaProfileType;
import org.jellyfin.apiclient.model.dlna.EncodingContext;
import org.jellyfin.apiclient.model.dlna.SubtitleDeliveryMethod;
import org.jellyfin.apiclient.model.dlna.SubtitleProfile;
import org.jellyfin.apiclient.model.dlna.TranscodeSeekInfo;
import org.jellyfin.apiclient.model.dto.MediaSourceInfo;
import org.jellyfin.apiclient.model.dto.NameValuePair;
import org.jellyfin.apiclient.model.entities.MediaStream;
import org.jellyfin.apiclient.model.entities.MediaStreamType;
import org.jellyfin.apiclient.model.mediainfo.MediaProtocol;
import org.jellyfin.apiclient.model.session.PlayMethod;
import java.util.ArrayList;
/**
* Class StreamInfo.
*
* @deprecated
*/
@Deprecated
public class StreamInfo {
private static final String START_TIME_TICKS = "StartTimeTicks";
private static final String SUBTITLE_STREAM_INDEX = "SubtitleStreamIndex";
private static final String STATIC = "Static";
public StreamInfo() {
setAudioCodecs(new String[]{});
}
private String ItemId;
public final String getItemId() {
return ItemId;
}
public final void setItemId(String value) {
ItemId = value;
}
private String MediaUrl;
public final String getMediaUrl() {
return MediaUrl;
}
public final void setMediaUrl(String value) {
MediaUrl = value;
}
private PlayMethod PlayMethod = getPlayMethod().values()[0];
public final PlayMethod getPlayMethod() {
return PlayMethod;
}
public final void setPlayMethod(PlayMethod value) {
PlayMethod = value;
}
private EncodingContext Context = EncodingContext.values()[0];
public final EncodingContext getContext() {
return Context;
}
public final void setContext(EncodingContext value) {
Context = value;
}
private DlnaProfileType MediaType = DlnaProfileType.values()[0];
public final DlnaProfileType getMediaType() {
return MediaType;
}
public final void setMediaType(DlnaProfileType value) {
MediaType = value;
}
private String Container;
public final String getContainer() {
return Container;
}
public final void setContainer(String value) {
Container = value;
}
private long StartPositionTicks;
public final long getStartPositionTicks() {
return StartPositionTicks;
}
public final void setStartPositionTicks(long value) {
StartPositionTicks = value;
}
private String[] AudioCodecs;
public final String[] getAudioCodecs() {
return AudioCodecs;
}
public final void setAudioCodecs(String[] value) {
AudioCodecs = value;
}
private DeviceProfile DeviceProfile;
public final DeviceProfile getDeviceProfile() {
return DeviceProfile;
}
public final void setDeviceProfile(DeviceProfile value) {
DeviceProfile = value;
}
private String DeviceId;
public final String getDeviceId() {
return DeviceId;
}
public final void setDeviceId(String value) {
DeviceId = value;
}
private Long RunTimeTicks = null;
public final Long getRunTimeTicks() {
return RunTimeTicks;
}
public final void setRunTimeTicks(Long value) {
RunTimeTicks = value;
}
private TranscodeSeekInfo TranscodeSeekInfo = getTranscodeSeekInfo().values()[0];
public final TranscodeSeekInfo getTranscodeSeekInfo() {
return TranscodeSeekInfo;
}
private MediaSourceInfo MediaSource;
public final MediaSourceInfo getMediaSource() {
return MediaSource;
}
public final void setMediaSource(MediaSourceInfo value) {
MediaSource = value;
}
private SubtitleDeliveryMethod SubtitleDeliveryMethod = getSubtitleDeliveryMethod().values()[0];
public final SubtitleDeliveryMethod getSubtitleDeliveryMethod() {
return SubtitleDeliveryMethod;
}
private String PlaySessionId;
public final String getPlaySessionId() {
return PlaySessionId;
}
public final void setPlaySessionId(String value) {
PlaySessionId = value;
}
public final String getMediaSourceId() {
return getMediaSource() == null ? null : getMediaSource().getId();
}
public final boolean getIsDirectStream() {
return getPlayMethod() == PlayMethod.DirectStream || getPlayMethod() == PlayMethod.DirectPlay;
}
public final String ToUrl(String baseUrl, String accessToken) {
if (!Utils.isEmpty(getMediaUrl())) {
return getMediaUrl();
}
if (getPlayMethod() == PlayMethod.DirectPlay) {
return getMediaSource().getPath();
}
if (Utils.isEmpty(baseUrl)) {
throw new IllegalArgumentException(baseUrl);
}
ArrayList<String> list = new ArrayList<String>();
for (NameValuePair pair : BuildParams(this, accessToken, false)) {
if (Utils.isEmpty(pair.getValue())) {
continue;
}
// Try to keep the url clean by omitting defaults
if (START_TIME_TICKS.equalsIgnoreCase(pair.getName()) && "0".equalsIgnoreCase(pair.getValue())) {
continue;
}
if (SUBTITLE_STREAM_INDEX.equalsIgnoreCase(pair.getName()) && "-1".equalsIgnoreCase(pair.getValue())) {
continue;
}
if (STATIC.equalsIgnoreCase(pair.getName()) && "false".equalsIgnoreCase(pair.getValue())) {
continue;
}
list.add(String.format("%1$s=%2$s", pair.getName(), pair.getValue()));
}
String queryString = Utils.join("&", list);
return GetUrl(baseUrl, queryString);
}
private String GetUrl(String baseUrl, String queryString) {
if (Utils.isEmpty(baseUrl)) {
throw new IllegalArgumentException(baseUrl);
}
String extension = Utils.isEmpty(getContainer()) ? "" : "." + getContainer();
// remove trailing slashes
baseUrl = baseUrl.replaceAll("[/]+$", "");
if (getMediaType() == DlnaProfileType.Audio) {
return String.format("%1$s/audio/%2$s/stream%3$s?%4$s", baseUrl, getItemId(), extension, queryString);
}
return String.format("%1$s/videos/%2$s/stream%3$s?%4$s", baseUrl, getItemId(), extension, queryString);
}
private static ArrayList<NameValuePair> BuildParams(StreamInfo item, String accessToken, boolean isDlna) {
ArrayList<NameValuePair> list = new ArrayList<NameValuePair>();
String audioCodecs = item.getAudioCodecs().length == 0 ? "" : Utils.join(",", item.getAudioCodecs());
list.add(new NameValuePair("DeviceProfileId", ""));
String tempVar2 = item.getDeviceId();
list.add(new NameValuePair("DeviceId", (tempVar2 != null) ? tempVar2 : ""));
String tempVar3 = item.getMediaSourceId();
list.add(new NameValuePair("MediaSourceId", (tempVar3 != null) ? tempVar3 : ""));
list.add(new NameValuePair(STATIC, Boolean.valueOf(item.getIsDirectStream()).toString().toLowerCase()));
list.add(new NameValuePair("VideoCodec", ""));
list.add(new NameValuePair("AudioCodec", audioCodecs));
list.add(new NameValuePair("AudioStreamIndex", ""));
list.add(new NameValuePair("SubtitleStreamIndex", ""));
list.add(new NameValuePair("VideoBitrate", ""));
list.add(new NameValuePair("AudioBitrate", ""));
list.add(new NameValuePair("MaxAudioChannels", ""));
list.add(new NameValuePair("MaxFramerate", ""));
list.add(new NameValuePair("MaxWidth", ""));
list.add(new NameValuePair("MaxHeight", ""));
list.add(new NameValuePair(START_TIME_TICKS, String.valueOf(item.getStartPositionTicks())));
list.add(new NameValuePair("Level", ""));
list.add(new NameValuePair("MaxRefFrames", ""));
list.add(new NameValuePair("MaxVideoBitDepth", ""));
list.add(new NameValuePair("Profile", ""));
// no longer used
list.add(new NameValuePair("Cabac", ""));
String tempVar6 = item.getPlaySessionId();
list.add(new NameValuePair("PlaySessionId", (tempVar6 != null) ? tempVar6 : ""));
list.add(new NameValuePair("api_key", (accessToken != null) ? accessToken : ""));
String liveStreamId = item.getMediaSource() == null ? null : item.getMediaSource().getLiveStreamId();
list.add(new NameValuePair("LiveStreamId", (liveStreamId != null) ? liveStreamId : ""));
if (isDlna) {
list.add(new NameValuePair("ItemId", item.getItemId()));
}
list.add(new NameValuePair("CopyTimestamps", "false"));
list.add(new NameValuePair("ForceLiveStream", "false"));
list.add(new NameValuePair("SubtitleMethod", ""));
list.add(new NameValuePair("TranscodingMaxAudioChannels", ""));
list.add(new NameValuePair("EnableSubtitlesInManifest", "false"));
String tempVar7 = item.getMediaSource().getETag();
list.add(new NameValuePair("Tag", (tempVar7 != null) ? tempVar7 : ""));
return list;
}
public final ArrayList<SubtitleStreamInfo> GetSubtitleProfiles(boolean includeSelectedTrackOnly, String baseUrl, String accessToken) {
return GetSubtitleProfiles(includeSelectedTrackOnly, false, baseUrl, accessToken);
}
public final ArrayList<SubtitleStreamInfo> GetSubtitleProfiles(boolean includeSelectedTrackOnly, boolean enableAllProfiles, String baseUrl, String accessToken) {
ArrayList<SubtitleStreamInfo> list = new ArrayList<SubtitleStreamInfo>();
// HLS will preserve timestamps so we can just grab the full subtitle stream
long startPositionTicks = getPlayMethod() == PlayMethod.Transcode ? getStartPositionTicks() : 0;
if (!includeSelectedTrackOnly) {
for (MediaStream stream : getMediaSource().getMediaStreams()) {
if (stream.getType() == MediaStreamType.Subtitle) {
AddSubtitleProfiles(list, stream, enableAllProfiles, baseUrl, accessToken, startPositionTicks);
}
}
}
return list;
}
private void AddSubtitleProfiles(ArrayList<SubtitleStreamInfo> list, MediaStream stream, boolean enableAllProfiles, String baseUrl, String accessToken, long startPositionTicks) {
if (enableAllProfiles) {
for (SubtitleProfile profile : getDeviceProfile().getSubtitleProfiles()) {
SubtitleStreamInfo info = GetSubtitleStreamInfo(stream, baseUrl, accessToken, startPositionTicks, new SubtitleProfile[]{profile});
list.add(info);
}
} else {
SubtitleStreamInfo info = GetSubtitleStreamInfo(stream, baseUrl, accessToken, startPositionTicks, getDeviceProfile().getSubtitleProfiles());
list.add(info);
}
}
private SubtitleStreamInfo GetSubtitleStreamInfo(MediaStream stream, String baseUrl, String accessToken, long startPositionTicks, SubtitleProfile[] subtitleProfiles) {
SubtitleProfile subtitleProfile = StreamBuilder.GetSubtitleProfile(stream, subtitleProfiles, getPlayMethod());
SubtitleStreamInfo tempVar = new SubtitleStreamInfo();
String tempVar2 = stream.getLanguage();
tempVar.setName((tempVar2 != null) ? tempVar2 : "Unknown");
tempVar.setFormat(subtitleProfile.getFormat());
tempVar.setIndex(stream.getIndex());
tempVar.setDeliveryMethod(subtitleProfile.getMethod());
tempVar.setDisplayTitle(stream.getDisplayTitle());
SubtitleStreamInfo info = tempVar;
if (info.getDeliveryMethod() == SubtitleDeliveryMethod.External) {
if (getMediaSource().getProtocol() == MediaProtocol.File || !stream.getCodec().equalsIgnoreCase(subtitleProfile.getFormat())) {
info.setUrl(String.format("%1$s/Videos/%2$s/%3$s/Subtitles/%4$s/%5$s/Stream.%6$s", baseUrl, getItemId(), getMediaSourceId(), String.valueOf(stream.getIndex()), String.valueOf(startPositionTicks), subtitleProfile.getFormat()));
if (!Utils.isEmpty(accessToken)) {
info.setUrl(info.getUrl() + "?api_key=" + accessToken);
}
} else {
info.setUrl(stream.getPath());
}
}
return info;
}
public final ArrayList<MediaStream> GetSelectableAudioStreams() {
return GetSelectableStreams(MediaStreamType.Audio);
}
public final ArrayList<MediaStream> GetSelectableStreams(MediaStreamType type) {
ArrayList<MediaStream> list = new ArrayList<MediaStream>();
for (MediaStream stream : getMediaSource().getMediaStreams()) {
if (type == stream.getType()) {
list.add(stream);
}
}
return list;
}
}

Some files were not shown because too many files have changed in this diff Show More