ci: add fastlane

Close: #726
This commit is contained in:
Jarne Demeulemeester 2024-04-14 21:47:41 +02:00
parent 65d6fe42d4
commit fff3f9e3f7
No known key found for this signature in database
GPG key ID: 1E5C6AFBD622E9F5
52 changed files with 655 additions and 1 deletions

8
.gitignore vendored
View file

@ -30,4 +30,10 @@ render.experimental.xml
google-services.json
# Android Profiling
*.hprof
*.hprof
# Fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output

3
Gemfile Normal file
View file

@ -0,0 +1,3 @@
source "https://rubygems.org"
gem "fastlane"

218
Gemfile.lock Normal file
View file

@ -0,0 +1,218 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.7)
base64
nkf
rexml
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
artifactory (3.0.17)
atomos (0.1.3)
aws-eventstream (1.3.0)
aws-partitions (1.913.0)
aws-sdk-core (3.191.6)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.79.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.146.1)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
base64 (0.2.0)
claide (1.1.0)
colored (1.2)
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
declarative (0.0.20)
digest-crc (0.6.5)
rake (>= 12.0.0, < 14.0.0)
domain_name (0.6.20240107)
dotenv (2.8.1)
emoji_regex (3.2.3)
excon (0.110.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
faraday-httpclient (~> 1.0)
faraday-multipart (~> 1.0)
faraday-net_http (~> 1.0)
faraday-net_http_persistent (~> 1.0)
faraday-patron (~> 1.0)
faraday-rack (~> 1.0)
faraday-retry (~> 1.0)
ruby2_keywords (>= 0.0.4)
faraday-cookie_jar (0.0.7)
faraday (>= 0.8.0)
http-cookie (~> 1.0.0)
faraday-em_http (1.0.0)
faraday-em_synchrony (1.0.0)
faraday-excon (1.1.0)
faraday-httpclient (1.0.1)
faraday-multipart (1.0.4)
multipart-post (~> 2)
faraday-net_http (1.0.1)
faraday-net_http_persistent (1.2.0)
faraday-patron (1.0.0)
faraday-rack (1.0.0)
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.3.1)
fastlane (2.220.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
aws-sdk-s3 (~> 1.0)
babosa (>= 1.0.3, < 2.0.0)
bundler (>= 1.12.0, < 3.0.0)
colored (~> 1.2)
commander (~> 4.6)
dotenv (>= 2.1.1, < 3.0.0)
emoji_regex (>= 0.1, < 4.0)
excon (>= 0.71.0, < 1.0.0)
faraday (~> 1.0)
faraday-cookie_jar (~> 0.0.6)
faraday_middleware (~> 1.0)
fastimage (>= 2.1.0, < 3.0.0)
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-env (>= 1.6.0, < 2.0.0)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2)
optparse (>= 0.1.1, < 1.0.0)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.5)
simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (~> 3)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
xcodeproj (>= 1.13.0, < 2.0.0)
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
mini_mime (~> 1.0)
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.7.0)
google-cloud-env (>= 1.0, < 3.a)
google-cloud-errors (~> 1.0)
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.4.0)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
highline (2.0.3)
http-cookie (1.0.5)
domain_name (~> 0.5)
httpclient (2.8.3)
jmespath (1.6.2)
json (2.7.2)
jwt (2.8.1)
base64
mini_magick (4.12.0)
mini_mime (1.1.5)
multi_json (1.15.0)
multipart-post (2.4.0)
nanaimo (0.3.0)
naturally (2.2.1)
nkf (0.2.0)
optparse (0.4.0)
os (1.1.4)
plist (3.7.1)
public_suffix (5.0.5)
rake (13.2.1)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.6)
rouge (2.0.7)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.5)
signet (0.19.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.10)
CFPropertyList
naturally
terminal-notifier (2.0.0)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
uber (0.1.0)
unicode-display_width (2.5.0)
word_wrap (1.0.0)
xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
colored2 (~> 3.1)
nanaimo (~> 0.3.0)
rexml (~> 3.2.4)
xcpretty (0.3.0)
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
PLATFORMS
ruby
x86_64-linux
DEPENDENCIES
fastlane
BUNDLED WITH
2.5.4

1
fastlane/Appfile Normal file
View file

@ -0,0 +1 @@
package_name("dev.jdtech.jellyfin")

