Compare commits
161 Commits
v2.4.4
...
feat/carpl
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da9653cfe8 | ||
|
|
eb45169060 | ||
|
|
2e3ced0680 | ||
|
|
76f3ce3972 | ||
|
|
cf8bfdf05a | ||
|
|
09a020afbb | ||
|
|
90a5d94147 | ||
|
|
58c7645170 | ||
|
|
d9326dfc7a | ||
|
|
c430047106 | ||
|
|
0048c01f4c | ||
|
|
af3c807d5a | ||
|
|
a2d10756a5 | ||
|
|
6a0f28516b | ||
|
|
25d512899d | ||
|
|
2a0b8b1092 | ||
|
|
76d3dcf64b | ||
|
|
e26fc6c753 | ||
|
|
eb4c37705b | ||
|
|
4ee31f6a94 | ||
|
|
28f24a1c4b | ||
|
|
84e6997cdf | ||
|
|
7f327d0e7b | ||
|
|
b781f16853 | ||
|
|
f44bf25c87 | ||
|
|
79163bf46b | ||
|
|
e2b8de204f | ||
|
|
0b90f6f7f0 | ||
|
|
c2d7d81de8 | ||
|
|
6685e83ebf | ||
|
|
9229bae007 | ||
|
|
40ec71cccf | ||
|
|
b30822fd78 | ||
|
|
42f8a44d97 | ||
|
|
c87fef31d6 | ||
|
|
44d0818336 | ||
|
|
37fbae9608 | ||
|
|
2dba648190 | ||
|
|
2730b09468 | ||
|
|
c109656a83 | ||
|
|
e9b4a9ed0b | ||
|
|
d1d1735afc | ||
|
|
353549ad67 | ||
|
|
08924375e2 | ||
|
|
2525c382f4 | ||
|
|
beb6d93361 | ||
|
|
60c98f110c | ||
|
|
20bdd8ef68 | ||
|
|
1952d0d10b | ||
|
|
fe6eece956 | ||
|
|
e644e759e2 | ||
|
|
11e721bb48 | ||
|
|
972066218e | ||
|
|
38c5ee637b | ||
|
|
d45058e24e | ||
|
|
589cb39c46 | ||
|
|
a374c1ef3c | ||
|
|
847b07731d | ||
|
|
795a9316a7 | ||
|
|
c40cd196aa | ||
|
|
f1ceef99ac | ||
|
|
34e464b840 | ||
|
|
d7f72620e2 | ||
|
|
1f0497c14c | ||
|
|
583fc6c617 | ||
|
|
cf0e14edb5 | ||
|
|
a3a158566d | ||
|
|
f92fbe028c | ||
|
|
0493469097 | ||
|
|
44e1e4a811 | ||
|
|
db03fa2b3e | ||
|
|
604f4ede58 | ||
|
|
5abb52194e | ||
|
|
71f6cc0366 | ||
|
|
73a61369b1 | ||
|
|
d8c013ff61 | ||
|
|
e44507a009 | ||
|
|
58699a7418 | ||
|
|
51fdbda8fc | ||
|
|
495e5be3f5 | ||
|
|
6127b5eac1 | ||
|
|
1534ccf85f | ||
|
|
0328f0ef44 | ||
|
|
07911efa2c | ||
|
|
3d3c412d6e | ||
|
|
87d8a33998 | ||
|
|
1e68b21c76 | ||
|
|
dcedb94723 | ||
|
|
58f46857e4 | ||
|
|
742d0abbcd | ||
|
|
f1a08263c9 | ||
|
|
43864a326d | ||
|
|
afbef79c85 | ||
|
|
06bb4c92b1 | ||
|
|
c23e63bd4b | ||
|
|
f058e7fc86 | ||
|
|
2174363c0d | ||
|
|
77acc138fa | ||
|
|
f6f63bd558 | ||
|
|
ec4af27b06 | ||
|
|
cb837cd162 | ||
|
|
8608134fd1 | ||
|
|
fe940add31 | ||
|
|
41a4099837 | ||
|
|
0740cb8f43 | ||
|
|
ca02ca498c | ||
|
|
f808aec6fa | ||
|
|
2984b8396e | ||
|
|
62353bd6d6 | ||
|
|
9d0266c7e9 | ||
|
|
b36788e391 | ||
|
|
498b5e8f89 | ||
|
|
7710eb7a35 | ||
|
|
3ade8f6ec5 | ||
|
|
918aed929f | ||
|
|
a6fb7ced3a | ||
|
|
106cf2ff2f | ||
|
|
47cc22360a | ||
|
|
cc9f7bda73 | ||
|
|
583862dbe0 | ||
|
|
81986bf1d0 | ||
|
|
421c9c9ac8 | ||
|
|
38a817221f | ||
|
|
09a0f9ff81 | ||
|
|
59c4c9d1fb | ||
|
|
0d2424d5f4 | ||
|
|
33387e5b08 | ||
|
|
0f49626e39 | ||
|
|
0a70744ed1 | ||
|
|
a2fcce1d6f | ||
|
|
a944ec5cd0 | ||
|
|
1f5dc1cef8 | ||
|
|
70a15e68b8 | ||
|
|
376a87df19 | ||
|
|
7b0c0f32b0 | ||
|
|
02d3fea0fe | ||
|
|
98f9461fe0 | ||
|
|
a771912807 | ||
|
|
f7b3d7afde | ||
|
|
22810f2b68 | ||
|
|
ec72ac330d | ||
|
|
af5ca2596c | ||
|
|
badd7a0d50 | ||
|
|
5a7348da4a | ||
|
|
c4bdd838b8 | ||
|
|
cff9b2fe90 | ||
|
|
ff81bdcae0 | ||
|
|
80708dfeb4 | ||
|
|
391acd7954 | ||
|
|
90eb7f21d2 | ||
|
|
eaebc6b6b4 | ||
|
|
127785c702 | ||
|
|
73b0c4b9be | ||
|
|
d6efc73bd3 | ||
|
|
260db24265 | ||
|
|
d0787730c7 | ||
|
|
a3ad27ea79 | ||
|
|
adeef39011 | ||
|
|
1e92ef8bba | ||
|
|
85c057910d | ||
|
|
4702215788 |
4
.github/workflows/fastlane.yml
vendored
4
.github/workflows/fastlane.yml
vendored
@@ -14,10 +14,8 @@ jobs:
|
||||
- name: Set outputs
|
||||
id: vars
|
||||
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
|
||||
- name: Set up Ruby 2.7
|
||||
- name: Set up Ruby
|
||||
uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: 2.7
|
||||
- name: Install fastlane
|
||||
run: bundle install -j 6
|
||||
- name: Install Node dependencies
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -41,6 +41,7 @@ yarn-error.log
|
||||
|
||||
*.keystore
|
||||
!debug.keystore
|
||||
.kotlin/
|
||||
|
||||
# fastlane
|
||||
#
|
||||
@@ -75,4 +76,5 @@ fastlane/play-store-credentials.json
|
||||
# Temporary files created by Metro to check the health of the file watcher
|
||||
.metro-health-check*
|
||||
|
||||
.xcode.env.local
|
||||
.xcode.env.local
|
||||
android/app/.cxx
|
||||
|
||||
1
.ruby-version
Normal file
1
.ruby-version
Normal file
@@ -0,0 +1 @@
|
||||
3.4.3
|
||||
14
Gemfile
14
Gemfile
@@ -7,8 +7,18 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
||||
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
|
||||
ruby ">= 2.6.10"
|
||||
|
||||
gem 'cocoapods', '~> 1.13'
|
||||
gem 'activesupport', '>= 6.1.7.3', '< 7.1.0'
|
||||
# Exclude problematic versions of cocoapods and activesupport that causes build failures.
|
||||
gem 'cocoapods', '>= 1.13', '!= 1.15.0', '!= 1.15.1'
|
||||
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
|
||||
gem 'xcodeproj', '< 1.26.0'
|
||||
gem 'concurrent-ruby', '< 1.3.4'
|
||||
|
||||
# Ruby 3.4.0 has removed some libraries from the standard library.
|
||||
gem 'bigdecimal'
|
||||
gem 'logger'
|
||||
gem 'benchmark'
|
||||
gem 'mutex_m'
|
||||
gem 'abbrev'
|
||||
|
||||
gem "fastlane", "~> 2.153"
|
||||
|
||||
|
||||
103
Gemfile.lock
103
Gemfile.lock
@@ -5,12 +5,19 @@ GEM
|
||||
base64
|
||||
nkf
|
||||
rexml
|
||||
activesupport (6.1.7.6)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
abbrev (0.1.2)
|
||||
activesupport (7.2.2.1)
|
||||
base64
|
||||
benchmark (>= 0.3)
|
||||
bigdecimal
|
||||
concurrent-ruby (~> 1.0, >= 1.3.1)
|
||||
connection_pool (>= 2.2.5)
|
||||
drb
|
||||
i18n (>= 1.6, < 2)
|
||||
logger (>= 1.4.2)
|
||||
minitest (>= 5.1)
|
||||
tzinfo (~> 2.0)
|
||||
zeitwerk (~> 2.3)
|
||||
securerandom (>= 0.3)
|
||||
tzinfo (~> 2.0, >= 2.0.5)
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
algoliasearch (1.27.5)
|
||||
@@ -18,17 +25,19 @@ GEM
|
||||
json (>= 1.5.1)
|
||||
artifactory (3.0.17)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.3.0)
|
||||
aws-partitions (1.1042.0)
|
||||
aws-sdk-core (3.217.0)
|
||||
aws-eventstream (1.3.2)
|
||||
aws-partitions (1.1097.0)
|
||||
aws-sdk-core (3.223.0)
|
||||
aws-eventstream (~> 1, >= 1.3.0)
|
||||
aws-partitions (~> 1, >= 1.992.0)
|
||||
aws-sigv4 (~> 1.9)
|
||||
base64
|
||||
jmespath (~> 1, >= 1.6.1)
|
||||
aws-sdk-kms (1.97.0)
|
||||
logger
|
||||
aws-sdk-kms (1.100.0)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sigv4 (~> 1.5)
|
||||
aws-sdk-s3 (1.178.0)
|
||||
aws-sdk-s3 (1.185.0)
|
||||
aws-sdk-core (~> 3, >= 3.216.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.5)
|
||||
@@ -36,11 +45,13 @@ GEM
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
base64 (0.2.0)
|
||||
benchmark (0.4.0)
|
||||
bigdecimal (3.1.9)
|
||||
claide (1.1.0)
|
||||
cocoapods (1.15.0)
|
||||
cocoapods (1.15.2)
|
||||
addressable (~> 2.8)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
cocoapods-core (= 1.15.0)
|
||||
cocoapods-core (= 1.15.2)
|
||||
cocoapods-deintegrate (>= 1.0.3, < 2.0)
|
||||
cocoapods-downloader (>= 2.1, < 3.0)
|
||||
cocoapods-plugins (>= 1.0.0, < 2.0)
|
||||
@@ -55,7 +66,7 @@ GEM
|
||||
nap (~> 1.0)
|
||||
ruby-macho (>= 2.3.0, < 3.0)
|
||||
xcodeproj (>= 1.23.0, < 2.0)
|
||||
cocoapods-core (1.15.0)
|
||||
cocoapods-core (1.15.2)
|
||||
activesupport (>= 5.0, < 8)
|
||||
addressable (~> 2.8)
|
||||
algoliasearch (~> 1.0)
|
||||
@@ -78,18 +89,19 @@ GEM
|
||||
colored2 (3.1.2)
|
||||
commander (4.6.0)
|
||||
highline (~> 2.0.0)
|
||||
concurrent-ruby (1.2.3)
|
||||
concurrent-ruby (1.3.3)
|
||||
connection_pool (2.5.3)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.5)
|
||||
digest-crc (0.7.0)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
domain_name (0.6.20240107)
|
||||
dotenv (2.8.1)
|
||||
drb (2.2.1)
|
||||
emoji_regex (3.2.3)
|
||||
escape (0.0.4)
|
||||
ethon (0.16.0)
|
||||
ffi (>= 1.15.0)
|
||||
excon (0.109.0)
|
||||
excon (0.112.0)
|
||||
faraday (1.10.4)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
@@ -119,7 +131,7 @@ GEM
|
||||
faraday_middleware (1.2.1)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.4.0)
|
||||
fastlane (2.226.0)
|
||||
fastlane (2.227.2)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
@@ -159,15 +171,15 @@ GEM
|
||||
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||
word_wrap (~> 1.0.0)
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.4.0)
|
||||
xcpretty (~> 0.4.1)
|
||||
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
|
||||
fastlane-plugin-load_json (0.0.1)
|
||||
fastlane-plugin-sentry (1.18.0)
|
||||
fastlane-plugin-sentry (1.29.0)
|
||||
os (~> 1.1, >= 1.1.4)
|
||||
fastlane-plugin-versioning_android (0.1.1)
|
||||
fastlane-sirp (1.0.0)
|
||||
sysrandom (~> 1.0)
|
||||
ffi (1.16.3)
|
||||
ffi (1.17.2)
|
||||
fourflusher (2.3.1)
|
||||
fuzzy_match (2.0.4)
|
||||
gh_inspector (1.1.3)
|
||||
@@ -185,19 +197,19 @@ GEM
|
||||
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.29.0)
|
||||
google-apis-storage_v1 (0.31.0)
|
||||
google-apis-core (>= 0.11.0, < 2.a)
|
||||
google-cloud-core (1.6.1)
|
||||
google-cloud-core (1.8.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.3.1)
|
||||
google-cloud-storage (1.45.0)
|
||||
google-cloud-errors (1.5.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.29.0)
|
||||
google-apis-storage_v1 (~> 0.31.0)
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
mini_mime (~> 1.0)
|
||||
@@ -210,20 +222,23 @@ GEM
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.8)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
i18n (1.14.1)
|
||||
httpclient (2.9.0)
|
||||
mutex_m
|
||||
i18n (1.14.7)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jmespath (1.6.2)
|
||||
json (2.7.6)
|
||||
json (2.11.3)
|
||||
jwt (2.10.1)
|
||||
base64
|
||||
logger (1.7.0)
|
||||
mini_magick (4.13.2)
|
||||
mini_mime (1.1.5)
|
||||
minitest (5.21.2)
|
||||
minitest (5.25.5)
|
||||
molinillo (0.8.0)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.4.1)
|
||||
nanaimo (0.4.0)
|
||||
mutex_m (0.3.0)
|
||||
nanaimo (0.3.0)
|
||||
nap (1.1.0)
|
||||
naturally (2.2.1)
|
||||
netrc (0.11.0)
|
||||
@@ -238,13 +253,14 @@ GEM
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.4.0)
|
||||
rexml (3.4.1)
|
||||
rouge (3.28.0)
|
||||
ruby-macho (2.5.1)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.4.1)
|
||||
securerandom (0.4.1)
|
||||
security (0.1.5)
|
||||
signet (0.18.0)
|
||||
signet (0.20.0)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.5, < 3.a)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
@@ -266,35 +282,40 @@ GEM
|
||||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
uber (0.1.0)
|
||||
unf (0.2.0)
|
||||
unicode-display_width (2.6.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.27.0)
|
||||
xcodeproj (1.25.1)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.4.0)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (>= 3.3.6, < 4.0)
|
||||
xcpretty (0.4.0)
|
||||
xcpretty (0.4.1)
|
||||
rouge (~> 3.28.0)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
xcpretty (~> 0.2, >= 0.0.7)
|
||||
zeitwerk (2.6.12)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
activesupport (>= 6.1.7.3, < 7.1.0)
|
||||
cocoapods (~> 1.13)
|
||||
abbrev
|
||||
activesupport (>= 6.1.7.5, != 7.1.0)
|
||||
benchmark
|
||||
bigdecimal
|
||||
cocoapods (>= 1.13, != 1.15.1, != 1.15.0)
|
||||
concurrent-ruby (< 1.3.4)
|
||||
fastlane (~> 2.153)
|
||||
fastlane-plugin-load_json
|
||||
fastlane-plugin-sentry
|
||||
fastlane-plugin-versioning_android
|
||||
logger
|
||||
mutex_m
|
||||
xcodeproj (< 1.26.0)
|
||||
|
||||
RUBY VERSION
|
||||
ruby 2.6.10p210
|
||||
|
||||
BUNDLED WITH
|
||||
1.17.2
|
||||
2.6.8
|
||||
|
||||
@@ -41,7 +41,7 @@ You will need to setup your Jellyfin account for the application to be able to p
|
||||
|
||||
## Building from source
|
||||
### Prerequisites
|
||||
This project is built on React Native, and first of all requires [NodeJS](https://nodejs.org/en/) to be installed. After installing it and cloning this repository, don't forget ton run `npm install` on your command line, so that all Node dependencies are installed.
|
||||
This project is built on React Native, and first of all requires [NodeJS](https://nodejs.org/en/) and PNPM to be installed. After installing it and cloning this repository, don't forget ton run `pnpm install` on your command line, so that all Node dependencies are installed.
|
||||
|
||||
#### iOS Prerequisites
|
||||
[XCode](https://developer.apple.com/download/) is required to build the iOS application. It also comes bundles with iOS simulators which make development exceedingly easy. This does mean that iOS development is limited to macs.
|
||||
@@ -52,8 +52,8 @@ This project is built on React Native, and first of all requires [NodeJS](https:
|
||||
### Development Build
|
||||
As soon as all prerequisites are covered, you can start development in either iOS or Android simulators by running the following
|
||||
```
|
||||
npm run ios
|
||||
npm run android
|
||||
pnpm ios
|
||||
pnpm android
|
||||
```
|
||||
|
||||
### Production Build
|
||||
|
||||
@@ -8,15 +8,14 @@ apply plugin: "com.facebook.react"
|
||||
*/
|
||||
react {
|
||||
/* Folders */
|
||||
// The root of your project, i.e. where "package.json" lives. Default is '..'
|
||||
// root = file("../")
|
||||
// The folder where the react-native NPM package is. Default is ../node_modules/react-native
|
||||
// reactNativeDir = file("../node_modules/react-native")
|
||||
// The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
|
||||
// codegenDir = file("../node_modules/@react-native/codegen")
|
||||
// codegenDir = file("../node_modules/react-native-codegen")
|
||||
// The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
|
||||
// cliFile = file("../node_modules/react-native/cli.js")
|
||||
// The root of your project, i.e. where "package.json" lives. Default is '../..'
|
||||
// root = file("../../")
|
||||
// The folder where the react-native NPM package is. Default is ../../node_modules/react-native
|
||||
// reactNativeDir = file("../../node_modules/react-native")
|
||||
// The folder where the react-native Codegen package is. Default is ../../node_modules/@react-native/codegen
|
||||
// codegenDir = file("../../node_modules/@react-native/codegen")
|
||||
// The cli.js file which is the React Native CLI entrypoint. Default is ../../node_modules/react-native/cli.js
|
||||
// cliFile = file("../../node_modules/react-native/cli.js")
|
||||
|
||||
/* Variants */
|
||||
// The list of variants to that are debuggable. For those we're going to
|
||||
@@ -50,6 +49,9 @@ react {
|
||||
//
|
||||
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
|
||||
// hermesFlags = ["-O", "-output-source-map"]
|
||||
|
||||
/* Autolinking */
|
||||
autolinkLibrariesWithApp()
|
||||
}
|
||||
|
||||
if (System.getenv("DISABLE_SENTRY_SOURCEMAP_UPLOAD") != "true") {
|
||||
@@ -65,14 +67,14 @@ def enableProguardInReleaseBuilds = false
|
||||
* The preferred build flavor of JavaScriptCore.
|
||||
*
|
||||
* For example, to use the international variant, you can use:
|
||||
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
|
||||
* `def jscFlavor = io.github.react-native-community:jsc-android-intl:2026004.+`
|
||||
*
|
||||
* The international variant includes ICU i18n library and necessary data
|
||||
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
|
||||
* give correct results when using with locales other than en-US. Note that
|
||||
* this variant is about 6MiB larger per architecture than default.
|
||||
*/
|
||||
def jscFlavor = 'org.webkit:android-jsc:+'
|
||||
def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+'
|
||||
|
||||
android {
|
||||
ndkVersion rootProject.ext.ndkVersion
|
||||
@@ -85,8 +87,8 @@ android {
|
||||
applicationId "nl.moeilijkedingen.jellyfinaudioplayer"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 34
|
||||
versionName "2.4.4"
|
||||
versionCode 38
|
||||
versionName "2.4.5"
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
@@ -133,5 +135,3 @@ dependencies {
|
||||
implementation jscFlavor
|
||||
}
|
||||
}
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:allowBackup="false"
|
||||
android:networkSecurityConfig="@xml/react_native_config"
|
||||
android:theme="@style/AppTheme">
|
||||
android:theme="@style/AppTheme"
|
||||
android:supportsRtl="true">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:label="@string/app_name"
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.facebook.react.ReactPackage
|
||||
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
|
||||
import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
|
||||
import com.facebook.react.defaults.DefaultReactNativeHost
|
||||
import com.facebook.react.soloader.OpenSourceMergedSoMapping
|
||||
import com.facebook.soloader.SoLoader
|
||||
|
||||
class MainApplication : Application(), ReactApplication {
|
||||
@@ -34,7 +35,7 @@ class MainApplication : Application(), ReactApplication {
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
SoLoader.init(this, false)
|
||||
SoLoader.init(this, OpenSourceMergedSoMapping)
|
||||
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
|
||||
// If you opted-in for the New Architecture, we load the native entry point for this app.
|
||||
load()
|
||||
|
||||
@@ -4,12 +4,12 @@ import org.apache.tools.ant.taskdefs.condition.Os
|
||||
|
||||
buildscript {
|
||||
ext {
|
||||
buildToolsVersion = "34.0.0"
|
||||
minSdkVersion = 23
|
||||
compileSdkVersion = 34
|
||||
targetSdkVersion = 34
|
||||
ndkVersion = "26.1.10909125"
|
||||
kotlinVersion = "1.9.22"
|
||||
buildToolsVersion = "35.0.0"
|
||||
minSdkVersion = 24
|
||||
compileSdkVersion = 35
|
||||
targetSdkVersion = 35
|
||||
ndkVersion = "27.1.12297006"
|
||||
kotlinVersion = "2.0.21"
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
|
||||
@@ -21,8 +21,6 @@ org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
|
||||
# Android operating system, and which are packaged with your app's APK
|
||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||
android.useAndroidX=true
|
||||
# Automatically convert third-party libraries to use AndroidX
|
||||
android.enableJetifier=true
|
||||
|
||||
# Use this property to specify which architecture you want to build.
|
||||
# You can also override it from the CLI using
|
||||
@@ -34,7 +32,7 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
|
||||
# your application. You should enable this flag either if you want
|
||||
# to write custom TurboModules/Fabric components OR use libraries that
|
||||
# are providing them.
|
||||
newArchEnabled=false
|
||||
newArchEnabled=true
|
||||
|
||||
# Use this property to enable or disable the Hermes JS engine.
|
||||
# If set to false, you will be using JSC instead.
|
||||
|
||||
BIN
android/gradle/wrapper/gradle-wrapper.jar
vendored
BIN
android/gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
8
android/gradlew
vendored
8
android/gradlew
vendored
@@ -15,6 +15,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
@@ -55,7 +57,7 @@
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
@@ -84,7 +86,7 @@ done
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
@@ -203,7 +205,7 @@ fi
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
2
android/gradlew.bat
vendored
2
android/gradlew.bat
vendored
@@ -13,6 +13,8 @@
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
|
||||
plugins { id("com.facebook.react.settings") }
|
||||
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
|
||||
rootProject.name = 'Fintunes'
|
||||
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
|
||||
include ':app'
|
||||
includeBuild('../node_modules/@react-native/gradle-plugin')
|
||||
|
||||
1
fastlane/metadata/android/ca/changelogs/35.txt
Normal file
1
fastlane/metadata/android/ca/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Aquesta versió soluciona un problema on Fintunes només podia reproduir el primer disc en un àlbum de múltiples discs. A més, gràcies als nostres increïbles col·laboradors lingüístics, Fintunes ara està disponible en tàmil. A més, s'han actualitzat 12 idiomes. Gaudeix d'aquesta nova versió de Fintunes i considera unir-te al nostre servidor Discord!
|
||||
1
fastlane/metadata/android/ca/full_description.txt
Normal file
1
fastlane/metadata/android/ca/full_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Fintunes és un reproductor d'àudio en streaming per al sistema multimèdia Jellyfin. Compta amb una interfície magnífica que us permet reproduir la vostra música preferida amb facilitat. Podeu cercar qualsevol pista a tota la vostra biblioteca o simplement prendre-ho amb calma amb una llista de reproducció que hàgiu creat anteriorment a Jellyfin. Totes les pistes es reprodueixen directament amb la màxima qualitat des de la vostra biblioteca de Jellyfin. El streaming no sempre és una opció? Qualsevol pista de la vostra biblioteca de Jellyfin es pot descarregar i reproduir fora de línia.
|
||||
1
fastlane/metadata/android/ca/short_description.txt
Normal file
1
fastlane/metadata/android/ca/short_description.txt
Normal file
@@ -0,0 +1 @@
|
||||
Reproductor per a Jellyfin
|
||||
1
fastlane/metadata/android/ca/title.txt
Normal file
1
fastlane/metadata/android/ca/title.txt
Normal file
@@ -0,0 +1 @@
|
||||
Fintunes
|
||||
1
fastlane/metadata/android/cs-CZ/changelogs/35.txt
Normal file
1
fastlane/metadata/android/cs-CZ/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Tato verze opravuje problém, kdy Fintunes mohl přehrávat pouze první disk v albu s více disky. Navíc díky našim úžasným jazykovým přispěvatelům je Fintunes nyní k dispozici v tamilštině. Dále bylo aktualizováno 12 jazyků. Užijte si tuto novou verzi Fintunes a připojte se k našemu Discord serveru!
|
||||
1
fastlane/metadata/android/de-DE/changelogs/35.txt
Normal file
1
fastlane/metadata/android/de-DE/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Diese Version behebt ein Problem, bei dem Fintunes nur die erste CD eines Mehrfach-CD-Albums abspielen konnte. Außerdem ist Fintunes dank unserer großartigen Sprachmitwirkenden jetzt auch auf Tamilisch verfügbar. Zusätzlich wurden 12 Sprachen aktualisiert. Genießen Sie diese neue Version von Fintunes und treten Sie gerne unserem Discord-Server bei!
|
||||
1
fastlane/metadata/android/en-US/changelogs/35.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
This version fixes an issue where Fintunes was only able to play back the first disc in a multi-disc album. Also, thanks to our amazing language contributors, Fintunes is now available in Tamil. Additionally, there's 12 languages that have been updated. Enjoy this new version of Fintunes and consider joining our Discord server!
|
||||
1
fastlane/metadata/android/es-ES/changelogs/35.txt
Normal file
1
fastlane/metadata/android/es-ES/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Esta versión soluciona un problema donde Fintunes solo podía reproducir el primer disco en un álbum de múltiples discos. Además, gracias a nuestros increíbles colaboradores de idiomas, Fintunes ahora está disponible en tamil. También se han actualizado 12 idiomas. ¡Disfruta de esta nueva versión de Fintunes y considera unirte a nuestro servidor de Discord!
|
||||
1
fastlane/metadata/android/fr-FR/changelogs/35.txt
Normal file
1
fastlane/metadata/android/fr-FR/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Cette version corrige un problème où Fintunes ne pouvait lire que le premier disque d'un album multi-disques. De plus, grâce à nos incroyables contributeurs linguistiques, Fintunes est maintenant disponible en tamoul. En outre, 12 langues ont été mises à jour. Profitez de cette nouvelle version de Fintunes et rejoignez notre serveur Discord !
|
||||
1
fastlane/metadata/android/it-IT/changelogs/35.txt
Normal file
1
fastlane/metadata/android/it-IT/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Questa versione risolve un problema in cui Fintunes poteva riprodurre solo il primo disco in un album multi-disco. Inoltre, grazie ai nostri fantastici collaboratori linguistici, Fintunes è ora disponibile in tamil. Inoltre, sono state aggiornate 12 lingue. Goditi questa nuova versione di Fintunes e unisciti al nostro server Discord!
|
||||
1
fastlane/metadata/android/ja-JP/changelogs/35.txt
Normal file
1
fastlane/metadata/android/ja-JP/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
このバージョンでは、マルチディスクアルバムの最初のディスクしか再生できなかった問題を修正しました。また、素晴らしい言語コントリビューターのおかげで、Fintunesはタミル語でも利用可能になりました。さらに、12の言語が更新されました。Fintunesの新バージョンをお楽しみください。Discordサーバーへの参加もお待ちしています!
|
||||
1
fastlane/metadata/android/nl-NL/changelogs/35.txt
Normal file
1
fastlane/metadata/android/nl-NL/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Deze versie lost een probleem op waarbij Fintunes alleen de eerste schijf van een album met meerdere schijven kon afspelen. Bovendien is Fintunes dankzij onze geweldige taalbijdragers nu beschikbaar in het Tamil. Daarnaast zijn er 12 talen bijgewerkt. Geniet van deze nieuwe versie van Fintunes en overweeg om lid te worden van onze Discord-server!
|
||||
1
fastlane/metadata/android/no-NO/changelogs/35.txt
Normal file
1
fastlane/metadata/android/no-NO/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Denne versjonen løser et problem hvor Fintunes bare kunne spille av den første disken i et flerdisk-album. I tillegg, takket være våre fantastiske språkbidragsytere, er Fintunes nå tilgjengelig på tamil. Dessuten er 12 språk oppdatert. Nyt denne nye versjonen av Fintunes og vurder å bli med på vår Discord-server!
|
||||
1
fastlane/metadata/android/pl-PL/changelogs/35.txt
Normal file
1
fastlane/metadata/android/pl-PL/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Ta wersja naprawia problem, w którym Fintunes mógł odtwarzać tylko pierwszy dysk w albumie wielopłytowym. Ponadto, dzięki naszym wspaniałym współtwórcom językowym, Fintunes jest teraz dostępny w języku tamilskim. Dodatkowo zaktualizowano 12 języków. Ciesz się tą nową wersją Fintunes i dołącz do naszego serwera Discord!
|
||||
1
fastlane/metadata/android/pt-BR/changelogs/35.txt
Normal file
1
fastlane/metadata/android/pt-BR/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Esta versão corrige um problema em que o Fintunes só conseguia reproduzir o primeiro disco em um álbum com múltiplos discos. Além disso, graças aos nossos incríveis colaboradores de idiomas, o Fintunes agora está disponível em tâmil. Adicionalmente, 12 idiomas foram atualizados. Aproveite esta nova versão do Fintunes e considere entrar em nosso servidor Discord!
|
||||
1
fastlane/metadata/android/ru-RU/changelogs/35.txt
Normal file
1
fastlane/metadata/android/ru-RU/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Эта версия исправляет проблему, при которой Fintunes мог воспроизводить только первый диск в альбоме с несколькими дисками. Кроме того, благодаря нашим замечательным языковым контрибьюторам, Fintunes теперь доступен на тамильском языке. Также обновлены 12 языков. Наслаждайтесь новой версией Fintunes и присоединяйтесь к нашему серверу Discord!
|
||||
1
fastlane/metadata/android/sv-SE/changelogs/35.txt
Normal file
1
fastlane/metadata/android/sv-SE/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Denna version åtgärdar ett problem där Fintunes bara kunde spela upp den första skivan i ett flerskivsalbum. Dessutom, tack vare våra fantastiska språkbidragsgivare, är Fintunes nu tillgängligt på tamil. Dessutom har 12 språk uppdaterats. Njut av denna nya version av Fintunes och överväg att gå med i vår Discord-server!
|
||||
1
fastlane/metadata/android/uk/changelogs/35.txt
Normal file
1
fastlane/metadata/android/uk/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
Ця версія виправляє проблему, коли Fintunes міг відтворювати лише перший диск у багатодисковому альбомі. Крім того, завдяки нашим чудовим мовним учасникам, Fintunes тепер доступний тамільською мовою. Також оновлено 12 мов. Насолоджуйтесь цією новою версією Fintunes та приєднуйтесь до нашого сервера Discord!
|
||||
1
fastlane/metadata/android/zh-CN/changelogs/35.txt
Normal file
1
fastlane/metadata/android/zh-CN/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
此版本修复了Fintunes只能播放多碟专辑中第一张碟片的问题。此外,感谢我们出色的语言贡献者,Fintunes现在支持泰米尔语。另外还有12种语言已更新。享受这个新版本的Fintunes,并考虑加入我们的Discord服务器!
|
||||
1
fastlane/metadata/android/zh-TW/changelogs/35.txt
Normal file
1
fastlane/metadata/android/zh-TW/changelogs/35.txt
Normal file
@@ -0,0 +1 @@
|
||||
此版本修復了Fintunes只能播放多碟專輯中第一張碟片的問題。此外,感謝我們出色的語言貢獻者,Fintunes現在支援泰米爾語。另外還有12種語言已更新。享受這個新版本的Fintunes,並考慮加入我們的Discord伺服器!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes ara admet la visualització de lletres perquè puguis cantar les teves cançons preferides! A més, ara pots utilitzar Fintunes com a client per a Emby. Les característiques menors d’aquesta versió inclouen:
|
||||
|
||||
• Les imatges de portada es desen per a les pistes descarregades (torna a descarregar les teves pistes per assegurar-te que apareguin)
|
||||
• Una pantalla que mostra informació sobre el còdec de les pistes que s’estan reproduint
|
||||
• Moltes noves traduccions, com el polonès, tàmil, xinès tradicional, finès i indonesi. Gràcies a tots els col·laboradors lingüístics!
|
||||
|
||||
La versió 2.4.2 corregeix un error introduït a la versió 2.4.0 que impedia descarregar pistes sense portada.
|
||||
Aquesta versió soluciona un problema on Fintunes només podia reproduir el primer disc en un àlbum de múltiples discs. A més, gràcies als nostres increïbles col·laboradors lingüístics, Fintunes ara està disponible en tàmil. A més, s'han actualitzat 12 idiomes. Gaudeix d'aquesta nova versió de Fintunes i considera unir-te al nostre servidor Discord!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes nyní podporuje zobrazování textů písní, takže si můžete zpívat své oblíbené skladby! Také nyní můžete používat Fintunes jako klienta pro Emby. Menší funkce v této verzi zahrnují:
|
||||
|
||||
• Ukládání obalů alb pro stažené skladby (znovu si stáhněte skladby, aby se obaly zobrazily)
|
||||
• Displej zobrazující informace o kodeku právě přehrávaných skladeb
|
||||
• Spousta nových překladů, například polština, tamilština, tradiční čínština, finština a indonéština. Děkujeme všem překladatelům!
|
||||
|
||||
Verze 2.4.2 opravuje chybu zavedenou ve verzi 2.4.0, která znemožňovala stahování skladeb bez obalu.
|
||||
Tato verze opravuje problém, kdy Fintunes mohl přehrávat pouze první disk v albu s více disky. Navíc díky našim úžasným jazykovým přispěvatelům je Fintunes nyní k dispozici v tamilštině. Dále bylo aktualizováno 12 jazyků. Užijte si tuto novou verzi Fintunes a připojte se k našemu Discord serveru!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes unterstützt jetzt die Anzeige von Liedtexten, sodass du deine Lieblingssongs mitsingen kannst! Außerdem kannst du Fintunes jetzt als Client für Emby nutzen. Kleinere Funktionen in dieser Version umfassen:
|
||||
|
||||
• Coverbilder werden für heruntergeladene Titel gespeichert (lade deine Titel erneut herunter, um sicherzustellen, dass sie angezeigt werden)
|
||||
• Eine Anzeige, die Codec-Informationen für die aktuell abgespielten Titel zeigt
|
||||
• Viele neue Übersetzungen, darunter Polnisch, Tamil, Traditionelles Chinesisch, Finnisch und Indonesisch. Vielen Dank an alle Sprachbeiträger!
|
||||
|
||||
Version 2.4.2 behebt einen Fehler aus Version 2.4.0, der das Herunterladen von Titeln ohne Cover verhinderte.
|
||||
Diese Version behebt ein Problem, bei dem Fintunes nur die erste CD eines Mehrfach-CD-Albums abspielen konnte. Außerdem ist Fintunes dank unserer großartigen Sprachmitwirkenden jetzt auch auf Tamilisch verfügbar. Zusätzlich wurden 12 Sprachen aktualisiert. Genießen Sie diese neue Version von Fintunes und treten Sie gerne unserem Discord-Server bei!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes now supports displaying lyrics so you can sign along to your favourite tunes! Also, you can now use Fintunes as a client for Emby. Minor features in this release include:
|
||||
|
||||
• Cover images being saved for downloaded tracks (re-download your tracks to make sure they appear)
|
||||
• A display that shows codec information for your currently playing tracks
|
||||
• Loads of new translations, such as Polish, Tamil, Traditional Chinese, Finnish and Indonesian. Thanks to all language contributors!
|
||||
|
||||
v2.4.2 contains a fix for an error introduced with v2.4.0 that prohibited downloading tracks without cover art.
|
||||
This version fixes an issue where Fintunes was only able to play back the first disc in a multi-disc album. Also, thanks to our amazing language contributors, Fintunes is now available in Tamil. Additionally, there's 12 languages that have been updated. Enjoy this new version of Fintunes and consider joining our Discord server!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes ahora admite la visualización de letras para que puedas cantar tus canciones favoritas. Además, ahora puedes usar Fintunes como cliente para Emby. Las características menores de esta versión incluyen:
|
||||
|
||||
• Se guardan las imágenes de portada para las pistas descargadas (vuelve a descargar tus pistas para asegurarte de que aparezcan)
|
||||
• Una pantalla que muestra información del códec de las pistas que estás reproduciendo
|
||||
• Muchas nuevas traducciones, como polaco, tamil, chino tradicional, finlandés e indonesio. ¡Gracias a todos los colaboradores de idiomas!
|
||||
|
||||
La versión 2.4.2 corrige un error introducido en la versión 2.4.0 que impedía descargar pistas sin portada.
|
||||
Esta versión soluciona un problema donde Fintunes solo podía reproducir el primer disco en un álbum de múltiples discos. Además, gracias a nuestros increíbles colaboradores de idiomas, Fintunes ahora está disponible en tamil. También se han actualizado 12 idiomas. ¡Disfruta de esta nueva versión de Fintunes y considera unirte a nuestro servidor de Discord!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes prend désormais en charge l’affichage des paroles, afin que vous puissiez chanter vos morceaux préférés ! De plus, vous pouvez maintenant utiliser Fintunes comme client pour Emby. Les fonctionnalités mineures de cette version incluent :
|
||||
|
||||
• Les images de couverture sont enregistrées pour les morceaux téléchargés (retéléchargez vos morceaux pour vous assurer qu’elles apparaissent)
|
||||
• Un affichage indiquant les informations du codec des morceaux en cours de lecture
|
||||
• De nombreuses nouvelles traductions, notamment en polonais, tamoul, chinois traditionnel, finnois et indonésien. Merci à tous les contributeurs linguistiques !
|
||||
|
||||
La version 2.4.2 corrige une erreur introduite avec la version 2.4.0 qui empêchait le téléchargement des morceaux sans pochette.
|
||||
Cette version corrige un problème où Fintunes ne pouvait lire que le premier disque d'un album multi-disques. De plus, grâce à nos incroyables contributeurs linguistiques, Fintunes est maintenant disponible en tamoul. En outre, 12 langues ont été mises à jour. Profitez de cette nouvelle version de Fintunes et rejoignez notre serveur Discord !
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes ora supporta la visualizzazione dei testi, così puoi cantare le tue canzoni preferite! Inoltre, ora puoi usare Fintunes come client per Emby. Le funzionalità minori di questa versione includono:
|
||||
|
||||
• Le immagini di copertina vengono salvate per i brani scaricati (riscarica i brani per assicurarti che appaiano)
|
||||
• Un display che mostra le informazioni sul codec per i brani attualmente in riproduzione
|
||||
• Molte nuove traduzioni, come polacco, tamil, cinese tradizionale, finlandese e indonesiano. Grazie a tutti i contributori linguistici!
|
||||
|
||||
La versione 2.4.2 corregge un errore introdotto con la versione 2.4.0 che impediva il download di brani senza copertina.
|
||||
Questa versione risolve un problema in cui Fintunes poteva riprodurre solo il primo disco in un album multi-disco. Inoltre, grazie ai nostri fantastici collaboratori linguistici, Fintunes è ora disponibile in tamil. Inoltre, sono state aggiornate 12 lingue. Goditi questa nuova versione di Fintunes e unisciti al nostro server Discord!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunesは歌詞の表示をサポートするようになり、お気に入りの曲を一緒に歌えるようになりました!さらに、FintunesをEmbyのクライアントとして使用できるようになりました。このリリースの小さな新機能には以下が含まれます:
|
||||
|
||||
• ダウンロードした曲のカバー画像を保存(曲を再ダウンロードすると表示されるようになります)
|
||||
• 現在再生中の曲のコーデック情報を表示する画面
|
||||
• ポーランド語、タミル語、繁体字中国語、フィンランド語、インドネシア語など、多くの新しい翻訳。すべての翻訳者の皆さんに感謝します!
|
||||
|
||||
バージョン 2.4.2 は、バージョン 2.4.0 で発生したカバーアートなしの曲をダウンロードできないバグを修正しました。
|
||||
このバージョンでは、マルチディスクアルバムの最初のディスクしか再生できなかった問題を修正しました。また、素晴らしい言語コントリビューターのおかげで、Fintunesはタミル語でも利用可能になりました。さらに、12の言語が更新されました。Fintunesの新バージョンをお楽しみください。Discordサーバーへの参加もお待ちしています!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes ondersteunt nu het weergeven van songteksten, zodat je kunt meezingen met je favoriete nummers! Daarnaast kun je Fintunes nu gebruiken als een client voor Emby. Kleine functies in deze release zijn onder andere:
|
||||
|
||||
• Coverafbeeldingen worden opgeslagen voor gedownloade nummers (download je nummers opnieuw om ervoor te zorgen dat ze verschijnen)
|
||||
• Een weergave die codec-informatie toont voor de nummers die je momenteel afspeelt
|
||||
• Veel nieuwe vertalingen, zoals Pools, Tamil, Traditioneel Chinees, Fins en Indonesisch. Bedankt aan alle taalbijdragers!
|
||||
|
||||
Versie 2.4.2 lost een fout op die in versie 2.4.0 werd geïntroduceerd en die verhinderde dat nummers zonder cover konden worden gedownload.
|
||||
Deze versie lost een probleem op waarbij Fintunes alleen de eerste schijf van een album met meerdere schijven kon afspelen. Bovendien is Fintunes dankzij onze geweldige taalbijdragers nu beschikbaar in het Tamil. Daarnaast zijn er 12 talen bijgewerkt. Geniet van deze nieuwe versie van Fintunes en overweeg om lid te worden van onze Discord-server!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes støtter nå visning av sangtekster, slik at du kan synge med til favorittsangene dine! I tillegg kan du nå bruke Fintunes som en klient for Emby. Mindre funksjoner i denne utgivelsen inkluderer:
|
||||
|
||||
• Coverbilder lagres for nedlastede spor (last ned sporene dine på nytt for å sikre at de vises)
|
||||
• En visning som viser kodekinformasjon for sporene du spiller av
|
||||
• Massevis av nye oversettelser, som polsk, tamil, tradisjonell kinesisk, finsk og indonesisk. Takk til alle språkbidragsytere!
|
||||
|
||||
Versjon 2.4.2 inneholder en feilretting for en feil som ble introdusert i versjon 2.4.0, som forhindret nedlasting av spor uten cover.
|
||||
Denne versjonen løser et problem hvor Fintunes bare kunne spille av den første disken i et flerdisk-album. I tillegg, takket være våre fantastiske språkbidragsytere, er Fintunes nå tilgjengelig på tamil. Dessuten er 12 språk oppdatert. Nyt denne nye versjonen av Fintunes og vurder å bli med på vår Discord-server!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes obsługuje teraz wyświetlanie tekstów piosenek, dzięki czemu możesz śpiewać razem ze swoimi ulubionymi utworami! Dodatkowo możesz teraz używać Fintunes jako klienta dla Emby. Drobne zmiany w tej wersji obejmują:
|
||||
|
||||
• Zapisywanie okładek dla pobranych utworów (ponownie pobierz utwory, aby upewnić się, że okładki się pojawią)
|
||||
• Wyświetlanie informacji o kodeku dla aktualnie odtwarzanych utworów
|
||||
• Wiele nowych tłumaczeń, takich jak polski, tamilski, tradycyjny chiński, fiński i indonezyjski. Dziękujemy wszystkim tłumaczom!
|
||||
|
||||
Wersja 2.4.2 naprawia błąd wprowadzony w wersji 2.4.0, który uniemożliwiał pobieranie utworów bez okładki.
|
||||
Ta wersja naprawia problem, w którym Fintunes mógł odtwarzać tylko pierwszy dysk w albumie wielopłytowym. Ponadto, dzięki naszym wspaniałym współtwórcom językowym, Fintunes jest teraz dostępny w języku tamilskim. Dodatkowo zaktualizowano 12 języków. Ciesz się tą nową wersją Fintunes i dołącz do naszego serwera Discord!
|
||||
@@ -1,7 +1 @@
|
||||
O Fintunes agora suporta a exibição de letras, para que você possa cantar junto com suas músicas favoritas! Além disso, agora você pode usar o Fintunes como cliente para o Emby. Pequenas melhorias nesta versão incluem:
|
||||
|
||||
• As imagens de capa agora são salvas para faixas baixadas (baixe novamente suas faixas para garantir que apareçam)
|
||||
• Uma exibição que mostra informações do codec para as faixas que estão sendo reproduzidas
|
||||
• Muitas novas traduções, incluindo polonês, tâmil, chinês tradicional, finlandês e indonésio. Obrigado a todos os colaboradores de idiomas!
|
||||
|
||||
A versão 2.4.2 corrige um erro introduzido na versão 2.4.0 que impedia o download de faixas sem capa.
|
||||
Esta versão corrige um problema em que o Fintunes só conseguia reproduzir o primeiro disco em um álbum com múltiplos discos. Além disso, graças aos nossos incríveis colaboradores de idiomas, o Fintunes agora está disponível em tâmil. Adicionalmente, 12 idiomas foram atualizados. Aproveite esta nova versão do Fintunes e considere entrar em nosso servidor Discord!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes теперь поддерживает отображение текстов песен, чтобы вы могли подпевать своим любимым мелодиям! Кроме того, теперь вы можете использовать Fintunes в качестве клиента для Emby. Незначительные изменения в этом выпуске включают:
|
||||
|
||||
• Сохранение обложек для загруженных треков (перекачайте треки, чтобы убедиться, что обложки отображаются)
|
||||
• Отображение информации о кодеке для текущих воспроизводимых треков
|
||||
• Множество новых переводов, таких как польский, тамильский, традиционный китайский, финский и индонезийский. Спасибо всем переводчикам!
|
||||
|
||||
Версия 2.4.2 исправляет ошибку, появившуюся в версии 2.4.0, которая препятствовала загрузке треков без обложек.
|
||||
Эта версия исправляет проблему, при которой Fintunes мог воспроизводить только первый диск в альбоме с несколькими дисками. Кроме того, благодаря нашим замечательным языковым контрибьюторам, Fintunes теперь доступен на тамильском языке. Также обновлены 12 языков. Наслаждайтесь новой версией Fintunes и присоединяйтесь к нашему серверу Discord!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes har nu stöd för att visa låttexter så att du kan sjunga med i dina favoritlåtar! Dessutom kan du nu använda Fintunes som en klient för Emby. Mindre funktioner i denna version inkluderar:
|
||||
|
||||
• Omslagsbilder sparas för nedladdade låtar (ladda ner låtarna igen för att säkerställa att omslagen visas)
|
||||
• En visning som visar codec-information för låtar du spelar upp
|
||||
• Massor av nya översättningar, såsom polska, tamilska, traditionell kinesiska, finska och indonesiska. Tack till alla språkbidragsgivare!
|
||||
|
||||
Version 2.4.2 innehåller en fix för ett fel som introducerades i version 2.4.0, vilket förhindrade nedladdning av låtar utan omslagsbild.
|
||||
Denna version åtgärdar ett problem där Fintunes bara kunde spela upp den första skivan i ett flerskivsalbum. Dessutom, tack vare våra fantastiska språkbidragsgivare, är Fintunes nu tillgängligt på tamil. Dessutom har 12 språk uppdaterats. Njut av denna nya version av Fintunes och överväg att gå med i vår Discord-server!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes тепер підтримує відображення текстів пісень, щоб ви могли підспівувати улюбленим мелодіям! Також тепер ви можете використовувати Fintunes як клієнт для Emby. Незначні оновлення у цьому випуску включають:
|
||||
|
||||
• Збереження обкладинок для завантажених треків (перезавантажте ваші треки, щоб переконатися, що обкладинки відображаються)
|
||||
• Дисплей, що показує інформацію про кодек для поточно відтворюваних треків
|
||||
• Багато нових перекладів, таких як польська, тамільська, традиційна китайська, фінська та індонезійська. Дякуємо всім, хто допоміг із перекладами!
|
||||
|
||||
Версія 2.4.2 виправляє помилку, яка з’явилася у версії 2.4.0 і заважала завантаженню треків без обкладинок.
|
||||
Ця версія виправляє проблему, коли Fintunes міг відтворювати лише перший диск у багатодисковому альбомі. Крім того, завдяки нашим чудовим мовним учасникам, Fintunes тепер доступний тамільською мовою. Також оновлено 12 мов. Насолоджуйтесь цією новою версією Fintunes та приєднуйтесь до нашого сервера Discord!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes 现在支持歌词显示,让你可以跟唱你最喜欢的歌曲!此外,你现在可以将 Fintunes 用作 Emby 的客户端。本次更新的其他小功能包括:
|
||||
|
||||
• 下载的歌曲现在会保存封面图像(请重新下载歌曲以确保封面显示)
|
||||
• 显示当前播放歌曲的编解码器信息
|
||||
• 许多新翻译,例如波兰语、泰米尔语、繁体中文、芬兰语和印尼语。感谢所有语言贡献者!
|
||||
|
||||
版本 2.4.2 修复了在 2.4.0 版本中引入的一个错误,该错误阻止了无封面歌曲的下载。
|
||||
此版本修复了Fintunes只能播放多碟专辑中第一张碟片的问题。此外,感谢我们出色的语言贡献者,Fintunes现在支援泰米尔语。另外还有12种语言已更新。享受这个新版本的Fintunes,并考虑加入我们的Discord伺服器!
|
||||
@@ -1,7 +1 @@
|
||||
Fintunes 現在支援顯示歌詞,讓你可以跟唱你最喜愛的歌曲!此外,你現在可以將 Fintunes 用作 Emby 的客戶端。本次更新的其他小功能包括:
|
||||
|
||||
• 下載的歌曲現在會儲存封面圖片(請重新下載歌曲以確保封面顯示)
|
||||
• 顯示當前播放歌曲的編解碼器資訊
|
||||
• 許多新翻譯,例如波蘭語、泰米爾語、繁體中文、芬蘭語和印尼語。感謝所有語言貢獻者!
|
||||
|
||||
版本 2.4.2 修復了在 2.4.0 版本中引入的一個錯誤,該錯誤阻止了無封面歌曲的下載。
|
||||
此版本修復了Fintunes只能播放多碟專輯中第一張碟片的問題。此外,感謝我們出色的語言貢獻者,Fintunes現在支援泰米爾語。另外還有12種語言已更新。享受這個新版本的Fintunes,並考慮加入我們的Discord伺服器!
|
||||
@@ -1 +1 @@
|
||||
export NODE_BINARY=/opt/homebrew/bin/node
|
||||
export NODE_BINARY=$(command -v node)
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
//
|
||||
// File.swift
|
||||
// JellyfinAudioPlayer
|
||||
//
|
||||
// Created by Lei Nelissen on 02/11/2020.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
@@ -1,4 +0,0 @@
|
||||
//
|
||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||
//
|
||||
|
||||
@@ -8,26 +8,18 @@
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
01DDB50991998A6D20A1A5CD /* libPods-Fintunes.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E22EC545298DA9F9017776C0 /* libPods-Fintunes.a */; };
|
||||
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.m */; };
|
||||
13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB11A68108700A75B9A /* LaunchScreen.xib */; };
|
||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
4C04FC6E055249ABB204D3BC /* Inter-VariableFont_slnt,wght.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 4B4A0465FF364579B28CF5D7 /* Inter-VariableFont_slnt,wght.ttf */; };
|
||||
4FA1B23D2550A94C007A035E /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4FA1B23C2550A94C007A035E /* File.swift */; };
|
||||
96A76B2DA812E1F2E353959C /* libPods-Fintunes-FintunesTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 406012091F4F831F72DFB5D2 /* libPods-Fintunes-FintunesTests.a */; };
|
||||
AB393FCA2857CC8400773469 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB393FC92857CC8400773469 /* SnapshotHelper.swift */; };
|
||||
AB4A8DFE2857C8DA005A1ED0 /* FintunesUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB4A8DFD2857C8DA005A1ED0 /* FintunesUITests.swift */; };
|
||||
ABB40BB92DE211A6002112FC /* PhoneSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABB40BB82DE211A6002112FC /* PhoneSceneDelegate.swift */; };
|
||||
ABB40BBA2DE211A6002112FC /* CarSceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABB40BB72DE211A6002112FC /* CarSceneDelegate.swift */; };
|
||||
ABB40BBC2DE2137E002112FC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABB40BBB2DE2137E002112FC /* AppDelegate.swift */; };
|
||||
FA01635F2599C28FC19F2EC3 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3896494129CBC30258D9BB1C /* PrivacyInfo.xcprivacy */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
|
||||
remoteInfo = Fintunes;
|
||||
};
|
||||
AB4A8E012857C8DA005A1ED0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
|
||||
@@ -38,40 +30,28 @@
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
00E356EE1AD99517003FC87E /* FintunesTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FintunesTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
13B07F961A680F5B00A75B9A /* Fintunes.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Fintunes.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Fintunes/AppDelegate.h; sourceTree = "<group>"; };
|
||||
13B07FB01A68108700A75B9A /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Fintunes/AppDelegate.m; sourceTree = "<group>"; };
|
||||
13B07FB21A68108700A75B9A /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Fintunes/Images.xcassets; sourceTree = "<group>"; };
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Fintunes/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Fintunes/main.m; sourceTree = "<group>"; };
|
||||
3896494129CBC30258D9BB1C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = Fintunes/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
|
||||
3896494129CBC30258D9BB1C /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = Fintunes/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
|
||||
406012091F4F831F72DFB5D2 /* libPods-Fintunes-FintunesTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Fintunes-FintunesTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
4B4A0465FF364579B28CF5D7 /* Inter-VariableFont_slnt,wght.ttf */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 9; includeInIndex = 0; lastKnownFileType = unknown; name = "Inter-VariableFont_slnt,wght.ttf"; path = "../src/assets/fonts/Inter-VariableFont_slnt,wght.ttf"; sourceTree = "<group>"; };
|
||||
4FA1B23B2550A94B007A035E /* Fintunes-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Fintunes-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
4FA1B23C2550A94C007A035E /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = "<group>"; };
|
||||
55063C1C8FC150384B504BD6 /* Pods-Fintunes.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Fintunes.debug.xcconfig"; path = "Target Support Files/Pods-Fintunes/Pods-Fintunes.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
5892110C5BD456492E65B0FC /* Pods-Fintunes.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Fintunes.release.xcconfig"; path = "Target Support Files/Pods-Fintunes/Pods-Fintunes.release.xcconfig"; sourceTree = "<group>"; };
|
||||
AB393FC92857CC8400773469 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SnapshotHelper.swift; sourceTree = "<group>"; };
|
||||
AB4A8DFB2857C8DA005A1ED0 /* FintunesUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FintunesUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
AB4A8DFD2857C8DA005A1ED0 /* FintunesUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FintunesUITests.swift; sourceTree = "<group>"; };
|
||||
BB181C2EAAC2E99F00A27B5F /* Pods-Fintunes-FintunesTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Fintunes-FintunesTests.release.xcconfig"; path = "Target Support Files/Pods-Fintunes-FintunesTests/Pods-Fintunes-FintunesTests.release.xcconfig"; sourceTree = "<group>"; };
|
||||
ABB40BB42DE20F50002112FC /* Fintunes-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "Fintunes-Bridging-Header.h"; path = "Fintunes/Fintunes-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
ABB40BB72DE211A6002112FC /* CarSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CarSceneDelegate.swift; path = Fintunes/CarSceneDelegate.swift; sourceTree = "<group>"; };
|
||||
ABB40BB82DE211A6002112FC /* PhoneSceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = PhoneSceneDelegate.swift; path = Fintunes/PhoneSceneDelegate.swift; sourceTree = "<group>"; };
|
||||
ABB40BBB2DE2137E002112FC /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = Fintunes/AppDelegate.swift; sourceTree = "<group>"; };
|
||||
E22EC545298DA9F9017776C0 /* libPods-Fintunes.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Fintunes.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
E9A22426CA08309D7A874468 /* Pods-Fintunes-FintunesTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Fintunes-FintunesTests.debug.xcconfig"; path = "Target Support Files/Pods-Fintunes-FintunesTests/Pods-Fintunes-FintunesTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||
ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
00E356EB1AD99517003FC87E /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
96A76B2DA812E1F2E353959C /* libPods-Fintunes-FintunesTests.a in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -93,14 +73,13 @@
|
||||
13B07FAE1A68108700A75B9A /* Fintunes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
|
||||
13B07FB01A68108700A75B9A /* AppDelegate.m */,
|
||||
ABB40BBB2DE2137E002112FC /* AppDelegate.swift */,
|
||||
ABB40BB72DE211A6002112FC /* CarSceneDelegate.swift */,
|
||||
ABB40BB82DE211A6002112FC /* PhoneSceneDelegate.swift */,
|
||||
ABB40BB42DE20F50002112FC /* Fintunes-Bridging-Header.h */,
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */,
|
||||
13B07FB61A68108700A75B9A /* Info.plist */,
|
||||
13B07FB11A68108700A75B9A /* LaunchScreen.xib */,
|
||||
13B07FB71A68108700A75B9A /* main.m */,
|
||||
4FA1B23C2550A94C007A035E /* File.swift */,
|
||||
4FA1B23B2550A94B007A035E /* Fintunes-Bridging-Header.h */,
|
||||
3896494129CBC30258D9BB1C /* PrivacyInfo.xcprivacy */,
|
||||
);
|
||||
name = Fintunes;
|
||||
@@ -122,8 +101,6 @@
|
||||
children = (
|
||||
55063C1C8FC150384B504BD6 /* Pods-Fintunes.debug.xcconfig */,
|
||||
5892110C5BD456492E65B0FC /* Pods-Fintunes.release.xcconfig */,
|
||||
E9A22426CA08309D7A874468 /* Pods-Fintunes-FintunesTests.debug.xcconfig */,
|
||||
BB181C2EAAC2E99F00A27B5F /* Pods-Fintunes-FintunesTests.release.xcconfig */,
|
||||
);
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
@@ -155,7 +132,6 @@
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
13B07F961A680F5B00A75B9A /* Fintunes.app */,
|
||||
00E356EE1AD99517003FC87E /* FintunesTests.xctest */,
|
||||
AB4A8DFB2857C8DA005A1ED0 /* FintunesUITests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
@@ -181,27 +157,6 @@
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
00E356ED1AD99517003FC87E /* FintunesTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "FintunesTests" */;
|
||||
buildPhases = (
|
||||
4C89666008ED1AECA3700F1B /* [CP] Check Pods Manifest.lock */,
|
||||
00E356EA1AD99517003FC87E /* Sources */,
|
||||
00E356EB1AD99517003FC87E /* Frameworks */,
|
||||
00E356EC1AD99517003FC87E /* Resources */,
|
||||
105D0C84EA50AA33C7A575A2 /* [CP] Embed Pods Frameworks */,
|
||||
D9A3A76E8CEBB2167393A14A /* [CP] Copy Pods Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
00E356F51AD99517003FC87E /* PBXTargetDependency */,
|
||||
);
|
||||
name = FintunesTests;
|
||||
productName = FintunesTests;
|
||||
productReference = 00E356EE1AD99517003FC87E /* FintunesTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
13B07F861A680F5B00A75B9A /* Fintunes */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Fintunes" */;
|
||||
@@ -250,21 +205,15 @@
|
||||
LastSwiftUpdateCheck = 1340;
|
||||
LastUpgradeCheck = 1130;
|
||||
TargetAttributes = {
|
||||
00E356ED1AD99517003FC87E = {
|
||||
CreatedOnToolsVersion = 6.2;
|
||||
DevelopmentTeam = HD2D35G9Y4;
|
||||
ProvisioningStyle = Manual;
|
||||
TestTargetID = 13B07F861A680F5B00A75B9A;
|
||||
};
|
||||
13B07F861A680F5B00A75B9A = {
|
||||
DevelopmentTeam = HD2D35G9Y4;
|
||||
LastSwiftMigration = 1210;
|
||||
ProvisioningStyle = Automatic;
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
AB4A8DFA2857C8DA005A1ED0 = {
|
||||
CreatedOnToolsVersion = 13.4.1;
|
||||
DevelopmentTeam = HD2D35G9Y4;
|
||||
ProvisioningStyle = Automatic;
|
||||
ProvisioningStyle = Manual;
|
||||
TestTargetID = 13B07F861A680F5B00A75B9A;
|
||||
};
|
||||
};
|
||||
@@ -283,20 +232,12 @@
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
13B07F861A680F5B00A75B9A /* Fintunes */,
|
||||
00E356ED1AD99517003FC87E /* FintunesTests */,
|
||||
AB4A8DFA2857C8DA005A1ED0 /* FintunesUITests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
00E356EC1AD99517003FC87E /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
13B07F8E1A680F5B00A75B9A /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -352,24 +293,6 @@
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Fintunes/Pods-Fintunes-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
105D0C84EA50AA33C7A575A2 /* [CP] Embed Pods Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Fintunes-FintunesTests/Pods-Fintunes-FintunesTests-frameworks.sh",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/hermes-engine/Pre-built/hermes.framework/hermes",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/hermes.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Fintunes-FintunesTests/Pods-Fintunes-FintunesTests-frameworks.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
3A2533CC05843338D35BF11A /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -392,48 +315,6 @@
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
4C89666008ED1AECA3700F1B /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-Fintunes-FintunesTests-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
D9A3A76E8CEBB2167393A14A /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Fintunes-FintunesTests/Pods-Fintunes-FintunesTests-resources.sh",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/Sentry/Sentry.bundle",
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Sentry.bundle",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Fintunes-FintunesTests/Pods-Fintunes-FintunesTests-resources.sh\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
EDBDE27F51B5399CA455AD4D /* [CP] Copy Pods Resources */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
@@ -441,13 +322,27 @@
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_ROOT}/Target Support Files/Pods-Fintunes/Pods-Fintunes-resources.sh",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/RCTI18nStrings.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/RCT-Folly/RCT-Folly_privacy.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNCAsyncStorage/RNCAsyncStorage_resources.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/RNSVG/RNSVGFilters.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-Core/React-Core_privacy.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-cxxreact/React-cxxreact_privacy.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/SDWebImage/SDWebImage.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/Sentry/Sentry.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/boost/boost_privacy.bundle",
|
||||
"${PODS_CONFIGURATION_BUILD_DIR}/glog/glog_privacy.bundle",
|
||||
);
|
||||
name = "[CP] Copy Pods Resources";
|
||||
outputPaths = (
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCTI18nStrings.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RCT-Folly_privacy.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNCAsyncStorage_resources.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNSVGFilters.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-Core_privacy.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/React-cxxreact_privacy.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SDWebImage.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Sentry.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/boost_privacy.bundle",
|
||||
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/glog_privacy.bundle",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
@@ -457,20 +352,13 @@
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
00E356EA1AD99517003FC87E /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
13B07F871A680F5B00A75B9A /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
13B07FBC1A68108700A75B9A /* AppDelegate.m in Sources */,
|
||||
4FA1B23D2550A94C007A035E /* File.swift in Sources */,
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */,
|
||||
ABB40BBC2DE2137E002112FC /* AppDelegate.swift in Sources */,
|
||||
ABB40BB92DE211A6002112FC /* PhoneSceneDelegate.swift in Sources */,
|
||||
ABB40BBA2DE211A6002112FC /* CarSceneDelegate.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -486,11 +374,6 @@
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 13B07F861A680F5B00A75B9A /* Fintunes */;
|
||||
targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
|
||||
};
|
||||
AB4A8E022857C8DA005A1ED0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = 13B07F861A680F5B00A75B9A /* Fintunes */;
|
||||
@@ -511,65 +394,6 @@
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
00E356F61AD99517003FC87E /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = E9A22426CA08309D7A874468 /* Pods-Fintunes-FintunesTests.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
DEVELOPMENT_TEAM = HD2D35G9Y4;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
INFOPLIST_FILE = FintunesTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/usr/lib/swift",
|
||||
"$(inherited)",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
"$(inherited)",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Fintunes.app/Fintunes";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
00E356F71AD99517003FC87E /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = BB181C2EAAC2E99F00A27B5F /* Pods-Fintunes-FintunesTests.release.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
|
||||
BUNDLE_LOADER = "$(TEST_HOST)";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEVELOPMENT_TEAM = HD2D35G9Y4;
|
||||
INFOPLIST_FILE = FintunesTests/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/usr/lib/swift",
|
||||
"$(inherited)",
|
||||
);
|
||||
OTHER_LDFLAGS = (
|
||||
"-ObjC",
|
||||
"-lc++",
|
||||
"$(inherited)",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
PROVISIONING_PROFILE = "915c5213-22f6-4f9d-8065-2a06300f9bfb";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Fintunes.app/Fintunes";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
13B07F941A680F5B00A75B9A /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 55063C1C8FC150384B504BD6 /* Pods-Fintunes.debug.xcconfig */;
|
||||
@@ -578,7 +402,7 @@
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 106;
|
||||
CURRENT_PROJECT_VERSION = 118;
|
||||
DEVELOPMENT_TEAM = HD2D35G9Y4;
|
||||
ENABLE_BITCODE = NO;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
@@ -600,7 +424,7 @@
|
||||
PRODUCT_BUNDLE_IDENTIFIER = nl.moeilijkedingen.jellyfinaudioplayer;
|
||||
PRODUCT_NAME = Fintunes;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Fintunes-Bridging-Header.h";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Fintunes/Fintunes-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
@@ -616,7 +440,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 106;
|
||||
CURRENT_PROJECT_VERSION = 118;
|
||||
DEVELOPMENT_TEAM = HD2D35G9Y4;
|
||||
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = HD2D35G9Y4;
|
||||
INFOPLIST_FILE = Fintunes/Info.plist;
|
||||
@@ -636,7 +460,7 @@
|
||||
PROVISIONING_PROFILE = "915c5213-22f6-4f9d-8065-2a06300f9bfb";
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "nl.moeilijkedingen.jellyfinaudioplayer AppStore";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Fintunes-Bridging-Header.h";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Fintunes/Fintunes-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
@@ -711,6 +535,7 @@
|
||||
PRODUCT_NAME = Fintunes;
|
||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) DEBUG";
|
||||
USE_HERMES = true;
|
||||
};
|
||||
name = Debug;
|
||||
@@ -796,7 +621,7 @@
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
CURRENT_PROJECT_VERSION = 106;
|
||||
CURRENT_PROJECT_VERSION = 118;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = HD2D35G9Y4;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
@@ -831,7 +656,7 @@
|
||||
CODE_SIGN_IDENTITY = "Apple Development";
|
||||
CODE_SIGN_STYLE = Manual;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 106;
|
||||
CURRENT_PROJECT_VERSION = 118;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = HD2D35G9Y4;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
@@ -854,15 +679,6 @@
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "FintunesTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
00E356F61AD99517003FC87E /* Debug */,
|
||||
00E356F71AD99517003FC87E /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Fintunes" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
#import <RCTAppDelegate.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@interface AppDelegate : RCTAppDelegate
|
||||
|
||||
@end
|
||||
@@ -1,31 +0,0 @@
|
||||
#import "AppDelegate.h"
|
||||
|
||||
#import <React/RCTBundleURLProvider.h>
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
||||
{
|
||||
self.moduleName = @"Fintunes";
|
||||
// You can add your custom initial props in the dictionary below.
|
||||
// They will be passed down to the ViewController used by React Native.
|
||||
self.initialProps = @{};
|
||||
|
||||
return [super application:application didFinishLaunchingWithOptions:launchOptions];
|
||||
}
|
||||
|
||||
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
|
||||
{
|
||||
return [self bundleURL];
|
||||
}
|
||||
|
||||
- (NSURL *)bundleURL
|
||||
{
|
||||
#if DEBUG
|
||||
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
|
||||
#else
|
||||
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
|
||||
#endif
|
||||
}
|
||||
|
||||
@end
|
||||
64
ios/Fintunes/AppDelegate.swift
Normal file
64
ios/Fintunes/AppDelegate.swift
Normal file
@@ -0,0 +1,64 @@
|
||||
import UIKit
|
||||
import CarPlay
|
||||
import React
|
||||
import React_RCTAppDelegate
|
||||
import ReactAppDependencyProvider
|
||||
|
||||
|
||||
@main
|
||||
class AppDelegate: UIResponder, UIApplicationDelegate {
|
||||
|
||||
var window: UIWindow?
|
||||
|
||||
var reactNativeDelegate: ReactNativeDelegate?
|
||||
var reactNativeFactory: RCTReactNativeFactory?
|
||||
|
||||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
|
||||
|
||||
let delegate = ReactNativeDelegate()
|
||||
let factory = RCTReactNativeFactory(delegate: delegate)
|
||||
delegate.dependencyProvider = RCTAppDependencyProvider()
|
||||
|
||||
reactNativeDelegate = delegate
|
||||
reactNativeFactory = factory
|
||||
|
||||
window = UIWindow(frame: UIScreen.main.bounds)
|
||||
|
||||
factory.startReactNative(
|
||||
withModuleName: "Fintunes",
|
||||
in: window,
|
||||
launchOptions: launchOptions
|
||||
)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
|
||||
if (connectingSceneSession.role == UISceneSession.Role.carTemplateApplication) {
|
||||
let scene = UISceneConfiguration(name: "CarPlay", sessionRole: connectingSceneSession.role)
|
||||
scene.delegateClass = CarSceneDelegate.self
|
||||
return scene
|
||||
} else {
|
||||
let scene = UISceneConfiguration(name: "Phone", sessionRole: connectingSceneSession.role)
|
||||
scene.delegateClass = PhoneSceneDelegate.self
|
||||
return scene
|
||||
}
|
||||
}
|
||||
|
||||
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
|
||||
}
|
||||
}
|
||||
|
||||
class ReactNativeDelegate: RCTDefaultReactNativeFactoryDelegate {
|
||||
override func sourceURL(for bridge: RCTBridge) -> URL? {
|
||||
self.bundleURL()
|
||||
}
|
||||
|
||||
override func bundleURL() -> URL? {
|
||||
#if DEBUG
|
||||
RCTBundleURLProvider.sharedSettings().jsBundleURL(forBundleRoot: "index")
|
||||
#else
|
||||
Bundle.main.url(forResource: "main", withExtension: "jsbundle")
|
||||
#endif
|
||||
}
|
||||
}
|
||||
17
ios/Fintunes/CarSceneDelegate.swift
Normal file
17
ios/Fintunes/CarSceneDelegate.swift
Normal file
@@ -0,0 +1,17 @@
|
||||
import CarPlay
|
||||
|
||||
class CarSceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate {
|
||||
func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didConnect interfaceController: CPInterfaceController) {
|
||||
print("CarPlay: Scene did connect")
|
||||
print("CarPlay: About to connect to RNCarPlay")
|
||||
// Dispatch connect to RNCarPlay
|
||||
RNCarPlay.connect(with: interfaceController, window: templateApplicationScene.carWindow)
|
||||
print("CarPlay: RNCarPlay.connect called")
|
||||
}
|
||||
|
||||
func templateApplicationScene(_ templateApplicationScene: CPTemplateApplicationScene, didDisconnect interfaceController: CPInterfaceController) {
|
||||
print("CarPlay: Scene did disconnect")
|
||||
// Dispatch disconnect to RNCarPlay
|
||||
RNCarPlay.disconnect()
|
||||
}
|
||||
}
|
||||
1
ios/Fintunes/Fintunes-Bridging-Header.h
Normal file
1
ios/Fintunes/Fintunes-Bridging-Header.h
Normal file
@@ -0,0 +1 @@
|
||||
#import "RNCarPlay.h"
|
||||
@@ -17,11 +17,11 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.4.2</string>
|
||||
<string>2.4.6</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>106</string>
|
||||
<string>118</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>LSSupportsOpeningDocumentsInPlace</key>
|
||||
@@ -60,5 +60,41 @@
|
||||
<true/>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
<key>UIApplicationSceneManifest</key>
|
||||
<dict>
|
||||
<key>UIApplicationSupportsMultipleScenes</key>
|
||||
<true/>
|
||||
<key>UISceneConfigurations</key>
|
||||
<dict>
|
||||
<key>CPTemplateApplicationSceneSessionRoleApplication</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UISceneClassName</key>
|
||||
<string>CPTemplateApplicationScene</string>
|
||||
<key>UISceneConfigurationName</key>
|
||||
<string>CarPlay</string>
|
||||
<key>UISceneDelegateClassName</key>
|
||||
<string>$(PRODUCT_MODULE_NAME).CarSceneDelegate</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>UIWindowSceneSessionRoleApplication</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UISceneClassName</key>
|
||||
<string>UIWindowScene</string>
|
||||
<key>UISceneConfigurationName</key>
|
||||
<string>Phone</string>
|
||||
<key>UISceneDelegateClassName</key>
|
||||
<string>$(PRODUCT_MODULE_NAME).PhoneSceneDelegate</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>CPApplicationIdentifier</key>
|
||||
<string>nl.moeilijkedingen.fintunes.carplay</string>
|
||||
<key>CPApplicationName</key>
|
||||
<string>Fintunes</string>
|
||||
<key>CPApplicationCategory</key>
|
||||
<string>CPApplicationCategoryAudio</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
||||
24
ios/Fintunes/PhoneSceneDelegate.swift
Normal file
24
ios/Fintunes/PhoneSceneDelegate.swift
Normal file
@@ -0,0 +1,24 @@
|
||||
import UIKit
|
||||
import React
|
||||
|
||||
class PhoneSceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||
var window: UIWindow?
|
||||
|
||||
func scene(
|
||||
_ scene: UIScene, willConnectTo session: UISceneSession,
|
||||
options connectionOptions: UIScene.ConnectionOptions
|
||||
) {
|
||||
guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
|
||||
guard let windowScene = scene as? UIWindowScene else { return }
|
||||
guard let appRootView = appDelegate.window?.rootViewController?.view else { return }
|
||||
|
||||
let containerViewController = UIViewController()
|
||||
containerViewController.view.addSubview(appRootView)
|
||||
appRootView.frame = containerViewController.view.bounds
|
||||
|
||||
let window = UIWindow(windowScene: windowScene)
|
||||
window.rootViewController = containerViewController
|
||||
self.window = window
|
||||
window.makeKeyAndVisible()
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,14 @@
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPITypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPIType</key>
|
||||
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
|
||||
<key>NSPrivacyAccessedAPITypeReasons</key>
|
||||
<array>
|
||||
<string>C617.1</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPIType</key>
|
||||
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
|
||||
@@ -20,14 +28,6 @@
|
||||
<string>35F9.1</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>NSPrivacyAccessedAPIType</key>
|
||||
<string>NSPrivacyAccessedAPICategoryFileTimestamp</string>
|
||||
<key>NSPrivacyAccessedAPITypeReasons</key>
|
||||
<array>
|
||||
<string>C617.1</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>NSPrivacyCollectedDataTypes</key>
|
||||
<array/>
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
@autoreleasepool {
|
||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
|
||||
}
|
||||
}
|
||||
@@ -23,11 +23,6 @@ target 'Fintunes' do
|
||||
:app_path => "#{Pod::Config.instance.installation_root}/.."
|
||||
)
|
||||
|
||||
target 'FintunesTests' do
|
||||
inherit! :complete
|
||||
# Pods for testing
|
||||
end
|
||||
|
||||
post_install do |installer|
|
||||
# https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
|
||||
react_native_post_install(
|
||||
|
||||
3653
ios/Podfile.lock
3653
ios/Podfile.lock
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@ const { assetExts, sourceExts } = defaultConfig.resolver;
|
||||
* Metro configuration
|
||||
* https://facebook.github.io/metro/docs/configuration
|
||||
*
|
||||
* @type {import('metro-config').MetroConfig}
|
||||
* @type {import('@react-native/metro-config').MetroConfig}
|
||||
*/
|
||||
const config = {
|
||||
transformer: {
|
||||
@@ -29,7 +29,8 @@ const config = {
|
||||
},
|
||||
serializer: {
|
||||
customSerializer: createSentryMetroSerializer()
|
||||
}
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
module.exports = mergeConfig(defaultConfig, config);
|
||||
11493
package-lock.json
generated
11493
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
97
package.json
97
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "fintunes",
|
||||
"version": "2.4.4",
|
||||
"version": "2.4.6",
|
||||
"main": "src/index.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -12,69 +12,72 @@
|
||||
"postinstall": "patch-package"
|
||||
},
|
||||
"dependencies": {
|
||||
"@react-native-async-storage/async-storage": "^1.21.0",
|
||||
"@d11/react-native-fast-image": "^8.9.2",
|
||||
"@react-native-async-storage/async-storage": "^2.1.2",
|
||||
"@react-native-community/blur": "^4.4.1",
|
||||
"@react-native-community/datetimepicker": "^8.2.0",
|
||||
"@react-native-community/netinfo": "^11.2.1",
|
||||
"@react-navigation/bottom-tabs": "^6.5.12",
|
||||
"@react-navigation/elements": "^1.3.22",
|
||||
"@react-navigation/native": "^6.1.10",
|
||||
"@react-navigation/native-stack": "^6.9.18",
|
||||
"@react-navigation/stack": "^6.3.21",
|
||||
"@reduxjs/toolkit": "^2.1.0",
|
||||
"@shopify/react-native-skia": "^0.1.238",
|
||||
"date-fns": "^3.3.1",
|
||||
"@react-native-community/datetimepicker": "^8.3.0",
|
||||
"@react-native-community/netinfo": "^11.4.1",
|
||||
"@react-navigation/bottom-tabs": "^6.6.1",
|
||||
"@react-navigation/elements": "^1.3.31",
|
||||
"@react-navigation/native": "^6.1.18",
|
||||
"@react-navigation/native-stack": "^6.11.0",
|
||||
"@react-navigation/stack": "^6.4.1",
|
||||
"@reduxjs/toolkit": "^2.7.0",
|
||||
"@shopify/flash-list": "^1.8.0",
|
||||
"@shopify/react-native-skia": "2.0.0-next.3",
|
||||
"date-fns": "^3.6.0",
|
||||
"events": "^3.3.0",
|
||||
"fuse.js": "^7.0.0",
|
||||
"i18n-js": "^4.3.2",
|
||||
"fuse.js": "^7.1.0",
|
||||
"i18n-js": "^4.5.1",
|
||||
"lodash": "^4.17.21",
|
||||
"mime": "^4.0.6",
|
||||
"react": "^18.2.0",
|
||||
"mime": "^4.0.7",
|
||||
"react": "19.0.0",
|
||||
"react-airplay": "^1.2.0",
|
||||
"react-native": "0.74.3",
|
||||
"react-native": "^0.79.2",
|
||||
"react-native-accessibility-settings": "^0.1.2",
|
||||
"react-native-collapsible": "^1.6.1",
|
||||
"react-native-dotenv": "^3.4.9",
|
||||
"react-native-fast-image": "^8.6.3",
|
||||
"react-native-carplay": "2.4.1-beta.0",
|
||||
"react-native-collapsible": "^1.6.2",
|
||||
"react-native-dotenv": "^3.4.11",
|
||||
"react-native-fs": "^2.20.0",
|
||||
"react-native-gesture-handler": "^2.15.0",
|
||||
"react-native-localize": "^3.0.6",
|
||||
"react-native-gesture-handler": "^2.25.0",
|
||||
"react-native-localize": "^3.4.1",
|
||||
"react-native-modal-datetime-picker": "^17.1.0",
|
||||
"react-native-reanimated": "^3.14.0",
|
||||
"react-native-safe-area-context": "^4.10.8",
|
||||
"react-native-screens": "^3.29.0",
|
||||
"react-native-shadow-2": "^7.0.8",
|
||||
"react-native-svg": "^14.1.0",
|
||||
"react-native-track-player": "^4.0.1",
|
||||
"react-native-webview": "^13.7.1",
|
||||
"react-redux": "^9.1.0",
|
||||
"react-native-reanimated": "^3.17.5",
|
||||
"react-native-safe-area-context": "^5.4.0",
|
||||
"react-native-screens": "^4.10.0",
|
||||
"react-native-shadow-2": "^7.1.1",
|
||||
"react-native-svg": "^15.11.2",
|
||||
"react-native-track-player": "npm:@weights-ai/react-native-track-player@^4.1.4",
|
||||
"react-native-webview": "^13.13.5",
|
||||
"react-redux": "^9.2.0",
|
||||
"redux": "^5.0.1",
|
||||
"redux-persist": "^6.0.0",
|
||||
"styled-components": "^6.1.8"
|
||||
"styled-components": "^6.1.17"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.20.2",
|
||||
"@babel/runtime": "^7.20.1",
|
||||
"@react-native/babel-preset": "0.74.85",
|
||||
"@react-native/metro-config": "0.74.85",
|
||||
"@babel/core": "^7.27.1",
|
||||
"@babel/runtime": "^7.27.1",
|
||||
"@react-native-community/cli": "^18.0.0",
|
||||
"@react-native/babel-preset": "^0.79.2",
|
||||
"@react-native/metro-config": "^0.79.2",
|
||||
"@react-native/typescript-config": "0.74.85",
|
||||
"@sentry/cli": "^2.33.0",
|
||||
"@sentry/react-native": "^5.26.0",
|
||||
"@sentry/cli": "^2.44.0",
|
||||
"@sentry/react-native": "^6.13.0",
|
||||
"@types/i18n-js": "^3.8.9",
|
||||
"@types/lodash": "^4.14.202",
|
||||
"@types/node": "^20.11.17",
|
||||
"@types/react": "^18.2.55",
|
||||
"@types/lodash": "^4.17.16",
|
||||
"@types/node": "^20.17.32",
|
||||
"@types/react": "^18.3.20",
|
||||
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
||||
"@typescript-eslint/parser": "^6.21.0",
|
||||
"babel-plugin-module-resolver": "^5.0.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-plugin-react": "^7.33.2",
|
||||
"eslint-plugin-react-hooks": "^4.6.0",
|
||||
"babel-plugin-module-resolver": "^5.0.2",
|
||||
"eslint": "^8.57.1",
|
||||
"eslint-plugin-react": "^7.37.5",
|
||||
"eslint-plugin-react-hooks": "^4.6.2",
|
||||
"metro-react-native-babel-transformer": "^0.77.0",
|
||||
"patch-package": "^8.0.0",
|
||||
"react-native-svg-transformer": "^1.3.0",
|
||||
"tslib": "^2.6.2",
|
||||
"typescript": "^5.3.3"
|
||||
"react-native-svg-transformer": "^1.5.1",
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.8.3"
|
||||
},
|
||||
"jest": {
|
||||
"preset": "react-native",
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
diff --git a/node_modules/@sentry/react-native/scripts/sentry-xcode-debug-files.sh b/node_modules/@sentry/react-native/scripts/sentry-xcode-debug-files.sh
|
||||
index 6427338..c84ac33 100755
|
||||
--- a/node_modules/@sentry/react-native/scripts/sentry-xcode-debug-files.sh
|
||||
+++ b/node_modules/@sentry/react-native/scripts/sentry-xcode-debug-files.sh
|
||||
@@ -2,8 +2,8 @@
|
||||
# Upload Debug Symbols to Sentry Xcode Build Phase
|
||||
# PWD=ios
|
||||
|
||||
-# print commands before executing them and stop on first error
|
||||
-set -x -e
|
||||
+# print commands before executing them
|
||||
+set -x
|
||||
|
||||
[ -z "$WITH_ENVIRONMENT" ] && WITH_ENVIRONMENT="../node_modules/react-native/scripts/xcode/with-environment.sh"
|
||||
|
||||
@@ -12,6 +12,9 @@ if [ -f "$WITH_ENVIRONMENT" ]; then
|
||||
. "$WITH_ENVIRONMENT"
|
||||
fi
|
||||
|
||||
+# stop on first error (we can't use -e before as any failed command in WITH_ENVIRONMENT would stop the debug files upload)
|
||||
+set -e
|
||||
+
|
||||
LOCAL_NODE_BINARY=${NODE_BINARY:-node}
|
||||
|
||||
[ -z "$SENTRY_PROPERTIES" ] && export SENTRY_PROPERTIES=sentry.properties
|
||||
@@ -1,13 +0,0 @@
|
||||
diff --git a/node_modules/@shopify/react-native-skia/android/build.gradle b/node_modules/@shopify/react-native-skia/android/build.gradle
|
||||
index 29e74bf..f2b35a5 100644
|
||||
--- a/node_modules/@shopify/react-native-skia/android/build.gradle
|
||||
+++ b/node_modules/@shopify/react-native-skia/android/build.gradle
|
||||
@@ -135,6 +135,8 @@ android {
|
||||
defaultConfig {
|
||||
minSdkVersion safeExtGet('minSdkVersion', DEFAULT_MIN_SDK_VERSION)
|
||||
targetSdkVersion safeExtGet('targetSdkVersion', DEFAULT_TARGET_SDK_VERSION)
|
||||
+ ndkVersion safeExtGet('ndkVersion', '26.1.10909125')
|
||||
+
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
|
||||
24
patches/@weights-ai__react-native-track-player.patch
Normal file
24
patches/@weights-ai__react-native-track-player.patch
Normal file
@@ -0,0 +1,24 @@
|
||||
diff --git a/android/src/main/java/com/doublesymmetry/trackplayer/service/MusicService.kt b/android/src/main/java/com/doublesymmetry/trackplayer/service/MusicService.kt
|
||||
index baeebce2489e6f9e47ce2ebb9332072e31ba24d5..e52a053d99fcc568d03a0294840b0463f04d01c9 100644
|
||||
--- a/android/src/main/java/com/doublesymmetry/trackplayer/service/MusicService.kt
|
||||
+++ b/android/src/main/java/com/doublesymmetry/trackplayer/service/MusicService.kt
|
||||
@@ -756,10 +756,15 @@ class MusicService : HeadlessJsTaskService() {
|
||||
return HeadlessJsTaskConfig(TASK_KEY, Arguments.createMap(), 0, true)
|
||||
}
|
||||
|
||||
- // @MainThread
|
||||
- // fun onBind(intent: Intent?): IBinder {
|
||||
- // return binder
|
||||
- // }
|
||||
+ @MainThread
|
||||
+ override fun onBind(intent: Intent): IBinder {
|
||||
+ return binder
|
||||
+ }
|
||||
+
|
||||
+ @MainThread
|
||||
+ override fun onUnbind(intent: Intent): Boolean {
|
||||
+ return super.onUnbind(intent)
|
||||
+ }
|
||||
|
||||
@MainThread
|
||||
override fun onTaskRemoved(rootIntent: Intent?) {
|
||||
@@ -1,22 +0,0 @@
|
||||
diff --git a/node_modules/react-native-fast-image/ios/FastImage/FFFastImageView.m b/node_modules/react-native-fast-image/ios/FastImage/FFFastImageView.m
|
||||
index f710081..87c4532 100644
|
||||
--- a/node_modules/react-native-fast-image/ios/FastImage/FFFastImageView.m
|
||||
+++ b/node_modules/react-native-fast-image/ios/FastImage/FFFastImageView.m
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
- (void) setOnFastImageLoadEnd: (RCTDirectEventBlock)onFastImageLoadEnd {
|
||||
_onFastImageLoadEnd = onFastImageLoadEnd;
|
||||
- if (self.hasCompleted) {
|
||||
+ if (self.hasCompleted && _onFastImageLoadEnd != NULL) {
|
||||
_onFastImageLoadEnd(@{});
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
- (void) setOnFastImageError: (RCTDirectEventBlock)onFastImageError {
|
||||
_onFastImageError = onFastImageError;
|
||||
- if (self.hasErrored) {
|
||||
+ if (self.hasErrored && _onFastImageError != NULL) {
|
||||
_onFastImageError(@{});
|
||||
}
|
||||
}
|
||||
27
patches/react-native-webview.patch
Normal file
27
patches/react-native-webview.patch
Normal file
@@ -0,0 +1,27 @@
|
||||
diff --git a/apple/RNCWebView.mm b/apple/RNCWebView.mm
|
||||
index f9d080e3dc6670a2c03208de5b95b1532d001d23..94522636587d71c4deefd1e09fd05e04c616d617 100644
|
||||
--- a/apple/RNCWebView.mm
|
||||
+++ b/apple/RNCWebView.mm
|
||||
@@ -244,7 +244,7 @@ auto stringToOnLoadingFinishNavigationTypeEnum(std::string value) {
|
||||
webViewEventEmitter->onHttpError(data);
|
||||
}
|
||||
};
|
||||
- self.contentView = _view;
|
||||
+ [self addSubview:_view];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
@@ -488,6 +488,13 @@ auto stringToOnLoadingFinishNavigationTypeEnum(std::string value) {
|
||||
[super updateProps:props oldProps:oldProps];
|
||||
}
|
||||
|
||||
+-(void)layoutSubviews
|
||||
+{
|
||||
+ [super layoutSubviews];
|
||||
+ _view.frame = self.bounds;
|
||||
+}
|
||||
+
|
||||
+
|
||||
- (void)handleCommand:(nonnull const NSString *)commandName args:(nonnull const NSArray *)args {
|
||||
RCTRNCWebViewHandleCommand(self, commandName, args);
|
||||
}
|
||||
8
patches/styled-components.patch
Normal file
8
patches/styled-components.patch
Normal file
File diff suppressed because one or more lines are too long
10421
pnpm-lock.yaml
generated
Normal file
10421
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
6
pnpm-workspace.yaml
Normal file
6
pnpm-workspace.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
onlyBuiltDependencies:
|
||||
- '@sentry/cli'
|
||||
patchedDependencies:
|
||||
styled-components: patches/styled-components.patch
|
||||
react-native-webview: patches/react-native-webview.patch
|
||||
'@weights-ai/react-native-track-player': patches/@weights-ai__react-native-track-player.patch
|
||||
@@ -1,3 +1,3 @@
|
||||
export const ALBUM_CACHE_AMOUNT_OF_DAYS = 7;
|
||||
export const PLAYLIST_CACHE_AMOUNT_OF_DAYS = 7;
|
||||
export const ALPHABET_LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ ';
|
||||
export const ALPHABET_LETTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ#';
|
||||
@@ -9,6 +9,7 @@ import {
|
||||
TapGestureHandlerGestureEvent
|
||||
} from 'react-native-gesture-handler';
|
||||
import useDefaultStyles from './Colors';
|
||||
import { useNavigationOffsets } from './SafeNavigatorView';
|
||||
|
||||
// interface LetterContainerProps {
|
||||
// onPress: (letter: string) => void;
|
||||
@@ -17,23 +18,21 @@ import useDefaultStyles from './Colors';
|
||||
|
||||
const Container = styled.View`
|
||||
position: absolute;
|
||||
right: 5px;
|
||||
top: 0;
|
||||
height: 100%;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
padding: 5px;
|
||||
margin: auto 0;
|
||||
justify-content: space-around;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
`;
|
||||
|
||||
const Letter = styled.Text`
|
||||
const Letter = styled.Text<{ isSelected?: boolean }>`
|
||||
text-align: center;
|
||||
padding: 1px 0;
|
||||
padding: 1.5px 10px;
|
||||
font-size: 12px;
|
||||
`;
|
||||
|
||||
interface Props {
|
||||
onSelect: (index: number) => void;
|
||||
onSelect: (selected: { index: number, letter: string }) => void;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -44,6 +43,7 @@ const AlphabetScroller: React.FC<Props> = ({ onSelect }) => {
|
||||
const styles = useDefaultStyles();
|
||||
const [ height, setHeight ] = useState(0);
|
||||
const [ index, setIndex ] = useState<number>();
|
||||
const { top, bottom } = useNavigationOffsets();
|
||||
|
||||
// Handler for setting the correct height for a single alphabet item
|
||||
const handleLayout = useCallback((event: LayoutChangeEvent) => {
|
||||
@@ -52,16 +52,20 @@ const AlphabetScroller: React.FC<Props> = ({ onSelect }) => {
|
||||
|
||||
// Handler for passing on a new index when it is tapped or swiped
|
||||
const handleGestureEvent = useCallback((event: PanGestureHandlerGestureEvent | TapGestureHandlerGestureEvent) => {
|
||||
const newIndex = Math.floor(event.nativeEvent.y / height);
|
||||
const { y } = event.nativeEvent;
|
||||
const newIndex = Math.min(
|
||||
Math.max(0, Math.floor(y / height)),
|
||||
ALPHABET_LETTERS.length - 1
|
||||
);
|
||||
|
||||
if (newIndex !== index) {
|
||||
setIndex(newIndex);
|
||||
onSelect(newIndex);
|
||||
onSelect({ index: newIndex, letter: ALPHABET_LETTERS[newIndex] });
|
||||
}
|
||||
}, [height, index, onSelect]);
|
||||
|
||||
return (
|
||||
<Container>
|
||||
<Container style={{ top, bottom }}>
|
||||
<TapGestureHandler onHandlerStateChange={handleGestureEvent}>
|
||||
<PanGestureHandler onGestureEvent={handleGestureEvent}>
|
||||
<View>
|
||||
@@ -70,7 +74,10 @@ const AlphabetScroller: React.FC<Props> = ({ onSelect }) => {
|
||||
key={l}
|
||||
onLayout={i === 0 ? handleLayout : undefined}
|
||||
>
|
||||
<Letter style={styles.themeColor}>
|
||||
<Letter
|
||||
style={styles.themeColor}
|
||||
isSelected={i === index}
|
||||
>
|
||||
{l}
|
||||
</Letter>
|
||||
</View>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { PropsWithChildren, useEffect } from 'react';
|
||||
import React, { PropsWithChildren, useEffect, useState } from 'react';
|
||||
import { Provider } from 'react-redux';
|
||||
import TrackPlayer, { Capability } from 'react-native-track-player';
|
||||
import { PersistGate } from 'redux-persist/integration/react';
|
||||
@@ -11,6 +11,8 @@ import {
|
||||
} from '@react-navigation/native';
|
||||
import { ColorSchemeProvider, themes, useUserOrSystemScheme } from './Colors';
|
||||
import DownloadManager from './DownloadManager';
|
||||
import AppLoading from './AppLoading';
|
||||
import CarPlayScreen from '@/screens/carplay';
|
||||
|
||||
const LightTheme = {
|
||||
...DefaultTheme,
|
||||
@@ -44,14 +46,14 @@ function ThemedNavigationContainer({ children }: PropsWithChildren<{}>) {
|
||||
);
|
||||
}
|
||||
|
||||
// Track whether the player has already been setup, so that we don't
|
||||
// accidentally do it twice.
|
||||
let hasSetupPlayer = false;
|
||||
export default function App(): JSX.Element | null {
|
||||
// Track whether the player has already been setup, so that we don't
|
||||
// accidentally do it twice.
|
||||
const [hasSetupPlayer, setHasSetupPlayer] = useState(false);
|
||||
|
||||
export default function App(): JSX.Element {
|
||||
useEffect(() => {
|
||||
async function setupTrackPlayer() {
|
||||
await TrackPlayer.setupPlayer();
|
||||
await TrackPlayer.setupPlayer({ autoHandleInterruptions: true });
|
||||
await TrackPlayer.updateOptions({
|
||||
capabilities: [
|
||||
Capability.Play,
|
||||
@@ -63,13 +65,18 @@ export default function App(): JSX.Element {
|
||||
],
|
||||
progressUpdateEventInterval: 5,
|
||||
});
|
||||
setHasSetupPlayer(true);
|
||||
}
|
||||
|
||||
if (!hasSetupPlayer) {
|
||||
setupTrackPlayer();
|
||||
hasSetupPlayer = true;
|
||||
}
|
||||
}, []);
|
||||
}, [hasSetupPlayer]);
|
||||
|
||||
// GUARD: Wait for setup of the player before showing the rest of the app
|
||||
if (!hasSetupPlayer) {
|
||||
return (<AppLoading />);
|
||||
}
|
||||
|
||||
return (
|
||||
<Provider store={store}>
|
||||
@@ -78,6 +85,7 @@ export default function App(): JSX.Element {
|
||||
<ThemedNavigationContainer>
|
||||
<Routes />
|
||||
<DownloadManager />
|
||||
<CarPlayScreen />
|
||||
</ThemedNavigationContainer>
|
||||
</ColorSchemeProvider>
|
||||
</PersistGate>
|
||||
|
||||
25
src/components/AppLoading.tsx
Normal file
25
src/components/AppLoading.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import { useColorScheme } from 'react-native';
|
||||
import styled from 'styled-components/native';
|
||||
|
||||
const Container = styled.View`
|
||||
flex: 1;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
`;
|
||||
|
||||
const Logo = styled.Image`
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid #e6e6e6;
|
||||
`;
|
||||
|
||||
export default function AppLoading() {
|
||||
const scheme = useColorScheme();
|
||||
|
||||
return (
|
||||
<Container style={{ backgroundColor: scheme === 'dark' ? '#111' : '#fff' }}>
|
||||
<Logo source={require('../assets/icons/app-icon.png')} />
|
||||
</Container>
|
||||
);
|
||||
}
|
||||
@@ -157,21 +157,28 @@ export function DefaultStylesProvider(props: DefaultStylesProviderProps) {
|
||||
return props.children(defaultStyles);
|
||||
}
|
||||
|
||||
export function ColoredBlurView(props: PropsWithChildren<BlurViewProps>) {
|
||||
export function ColoredBlurView({ children, style, ...props }: PropsWithChildren<BlurViewProps>) {
|
||||
const systemScheme = useColorScheme();
|
||||
const userScheme = useTypedSelector((state) => state.settings.colorScheme);
|
||||
const scheme = userScheme === ColorScheme.System ? systemScheme : userScheme;
|
||||
|
||||
return Platform.OS === 'ios' ? (
|
||||
<BlurView
|
||||
{...props}
|
||||
blurType={Platform.OS === 'ios' && majorPlatformVersion >= 13
|
||||
? scheme === 'dark' ? 'materialDark' : 'materialLight'
|
||||
: scheme === 'dark' ? 'extraDark' : 'xlight'
|
||||
} />
|
||||
<View style={[style, { overflow: 'hidden' }]}>
|
||||
<BlurView
|
||||
style={[ StyleSheet.absoluteFill, { overflow: 'hidden'} ]}
|
||||
{...props}
|
||||
blurType={Platform.OS === 'ios' && majorPlatformVersion >= 13
|
||||
? scheme === 'dark' ? 'materialDark' : 'materialLight'
|
||||
: scheme === 'dark' ? 'extraDark' : 'xlight'
|
||||
}
|
||||
/>
|
||||
{children}
|
||||
</View>
|
||||
) : (
|
||||
<View {...props} style={[ props.style, {
|
||||
<View {...props} style={[ style, {
|
||||
backgroundColor: scheme === 'light' ? '#f6f6f6fb' : '#333333fb',
|
||||
} ]} />
|
||||
} ]}>
|
||||
{children}
|
||||
</View>
|
||||
);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import React, { useMemo, useState } from 'react';
|
||||
import React, { useMemo } from 'react';
|
||||
import { Dimensions, ViewProps } from 'react-native';
|
||||
import { Canvas, Blur, Image as SkiaImage, useImage, Offset, Mask, RoundedRect, Shadow } from '@shopify/react-native-skia';
|
||||
import useDefaultStyles, { useUserOrSystemScheme } from './Colors';
|
||||
@@ -28,7 +28,7 @@ interface Props {
|
||||
margin?: number;
|
||||
radius?: number;
|
||||
style?: ViewProps['style'];
|
||||
src: string;
|
||||
src?: string;
|
||||
}
|
||||
|
||||
const emptyAlbumLight = require('@/assets/images/empty-album-light.png');
|
||||
@@ -49,9 +49,8 @@ function CoverImage({
|
||||
}: Props) {
|
||||
const defaultStyles = useDefaultStyles();
|
||||
const colorScheme = useUserOrSystemScheme();
|
||||
const [hasFailed, setFailed] = useState(false);
|
||||
|
||||
const image = useImage(src || null, () => setFailed(true));
|
||||
const image = useImage(src || null);
|
||||
const fallback = useImage(colorScheme === 'light' ? emptyAlbumLight : emptyAlbumDark);
|
||||
const { canvasSize, imageSize } = useMemo(() => {
|
||||
const imageSize = Screen.width - margin;
|
||||
@@ -69,7 +68,7 @@ function CoverImage({
|
||||
<Shadow dx={0} dy={8} blur={16} color="#0000000d" />
|
||||
<Shadow dx={0} dy={16} blur={32} color="#0000000d" />
|
||||
</RoundedRect>
|
||||
{src && (
|
||||
{src ? (
|
||||
<>
|
||||
<SkiaImage
|
||||
image={image}
|
||||
@@ -97,8 +96,7 @@ function CoverImage({
|
||||
</SkiaImage>
|
||||
</Mask>
|
||||
</>
|
||||
)}
|
||||
{(!src || hasFailed) && (
|
||||
) : (
|
||||
<Mask
|
||||
mask={
|
||||
<RoundedRect
|
||||
|
||||
@@ -15,7 +15,7 @@ const Container = styled.Pressable<{ hasIcon?: boolean }>`
|
||||
|
||||
${Platform.select({
|
||||
ios: css`padding: 12px;`,
|
||||
android: css`padding: 4px 12px;`,
|
||||
android: css`padding: 12px;`,
|
||||
})}
|
||||
|
||||
${({ hasIcon }) => hasIcon && css`
|
||||
|
||||
@@ -3,6 +3,7 @@ import { useHeaderHeight } from '@react-navigation/elements';
|
||||
import { FlatList, FlatListProps, ScrollView, ScrollViewProps, SectionList, SectionListProps } from 'react-native';
|
||||
import useCurrentTrack from '../utility/useCurrentTrack';
|
||||
import { useBottomTabBarHeight } from '@react-navigation/bottom-tabs';
|
||||
import { FlashList, FlashListProps } from '@shopify/flash-list';
|
||||
|
||||
declare module 'react' {
|
||||
function forwardRef<T, P = {}>(
|
||||
@@ -26,7 +27,7 @@ export function SafeScrollView({
|
||||
contentContainerStyle,
|
||||
{ paddingTop: top, paddingBottom: bottom },
|
||||
]}
|
||||
scrollIndicatorInsets={{ top: top / 2, bottom: bottom / 2 + 5 }}
|
||||
scrollIndicatorInsets={{ top: top / 2, bottom: bottom / 2 + 5 }}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
@@ -48,7 +49,7 @@ function BareSafeSectionList<I, S>({
|
||||
{ paddingTop: top, paddingBottom: bottom },
|
||||
contentContainerStyle,
|
||||
]}
|
||||
scrollIndicatorInsets={{ top: top / 2, bottom: bottom / 2 + 5 }}
|
||||
scrollIndicatorInsets={{ top: top / 2, bottom: bottom / 2 + 5 }}
|
||||
ref={ref}
|
||||
{...props}
|
||||
/>
|
||||
@@ -81,6 +82,30 @@ function BareSafeFlatList<I>({
|
||||
|
||||
export const SafeFlatList = forwardRef(BareSafeFlatList);
|
||||
|
||||
/**
|
||||
* A wrapper for ScrollView that takes any paddings, margins and insets into
|
||||
* account that result from the bottom tabs, potential NowPlaying overlay and header.
|
||||
*/
|
||||
function BareSafeFlashList<I>({
|
||||
contentContainerStyle,
|
||||
...props
|
||||
}: FlashListProps<I>, ref: ForwardedRef<FlashList<I>>) {
|
||||
const { top, bottom } = useNavigationOffsets();
|
||||
|
||||
return (
|
||||
<FlashList
|
||||
contentContainerStyle={
|
||||
{ ...contentContainerStyle, paddingBottom: bottom }
|
||||
}
|
||||
scrollIndicatorInsets={{ top: top * 0.4, bottom: bottom * 0.55 }}
|
||||
ref={ref}
|
||||
{...props}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
export const SafeFlashList = forwardRef(BareSafeFlashList);
|
||||
|
||||
/**
|
||||
* A hook that returns the correct offset that should be applied to any Views
|
||||
* that are wrapped in a NavigationView, in order to account for overlays,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import React, { PropsWithChildren, useCallback } from 'react';
|
||||
import { Pressable, ViewStyle } from 'react-native';
|
||||
|
||||
interface TouchableHandlerProps<T = number> {
|
||||
interface TouchableHandlerProps<T> {
|
||||
id: T;
|
||||
onPress: (id: T) => void;
|
||||
onLongPress?: (id: T) => void;
|
||||
|
||||
@@ -77,5 +77,6 @@
|
||||
"delete": "Изтрий",
|
||||
"disc": "диск",
|
||||
"lyrics": "Текст на песен",
|
||||
"kbps": "kbps"
|
||||
"kbps": "kbps",
|
||||
"transcoded": "Транскод"
|
||||
}
|
||||
|
||||
@@ -79,6 +79,6 @@
|
||||
"lyrics": "Lletra",
|
||||
"khz": "k Hz",
|
||||
"direct-play": "Joc directe",
|
||||
"transcoded": "Transcodificat",
|
||||
"transcoded": "Transcode",
|
||||
"kbps": "kbps"
|
||||
}
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
"error-reporting": "Hlášení chyb",
|
||||
"server-url": "Adresa URL serveru Jellyfin",
|
||||
"downloads": "Ke stažení",
|
||||
"onboarding-cta": "Chcete-li začít, potřebujete server Jellyfin (nebo Emby). Kliknutím na tlačítko níže zadejte adresu serveru a přihlaste se k němu.",
|
||||
"onboarding-cta": "Abyste mohli začít, potřebujete server Jellyfin. Kliknutím na tlačítko níže zadejte adresu svého serveru Jellyfin a přihlaste se k němu.",
|
||||
"shuffle-album": "Zamíchat album",
|
||||
"total-download-size": "Celková velikost pro stažení",
|
||||
"play-next": "Přehrát Další",
|
||||
"delete-track": "Smazat Skladbu",
|
||||
"delete-track": "Odstranit stopu",
|
||||
"artists": "Umělci",
|
||||
"queue": "Fronta",
|
||||
"error-reporting-description": "Během používání této aplikace můžete narazit na chyby. Nahlášení těchto chyb pomáhá vytvářet bezpečnější a stabilnější prostředí aplikace.",
|
||||
@@ -59,7 +59,7 @@
|
||||
"color-scheme-dark": "Tmavý Režim",
|
||||
"more-info": "Více informací",
|
||||
"settings": "Nastavení",
|
||||
"playback-reporting-description": "S Playback Reporting, všechny vaše herní události jsou relé zpět do vašeho serveru. To vám umožní sledovat vaše nejvíce poslouchané písně, zejména s pluginy, jako je například Poslechy nebo LastFM.",
|
||||
"playback-reporting-description": "S hlášením o přehrávání jsou všechny vaše události přehrávání přenášeny zpět do Jellyfin. To vám umožní sledovat vaše nejposlouchanější skladby, zejména pomocí pluginů Jellyfin, jako je ListenBrainz.",
|
||||
"what-data-is-gathered": "Jaká data se shromažďují?",
|
||||
"all-albums": "Všechny Alba",
|
||||
"onboarding-intro": "Fintunes vám umožní streamovat svou hudební knihovnu odkudkoli, s plnou podporou pro zvuk na pozadí a odlévání.",
|
||||
@@ -78,7 +78,7 @@
|
||||
"disc": "Čeština",
|
||||
"lyrics": "Text skladby",
|
||||
"direct-play": "Přímé hraní",
|
||||
"transcoded": "Transcoded",
|
||||
"transcoded": "Překračovat",
|
||||
"khz": "kHz",
|
||||
"kbps": "kbps"
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"set-server": "Sæt Jellyfin Server",
|
||||
"why-use-tracking": "Hvorfor bruge sporing?",
|
||||
"what-data-is-gathered": "Hvilke data indsamles?",
|
||||
"where-is-data-stored": "Fintunes giver dig mulighed for at streame dit musikbibliotek overalt, med fuld støtte til baggrundslyd og støbning.",
|
||||
"where-is-data-stored": "Hvor gemmes data?",
|
||||
"enable-error-reporting": "Vil du aktivere fejlrapportering?",
|
||||
"playlists": "Spillelister",
|
||||
"playlist": "Playlist",
|
||||
@@ -61,7 +61,7 @@
|
||||
"what-data-is-gathered-description": "Vi logger fejlen, enhedstype, OS-version, app-version og enhed id. Ingen ansøgningstilstand sendes i enhver fejlrapportering. Enheden id er et unikt hash, der kan nulstilles i dine enhedsindstillinger, og vi kan ikke deducere personlige oplysninger fra denne identifikator.",
|
||||
"where-is-data-stored-description": "Sentry backend er selv-hosted på vores egen infrastruktur. Ingen, men vi har adgang til servere, databaser, ansøgning og dataloger, mindst af alle Sentry personale. infrastrukturen hostes i Den Europæiske Union.",
|
||||
"downloads": "Downloads",
|
||||
"download-track": "Annuller",
|
||||
"download-track": "Download Track",
|
||||
"download-album": "Download Album",
|
||||
"download-playlist": "Download Playlist",
|
||||
"no-downloads": "Du har endnu ikke downloadet nogen spor",
|
||||
@@ -78,7 +78,7 @@
|
||||
"disc": "Disk",
|
||||
"lyrics": "Sangtekster",
|
||||
"direct-play": "Direkte spil",
|
||||
"transcoded": "Transkode",
|
||||
"transcoded": "Transcode",
|
||||
"kbps": "kbps",
|
||||
"khz": "kHz"
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"play-next": "Sitemap",
|
||||
"play-album": "Login",
|
||||
"where-is-data-stored": "Hapus Semua Tracks",
|
||||
"where-is-data-stored": "Dimana data yang disimpan?",
|
||||
"playing-on": "Bermain di",
|
||||
"direct-play": "Bermain langsung",
|
||||
"transcoded": "Login",
|
||||
"transcoded": "Transcode",
|
||||
"khz": "login",
|
||||
"add-to-queue": "Tambahkan ke Queue",
|
||||
"clear-queue": "Login",
|
||||
@@ -23,15 +23,15 @@
|
||||
"why-use-tracking-description": "Tracing membantu mempercepat pengembangan untuk aplikasi ini dengan melaporkan kasus tepi aneh dan pengawasan. Ini membantu membuat aplikasi lebih stabil dan kuat, sehingga meningkatkan pengalaman aplikasi untuk semua orang.",
|
||||
"what-data-is-gathered": "Data apa yang dikumpulkan?",
|
||||
"what-data-is-gathered-description": "Kami mencatat kesalahan, jenis perangkat, versi OS, versi aplikasi dan id perangkat. Tidak ada state aplikasi yang dikirim dalam laporan kesalahan. Perangkat id adalah hash unik yang dapat diatur dalam pengaturan perangkat Anda, dan kami tidak dapat mengurangi informasi pribadi dari pengidentifikasi ini.",
|
||||
"where-is-data-stored-description": "Login",
|
||||
"where-is-data-stored-description": "The Sentry backend dihosting di infrastruktur kami sendiri. Tidak ada satu tetapi kami memiliki akses ke server, database, aplikasi, dan log data, setidaknya semua staf Sentry. Infrastruktur ini dihosting di Uni Eropa.",
|
||||
"enable-error-reporting": "Apakah Anda ingin mengaktifkan pelaporan kesalahan?",
|
||||
"enable-error-reporting-description": "Ini membantu meningkatkan pengalaman aplikasi dengan mengirimkan laporan kecelakaan dan kesalahan kepada kami.",
|
||||
"play-playlist": "Login",
|
||||
"shuffle-album": "Album di Shuffle",
|
||||
"shuffle-album": "Acak _Album",
|
||||
"download-track": "Unduh Track",
|
||||
"download-album": "Unduh Album",
|
||||
"download-playlist": "Unduh Playlist",
|
||||
"no-downloads": "Mode cahaya",
|
||||
"no-downloads": "Anda belum mengunduh trek",
|
||||
"delete-all-tracks": "Hapus Semua Tracks",
|
||||
"confirm-delete-all-tracks": "Apakah Anda yakin Anda ingin menghapus semua trek yang diunduh saat ini?",
|
||||
"delete-album": "Hapus Album",
|
||||
@@ -40,8 +40,8 @@
|
||||
"retry-failed-downloads": "Sitemap",
|
||||
"you-are-offline-message": "Anda saat ini offline. Anda hanya dapat bermain musik yang sebelumnya diunduh.",
|
||||
"local-playback": "Pemutaran lokal",
|
||||
"streaming": "Login",
|
||||
"total-duration": "Total durasi",
|
||||
"streaming": "Mengalir",
|
||||
"total-duration": "Durasi Total",
|
||||
"similar-albums": "Album serupa",
|
||||
"playback-reporting": "Login",
|
||||
"playback-reporting-description": "Dengan Pelaporan Playback, semua acara pemutaran Anda di relay kembali ke server Anda. Ini memungkinkan Anda untuk melacak lagu-lagu paling didengar Anda, terutama dengan plugin seperti ListenBrainz atau LastFM.",
|
||||
@@ -64,12 +64,12 @@
|
||||
"server-url": "URL server",
|
||||
"user-id": "ID Pengguna",
|
||||
"setting-cache": "Tembolok",
|
||||
"enable": "Aktifkan",
|
||||
"enable": "Enable",
|
||||
"disable": "Matikan",
|
||||
"more-info": "Lebih banyak info",
|
||||
"track": "Jejak",
|
||||
"more-info": "Info lainnya",
|
||||
"track": "Melacak",
|
||||
"playlists": "Daftar putar",
|
||||
"playlist": "Daftar Putar",
|
||||
"playlist": "Daftar putar",
|
||||
"shuffle-playlist": "Acak Daftar Putar",
|
||||
"downloads": "Unduhan",
|
||||
"delete-track": "Delete Track",
|
||||
@@ -78,7 +78,7 @@
|
||||
"color-scheme-dark": "Modus Gelap",
|
||||
"artists": "Artis",
|
||||
"privacy-policy": "Kebijakan Privasi",
|
||||
"sleep-timer": "Pengatur Waktu Tidur",
|
||||
"sleep-timer": "Timer tidur",
|
||||
"delete": "Hapus",
|
||||
"cancel": "Batal"
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"now-playing": "Ora in Riproduzione",
|
||||
"onboarding-welcome": "Benvenuto!",
|
||||
"onboarding-intro": "Fintunes ti consentirà di riprodurre in streaming la tua libreria musicale da dove vuoi, con pieno supporto per l'audio di sottofondo e la trasmissione.",
|
||||
"onboarding-cta": "Per iniziare, è necessario un server Jellyfin (o Emby). Fare clic sul pulsante qui sotto per inserire l'indirizzo del server e accedervi.",
|
||||
"onboarding-cta": "Per iniziare, hai bisogno di un server Jellyfin. Fai clic sul pulsante in basso per inserire l'indirizzo del tuo server Jellyfin e accedere.",
|
||||
"set-server": "Imposta il Server Jellyfin",
|
||||
"set-server-instruction": "Inserisci l'URL del tuo server Jellyfin. Assicurati di includere il protocollo e la porta",
|
||||
"library": "Libreria Jellyfin",
|
||||
@@ -68,7 +68,7 @@
|
||||
"total-duration": "Durata Totale",
|
||||
"similar-albums": "Album Simili",
|
||||
"playback-reporting": "Rapporto di Riproduzione",
|
||||
"playback-reporting-description": "Gioco diretto",
|
||||
"playback-reporting-description": "Con il Rapporto di Riproduzione, tutti i tuoi eventi di riproduzione vengono ritrasmessi a Jellyfin. Ciò ti consente di tenere traccia delle tue canzoni più ascoltate, in particolare con i plug-in Jellyfin come ListenBrainz.",
|
||||
"color-scheme-description": "Di default, Fintunes usa il tema colori del tuo sistema operativo. Puoi tuttavia scegliere di sovrascrivere questa impostazione per assicurarti che Fintunes sia sempre in modalità notte o luce.",
|
||||
"privacy-policy": "Politica sulla riservatezza",
|
||||
"sleep-timer": "Tempo di sonno",
|
||||
|
||||
@@ -56,17 +56,17 @@
|
||||
"shuffle-playlist": "Bland spilleliste",
|
||||
"downloads": "Nedlastinger",
|
||||
"download-track": "Last ned spor",
|
||||
"download-album": "Last ned album",
|
||||
"download-album": "Last ned album-omslag",
|
||||
"download-playlist": "Last ned spilleliste",
|
||||
"no-downloads": "Du har ikke lastet ned noen spor ennå",
|
||||
"delete-track": "Slett spor",
|
||||
"delete-all-tracks": "Slett alle spor",
|
||||
"delete-album": "Slett album",
|
||||
"delete-playlist": "Slett spilleliste",
|
||||
"total-download-size": "Total nedlastingsstørrelse",
|
||||
"total-download-size": "Størrelse",
|
||||
"retry-failed-downloads": "Prøv mislykkede nedlastinger på nytt",
|
||||
"you-are-offline-message": "Du er for øyeblikket frakoblet. Du kan bare spille av tidligere nedlastet musikk.",
|
||||
"playing-on": "Spiller videre",
|
||||
"playing-on": "Spiller",
|
||||
"local-playback": "Lokal avspilling",
|
||||
"streaming": "Strømming",
|
||||
"total-duration": "Total varighet",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"search": "Szukaj",
|
||||
"music": "Muzyka",
|
||||
"now-playing": "Teraz gra",
|
||||
"onboarding-cta": "Aby się rozpocząć, potrzebuje serwera Jellyfin (lub Emby). Click the button below to enter your server address and login to it.",
|
||||
"onboarding-cta": "Aby rozpocząć pracę, potrzebujesz serwera Jellyfin. Kliknij poniższy przycisk, aby wprowadzić adres serwera Jellyfin i zalogować się do niego.",
|
||||
"set-server-instruction": "Wprowadź adres URL serwera Jellyfin. Upewnij się, że podałeś protokół i port",
|
||||
"library": "Biblioteka Jellyfin",
|
||||
"server-url": "URL do serwera Jellyfin",
|
||||
@@ -65,7 +65,7 @@
|
||||
"total-duration": "Całkowity czas trwania",
|
||||
"similar-albums": "Podobne albumy",
|
||||
"playback-reporting": "Raportowanie odtwarzania",
|
||||
"playback-reporting-description": "Dyrektywa",
|
||||
"playback-reporting-description": "Dzięki raportowaniu odtwarzania wszystkie zdarzenia odtwarzania są przekazywane z powrotem do Jellyfin. Umożliwia to śledzenie najczęściej słuchanych utworów, szczególnie przy użyciu wtyczek Jellyfin, takich jak ListenBrainz.",
|
||||
"color-scheme": "Schemat kolorów",
|
||||
"color-scheme-description": "Domyślnie Fintunes będzie stosować się do schematu kolorów Twojego systemu operacyjnego. Możesz jednak pominąć tę opcję, aby mieć pewność, że Fintunes jest zawsze w trybie ciemnym lub jasnym.",
|
||||
"color-scheme-system": "System",
|
||||
@@ -78,7 +78,7 @@
|
||||
"disc": "Disc disc",
|
||||
"lyrics": "Tekst",
|
||||
"direct-play": "Dyrektywa",
|
||||
"transcoded": "Transkod",
|
||||
"transcoded": "Transcode",
|
||||
"khz": "kHz",
|
||||
"kbps": "kbps"
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"now-playing": "Tocando agora",
|
||||
"onboarding-welcome": "Boas-vindas!",
|
||||
"onboarding-intro": "O Fintunes permite a você fazer streaming de sua biblioteca de músicas de qualquer lugar, com suporte total para reprodução de áudio em segundo plano e transmissão de áudio.",
|
||||
"onboarding-cta": "Para começar, você precisa de um servidor Jellyfin (ou Emby). Clique no botão abaixo para inserir o endereço do servidor e iniciá-lo.",
|
||||
"onboarding-cta": "Para usar o Fintunes, você precisa de um servidor Jellyfin. Clique no botão abaixo para inserir o endereço do servidor Jellyfin e fazer login.",
|
||||
"set-server": "Configurar o servidor Jellyfin",
|
||||
"set-server-instruction": "Insira a URL do servidor Jellyfin. Certifique-se de incluir o protocolo e a porta",
|
||||
"settings": "Configurações",
|
||||
@@ -63,7 +63,7 @@
|
||||
"delete-album": "Excluir álbum",
|
||||
"delete-playlist": "Excluir playlist",
|
||||
"total-download-size": "Tamanho total dos downloads",
|
||||
"playback-reporting-description": "Jogo direto",
|
||||
"playback-reporting-description": "Com o relatório de reprodução, todos os seus eventos de reprodução são retransmitidos para o Jellyfin. Isso permite que você monitore suas músicas mais ouvidas, principalmente com plug-ins do Jellyfin como o ListenBrainz.",
|
||||
"color-scheme": "Tema",
|
||||
"color-scheme-description": "Por padrão, o Fintunes segue o esquema de cores do seu sistema operacional. No entanto, você pode mudar isso, para garantir que o Fintunes fique sempre no modo escuro ou no modo claro.",
|
||||
"color-scheme-system": "Sistema",
|
||||
@@ -78,7 +78,7 @@
|
||||
"disc": "Disco",
|
||||
"lyrics": "Letras",
|
||||
"direct-play": "Jogo direto",
|
||||
"transcoded": "Transcodificado",
|
||||
"transcoded": "Transcode",
|
||||
"khz": "kHz",
|
||||
"kbps": "kbps"
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"now-playing": "Сейчас играет",
|
||||
"onboarding-welcome": "Добро пожаловать!",
|
||||
"onboarding-intro": "Fintunes позволит вам транслировать вашу музыкальную библиотеку из любого места с полной поддержкой фонового воспроизведения и трансляций.",
|
||||
"onboarding-cta": "Для начала вам нужен сервер Jellyfin (или Emby). Нажмите на кнопку ниже, чтобы ввести свой адрес сервера и войти в него.",
|
||||
"onboarding-cta": "Для начала вам нужен сервер Jellyfin. Нажмите кнопку ниже, чтобы ввести адрес своего сервера Jellyfin и авторизоваться на нем.",
|
||||
"set-server": "Установить сервер Jellyfin",
|
||||
"set-server-instruction": "Пожалуйста, введите URL вашего сервера Jellyfin. Обязательно укажите протокол и порт",
|
||||
"settings": "Настройки",
|
||||
@@ -63,7 +63,7 @@
|
||||
"total-duration": "Общая продолжительность",
|
||||
"similar-albums": "Похожие альбомы",
|
||||
"playback-reporting": "Отчет о воспроизведении",
|
||||
"playback-reporting-description": "Прямая игра",
|
||||
"playback-reporting-description": "С помощью отчетов о воспроизведении все ваши события воспроизведения передаются обратно в Jellyfin. Это позволяет вам отслеживать ваши наиболее прослушиваемые песни, особенно с помощью плагинов Jellyfin, таких как ListenBrainz.",
|
||||
"color-scheme": "Цветовая тема",
|
||||
"color-scheme-description": "По умолчанию, Fintunes будет следовать цветовой теме вашей операционной системы. Однако вы можете переназначить это, чтобы Fintunes всегда находился в темной или светлой теме.",
|
||||
"color-scheme-system": "Система",
|
||||
@@ -78,7 +78,7 @@
|
||||
"disc": "Disc",
|
||||
"lyrics": "Текст песни",
|
||||
"direct-play": "Прямая игра",
|
||||
"transcoded": "Transcode",
|
||||
"transcoded": "Транскод",
|
||||
"khz": "кГц",
|
||||
"kbps": "кбит/с"
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user