Compare commits

...

160 Commits

Author SHA1 Message Date
Lei Nelissen
c430047106 chore: release v2.4.5 2025-05-13 22:56:06 +02:00
Lei Nelissen
0048c01f4c chore: fix ruby github action 2025-05-07 10:26:44 +02:00
Lei Nelissen
af3c807d5a feat: upgrade to react native 0.79
This was necessary because we had to use the newest iOS SDK, which had an issue with react-native, which was only fixed with the newest versions.

The move to new architecture has been hellish, but all appears to work. It requires more patches, and it shows which packages are currently maintained poorly. This goes especially for react-native-track-player. We're using a fork right now, but in order to make that work, we had to switch to pnpm.
2025-05-06 11:11:49 +02:00
Lei Nelissen
a2d10756a5 chore: prepare for v2.4.5 release 2025-05-05 14:09:51 +02:00
Lei Nelissen
6a0f28516b chore: remove duplicate language files for traditional chinese 2025-05-05 10:03:39 +02:00
Lei Nelissen
25d512899d Merge remote-tracking branch 'weblate/main' 2025-05-05 10:00:20 +02:00
Weblate Translation Memory
2a0b8b1092 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2025-03-24 06:47:44 +01:00
Weblate Translation Memory
76d3dcf64b Translated using Weblate (Czech)
Currently translated at 79.2% (65 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/cs/
2025-03-24 06:47:44 +01:00
Weblate Translation Memory
e26fc6c753 Translated using Weblate (Bulgarian)
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/bg/
2025-03-24 06:47:44 +01:00
Weblate Translation Memory
eb4c37705b Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2025-03-24 06:47:44 +01:00
Weblate Translation Memory
4ee31f6a94 Translated using Weblate (Slovenian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sl/
2025-03-24 06:47:44 +01:00
Weblate Translation Memory
28f24a1c4b Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2025-03-24 06:47:43 +01:00
Weblate Translation Memory
84e6997cdf Translated using Weblate (Catalan)
Currently translated at 64.6% (53 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ca/
2025-03-24 06:47:43 +01:00
Weblate Translation Memory
7f327d0e7b Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2025-03-24 06:47:43 +01:00
Weblate Translation Memory
b781f16853 Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2025-03-24 06:47:43 +01:00
Weblate Translation Memory
f44bf25c87 Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2025-03-24 06:47:43 +01:00
Weblate Translation Memory
79163bf46b Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2025-03-24 06:47:43 +01:00
Weblate Translation Memory
e2b8de204f Translated using Weblate (Norwegian Bokmål)
Currently translated at 65.8% (54 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/nb_NO/
2025-03-24 06:47:42 +01:00
Lei Nelissen
0b90f6f7f0 fix: search container height when keyboard is open 2025-03-05 22:48:35 +01:00
Lei Nelissen
c2d7d81de8 fix: also play tracks with index 0 2025-03-05 22:16:09 +01:00
Lei Nelissen
6685e83ebf chore: preliminatively release v2.4.5 for testing 2025-02-28 11:40:25 +01:00
Lei Nelissen
9229bae007 fix: play tracks from the right discs
fixes #275
2025-02-28 11:14:14 +01:00
Weblate Translation Memory
40ec71cccf Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2025-02-24 22:06:45 +01:00
LibreTranslate
b30822fd78 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2025-02-24 22:06:45 +01:00
Weblate Translation Memory
42f8a44d97 Translated using Weblate (Czech)
Currently translated at 79.2% (65 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/cs/
2025-02-24 22:06:45 +01:00
LibreTranslate
c87fef31d6 Translated using Weblate (Czech)
Currently translated at 79.2% (65 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/cs/
2025-02-24 22:06:45 +01:00
LibreTranslate
44d0818336 Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2025-02-24 22:06:44 +01:00
Weblate Translation Memory
37fbae9608 Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2025-02-24 22:06:44 +01:00
LibreTranslate
2dba648190 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2025-02-24 22:06:44 +01:00
Weblate Translation Memory
2730b09468 Translated using Weblate (Catalan)
Currently translated at 64.6% (53 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ca/
2025-02-24 22:06:44 +01:00
LibreTranslate
c109656a83 Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2025-02-24 22:06:44 +01:00
LibreTranslate
e9b4a9ed0b Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2025-02-24 22:06:44 +01:00
LibreTranslate
d1d1735afc Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2025-02-24 22:06:43 +01:00
LibreTranslate
353549ad67 Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2025-02-24 22:06:43 +01:00
Lei Nelissen
c8e693991b chore: release v2.4.4 2025-02-04 22:37:24 +01:00
Lei Nelissen
7a163f4bde fix: android not properly reading redux store file
fixes #265
2025-02-04 22:32:53 +01:00
Lei Nelissen
9d995d795b chore: release v2.4.3 for android 2025-01-29 15:54:29 +01:00
Lei Nelissen
b8a2c0d889 fix: crash in android player modal 2025-01-29 15:27:21 +01:00
Lei Nelissen
bf4b9bd446 chore: release v2.4.2 2025-01-29 12:29:35 +01:00
Lei Nelissen
55bfbee3b0 chore: update release notes 2025-01-29 12:13:55 +01:00
Lei Nelissen
614066c11e fix: missing fallback cover images 2025-01-29 11:25:00 +01:00
Lei Nelissen
b381537b62 fix: missing images causing download errors 2025-01-29 11:10:49 +01:00
Weblate Translation Memory
08924375e2 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2025-01-25 06:07:35 +01:00
mict213
2525c382f4 Translated using Weblate (Japanese)
Currently translated at 98.7% (81 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ja/
2025-01-24 05:50:26 +01:00
தமிழ்நேரம்
beb6d93361 Translated using Weblate (Tamil)
Currently translated at 100.0% (3 of 3 strings)

Translation: Fintunes/Play Store & F-Droid
Translate-URL: https://hosted.weblate.org/projects/fintunes/play-store-f-droid/ta/
2024-12-26 22:53:38 +01:00
தமிழ்நேரம்
60c98f110c Translated using Weblate (Tamil)
Currently translated at 100.0% (10 of 10 strings)

Translation: Fintunes/App Store
Translate-URL: https://hosted.weblate.org/projects/fintunes/app-store/ta/
2024-12-26 22:53:38 +01:00
தமிழ்நேரம்
20bdd8ef68 Translated using Weblate (Tamil)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 22:53:37 +01:00
தமிழ்நேரம்
1952d0d10b Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:43 +01:00
தமிழ்நேரம்
fe6eece956 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:42 +01:00
தமிழ்நேரம்
e644e759e2 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:42 +01:00
தமிழ்நேரம்
11e721bb48 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:42 +01:00
தமிழ்நேரம்
972066218e Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:41 +01:00
தமிழ்நேரம்
38c5ee637b Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:40 +01:00
தமிழ்நேரம்
d45058e24e Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:39 +01:00
தமிழ்நேரம்
589cb39c46 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:39 +01:00
தமிழ்நேரம்
a374c1ef3c Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:38 +01:00
தமிழ்நேரம்
847b07731d Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:38 +01:00
தமிழ்நேரம்
795a9316a7 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:37 +01:00
தமிழ்நேரம்
c40cd196aa Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:37 +01:00
தமிழ்நேரம்
f1ceef99ac Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:36 +01:00
தமிழ்நேரம்
34e464b840 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:34 +01:00
தமிழ்நேரம்
d7f72620e2 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:34 +01:00
தமிழ்நேரம்
1f0497c14c Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:33 +01:00
தமிழ்நேரம்
583fc6c617 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:33 +01:00
தமிழ்நேரம்
cf0e14edb5 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:32 +01:00
தமிழ்நேரம்
a3a158566d Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:31 +01:00
தமிழ்நேரம்
f92fbe028c Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:31 +01:00
தமிழ்நேரம்
0493469097 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:30 +01:00
Weblate Translation Memory
44e1e4a811 Translated using Weblate (Tamil)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ta/
2024-12-26 13:17:30 +01:00
தமிழ்நேரம்
db03fa2b3e feat: Added translation using Weblate (Tamil) 2024-12-26 06:37:24 +01:00
Weblate Translation Memory
604f4ede58 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-12-24 17:27:02 +01:00
LibreTranslate
5abb52194e Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-12-24 17:27:02 +01:00
LibreTranslate
71f6cc0366 Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2024-12-24 17:27:02 +01:00
LibreTranslate
73a61369b1 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2024-12-24 17:27:02 +01:00
Weblate Translation Memory
d8c013ff61 Translated using Weblate (Catalan)
Currently translated at 64.6% (53 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ca/
2024-12-24 17:27:02 +01:00
LibreTranslate
e44507a009 Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2024-12-24 17:27:02 +01:00
LibreTranslate
58699a7418 Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2024-12-24 17:27:01 +01:00
LibreTranslate
51fdbda8fc Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2024-12-24 17:27:01 +01:00
LibreTranslate
495e5be3f5 Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2024-12-24 17:27:01 +01:00
LibreTranslate
6127b5eac1 Translated using Weblate (Japanese)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ja/
2024-12-24 17:27:01 +01:00
L4p3K
1534ccf85f Translated using Weblate (Finnish)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fi/
2024-11-25 09:00:32 +01:00
LibreTranslate
0328f0ef44 Translated using Weblate (Finnish)
Currently translated at 1.2% (1 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fi/
2024-11-24 08:38:53 +01:00
Weblate Translation Memory
07911efa2c Translated using Weblate (Finnish)
Currently translated at 1.2% (1 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fi/
2024-11-24 08:38:37 +01:00
LibreTranslate
3d3c412d6e Translated using Weblate (Finnish)
Currently translated at 2.4% (2 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fi/
2024-11-24 08:37:57 +01:00
Weblate Translation Memory
87d8a33998 Translated using Weblate (Finnish)
Currently translated at 2.4% (2 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fi/
2024-11-24 08:37:57 +01:00
L4p3K
1e68b21c76 Translated using Weblate (Finnish)
Currently translated at 2.4% (2 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fi/
2024-11-24 08:37:56 +01:00
L4p3K
dcedb94723 feat: Added translation using Weblate (Finnish) 2024-11-24 08:20:54 +01:00
Meow Lu
58f46857e4 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (3 of 3 strings)

Translation: Fintunes/Play Store & F-Droid
Translate-URL: https://hosted.weblate.org/projects/fintunes/play-store-f-droid/zh_Hant/
2024-11-24 08:20:43 +01:00
Meow Lu
742d0abbcd Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (10 of 10 strings)

Translation: Fintunes/App Store
Translate-URL: https://hosted.weblate.org/projects/fintunes/app-store/zh_Hant/
2024-11-24 08:20:43 +01:00
Meow Lu
f1a08263c9 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/zh_Hant/
2024-11-24 08:20:42 +01:00
Weblate Translation Memory
43864a326d Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-11-24 08:20:42 +01:00
LibreTranslate
afbef79c85 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-11-24 08:20:42 +01:00
Weblate Translation Memory
06bb4c92b1 Translated using Weblate (Czech)
Currently translated at 79.2% (65 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/cs/
2024-11-24 08:20:42 +01:00
Weblate Translation Memory
c23e63bd4b Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2024-11-24 08:20:42 +01:00
LibreTranslate
f058e7fc86 Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2024-11-24 08:20:42 +01:00
LibreTranslate
2174363c0d Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2024-11-24 08:20:42 +01:00
Weblate Translation Memory
77acc138fa Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2024-11-24 08:20:42 +01:00
Weblate Translation Memory
f6f63bd558 Translated using Weblate (Catalan)
Currently translated at 64.6% (53 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ca/
2024-11-24 08:20:42 +01:00
LibreTranslate
ec4af27b06 Translated using Weblate (Catalan)
Currently translated at 64.6% (53 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ca/
2024-11-24 08:20:42 +01:00
LibreTranslate
cb837cd162 Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2024-11-24 08:20:41 +01:00
Weblate Translation Memory
8608134fd1 Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2024-11-24 08:20:41 +01:00
LibreTranslate
fe940add31 Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2024-11-24 08:20:41 +01:00
Weblate Translation Memory
41a4099837 Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2024-11-24 08:20:41 +01:00
LibreTranslate
0740cb8f43 Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2024-11-24 08:20:41 +01:00
Weblate Translation Memory
ca02ca498c Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2024-11-24 08:20:41 +01:00
LibreTranslate
f808aec6fa Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2024-11-24 08:20:41 +01:00
Weblate Translation Memory
2984b8396e Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2024-11-24 08:20:41 +01:00
LibreTranslate
62353bd6d6 Translated using Weblate (Japanese)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ja/
2024-11-24 08:20:41 +01:00
Weblate Translation Memory
9d0266c7e9 Translated using Weblate (Japanese)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ja/
2024-11-24 08:20:41 +01:00
Hosted Weblate
b36788e391 Merge remote-tracking branch 'origin/main' 2024-11-11 12:41:38 +01:00
LibreTranslate
498b5e8f89 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 1.2% (1 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/zh_Hant/
2024-11-08 11:21:49 +00:00
Weblate Translation Memory
7710eb7a35 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 1.2% (1 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/zh_Hant/
2024-11-08 11:21:49 +00:00
Weblate Translation Memory
3ade8f6ec5 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-11-08 11:21:48 +00:00
LibreTranslate
918aed929f Translated using Weblate (Czech)
Currently translated at 79.2% (65 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/cs/
2024-11-08 11:21:47 +00:00
Weblate Translation Memory
a6fb7ced3a Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2024-11-08 11:21:47 +00:00
LibreTranslate
106cf2ff2f Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2024-11-08 11:21:46 +00:00
Weblate Translation Memory
47cc22360a Translated using Weblate (Catalan)
Currently translated at 64.6% (53 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ca/
2024-11-08 11:21:45 +00:00
LibreTranslate
cc9f7bda73 Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2024-11-08 11:21:45 +00:00
LibreTranslate
583862dbe0 Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2024-11-08 11:21:44 +00:00
LibreTranslate
81986bf1d0 Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2024-11-08 11:21:44 +00:00
LibreTranslate
421c9c9ac8 Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2024-11-08 11:21:43 +00:00
LibreTranslate
38a817221f Translated using Weblate (Japanese)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ja/
2024-11-08 11:21:42 +00:00
Franco Castillo
09a0f9ff81 Translated using Weblate (Spanish)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/es/
2024-11-08 11:21:41 +00:00
lin49931104
59c4c9d1fb Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 1.2% (1 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/zh_Hant/
2024-11-08 11:21:41 +00:00
lin49931104
0d2424d5f4 feat: Added translation using Weblate (Chinese (Traditional Han script)) 2024-11-08 11:21:40 +00:00
Benediktisda
33387e5b08 Translated using Weblate (German)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/de/
2024-11-08 11:21:39 +00:00
Whoever4976
0f49626e39 Translated using Weblate (German)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/de/
2024-11-08 11:21:39 +00:00
Weblate Translation Memory
0a70744ed1 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-11-08 11:21:38 +00:00
LibreTranslate
a2fcce1d6f Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-11-08 11:21:37 +00:00
Weblate Translation Memory
a944ec5cd0 Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2024-11-08 11:21:36 +00:00
LibreTranslate
1f5dc1cef8 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2024-11-08 11:21:35 +00:00
LibreTranslate
70a15e68b8 Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2024-11-08 11:21:35 +00:00
LibreTranslate
376a87df19 Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2024-11-08 11:21:34 +00:00
LibreTranslate
7b0c0f32b0 Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2024-11-08 11:21:33 +00:00
LibreTranslate
02d3fea0fe Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2024-11-08 11:21:33 +00:00
LibreTranslate
98f9461fe0 Translated using Weblate (Japanese)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ja/
2024-11-08 11:21:32 +00:00
Weblate Translation Memory
a771912807 Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-11-08 11:21:32 +00:00
LibreTranslate
f7b3d7afde Translated using Weblate (Indonesian)
Currently translated at 0.0% (0 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/id/
2024-11-08 11:21:31 +00:00
AGUNG ADI KURNIAWAN
22810f2b68 feat: Added translation using Weblate (Indonesian) 2024-11-08 11:21:31 +00:00
Jean Yves
ec72ac330d Translated using Weblate (French)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fr/
2024-11-08 11:21:30 +00:00
LibreTranslate
af5ca2596c Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2024-11-08 11:21:29 +00:00
LibreTranslate
badd7a0d50 Translated using Weblate (Portuguese (Brazil))
Currently translated at 89.0% (73 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pt_BR/
2024-11-08 11:21:29 +00:00
LibreTranslate
5a7348da4a Translated using Weblate (Russian)
Currently translated at 86.5% (71 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ru/
2024-11-08 11:21:28 +00:00
Weblate Translation Memory
c4bdd838b8 Translated using Weblate (German)
Currently translated at 93.9% (77 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/de/
2024-11-08 11:21:27 +00:00
LibreTranslate
cff9b2fe90 Translated using Weblate (Swedish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/sv/
2024-11-08 11:21:27 +00:00
LibreTranslate
ff81bdcae0 Translated using Weblate (Italian)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/it/
2024-11-08 11:21:26 +00:00
LibreTranslate
80708dfeb4 Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2024-11-08 11:21:26 +00:00
Weblate Translation Memory
391acd7954 Translated using Weblate (Polish)
Currently translated at 90.2% (74 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/pl/
2024-11-08 11:21:25 +00:00
LibreTranslate
90eb7f21d2 Translated using Weblate (Japanese)
Currently translated at 87.8% (72 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/ja/
2024-11-08 11:21:25 +00:00
LibreTranslate
eaebc6b6b4 Translated using Weblate (French)
Currently translated at 93.9% (77 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fr/
2024-11-08 11:21:24 +00:00
Justin Vorrink
127785c702 Translated using Weblate (Dutch)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/nl/
2024-11-08 11:21:23 +00:00
Julius Mueller
73b0c4b9be Translated using Weblate (German)
Currently translated at 100.0% (3 of 3 strings)

Translation: Fintunes/Play Store & F-Droid
Translate-URL: https://hosted.weblate.org/projects/fintunes/play-store-f-droid/de/
2024-11-08 11:21:23 +00:00
Julius Mueller
d6efc73bd3 Translated using Weblate (German)
Currently translated at 93.9% (77 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/de/
2024-11-08 11:21:22 +00:00
Dan
260db24265 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/uk/
2024-11-08 11:21:21 +00:00
gallegonovato
d0787730c7 Translated using Weblate (Spanish)
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/es/
2024-11-08 11:21:21 +00:00
V M
a3ad27ea79 Translated using Weblate (French)
Currently translated at 100.0% (3 of 3 strings)

Translation: Fintunes/Play Store & F-Droid
Translate-URL: https://hosted.weblate.org/projects/fintunes/play-store-f-droid/fr/
2024-11-08 11:21:20 +00:00
V M
adeef39011 Translated using Weblate (French)
Currently translated at 100.0% (10 of 10 strings)

Translation: Fintunes/App Store
Translate-URL: https://hosted.weblate.org/projects/fintunes/app-store/fr/
2024-11-08 11:21:20 +00:00
V M
1e92ef8bba Translated using Weblate (French)
Currently translated at 93.9% (77 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/fr/
2024-11-08 11:21:19 +00:00
LibreTranslate
85c057910d Translated using Weblate (Danish)
Currently translated at 59.7% (49 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/da/
2024-11-08 11:21:19 +00:00
無情天
4702215788 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (82 of 82 strings)

Translation: Fintunes/App
Translate-URL: https://hosted.weblate.org/projects/fintunes/app/zh_Hans/
2024-11-08 11:21:18 +00:00
107 changed files with 13274 additions and 13503 deletions

View File

@@ -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
View File

@@ -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

3
.npmrc
View File

@@ -1 +1,2 @@
legacy-peer-deps=true
legacy-peer-deps=true
node-linker=hoisted

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
22

1
.ruby-version Normal file
View File

@@ -0,0 +1 @@
3.4.3

14
Gemfile
View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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 31
versionName "2.4.1"
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)

View File

@@ -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"

View File

@@ -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()

View File

@@ -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()

View File

@@ -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.

Binary file not shown.

View File

@@ -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
View File

@@ -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
View File

@@ -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 ##########################################################################

View File

@@ -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')

View File

@@ -1,4 +1,4 @@
# The Deliverfile allows you to store various App Store Connect metadata
# For more information, check out the docs
# https://docs.fastlane.tools/actions/deliver/
overwrite_screenshots(true)
overwrite_screenshots(false)

View File

@@ -37,7 +37,9 @@ platform :ios do
workspace: "ios/Fintunes.xcworkspace",
export_method: "app-store",
)
upload_to_app_store
upload_to_app_store(
precheck_include_in_app_purchases: false
)
end
lane :beta do

View 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!

View 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.

View File

@@ -0,0 +1 @@
Reproductor per a Jellyfin

View File

@@ -0,0 +1 @@
Fintunes

View 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!

View 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!

View 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!

View 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!

View 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 !

View 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!

View File

@@ -0,0 +1 @@
このバージョンでは、マルチディスクアルバムの最初のディスクしか再生できなかった問題を修正しました。また、素晴らしい言語コントリビューターのおかげで、Fintunesはタミル語でも利用可能になりました。さらに、12の言語が更新されました。Fintunesの新バージョンをお楽しみください。Discordサーバーへの参加もお待ちしています

View 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!

View 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!

View 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!

View 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!

View File

@@ -0,0 +1 @@
Эта версия исправляет проблему, при которой Fintunes мог воспроизводить только первый диск в альбоме с несколькими дисками. Кроме того, благодаря нашим замечательным языковым контрибьюторам, Fintunes теперь доступен на тамильском языке. Также обновлены 12 языков. Наслаждайтесь новой версией Fintunes и присоединяйтесь к нашему серверу Discord!

View 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!

View File

@@ -0,0 +1 @@
Ця версія виправляє проблему, коли Fintunes міг відтворювати лише перший диск у багатодисковому альбомі. Крім того, завдяки нашим чудовим мовним учасникам, Fintunes тепер доступний тамільською мовою. Також оновлено 12 мов. Насолоджуйтесь цією новою версією Fintunes та приєднуйтесь до нашого сервера Discord!

View File

@@ -0,0 +1 @@
此版本修复了Fintunes只能播放多碟专辑中第一张碟片的问题。此外感谢我们出色的语言贡献者Fintunes现在支持泰米尔语。另外还有12种语言已更新。享受这个新版本的Fintunes并考虑加入我们的Discord服务器

View File

@@ -0,0 +1 @@
此版本修復了Fintunes只能播放多碟專輯中第一張碟片的問題。此外感謝我們出色的語言貢獻者Fintunes現在支援泰米爾語。另外還有12種語言已更新。享受這個新版本的Fintunes並考慮加入我們的Discord伺服器

View File

@@ -1 +1 @@
Aquesta és una correcció ràpida que permet tornar a accedir al vostre servidor Jellyfin mitjançant HTTP. Si us plau, utilitzeu HTTPS si el teniu disponible.
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!

View File

@@ -1 +1 @@
Toto je oprava hotfix, která umožňuje znovu přistupovat k serveru Jellyfin přes HTTP. Použijte prosím HTTPS, pokud je to pro vás dostupné.
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!

View File

@@ -1 +1 @@
Hierbei handelt es sich um einen Hotfix, der es wieder möglich macht, über HTTP auf Ihren Jellyfin-Server zuzugreifen. Bitte verwenden Sie HTTPS, sofern Ihnen dies zur Verfügung steht.
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!

View File

@@ -1 +1 @@
This is a hotfix that makes it possible to access your Jellyfin server over HTTP again. Do please use HTTPS if that's available to you.
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!

View File

@@ -1 +1 @@
Esta es una revisión que permite acceder nuevamente a su servidor Jellyfin a través de HTTP. Utilice HTTPS si está disponible para usted.
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!

View File

@@ -1 +1 @@
Il s'agit d'un correctif qui permet d'accéder à nouveau à votre serveur Jellyfin via HTTP. Veuillez utiliser HTTPS si vous en avez la possibilité.
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 !

View File

@@ -1 +1 @@
Questo è un hotfix che rende possibile accedere nuovamente al tuo server Jellyfin tramite HTTP. Ti preghiamo di utilizzare HTTPS se è disponibile per te.
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!

View File

@@ -1 +1 @@
れは、HTTP 経由で Jellyfin サーバーに再びアクセスできるようにするホットフィックスです。 HTTPS が利用可能な場合は、HTTPS を使用してください。
のバージョンでは、マルチディスクアルバムの最初のディスクしか再生できなかった問題を修正しました。また、素晴らしい言語コントリビューターのおかげで、Fintunesはタミル語でも利用可能になりました。さらに、12の言語が更新されました。Fintunesの新バージョンをお楽しみください。Discordサーバーへの参加もお待ちしています

View File

@@ -1 +1 @@
Dit is een hotfix die het mogelijk maakt om weer via HTTP toegang te krijgen tot je Jellyfin-server. Gebruik alsjeblieft HTTPS als dat voor jou beschikbaar is.
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!

View File

@@ -1 +1 @@
Dette er en hurtigreparasjon som gjør det mulig å få tilgang til Jellyfin-serveren din over HTTP igjen. Vennligst bruk HTTPS hvis det er tilgjengelig for deg.
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!

View File

@@ -1 +1 @@
Jest to poprawka umożliwiająca ponowne uzyskanie dostępu do serwera Jellyfin za pośrednictwem protokołu HTTP. Jeśli masz taką możliwość, użyj protokołu HTTPS.
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!

View File

@@ -1 +1 @@
Este é um hotfix que torna possível acessar novamente o servidor Jellyfin por HTTP. Use HTTPS se estiver disponível para você.
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!

View File

@@ -1 +1 @@
Это исправление, которое позволяет снова получить доступ к вашему серверу Jellyfin через HTTP. Пожалуйста, используйте HTTPS, если он вам доступен.
Эта версия исправляет проблему, при которой Fintunes мог воспроизводить только первый диск в альбоме с несколькими дисками. Кроме того, благодаря нашим замечательным языковым контрибьюторам, Fintunes теперь доступен на тамильском языке. Также обновлены 12 языков. Наслаждайтесь новой версией Fintunes и присоединяйтесь к нашему серверу Discord!

View File

@@ -1 +1 @@
Detta är en snabbkorrigering som gör det möjligt att komma åt din Jellyfin-server över HTTP igen. Använd HTTPS om det är tillgängligt för dig.
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!

View File

@@ -1 +1 @@
Це виправлення, яке знову робить можливим доступ до вашого сервера Jellyfin через HTTP. Використовуйте HTTPS, якщо він доступний.
Ця версія виправляє проблему, коли Fintunes міг відтворювати лише перший диск у багатодисковому альбомі. Крім того, завдяки нашим чудовим мовним учасникам, Fintunes тепер доступний тамільською мовою. Також оновлено 12 мов. Насолоджуйтесь цією новою версією Fintunes та приєднуйтесь до нашого сервера Discord!

View File

@@ -1 +1 @@
这是一个修补程序,可以再次通过 HTTP 访问 Jellyfin 服务器。 如果您可以使用 HTTPS请务必使用它。
此版本修复了Fintunes只能播放多碟专辑中第一张碟片的问题。此外感谢我们出色的语言贡献者Fintunes现在支援泰米尔语。另外还有12种语言已更新。享受这个新版本的Fintunes并考虑加入我们的Discord伺服器

View File

@@ -1 +1 @@
這是一個緊急修復,讓您可以再次透過 HTTP 訪問您的 Jellyfin 伺服器。如果可能,請優先使用 HTTPS。
此版本修復了Fintunes只能播放多碟專輯中第一張碟片的問題。此外感謝我們出色的語言貢獻者Fintunes現在支援泰米爾語。另外還有12種語言已更新。享受這個新版本的Fintunes並考慮加入我們的Discord伺服器

View File

@@ -1 +1 @@
export NODE_BINARY=/opt/homebrew/bin/node
export NODE_BINARY=$(command -v node)

48
ios/AppDelegate.swift Normal file
View File

@@ -0,0 +1,48 @@
import UIKit
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
}
}
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
}
}

View File

@@ -1,8 +0,0 @@
//
// File.swift
// JellyfinAudioPlayer
//
// Created by Lei Nelissen on 02/11/2020.
//
import Foundation

View File

@@ -1,4 +0,0 @@
//
// Use this file to import your target's public headers that you would like to expose to Swift.
//

View File

@@ -8,26 +8,16 @@
/* 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 */; };
AB7AA5F92DC8E5D600578CAC /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB7AA5F82DC8E5D600578CAC /* 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 +28,25 @@
/* 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>"; };
AB7AA5F82DC8E5D600578CAC /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = 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 +68,10 @@
13B07FAE1A68108700A75B9A /* Fintunes */ = {
isa = PBXGroup;
children = (
13B07FAF1A68108700A75B9A /* AppDelegate.h */,
13B07FB01A68108700A75B9A /* AppDelegate.m */,
AB7AA5F82DC8E5D600578CAC /* AppDelegate.swift */,
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 +93,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 +124,6 @@
isa = PBXGroup;
children = (
13B07F961A680F5B00A75B9A /* Fintunes.app */,
00E356EE1AD99517003FC87E /* FintunesTests.xctest */,
AB4A8DFB2857C8DA005A1ED0 /* FintunesUITests.xctest */,
);
name = Products;
@@ -181,27 +149,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 +197,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 +224,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 +285,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 +307,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 +314,25 @@
);
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}/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}/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 +342,11 @@
/* 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 */,
AB7AA5F92DC8E5D600578CAC /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -486,11 +362,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 +382,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 +390,7 @@
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 102;
CURRENT_PROJECT_VERSION = 115;
DEVELOPMENT_TEAM = HD2D35G9Y4;
ENABLE_BITCODE = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -600,7 +412,6 @@
PRODUCT_BUNDLE_IDENTIFIER = nl.moeilijkedingen.jellyfinaudioplayer;
PRODUCT_NAME = Fintunes;
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_OBJC_BRIDGING_HEADER = "Fintunes-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -616,7 +427,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 102;
CURRENT_PROJECT_VERSION = 115;
DEVELOPMENT_TEAM = HD2D35G9Y4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = HD2D35G9Y4;
INFOPLIST_FILE = Fintunes/Info.plist;
@@ -636,7 +447,6 @@
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_VERSION = 5.0;
VERSIONING_SYSTEM = "apple-generic";
};
@@ -711,6 +521,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 +607,7 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 102;
CURRENT_PROJECT_VERSION = 115;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = HD2D35G9Y4;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -831,7 +642,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 102;
CURRENT_PROJECT_VERSION = 115;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = HD2D35G9Y4;
GCC_C_LANGUAGE_STANDARD = gnu11;
@@ -854,15 +665,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 = (

View File

@@ -1,6 +0,0 @@
#import <RCTAppDelegate.h>
#import <UIKit/UIKit.h>
@interface AppDelegate : RCTAppDelegate
@end

View File

@@ -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

View File

@@ -0,0 +1,48 @@
import UIKit
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
}
}
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
}
}

View File

@@ -17,11 +17,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>2.4.0</string>
<string>2.4.5</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>102</string>
<string>115</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>LSSupportsOpeningDocumentsInPlace</key>

View File

@@ -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/>

View File

@@ -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]));
}
}

View File

@@ -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(

File diff suppressed because it is too large Load Diff

View File

@@ -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);

11470
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "fintunes",
"version": "2.4.1",
"version": "2.4.5",
"main": "src/index.js",
"private": true,
"scripts": {
@@ -12,70 +12,70 @@
"postinstall": "patch-package"
},
"dependencies": {
"@react-native-async-storage/async-storage": "^1.21.0",
"@react-native-async-storage/async-storage": "^2.1.2",
"@react-native-community/blur": "^4.4.1",
"@react-native-community/datetimepicker": "^7.6.2",
"@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/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-db": "^1.53.0",
"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-collapsible": "^1.6.2",
"react-native-dotenv": "^3.4.11",
"react-native-fast-image": "^8.6.3",
"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/mime-db": "^1.43.5",
"@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",

View File

@@ -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

View File

@@ -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"

View 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?) {

View 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);
}

File diff suppressed because one or more lines are too long

10365
pnpm-lock.yaml generated Normal file

File diff suppressed because it is too large Load Diff

6
pnpm-workspace.yaml Normal file
View 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

View File

@@ -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,7 @@ import {
} from '@react-navigation/native';
import { ColorSchemeProvider, themes, useUserOrSystemScheme } from './Colors';
import DownloadManager from './DownloadManager';
import AppLoading from './AppLoading';
const LightTheme = {
...DefaultTheme,
@@ -44,14 +45,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 +64,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}>

View 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>
);
}

View File

@@ -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>
);
}

View File

@@ -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`

View File

@@ -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;

View File

@@ -77,5 +77,6 @@
"delete": "Изтрий",
"disc": "диск",
"lyrics": "Текст на песен",
"kbps": "kbps"
"kbps": "kbps",
"transcoded": "Транскод"
}

View File

@@ -79,6 +79,6 @@
"lyrics": "Lletra",
"khz": "k Hz",
"direct-play": "Joc directe",
"transcoded": "Transcodificat",
"transcoded": "Transcode",
"kbps": "kbps"
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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",

View File

@@ -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",

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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": "кбит/с"
}

View File

@@ -78,5 +78,5 @@
"disc": "Disk",
"lyrics": "Besedilo",
"khz": "kHz",
"transcoded": "prekodiraj [▲]"
"transcoded": "Transcode"
}

View File

@@ -17,7 +17,7 @@
"now-playing": "Nu spelas",
"onboarding-welcome": "Välkommen!",
"onboarding-intro": "Fintunes låter dig strömma ditt musikbibliotek var som helst, med fullt stöd för bakgrundsljud och casting.",
"onboarding-cta": "För att komma igång behöver du en Jellyfin-server. Klicka på knappen nedan för att ange din serveradress och logga in på den.",
"onboarding-cta": "För att komma igång behöver du en Jellyfin-server. Klicka på knappen nedan för att ange din Jellyfin-serveradress och logga in på den.",
"set-server": "Ställ in Jellyfin-server",
"set-server-instruction": "Ange din Jellyfin-server-URL. Se till att inkludera protokoll och port",
"settings": "inställningar",
@@ -65,7 +65,7 @@
"total-duration": "Total varaktighet",
"similar-albums": "Liknande album",
"playback-reporting": "Uppspelningsrapportering",
"playback-reporting-description": "Direkt spel",
"playback-reporting-description": "Med uppspelningsrapportering skickas alla dina uppspelningshändelser tillbaka till Jellyfin. Detta låter dig spåra dina mest lyssnade låtar, särskilt med Jellyfin-plugins som ListenBrainz.",
"color-scheme": "Färgschema",
"color-scheme-description": "Som standard följer Fintunes ditt operativsystems färgschema. Du kan dock välja att åsidosätta detta för att se till att Fintunes alltid är i mörkt läge eller ljust läge.",
"color-scheme-system": "System",
@@ -78,7 +78,7 @@
"disc": "Disc",
"lyrics": "Låttext",
"direct-play": "Direkt spel",
"transcoded": "Transkoded",
"transcoded": "Transkodning",
"khz": "kHz",
"kbps": "kb/s"
}

View File

@@ -11,11 +11,11 @@ import Button from '@/components/Button';
import DownloadIcon from '@/components/DownloadIcon';
import styled from 'styled-components/native';
import { Text } from '@/components/Typography';
import FastImage from 'react-native-fast-image';
import { useGetImage } from '@/utility/JellyfinApi/lib';
import { ShadowWrapper } from '@/components/Shadow';
import { SafeFlatList } from '@/components/SafeNavigatorView';
import { t } from '@/localisation';
import BaseAlbumImage from '../Music/stacks/components/AlbumImage';
const DownloadedTrack = styled.View`
flex: 1 0 auto;
@@ -25,7 +25,7 @@ const DownloadedTrack = styled.View`
margin: 0 20px;
`;
const AlbumImage = styled(FastImage)`
const AlbumImage = styled(BaseAlbumImage)`
height: 32px;
width: 32px;
border-radius: 4px;

View File

@@ -1,6 +1,5 @@
import React, { useCallback, useContext, useEffect, useRef } from 'react';
import { ActivityIndicator, Animated, Dimensions, Platform, Pressable, View } from 'react-native';
import FastImage from 'react-native-fast-image';
import styled, { css } from 'styled-components/native';
import PlayIcon from '@/assets/icons/play.svg';
@@ -18,6 +17,7 @@ import { NavigationProp } from '@/screens/types';
import { ShadowWrapper } from '@/components/Shadow';
import { BottomTabBarHeightContext } from '@react-navigation/bottom-tabs';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import AlbumImage from '../../stacks/components/AlbumImage';
export const NOW_PLAYING_POPOVER_MARGIN = 6;
export const NOW_PLAYING_POPOVER_WIDTH = Dimensions.get('screen').width - 2 * NOW_PLAYING_POPOVER_MARGIN;
@@ -62,7 +62,7 @@ const ShadowOverlay = styled.View`
bottom: 0;
`;
const Cover = styled(FastImage)`
const Cover = styled(AlbumImage)`
height: 32px;
width: 32px;
border-radius: 4px;

View File

@@ -148,12 +148,15 @@ const TrackListView: React.FC<TrackListViewProps> = ({
// Setup callbacks
const playEntity = useCallback(() => { playTracks(trackIds); }, [playTracks, trackIds]);
const shuffleEntity = useCallback(() => { playTracks(trackIds, { shuffle: true }); }, [playTracks, trackIds]);
const selectTrack = useCallback(async (index: number) => {
await playTracks(trackIds, { playIndex: index });
const selectTrack = useCallback(async (trackId: string) => {
const index = trackIds.findIndex((id) => id === trackId);
if (index >= 0) {
await playTracks(trackIds, { playIndex: index });
}
}, [playTracks, trackIds]);
const longPressTrack = useCallback((index: number) => {
navigation.navigate('TrackPopupMenu', { trackId: trackIds[index].toString() });
}, [navigation, trackIds]);
const longPressTrack = useCallback((trackId: string) => {
navigation.navigate('TrackPopupMenu', { trackId });
}, [navigation]);
const downloadAllTracks = useCallback(() => {
trackIds.forEach((trackId) => dispatch(queueTrackForDownload(trackId)));
}, [dispatch, trackIds]);
@@ -190,7 +193,7 @@ const TrackListView: React.FC<TrackListViewProps> = ({
{groupTrackIds.map((trackId, i) =>
<TouchableHandler
key={trackId}
id={i}
id={trackId}
onPress={selectTrack}
onLongPress={longPressTrack}
testID={`play-track-${trackId}`}

Some files were not shown because too many files have changed in this diff Show More