42
fastlane/Fastfile Normal file
View file

@ -0,0 +1,42 @@
default_platform(:android)
platform :android do
desc "Build and publish"
lane :publish do
gradle(task: "clean")
gradle(
task: "assemble",
flavor: "libre",
build_type: "release",
print_command: false,
properties: {
"android.injected.signing.store.file" => ENV["FINDROID_KEYSTORE"],
"android.injected.signing.store.password" => ENV["FINDROID_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["FINDROID_KEY_ALIAS"],
"android.injected.signing.key.password" => ENV["FINDROID_KEY_PASSWORD"],
}
)
gradle(
task: "bundle",
flavor: "libre",
build_type: "release",
print_command: false,
properties: {
"android.injected.signing.store.file" => ENV["FINDROID_KEYSTORE"],
"android.injected.signing.store.password" => ENV["FINDROID_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["FINDROID_KEY_ALIAS"],
"android.injected.signing.key.password" => ENV["FINDROID_KEY_PASSWORD"],
}
)
upload_to_play_store(
aab: "./app/phone/build/outputs/bundle/libreRelease/phone-libre-release.aab"
track: "production",
rollout: 1,
json_key: ENV["FINDROID_PLAY_API_CREDENTIALS"],
skip_upload_apk: true,
sync_image_upload: true
)
end
end

56
fastlane/README.md Normal file
View file

@ -0,0 +1,56 @@
fastlane documentation
----
# Installation
Make sure you have the latest version of the Xcode command line tools installed:
```sh
xcode-select --install
```
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
# Available Actions
## Android
### android test
```sh
[bundle exec] fastlane android test
```
Runs all the tests
### android beta
```sh
[bundle exec] fastlane android beta
```
Submit a new Beta Build to Crashlytics Beta
### android deploy
```sh
[bundle exec] fastlane android deploy
```
Deploy a new version to the Google Play
### android build
```sh
[bundle exec] fastlane android build
```
build
----
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).

View file

@ -0,0 +1,9 @@
Features:
- Completely native interface
- Supported media items: movies, series, seasons, episodes
- Video codes: H.263, H.264, H.265, VP8, VP9, AV1
- Audio codes: Vorbis, Opus, FLAC, ALAC, PCM µ-law, PCM A-law, MP1, MP2, MP3, AMR-NB, AMR-WB, AAC, AC-3, E-AC-3, DTS, DTS-HD, TrueHD
- Subtitle codecs: SRT, VTT, SSA/ASS, PGSSUB
- Support for multiple servers
- Set preferred audio and subtitle language
- Light & dark theme

View file

@ -0,0 +1,13 @@
New features:
- Split gesture option into volume & brightness and zoom
- Add support for external subtitles (only ExoPlayer)
- Customize the seeking increments
- Add option to disable subtitles in mpv
Improvements:
- Lot's of translations (Bulgarian, Chinese, French, German, Hungarian, Italian, Polish, Portuguese, Spanish)
- Provide better error messages with stacktrace
- Display downloaded episodes by series
- Add paging support to the library
Also fixed a few crashes

View file

@ -0,0 +1,14 @@
New features:
- Allow seeking video by swiping or tapping
- Material You Dynamic colors
- Display public users on login screen
- Display discovered servers on add server screen
Improvements:
- Layout improvements for larger screens
- Bring back Android TV (fix crashes and improvements)
Translations: Chinese (Simplified), French, Italian, Korean, Russian
Fixes:
- Fix crash when navigating to login screen (and other screens)

View file

@ -0,0 +1,13 @@
Improvements:
- Add "pinch to zoom" support to mpv
Fixes:
- Fix play icon color in settings
- Fix mpv subfont.ttf not loading
- This fixes mpv not displaying SubRip Text (SRT) subtitles
- Fix external subtiles not working in mpv
- Fix crash when using swiping gesture if video is not loaded yet
- Fix player crashing when no PlayerItems are passed
- Fix only showing 1 discovered server
Translations: Korean, Polish, Spanish

View file

@ -0,0 +1,18 @@
This update forces a servers database reset! Servers will need to be added again!
New features:
- Servers database v2
- Network settings
- Request timeout
- Connect timeout
- Socket timeout
- Mutli-user support
Improvements:
- Add series name to episode sheet with navigation
- Enable predictive back gesture
- Improve downloads management
- Upgrade libmpv
- Handle audio focus
- Lot's of library upgrades
- Bugfixes

View file

@ -0,0 +1,16 @@
Highlights:
- Add support for media sessions
- Basic support for multiple server addresses
- More mpv options
Improvements:
- Add search button to home screen
Translations:
- Chinese
- French
- Korean
Fixes:
- Fix tv player showing subtitle tracks instead of audio tracks
- Remove server already added error

View file

@ -0,0 +1,14 @@
New features:
- Allow logging in with Quick Connect
- Support for ConfusedPolarBears intro-skipper
Improvements:
- Updated mpv release (now includes all codecs in FFmpeg)
- Including an experimental AV1 hardware decoder.
- Respect "Allow media playback"
Translations: Chinese, Dutch, French, Italian, Korean, Polish, Portuguese, Spanish
Fixes:
- Fix playback position reporting not closing properly.
- Optimized the loading of app preferences (backend, not the settings screen)

View file

@ -0,0 +1,13 @@
New features:
- Support for collections
Improvements:
- Follow "Play next episode automatically" from user playback settings
- ExoPlayer can now play HLS content
Translations: Chinese, Italian, Korean, Portuguese
Fixes:
- Fix Quick Connect code not readable in light mode
- Fix multiple download related issues
- Fix app crashing when exiting the player after finishing an item using mpv

View file

@ -0,0 +1,6 @@
Fixes:
- Fix resuming playback
- Fix downloads playback when there is no connection to the server
- Fix next up episode image crop
Translations: Chinese, Dutch, Vietnamese, German, Hungarian, Italian, Portuguese, Polish, Russian, Yue

View file

@ -0,0 +1,18 @@
New features:
- Item metadata chips
- Seek gesture toggle
- AMOLED dark theme
- Scrubbing preview (trick play)
- Downloads rework
Improvements:
- Material 3 styling in preferences
- Gesture exclusion zones
Fixes:
- 500 error when trying to play an item
- mpv memory leak, anr and stuck loading icon
- And more
Translations:
- Chinese (Simplified), Dutch, French, German, Hebrew, Italian, Polish, Portuguese, Russian, Slovak, Slovenian, Spanish, Swedish, Vietnamese

View file

@ -0,0 +1,13 @@
Improvements:
- Search in offline mode
- App language setting for devices running Android 13+
- Show movie size in extra info and improve size formatting
Fixes:
- Navigation to collection
- Text overflowing into "View all"
- Text overlapping in movie and show screens
- AMOLED theme not taking Material 3 colors
- NullPointerException on episodes which do not contain a seriesId or seasonId
Translations: Hungarian, Polish, Portuguese (Brazil), Russian, Slovak, Spanish

View file

@ -0,0 +1,9 @@
Improvements:
- Replaced oss-licenses-plugin with AboutLibraries.
- Improved server url discovery, no more http://, https:// or ports required!
- New error panel to display detailed error messages.
- Make library images smaller to fit more on one screen.
Fixes:
- Removed books from home & media screens.
- Move episode metadata to under the image to adjust for larger font sizes and smaller screens.

View file

@ -0,0 +1,16 @@
New features:
- Picture-in-picture support
- Double tap center to play/pause
Improvements:
- Ripple effect when double tapping in player
- Improvements to hiding system bars
- Show episode size when extra info is enabled
Fixes:
- Fix playback position reset on process death or device lock
- Fix playback sync of download being too far ahead
- ...
Translations:
- Chinese, Dutch, French, Hebrew, Hungarian, Italian, Korean, Polish, Portuguese, Romanian, Russion, Slovak, Spanish, Ukranian

View file

@ -0,0 +1,16 @@
New features:
- Picture-in-picture support
- Double tap center to play/pause
Improvements:
- Ripple effect when double tapping in player
- Improvements to hiding system bars
- Show episode size when extra info is enabled
Fixes:
- Fix playback position reset on process death or device lock
- Fix playback sync of download being too far ahead
- ...
Translations:
- Chinese, Dutch, French, Hebrew, Hungarian, Italian, Korean, Polish, Portuguese, Romanian, Russion, Slovak, Spanish, Ukranian

View file

@ -0,0 +1,10 @@
Fixes:
- Multiple crashes
- Offline mode snackbar not visible in landscape mode
- Incorrect popup background in player when using dark mode
- Playback resets
- Deleted server stays visible
- Stuck on login screen when server has no user
Translations:
- Chinese, Czech, Hebrew, Hungarian, Italian, Korean, Portuguese, Slovak, Slovenian

View file

@ -0,0 +1,16 @@
New features:
- Disable audio track
- Long press for 2x speed
- Chapters
- Markers are displayed on the timebar
- Gestures
- Support for mixed libraries
Improvements:
- Custom track selection dialog
- Make PiP remember zoom and brightness levels
- Improve PiP transition when using home gesture
- Increase the limit of items displayed on the home screen
Translations:
- Bulgarian, Chinese, Danish, French, Hungarian, Italian, Korean, Portuguese, Slovak, Spanish, Turkish, Vietnamese

View file

@ -0,0 +1,15 @@
Improvements:
- Request audio focus in mpv
- Sort items in collections by release date
- Improve landscape library layout on mobile
- Reduce community rating to one decimal place
Fixes:
- Set correct surface colors when using dynamic colors or AMOLED theme
- Fix crash when setting picture-in-picture params
- Check address when adding extra addresses to server
- Display correct empty collection string
Translations:
- Dutch
- Portuguese (Brazil)

View file

@ -0,0 +1,14 @@
Improvements:
- Support HTML in media descriptions
Fixes:
- Library media items too small on tablet when in portrait mode
Translations:
- Chinese
- French
- German
- Hungarian
- Portuguese
- Spanish (Mexico)
- Turkish

View file

@ -0,0 +1,15 @@
Improvements:
- Improved home screen loading
- Added missing episode icon
- Reworked player items preparation:
- Supports intros
- Improved loading speed
- Show complete detailed error messages
- Ask for login if server responds with 401
Fixes:
- Fixed playing episodes if missing episodes occur in the season
- Fixed missing images in some places
- Fixed library broken when media items are grouped in folders
- Removed Live TV section from home screen
- Fixed underlined "View detail" text

View file

@ -0,0 +1,12 @@
New Features:
- Experimental mpv player
- Can be enabled in the settings
- With extra option to force software decoding
- New player UI to support mpv
Improvements:
- Spanish translations
- Video now extends into display cutout
Fixes:
- Fix crash when trailer button is pressed but no trailers are available

View file

@ -0,0 +1,2 @@
Fixes:
- Fix mpv player crashing

View file

@ -0,0 +1,16 @@
New Features:
- Playback speed controls
- Sorting options in library
- Person detail screen
- Downloads and offline playback
- Gestures in player to adjust volume and brightness
- STRM support
- Image caching with options in settings
- Customizable device name
- Basic Android TV layout
Improvements:
- Theme improvements
- Pull to refresh on home screen
- Server setup improvements
- Czech and Spanish localization

View file

@ -0,0 +1,10 @@
Improvements:
- Change downloads to use internal database for metadata instead of files
- Only show download button if user is allowed to download
- Improve player gestures and add pinch to zoom
- Reduce the size of the mpv library by disabling lot's of decoders and other components
- If you notice certain content doesn't play anymore please report
Fixes:
- Fix person placeholder drawable
- Add error handling to played and favorite buttons

View file

@ -0,0 +1,6 @@
Improvements:
- Enable avi container format in mpv
- Many dependencies updated
Fixes:
- Add missing check for if user is allowed to download in episode sheet

View file

@ -0,0 +1,14 @@
New features:
- Add option to display extended episode title in player
- Add option to download over mobile network
- Add option to disable player gestures and remember screen brightness
Improvements:
- Expand episode bottom sheet by default
- Upgrade to Material 3 theme and components
- Redesign settings using two pane layout
- Add option to turn off subtitles in player (only ExoPlayer)
- Enable image caching by default
- Add support for Vorbis audio codec in mpv player
Plus bugfixes!

View file

@ -0,0 +1,8 @@
Findroid is a third-party Android application for Jellyfin that provides a native user interface to browse and play movies and series.
To use this app you must have a Jellyfin server.
You can also download movies and TV shows for offline playback while on the road.
And with the built-in mpv player you are sure that all media formats will play correctly including styled SSA/ASS subtitles.
Thanks for using Findroid!

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

View file

@ -0,0 +1 @@
Third-party native Jellyfin app

View file

@ -0,0 +1 @@
Findroid