Compare commits

...

736 Commits
v4.2 ... main

Author SHA1 Message Date
xmflsct 7bcef6fe1d
Fix patch 2024-02-07 00:26:41 +01:00
xmflsct 6f27785a12
Try fixing navigation 2024-02-07 00:22:22 +01:00
xmflsct 5cec5e8084
Clean up 2024-02-06 22:09:36 +01:00
xmflsct 7b63150e73
Squashed commit of the following:
commit 37d93d723606fc3b43ec3e0379e0a87b27afac72
Author: xmflsct <me@xmflsct.com>
Date:   Mon Feb 5 01:14:40 2024 +0100

    Match Android

commit 3a192afc7704fcab7ddd14c5496ad68eac12405c
Author: xmflsct <me@xmflsct.com>
Date:   Mon Feb 5 00:33:38 2024 +0100

    Updates

commit 84617bdadf7fd0ba6474e610a174decc92015b0b
Author: xmflsct <me@xmflsct.com>
Date:   Mon Feb 5 00:24:56 2024 +0100

    Updates

commit 9919e8890e02e7d583046e22e3dbe34af02e3f28
Author: xmflsct <me@xmflsct.com>
Date:   Mon Feb 5 00:19:19 2024 +0100

    Updates

commit fca65a03665f4162696dc50c16098bc28f336f31
Author: xmflsct <me@xmflsct.com>
Date:   Mon Feb 5 00:13:20 2024 +0100

    Updates

commit d208d67a052464939197a15877f67302f262c222
Author: xmflsct <me@xmflsct.com>
Date:   Mon Feb 5 00:09:05 2024 +0100

    Updates

commit 5527ebca78d863515848521571657f1eac628de4
Author: xmflsct <me@xmflsct.com>
Date:   Mon Feb 5 00:03:19 2024 +0100

    Bump core
2024-02-05 01:14:54 +01:00
xmflsct 997a267b89
Update Gemfile.lock 2024-02-04 12:51:44 +01:00
xmflsct 41c09d4ae9
Bump building chain 2024-02-04 12:39:10 +01:00
xmflsct a70dce9780
New Crowdin updates (#762)
* New translations tabs.json (Swedish)

* New translations instance.json (Portuguese, Brazilian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (Swedish)

* New translations common.json (Russian)

* New translations instance.json (Russian)

* New translations parse.json (Russian)

* New translations relationship.json (Russian)

* New translations timeline.json (Russian)

* New translations timeline.json (Russian)
2023-11-12 17:57:10 +01:00
xmflsct d16178abc9
Bump patch versions 2023-11-12 17:44:52 +01:00
xmflsct fa8d7ed47e
New Crowdin updates (#760)
* New translations tabs.json (Portuguese, Brazilian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (Portuguese, Brazilian)
2023-08-28 00:40:30 +02:00
xmflsct 9f8064ded4
Fix Android crashes using PlatformColor 2023-08-28 00:27:10 +02:00
vitalyster c3aba848a5
Use system separator color in Separator component (#757)
* border color is too distracting and does not look "native". Now we using system separator color to provide "native" experience :-)
2023-08-24 22:21:31 +02:00
xmflsct f64135a6df
Fix #756 2023-08-22 00:03:06 +02:00
xmflsct 1de8a40cda
New Crowdin updates (#752)
* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Dutch)

* New translations tabs.json (Dutch)

* New translations common.json (Portuguese, Brazilian)

* New translations parse.json (Portuguese, Brazilian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Swedish)

* New translations tabs.json (Swedish)

* New translations common.json (Swedish)

* New translations contextMenu.json (Swedish)
2023-08-17 10:07:44 +02:00
xmflsct c5c616e3dc
Fix #754 2023-08-16 23:47:00 +02:00
xmflsct 34043fc1b3
Bumps 2023-07-30 21:45:08 +02:00
xmflsct 5b031b40c0
New Crowdin updates (#751)
* New translations tabs.json (German)

* New translations tabs.json (Chinese Traditional)
2023-07-16 23:10:14 +02:00
xmflsct 7b6c9d5130
Update index.tsx 2023-07-16 23:10:05 +02:00
xmflsct da623dac56
New Crowdin updates (#748)
* New translations tabs.json (Belarusian)

* New translations tabs.json (French)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Czech)

* New translations tabs.json (German)

* New translations tabs.json (Greek)

* New translations tabs.json (Basque)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Dutch)

* New translations tabs.json (Norwegian)

* New translations tabs.json (Polish)

* New translations tabs.json (Russian)

* New translations tabs.json (Swedish)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Basque)

* New translations tabs.json (Norwegian)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (German)

* New translations tabs.json (Dutch)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)
2023-07-14 23:08:10 +02:00
xmflsct 0a99669af6
Update index.tsx 2023-07-14 22:56:08 +02:00
xmflsct cdd80250d1
Fix muting 2023-07-14 21:48:12 +02:00
xmflsct 09bc6c30af
Added a button to fetch latest toot on load 2023-07-13 23:30:26 +02:00
xmflsct 8b3ca21ac9
Fix #749 2023-07-13 22:26:06 +02:00
xmflsct 6e5b06f3a7
Fix #734 2023-07-13 21:55:26 +02:00
xmflsct f7729f33db
Fix Android menu indication 2023-07-12 23:36:44 +02:00
xmflsct f2b275d815
Bumps 2023-07-12 22:34:50 +02:00
xmflsct 0e64350df8
New Crowdin updates (#745)
* New translations tabs.json (Belarusian)

* New translations common.json (Italian)

* New translations instance.json (Italian)

* New translations timeline.json (Italian)
2023-07-11 23:31:30 +02:00
xmflsct 760c8b4c68
Bump packages 2023-07-11 23:21:41 +02:00
xmflsct f1ba7ce377
Test iOS
Known Android build failure
2023-06-22 00:07:17 +02:00
xmflsct 3154540bba
Bump packages 2023-06-21 23:05:40 +02:00
xmflsct 93b3ac1618
Bump JS packages 2023-06-09 23:56:15 +02:00
xmflsct 4b2b701cea
Fix #741 2023-06-09 23:50:36 +02:00
dependabot[bot] 33709f8fa6
Bump fast-xml-parser from 4.2.2 to 4.2.4 (#742)
Bumps [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) from 4.2.2 to 4.2.4.
- [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases)
- [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/commits)

---
updated-dependencies:
- dependency-name: fast-xml-parser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-09 23:18:15 +02:00
xmflsct 1375bc95cd
Fix version check 2023-05-20 22:47:58 +02:00
xmflsct 23a8e5cd19
Bump packages 2023-05-20 22:47:32 +02:00
xmflsct c5eb1591f8
New Crowdin updates (#740)
* New translations relationship.json (Vietnamese)

* New translations contextMenu.json (Vietnamese)
2023-05-17 13:51:22 +02:00
xmflsct 96c219e3f9
Bump zeego 2023-05-17 13:49:16 +02:00
xmflsct a940ed4cf3
Fix visuals and haptics 2023-05-17 13:39:55 +02:00
xmflsct c1e9c738c5
Bump packages 2023-05-16 22:31:41 +02:00
xmflsct 4f9e9e7a14
Show avatar in actioned statement 2023-05-16 22:12:25 +02:00
xmflsct df7eb26057
Update HeaderAndroid.tsx 2023-05-16 22:00:26 +02:00
xmflsct a8243adf51
More permissive logging in 2023-05-16 21:51:03 +02:00
xmflsct 8aeeb1d806
New Crowdin updates (#739)
* New translations timeline.json (Catalan)

* New translations timeline.json (Spanish)

* New translations compose.json (Belarusian)
2023-05-15 22:49:35 +02:00
xmflsct 05958b66f6
Fix #737 2023-05-15 22:30:18 +02:00
xmflsct 141d5916fd
Fix #736 2023-05-15 21:45:00 +02:00
xmflsct ff14f086a7
Try to bump build system 2023-05-15 21:27:23 +02:00
xmflsct 46a30585a7
Bump packages 2023-05-15 21:26:32 +02:00
xmflsct 48e51530b1 Persistant 🪜 setting 2023-04-19 22:34:14 +02:00
xmflsct 63c4ffbabf Bump packages 2023-04-19 22:06:46 +02:00
xmflsct 40274ef28c Add new neodb cards 2023-04-18 22:53:50 +02:00
xmflsct 21200a7758 Delay prepending to make sure it works 2023-04-18 22:29:05 +02:00
xmflsct 5b670f5d13 Fixed why toot page is not interactable 2023-04-18 22:23:39 +02:00
xmflsct 36202028f9
New Crowdin updates (#725)
* New translations timeline.json (Ukrainian)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations common.json (Vietnamese)

* New translations contextMenu.json (Vietnamese)
2023-04-18 00:09:15 +02:00
xmflsct cde5a14cab Bump deps 2023-04-18 00:08:56 +02:00
xmflsct a4152a5bb6 Fix #733 2023-04-17 23:57:23 +02:00
xmflsct 91596a46c4 Fix #732 2023-04-17 23:44:56 +02:00
xmflsct d3f75cfc22 Fix #729 2023-04-17 23:33:40 +02:00
xmflsct 93b53ec158 Add Greek translation 2023-04-17 23:21:00 +02:00
xmflsct 016ea33e26 A bit more tolerant of local search 2023-04-17 23:12:29 +02:00
xmflsct 824730bc40 Reset after failed auto refetch 2023-04-17 23:00:10 +02:00
xmflsct 7a5464e38a Navigate follow push to account page 2023-04-17 22:42:56 +02:00
xmflsct 768a27d37c Also update counts even when no new remote content 2023-04-17 22:32:09 +02:00
xmflsct 6ed54c3f16 Fix spacing between paragraphs 2023-04-17 22:26:59 +02:00
xmflsct 79fc0c814c Added another outdated instance 2023-04-13 22:47:30 +02:00
xmflsct e74a73fbd7 Update counts with remote data 2023-04-12 23:48:39 +02:00
xmflsct 20152790f5 Fix default theming before selecting 2023-04-10 19:15:37 +02:00
xmflsct 0fc68e56d3 Bump up packages 2023-04-10 19:15:26 +02:00
xmflsct 6c1eba0de7
New translations tabs.json (Belarusian) (#724) 2023-03-19 23:36:05 +01:00
xmflsct a1361570a5 Remove context view 2023-03-19 23:35:20 +01:00
xmflsct b308932e74 Fix account page toot not update 2023-03-19 23:26:30 +01:00
xmflsct 521d8f75fc Add simple image viewer pan decay 2023-03-19 23:18:43 +01:00
xmflsct 86e502afdd Refine neodb cards
Added card for games
2023-03-19 22:15:51 +01:00
xmflsct aa469c1174 Block cards that without properly fetched data 2023-03-19 00:15:10 +01:00
xmflsct 0d8fdf5740 Fix #723 2023-03-18 23:18:09 +01:00
xmflsct 0ca2047f89 Fix #717 2023-03-18 23:03:25 +01:00
xmflsct 3238f44867 Fix crash 2023-03-14 23:48:35 +01:00
xmflsct c698ba84e6
New Crowdin updates (#721)
* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Basque)

* New translations tabs.json (Basque)

* New translations contextMenu.json (Basque)

* New translations accountSelection.json (Basque)
2023-03-14 21:54:22 +01:00
xmflsct 288a5f12da Added Polish language 2023-03-14 21:49:14 +01:00
xmflsct 791edcc342 Added Basque language 2023-03-14 21:44:13 +01:00
xmflsct bfe37db9b6 Refine remote logic
When loading remote ancestors, the position might not be kept
2023-03-14 21:28:41 +01:00
xmflsct b5ddebe123 Fix some zoomed image not shown correctly 2023-03-14 21:14:09 +01:00
xmflsct 4977e91b66 Fix #722 2023-03-14 20:56:16 +01:00
xmflsct 5b640879f0 Bump packages 2023-03-14 20:37:41 +01:00
xmflsct a0b3b38d8d Add new types #722 2023-03-14 10:50:22 +01:00
xmflsct f78693eee8 Locale lower case match 2023-03-14 01:39:54 +01:00
xmflsct 4e620f8987 Test #722 2023-03-14 00:40:28 +01:00
xmflsct f8a3b56b11 Remove direct dependency of url-parse 2023-03-13 23:16:41 +01:00
xmflsct 63900c4338 Fix #719 2023-03-12 19:45:09 +01:00
xmflsct 1df73b070a Fix #716 2023-03-12 18:49:06 +01:00
xmflsct 173d4248d8 Fix #717 2023-03-12 18:09:33 +01:00
xmflsct 0db7f0c40a Update based on Expo's template 2023-03-10 21:19:45 +01:00
xmflsct 921d6e1f4b
New translations tabs.json (Belarusian) (#715) 2023-03-10 14:04:24 +01:00
xmflsct 43d2601660 Fix #706
Very strange bug again only on Android of drawing svgs
2023-03-10 14:04:01 +01:00
xmflsct 97fb5b8e6d Bump packages 2023-03-10 14:03:10 +01:00
xmflsct af991fdc56 For #711 2023-03-10 13:45:01 +01:00
xmflsct 6e8cefd7c2 Attempt to fix #711
Why get device token would fail without error message?
2023-03-10 00:04:07 +01:00
xmflsct 5c461c0cd1
New Crowdin updates (#710)
* New translations screens.json (Basque)

* New translations tabs.json (Basque)

* New translations tabs.json (Basque)

* New translations tabs.json (Basque)

* New translations tabs.json (Basque)

* New translations contextMenu.json (Basque)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)
2023-03-08 23:40:47 +01:00
xmflsct 6dee67a4de Added Belarusian 2023-03-08 23:40:28 +01:00
xmflsct abf3d41780 Bump 2023-03-08 21:40:40 +01:00
xmflsct f58b2af631 Bump 2023-03-04 17:37:05 +01:00
xmflsct 0450019cac Fix push token not updated 2023-02-28 20:43:37 +01:00
xmflsct 4ce3ce58ab
New Crowdin updates (#709)
* New translations compose.json (Basque)

* New translations tabs.json (Basque)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Portuguese, Brazilian)

* New translations compose.json (Basque)

* New translations tabs.json (Basque)

* New translations compose.json (Basque)

* New translations screens.json (Basque)

* New translations tabs.json (Basque)

* New translations tabs.json (Dutch)

* New translations tabs.json (Ukrainian)

* New translations instance.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations instance.json (Belarusian)

* New translations timeline.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Norwegian)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Belarusian)
2023-02-27 18:57:10 +01:00
xmflsct c44482aa75 Remove disable auto refetch
Now remote instance page has auto hide heading
2023-02-27 18:56:36 +01:00
xmflsct 120641b95e Improve account page 2023-02-26 21:51:31 +01:00
xmflsct 71e0c88cc2 Fix conversation view append timeline jump 2023-02-26 18:09:51 +01:00
xmflsct 702ecef243 Fetch remote user's toots 2023-02-25 23:42:04 +01:00
xmflsct f505f78193 Update PrivateNotes.tsx 2023-02-25 22:24:23 +01:00
xmflsct 292fb42a22 Fix change remote and refresh 2023-02-25 22:20:44 +01:00
xmflsct 216a736860 Fix account page account issue 2023-02-25 21:57:11 +01:00
xmflsct 8b721e1d2e
New Crowdin updates (#705)
* New translations tabs.json (Chinese Traditional)

* New translations common.json (Belarusian)

* New translations common.json (German)

* New translations common.json (Dutch)

* New translations parse.json (Belarusian)

* New translations relationship.json (Belarusian)

* New translations timeline.json (Belarusian)

* New translations imageViewer.json (Belarusian)

* New translations compose.json (Belarusian)

* New translations screens.json (Belarusian)

* New translations tabs.json (French)

* New translations tabs.json (Spanish)

* New translations tabs.json (Belarusian)

* New translations tabs.json (Catalan)

* New translations tabs.json (Czech)

* New translations tabs.json (German)

* New translations tabs.json (Greek)

* New translations tabs.json (Basque)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Dutch)

* New translations tabs.json (Norwegian)

* New translations tabs.json (Polish)

* New translations tabs.json (Russian)

* New translations tabs.json (Swedish)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations mediaSelector.json (Belarusian)

* New translations contextMenu.json (Belarusian)

* New translations tabs.json (Chinese Simplified)
2023-02-25 17:05:43 +01:00
xmflsct de7e39a332 Update Crowdin configuration file 2023-02-25 16:55:42 +01:00
xmflsct 4269c1d9d1 Refine adding remote instance 2023-02-25 16:52:38 +01:00
xmflsct 35eb7ba765 Stop auto refetch when pressing on nav icon
Fix #708
2023-02-25 16:00:08 +01:00
xmflsct 45c54db617 Fallback to expo beta for blurhash to function 2023-02-25 15:28:01 +01:00
xmflsct 1bff79ed4a Bump 2023-02-25 00:34:37 +01:00
xmflsct ca2e1e07ec Bump Sentry 2023-02-24 14:05:29 +01:00
xmflsct 04a56edcf4 Fix bugs 2023-02-24 13:54:27 +01:00
xmflsct b1a796d3f1 Bump packages 2023-02-24 13:06:20 +01:00
xmflsct 73e4bdb290 Prevent image loading flashing in conversation 2023-02-17 22:19:04 +01:00
xmflsct d2eb7156a4 Try faster append toots 2023-02-17 18:58:43 +01:00
xmflsct 9b0f07fbf1 Some clean up 2023-02-17 14:22:54 +01:00
xmflsct 542dfe4723 Try using default windowSize 2023-02-17 14:04:30 +01:00
xmflsct 3b9369b509 Fix Norwegian fallbacks 2023-02-17 13:53:16 +01:00
xmflsct 8b8a540105 Added Norwegian
Would it be confused between `nb` and `nn`?
2023-02-16 23:44:28 +01:00
xmflsct 001267b9c7 Remove sentry instrucmentation 2023-02-16 23:36:01 +01:00
xmflsct 718870e3e9 Load less per page 2023-02-16 20:42:16 +01:00
xmflsct 86e7edb963 Bump 2023-02-15 19:31:26 +01:00
xmflsct ad04eff7ce Try out using margin instead of gap 2023-02-14 23:18:23 +01:00
xmflsct 3b4b6d2f67 Fix iOS building 2023-02-14 23:15:01 +01:00
xmflsct c0798a2e0c Fix Android building crash
https://github.com/software-mansion/react-native-reanimated/issues/3615#issuecomment-1260485861
2023-02-14 23:12:26 +01:00
xmflsct 29d5a1508d Bump packages 2023-02-14 23:04:28 +01:00
xmflsct ea54f91f29 Update Video.tsx 2023-02-13 22:02:48 +01:00
xmflsct 6a8663f9ed Update Toot.tsx 2023-02-13 21:43:02 +01:00
xmflsct 71e3bce422 Bump reanimated 2023-02-13 21:38:02 +01:00
xmflsct 781752ee91
New Crowdin updates (#703)
* New translations tabs.json (Korean)

* New translations common.json (Belarusian)

* New translations instance.json (Belarusian)

* New translations parse.json (Belarusian)

* New translations relationship.json (Belarusian)

* New translations timeline.json (Belarusian)

* New translations imageViewer.json (Belarusian)

* New translations announcements.json (Belarusian)

* New translations compose.json (Belarusian)

* New translations screens.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations mediaSelector.json (Belarusian)

* New translations emojis.json (Belarusian)

* New translations contextMenu.json (Belarusian)

* New translations accountSelection.json (Belarusian)

* New translations instance.json (Belarusian)

* New translations screens.json (Belarusian)

* New translations mediaSelector.json (Belarusian)

* New translations emojis.json (Belarusian)

* New translations parse.json (Belarusian)

* New translations relationship.json (Belarusian)

* New translations timeline.json (Belarusian)

* New translations announcements.json (Belarusian)

* New translations compose.json (Belarusian)

* New translations mediaSelector.json (Belarusian)

* New translations accountSelection.json (Belarusian)

* New translations timeline.json (Catalan)

* New translations tabs.json (Catalan)

* New translations common.json (French)

* New translations common.json (Spanish)

* New translations common.json (Catalan)

* New translations common.json (Czech)

* New translations common.json (German)

* New translations common.json (Greek)

* New translations common.json (Basque)

* New translations common.json (Italian)

* New translations common.json (Japanese)

* New translations common.json (Korean)

* New translations common.json (Dutch)

* New translations common.json (Polish)

* New translations common.json (Russian)

* New translations common.json (Swedish)

* New translations common.json (Ukrainian)

* New translations common.json (Chinese Simplified)

* New translations common.json (Chinese Traditional)

* New translations common.json (Vietnamese)

* New translations common.json (Portuguese, Brazilian)

* New translations instance.json (French)

* New translations instance.json (Spanish)

* New translations instance.json (Catalan)

* New translations instance.json (Czech)

* New translations instance.json (German)

* New translations instance.json (Greek)

* New translations instance.json (Basque)

* New translations instance.json (Italian)

* New translations instance.json (Japanese)

* New translations instance.json (Korean)

* New translations instance.json (Dutch)

* New translations instance.json (Polish)

* New translations instance.json (Russian)

* New translations instance.json (Swedish)

* New translations instance.json (Ukrainian)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Chinese Traditional)

* New translations instance.json (Vietnamese)

* New translations instance.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Czech)

* New translations tabs.json (German)

* New translations tabs.json (Greek)

* New translations tabs.json (Basque)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Dutch)

* New translations tabs.json (Polish)

* New translations tabs.json (Russian)

* New translations tabs.json (Swedish)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations common.json (Norwegian)

* New translations instance.json (Norwegian)

* New translations tabs.json (Norwegian)

* New translations common.json (Belarusian)

* New translations instance.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations common.json (Chinese Simplified)

* New translations instance.json (French)

* New translations instance.json (Spanish)

* New translations instance.json (Catalan)

* New translations instance.json (German)

* New translations instance.json (Greek)

* New translations instance.json (Japanese)

* New translations instance.json (Korean)

* New translations instance.json (Dutch)

* New translations instance.json (Polish)

* New translations instance.json (Swedish)

* New translations instance.json (Ukrainian)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Chinese Traditional)

* New translations instance.json (Vietnamese)

* New translations instance.json (Portuguese, Brazilian)

* New translations tabs.json (Chinese Simplified)

* New translations instance.json (Norwegian)

* New translations common.json (Basque)

* New translations common.json (Chinese Traditional)

* New translations instance.json (Basque)

* New translations tabs.json (French)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Czech)

* New translations tabs.json (German)

* New translations tabs.json (Greek)

* New translations tabs.json (Basque)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Dutch)

* New translations tabs.json (Polish)

* New translations tabs.json (Russian)

* New translations tabs.json (Swedish)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations common.json (Norwegian)

* New translations tabs.json (Norwegian)

* New translations common.json (Belarusian)

* New translations instance.json (Belarusian)

* New translations tabs.json (Belarusian)

* New translations parse.json (Basque)

* New translations timeline.json (Basque)

* New translations imageViewer.json (Basque)

* New translations announcements.json (Basque)

* New translations compose.json (Basque)

* New translations common.json (Spanish)

* New translations common.json (Catalan)

* New translations common.json (Ukrainian)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Norwegian)

* New translations tabs.json (Chinese Simplified)
2023-02-12 23:08:29 +01:00
xmflsct a78fe5ffe8 Added attachment border radius 2023-02-12 23:08:15 +01:00
xmflsct e37a95408c Fix #608 2023-02-12 19:47:28 +01:00
xmflsct d3cf0edbc9 Align discard confirmation 2023-02-12 18:47:03 +01:00
xmflsct 79a92b5df7 Fix #667 2023-02-12 18:38:06 +01:00
xmflsct 4a340fca8e Fix remote toot not interactable 2023-02-12 17:08:44 +01:00
xmflsct 398f34d95d Narrower attachments
For #704
2023-02-12 15:50:55 +01:00
xmflsct 3eec9d1af0 Try to fix App Store warning 2023-02-12 15:00:59 +01:00
xmflsct 127978da79 Fix #612 2023-02-12 14:50:31 +01:00
xmflsct 441090ab28 Improve audio player 2023-02-11 23:46:12 +01:00
xmflsct 242c75079a Use the new gap option 2023-02-11 23:37:17 +01:00
xmflsct b679c0760f Fix ts warnings 2023-02-11 22:04:32 +01:00
xmflsct fcc53672fa Build passed 2023-02-11 19:15:34 +01:00
xmflsct 620dcfccdb Fix #702 2023-02-11 18:12:50 +01:00
xmflsct 2de5a251ce Bump packages 2023-02-11 18:04:03 +01:00
xmflsct 2097dceda7
New Crowdin updates (#694)
* New translations timeline.json (Spanish)

* New translations timeline.json (Catalan)

* New translations timeline.json (Basque)

* New translations timeline.json (Ukrainian)

* New translations common.json (Norwegian)

* New translations instance.json (Norwegian)

* New translations parse.json (Norwegian)

* New translations relationship.json (Norwegian)

* New translations timeline.json (Norwegian)

* New translations imageViewer.json (Norwegian)

* New translations announcements.json (Norwegian)

* New translations compose.json (Norwegian)

* New translations screens.json (Norwegian)

* New translations tabs.json (Norwegian)

* New translations mediaSelector.json (Norwegian)

* New translations emojis.json (Norwegian)

* New translations contextMenu.json (Norwegian)

* New translations accountSelection.json (Norwegian)

* New translations common.json (Norwegian)

* New translations common.json (Norwegian)

* New translations instance.json (Norwegian)

* New translations parse.json (Norwegian)

* New translations relationship.json (Norwegian)

* New translations timeline.json (Norwegian)

* New translations imageViewer.json (Norwegian)

* New translations announcements.json (Norwegian)

* New translations compose.json (Norwegian)

* New translations screens.json (Norwegian)

* New translations tabs.json (Norwegian)

* New translations parse.json (Norwegian)

* New translations timeline.json (Norwegian)

* New translations compose.json (Norwegian)

* New translations screens.json (Norwegian)

* New translations tabs.json (Norwegian)

* New translations mediaSelector.json (Norwegian)

* New translations emojis.json (Norwegian)

* New translations contextMenu.json (Norwegian)

* New translations accountSelection.json (Norwegian)

* New translations timeline.json (Korean)

* New translations compose.json (Korean)

* New translations tabs.json (Korean)

* New translations contextMenu.json (Korean)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations timeline.json (Japanese)

* New translations tabs.json (Japanese)

* New translations timeline.json (German)
2023-02-09 14:36:46 +01:00
xmflsct eecd871d65 Fix avatar not updated 2023-02-09 14:19:50 +01:00
xmflsct 4864f6cd5c Fix #701 2023-02-09 14:11:54 +01:00
xmflsct 0185335138 Fix image viewer placeholder 2023-02-08 21:41:16 +01:00
xmflsct 48481a4cd5 Improve auto fetch 2023-02-08 19:22:20 +01:00
xmflsct 724cd76647 Bump deps 2023-02-08 01:33:12 +01:00
xmflsct 11ac2bd51d Update yarn.lock 2023-02-08 01:30:35 +01:00
xmflsct d1ed8a0d2a Test #700 2023-02-08 01:10:59 +01:00
dependabot[bot] 9259ee2995
Bump http-cache-semantics from 4.1.0 to 4.1.1 (#696)
Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/kornelski/http-cache-semantics/releases)
- [Commits](https://github.com/kornelski/http-cache-semantics/compare/v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-07 23:42:51 +01:00
xmflsct c1ebde8fe9 Fix #699 2023-02-07 23:38:34 +01:00
xmflsct 8775a0cb25 Fix #697 2023-02-07 22:19:39 +01:00
xmflsct 0b3d206190 Fix #698 2023-02-07 21:41:06 +01:00
xmflsct fd114ed0f0 Check for Wildebeest's account ID format 2023-02-07 15:06:04 +01:00
xmflsct f98b8946dc Refine marker 2023-02-07 13:56:50 +01:00
xmflsct be2c223142 Mark id on load
With the introduction of throttle, it is crucial to log on load otherwise there won't be much match after that
2023-02-06 19:07:22 +01:00
xmflsct 5d1459eba6 Fix some toots not interactable 2023-02-06 18:58:55 +01:00
xmflsct 1dd64c4e19 Fix link matching crashes 2023-02-06 14:00:40 +01:00
xmflsct 9f6e7738bf Fix when userTheme is undefined 2023-02-03 16:06:18 +01:00
xmflsct adddae9d72 Refine push 2023-02-03 15:54:04 +01:00
xmflsct db41e85d07
New Crowdin updates (#690)
* New translations timeline.json (Basque)

* New translations timeline.json (Portuguese, Brazilian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations timeline.json (Japanese)

* New translations tabs.json (Japanese)

* New translations contextMenu.json (Japanese)

* New translations timeline.json (German)

* New translations contextMenu.json (German)

* New translations instance.json (German)

* New translations timeline.json (German)

* New translations tabs.json (German)

* New translations contextMenu.json (German)

* New translations timeline.json (French)

* New translations timeline.json (Spanish)

* New translations timeline.json (Catalan)

* New translations timeline.json (Czech)

* New translations timeline.json (German)

* New translations timeline.json (Greek)

* New translations timeline.json (Basque)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Dutch)

* New translations timeline.json (Polish)

* New translations timeline.json (Russian)

* New translations timeline.json (Swedish)

* New translations timeline.json (Ukrainian)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (Dutch)

* New translations timeline.json (Swedish)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)
2023-02-03 14:47:48 +01:00
xmflsct e225c5b6bf Clarify my own boosts 2023-02-03 13:57:11 +01:00
xmflsct 7c7c96bc42 Update HTML.tsx 2023-02-03 13:48:29 +01:00
xmflsct 242ecf76c0 Improve marker loading
Actually the id can be invalid (not found), and the timeline can be loaded to the right position, therefore no need to check the id anymore.
2023-02-03 13:11:15 +01:00
xmflsct 2a774a5516 Should fix #692 2023-02-03 12:07:17 +01:00
xmflsct 5ec49739fc Let lib handles cache 2023-02-03 00:59:39 +01:00
xmflsct 3545c13ae9 Update Podfile.lock 2023-02-02 15:27:14 +01:00
xmflsct 74badd94cb Improve refresh loading 2023-02-02 14:15:37 +01:00
xmflsct 2d9f7a90cc Bump packages 2023-02-02 14:15:14 +01:00
xmflsct 90c8e4cba8 Fix #691
One liner fix, but took some time to find out...
2023-02-02 13:54:28 +01:00
xmflsct 2c96991ca0 Fix push page not refetching 2023-02-01 15:04:22 +01:00
xmflsct 0dacd5ec89 Fix error message returning key in poll 2023-02-01 14:52:16 +01:00
xmflsct 88d4de98c2 Fix poll in "remote" toots not working 2023-02-01 14:40:22 +01:00
xmflsct 78b6834c3f Do not fade in when blurhash or preview has been loaded 2023-02-01 13:53:18 +01:00
xmflsct e60535cd1c Catch potentially json parsing error 2023-02-01 00:07:38 +01:00
xmflsct 5d3f773a2a Faster image loading transition 2023-02-01 00:06:33 +01:00
xmflsct 968a3266c2 Test clearing disk cache 2023-01-31 15:19:18 +01:00
xmflsct c21e99909d Add fade in transition of react-native-fast-image
Based on https://github.com/DylanVann/react-native-fast-image/pull/958
2023-01-31 15:15:15 +01:00
xmflsct 624c1f172c Use the same subdomain for connect media
Preventing count as cache miss
2023-01-31 14:26:43 +01:00
xmflsct 602e010cfc
Update name.txt 2023-01-30 15:36:59 +01:00
xmflsct 49c51b4af2
Update connect.ts 2023-01-30 14:53:08 +01:00
xmflsct 574dbd3258
New Crowdin updates (#686)
* New translations timeline.json (Portuguese, Brazilian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations timeline.json (Dutch)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Spanish)

* New translations timeline.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)
2023-01-30 13:53:37 +01:00
xmflsct dc893b0d5d Reset when verification failed 2023-01-30 13:53:21 +01:00
xmflsct 4aa96ba2bd Fix #683
Affects both platforms
2023-01-30 13:44:29 +01:00
xmflsct 646b539949 Improve notify animation 2023-01-30 13:40:43 +01:00
xmflsct 7559196e42 Merge branch 'main' of https://github.com/tooot-app/app 2023-01-30 13:40:28 +01:00
xmflsct 57efc4c868 Fix crashes 2023-01-30 12:55:35 +01:00
xmflsct f219371243
Update package.json 2023-01-30 01:20:24 +01:00
xmflsct 5551cd0e12
New Crowdin updates (#684)
* New translations common.json (Portuguese, Brazilian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations timeline.json (French)

* New translations timeline.json (Spanish)

* New translations timeline.json (Catalan)

* New translations timeline.json (Czech)

* New translations timeline.json (German)

* New translations timeline.json (Greek)

* New translations timeline.json (Basque)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Dutch)

* New translations timeline.json (Polish)

* New translations timeline.json (Russian)

* New translations timeline.json (Swedish)

* New translations timeline.json (Ukrainian)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Catalan)

* New translations timeline.json (Chinese Simplified)
2023-01-30 00:48:08 +01:00
xmflsct 90b0178f5d Refetch only latest pages 2023-01-30 00:36:16 +01:00
xmflsct d1714fab26 Added fetched notice 2023-01-30 00:25:46 +01:00
xmflsct aee206fc95 Refine account switching 2023-01-29 22:18:33 +01:00
xmflsct 062e6825b5 Reuse account info when navigating 2023-01-29 21:53:13 +01:00
xmflsct 83cd5d4eb0 Suppress spoiler for easier reading
As spoiler is default expanded now in thread
2023-01-29 19:27:15 +01:00
xmflsct aba239188f Black list path format includes @ but not Mastodon 2023-01-29 19:04:21 +01:00
xmflsct 5c3e490112 Use in-memory global values
As connect needs to be read very often
2023-01-29 19:02:47 +01:00
xmflsct ebe57be674 Update descriptions 2023-01-29 17:39:25 +01:00
xmflsct 752d33d5b3 Dimming images for dark mode 2023-01-29 17:28:49 +01:00
xmflsct e447a91cfb Fix remote prop not appended in all places 2023-01-29 16:59:14 +01:00
xmflsct 8c87841fed Improve account switch hint 2023-01-29 16:20:31 +01:00
xmflsct 95a99ef7cd Try out connect 2023-01-29 15:32:40 +01:00
xmflsct 3451a021e9 Update package.json 2023-01-29 00:38:44 +01:00
xmflsct eff1f97b14
New translations tabs.json (Vietnamese) (#678) 2023-01-29 00:38:29 +01:00
xmflsct 40522595d0 Fix #682 #681 2023-01-29 00:37:56 +01:00
xmflsct af5273d216
New Crowdin updates (#677)
* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Polish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (German)

* New translations parse.json (Portuguese, Brazilian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations mediaSelector.json (Portuguese, Brazilian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Portuguese, Brazilian)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (Basque)

* New translations common.json (Basque)

* New translations instance.json (Basque)

* New translations parse.json (Basque)

* New translations relationship.json (Basque)

* New translations relationship.json (Basque)

* New translations timeline.json (Basque)

* New translations timeline.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Russian)

* New translations tabs.json (Greek)

* New translations tabs.json (Basque)

* New translations contextMenu.json (French)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Czech)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Greek)

* New translations contextMenu.json (Basque)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Polish)

* New translations contextMenu.json (Russian)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Ukrainian)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Simplified)

* New translations tabs.json (Ukrainian)

* New translations contextMenu.json (Ukrainian)

* New translations tabs.json (Chinese Traditional)

* New translations contextMenu.json (Chinese Traditional)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Dutch)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Dutch)

* New translations tabs.json (Dutch)

* New translations contextMenu.json (Basque)

* New translations contextMenu.json (Catalan)
2023-01-27 22:42:26 +01:00
xmflsct 023f66895d Fix #666 2023-01-27 21:54:48 +01:00
xmflsct 738194d108 Consolidate swipe to delete views 2023-01-27 18:44:48 +01:00
xmflsct aa5a607666
New Crowdin updates (#675)
* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Polish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (German)

* New translations parse.json (Portuguese, Brazilian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations mediaSelector.json (Portuguese, Brazilian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Portuguese, Brazilian)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (Basque)

* New translations common.json (Basque)

* New translations instance.json (Basque)

* New translations parse.json (Basque)

* New translations relationship.json (Basque)

* New translations relationship.json (Basque)

* New translations timeline.json (Basque)

* New translations timeline.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Russian)

* New translations tabs.json (Greek)

* New translations tabs.json (Basque)

* New translations contextMenu.json (French)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Czech)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Greek)

* New translations contextMenu.json (Basque)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Polish)

* New translations contextMenu.json (Russian)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Ukrainian)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Simplified)
2023-01-27 00:44:32 +01:00
xmflsct 7d5c9e906a Update contextMenu.json 2023-01-27 00:29:42 +01:00
xmflsct 05a46f23b9 Should improve #666
More optimisation still needed
2023-01-27 00:13:00 +01:00
xmflsct 4b8885ef2c Fix #670
Also on iOS
2023-01-26 23:55:48 +01:00
xmflsct 922d7c7917 Fix #668 2023-01-26 23:35:52 +01:00
xmflsct 653b588c29 Fix #613 2023-01-26 23:07:13 +01:00
xmflsct e8eb62e2d0 Refined filter view 2023-01-26 13:59:42 +01:00
xmflsct 2a806695ca
New Crowdin updates (#665)
* New translations tabs.json (Swedish)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Swedish)

* New translations instance.json (Japanese)

* New translations timeline.json (Japanese)

* New translations contextMenu.json (Japanese)

* New translations tabs.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations tabs.json (Korean)

* New translations compose.json (French)

* New translations compose.json (German)

* New translations compose.json (Italian)

* New translations compose.json (Japanese)

* New translations compose.json (Korean)

* New translations compose.json (Chinese Simplified)

* New translations compose.json (Chinese Traditional)

* New translations compose.json (Vietnamese)

* New translations compose.json (Portuguese, Brazilian)

* New translations compose.json (Polish)

* New translations compose.json (Spanish)

* New translations compose.json (Swedish)

* New translations compose.json (Czech)

* New translations compose.json (Dutch)

* New translations compose.json (Catalan)

* New translations compose.json (Ukrainian)

* New translations compose.json (Russian)

* New translations compose.json (Greek)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Russian)

* New translations tabs.json (Greek)

* New translations tabs.json (Chinese Simplified)

* New translations common.json (Basque)

* New translations instance.json (Basque)

* New translations parse.json (Basque)

* New translations relationship.json (Basque)

* New translations timeline.json (Basque)

* New translations imageViewer.json (Basque)

* New translations announcements.json (Basque)

* New translations compose.json (Basque)

* New translations screens.json (Basque)

* New translations tabs.json (Basque)

* New translations mediaSelector.json (Basque)

* New translations emojis.json (Basque)

* New translations contextMenu.json (Basque)

* New translations accountSelection.json (Basque)
2023-01-26 01:14:24 +01:00
dependabot[bot] e417532d60
Bump ua-parser-js from 0.7.32 to 0.7.33 (#674)
Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 0.7.32 to 0.7.33.
- [Release notes](https://github.com/faisalman/ua-parser-js/releases)
- [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md)
- [Commits](https://github.com/faisalman/ua-parser-js/compare/0.7.32...0.7.33)

---
updated-dependencies:
- dependency-name: ua-parser-js
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-26 00:59:21 +01:00
xmflsct d73857eef4 First step of adding filter editing support 2023-01-26 00:57:48 +01:00
xmflsct 2d91d1f7fb Fix react-native-svg default fill black 2023-01-25 00:29:36 +01:00
xmflsct 9d9c16df06 Bump packages
And deprecate react-native-feather
2023-01-25 00:15:46 +01:00
xmflsct ebc6d03c6a Fix url not encoded such as in CJK 2023-01-24 22:47:36 +01:00
xmflsct 82928f8611 Attempt to fix super long toots breaking maintain position 2023-01-24 22:24:55 +01:00
xmflsct f1b162a020 Added gif preference
https://github.com/mastodon/mastodon/pull/22706
2023-01-24 00:36:51 +01:00
xmflsct 47d5b02468 Fix #672
Removed image focus as different clients implement this differently
2023-01-23 23:05:25 +01:00
xmflsct 613cf1365c Fix 669 2023-01-22 18:17:57 +01:00
xmflsct 5cd83ae055 Improve my page's loading 2023-01-17 15:35:36 +01:00
xmflsct fb6a111c55 Fix #664 2023-01-17 12:57:37 +01:00
xmflsct d93c77c4ca Update yarn.lock 2023-01-16 22:56:58 +01:00
xmflsct a131b1277c Fix local content not loaded
With the new prepend approach
2023-01-16 22:52:30 +01:00
xmflsct c2a180f4f5 Fix popToTop dev warning 2023-01-16 22:36:49 +01:00
xmflsct adb7a765b4 Fix #663
Properly revoke token when actively logging out
2023-01-16 22:22:19 +01:00
xmflsct 196f51bfca Refine account switching
Part of #663
2023-01-16 22:11:41 +01:00
xmflsct 74e794a215 Fix some Sentry reported crashes 2023-01-16 18:56:15 +01:00
xmflsct 18ad22302d Attempt to fix #644 2023-01-16 18:50:18 +01:00
xmflsct 261987cac9
New Crowdin updates (#658)
* New translations timeline.json (Spanish)

* New translations timeline.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Russian)

* New translations tabs.json (Greek)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Spanish)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Chinese Simplified)
2023-01-16 14:58:47 +01:00
xmflsct e97eff25c5 Fix cached toot not replaced 2023-01-16 14:30:00 +01:00
xmflsct 3883c0307a Fix public page switching timeline not updating nav params 2023-01-16 14:20:36 +01:00
xmflsct 34c0bbf4bb Fix too thin images 2023-01-15 22:04:25 +01:00
xmflsct b52b529550 Fix conversation view when remote returns error 2023-01-15 21:51:27 +01:00
xmflsct f10d52cebc Use native loading spinner
The lib is not being maintained and the animation quality is bad
2023-01-15 20:34:22 +01:00
xmflsct 86c3e91439 Fixed Android's svg spans full width 2023-01-15 19:59:48 +01:00
xmflsct 9a289489fa Fix #661
The API does not support a better way to achieve this as suggested. Though the search API accepts a "following" param, and it will return data prioritising following accounts.
2023-01-15 19:38:45 +01:00
xmflsct 8814161e0e Improve toot page loading 2023-01-15 18:00:58 +01:00
xmflsct 0efb7e5b70 Fix #615 2023-01-15 13:40:12 +01:00
xmflsct e5744aba06 Try to fix #648
Also reported by other users
2023-01-14 16:58:01 +01:00
xmflsct e7ca5ba63d Fix #655 2023-01-14 16:29:28 +01:00
xmflsct 57f1ed62b5 Fix #657
No need for Android, as if permission was denied last time, the next time when requesting, permission would be checked again.
2023-01-14 16:20:37 +01:00
xmflsct 26d2c78517 Fix #653 2023-01-14 15:26:11 +01:00
xmflsct e5e74410d0 Fix #659 2023-01-14 15:21:31 +01:00
xmflsct 58c96c4c08 Fix Android does not support menu sub 2023-01-12 21:44:28 +01:00
xmflsct fa066daa59 Update HeaderConversation.tsx 2023-01-12 21:28:29 +01:00
xmflsct bebf4c7101 Update TextInput.tsx
There are still reports of text not wrapping #571
2023-01-12 21:24:45 +01:00
xmflsct 81b810496b No need to show initial toot in history
Nothing changed in there
2023-01-12 21:12:51 +01:00
xmflsct 2a19e1fc2a Fix #654 2023-01-12 21:04:50 +01:00
xmflsct a37f66d080 Fix unidentified mentions 2023-01-12 20:58:57 +01:00
xmflsct 03fd770a41 Hide useless cards 2023-01-12 20:28:43 +01:00
xmflsct 02a90e84f3 Wrong side of fixing crash 2023-01-12 20:17:26 +01:00
xmflsct 50f95900b6 Update Push.tsx 2023-01-11 23:34:02 +01:00
xmflsct c7602df08c
New translations compose.json (Catalan) (#651) 2023-01-11 22:55:35 +01:00
xmflsct 7f97908e23 Fix bugs 2023-01-11 22:54:24 +01:00
xmflsct 76d4bc754b Fix accounts array empty not init 2023-01-11 22:18:02 +01:00
xmflsct 30be3cdb15 Fix prepended toots not interactable 2023-01-11 21:51:28 +01:00
xmflsct 01c27d6a99 Fix tooot support broken 2023-01-11 21:35:50 +01:00
xmflsct e31ce3772a Do not auto refetch home timeline
Due to the new timeline position feature, auto refetch would shift the timeline and the user is not at the newest of the list anyway
2023-01-11 21:11:43 +01:00
xmflsct f93fe09783 Fix push wrong auth key format 2023-01-11 21:01:44 +01:00
xmflsct def4c5424e Reload image when the source is changed 2023-01-10 19:36:42 +01:00
xmflsct 8610be1caf Fix bugs 2023-01-10 14:56:13 +01:00
xmflsct 3de4212a65 Fix #646 2023-01-10 13:27:47 +01:00
xmflsct 1918274ec9 Update Toot.tsx 2023-01-10 00:52:50 +01:00
xmflsct d68ec113c6 Fix font size setting 2023-01-10 00:28:39 +01:00
xmflsct 89e2b46792 Merge branch 'main' of https://github.com/tooot-app/app 2023-01-09 22:53:34 +01:00
xmflsct a4e6540b50
New Crowdin updates (#642)
* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Polish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Ukrainian)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Dutch)
2023-01-09 22:53:23 +01:00
xmflsct a4e97ccb1c Fix warnings and errors 2023-01-09 22:28:53 +01:00
xmflsct b9c4b139f5 Tune queries 2023-01-09 19:18:48 +01:00
xmflsct be772f905d Added global scopes 2023-01-09 16:54:30 +01:00
xmflsct cd7e740ab1 Fix remove reply level not showing up correctly 2023-01-09 16:52:29 +01:00
xmflsct 1025d85ae5 Moving to JSON instead of FormData for oauth 2023-01-09 16:44:11 +01:00
xmflsct 1b2d9d144f Fix bugs 2023-01-09 10:11:44 +01:00
xmflsct 215534d0c8 Fix #605
Turns out to be much more complicated than expected. Finally got the app running through Browser Stack (thanks for their sponsoring!), realised the issue was related to an early attempt to create a build for F-Droid #50 which removed the Google Service. However for Android push, Google service is still required.
2023-01-09 00:55:29 +01:00
xmflsct cfa637b23d Fix Android build crashing 2023-01-08 21:53:05 +01:00
xmflsct a3b5a132c5 Added GoToSocial support
Fix #206
Fix https://github.com/superseriousbusiness/gotosocial/issues/825
2023-01-08 20:07:20 +01:00
xmflsct 43c0447418
New Crowdin updates (#641)
* New translations timeline.json (Korean)

* New translations contextMenu.json (Korean)

* New translations compose.json (Korean)

* New translations tabs.json (Korean)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations contextMenu.json (French)

* New translations contextMenu.json (Polish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Czech)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Ukrainian)

* New translations contextMenu.json (Russian)

* New translations contextMenu.json (Greek)

* New translations contextMenu.json (Chinese Simplified)
2023-01-08 18:12:13 +01:00
vitalyster 59a2d932e3
OAuth: send PKCE code verifier with token request (#640)
* OAuth: send PKCE code verifier with token request

* Prevents typescript's warning

Co-authored-by: xmflsct <me@xmflsct.com>
2023-01-08 18:06:30 +01:00
xmflsct 972ae46d45 Fix #604 2023-01-08 17:56:34 +01:00
xmflsct 4cadeb6a6f Add release notes for #271 2023-01-08 17:34:15 +01:00
xmflsct 0b1fdf59ca Added notes to #608
Not yet able to edit
2023-01-08 17:32:20 +01:00
xmflsct cc6740a7c0 Fix adding account bug 2023-01-08 17:07:47 +01:00
xmflsct 6ce78e94f8 Fix #271
Added follow as menu option
2023-01-08 16:59:35 +01:00
xmflsct 9e0e8db82a Fix Android start up crash
Maybe then we can run it in BrowserStack
2023-01-08 12:21:38 +01:00
xmflsct fb3f2e82d6 Fix Android bugs 2023-01-08 00:05:58 +01:00
xmflsct 2d9dc00683 Fix #633
https://github.com/expo/expo/issues/6864#issuecomment-678620290
2023-01-07 23:56:24 +01:00
xmflsct d6d0cc0d03 Fix Android crashing
Somehow get MMKV number would crash
2023-01-07 23:37:30 +01:00
xmflsct 7db8b26dd9 Simplify and improve pagination 2023-01-07 18:01:08 +01:00
xmflsct 44f8900902 Support broader fedi tag type 2023-01-07 16:41:14 +01:00
xmflsct 50332773c3 Fix #490
Support remembering timeline position in following
2023-01-07 16:27:40 +01:00
xmflsct fb9b7486d0 Use placeholder data instead of initial data 2023-01-07 13:08:33 +01:00
xmflsct 23a8c03be2 Fix when there is no newer content 2023-01-07 12:15:07 +01:00
xmflsct 88528f5293 Refine scroll after fetch newer 2023-01-07 12:10:41 +01:00
xmflsct 1704c0401c Fix remote toot level is not applied 2023-01-07 11:32:50 +01:00
xmflsct ea02561cdb With local caching and gradual prepending
For #490
2023-01-07 00:43:00 +01:00
xmflsct 70d57ed830 Fetching now works better
For #490
2023-01-06 22:58:01 +01:00
xmflsct c2aa78fef8 Fix highlighted toot cannot be actioned 2023-01-06 18:38:52 +01:00
xmflsct 5ce7d50f8f Make remote fetch more lazy
Sometime the local instance responses slower that would result in all the context are remote, which is not ideal.
2023-01-06 18:31:33 +01:00
xmflsct 3cac12fb9e Update Podfile.lock 2023-01-06 14:06:13 +01:00
xmflsct c7a472124c Revert "Try out FlashList"
This reverts commit 8406a57143.
2023-01-06 14:00:50 +01:00
xmflsct 8406a57143 Try out FlashList 2023-01-06 01:41:46 +01:00
xmflsct bd3046cc2f Updates 2023-01-06 01:08:27 +01:00
xmflsct c83a74d1c3 Fix status interactions 2023-01-06 01:01:10 +01:00
xmflsct feadcc019c Updates 2023-01-05 00:49:10 +01:00
xmflsct bb9fa0c752 Improved history diff 2023-01-04 23:12:18 +01:00
xmflsct 06324ee51a Believe #638 can be closed now! 2023-01-04 22:39:29 +01:00
xmflsct 62a6594f91 Try removing flipper 2023-01-04 01:20:34 +01:00
xmflsct 092bc5013a Merge branch 'main' of https://github.com/tooot-app/app 2023-01-04 00:14:34 +01:00
xmflsct ba5bc35a05
New Crowdin updates (#618)
* New translations tabs.json (Vietnamese)

* New translations instance.json (Vietnamese)

* New translations contextMenu.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Catalan)

* New translations timeline.json (Spanish)

* New translations tabs.json (Spanish)

* New translations common.json (Ukrainian)

* New translations instance.json (Ukrainian)

* New translations parse.json (Ukrainian)

* New translations timeline.json (Ukrainian)

* New translations timeline.json (Ukrainian)

* New translations mediaSelector.json (Ukrainian)

* New translations accountSelection.json (Ukrainian)

* New translations common.json (Greek)

* New translations instance.json (Greek)

* New translations parse.json (Greek)

* New translations relationship.json (Greek)

* New translations timeline.json (Greek)

* New translations actions.json (Greek)

* New translations imageViewer.json (Greek)

* New translations announcements.json (Greek)

* New translations compose.json (Greek)

* New translations screens.json (Greek)

* New translations tabs.json (Greek)

* New translations mediaSelector.json (Greek)

* New translations emojis.json (Greek)

* New translations contextMenu.json (Greek)

* New translations accountSelection.json (Greek)

* New translations common.json (Greek)

* New translations instance.json (Greek)

* New translations parse.json (Greek)

* New translations actions.json (Greek)

* New translations imageViewer.json (Greek)

* New translations announcements.json (Greek)

* New translations compose.json (Greek)

* New translations screens.json (Greek)

* New translations mediaSelector.json (Greek)

* New translations emojis.json (Greek)

* New translations accountSelection.json (Greek)

* New translations tabs.json (Greek)

* New translations contextMenu.json (Greek)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Chinese Simplified)

* New translations relationship.json (Greek)

* New translations timeline.json (Greek)

* New translations contextMenu.json (Greek)

* New translations timeline.json (Greek)

* New translations tabs.json (Catalan)

* New translations timeline.json (German)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (French)

* New translations timeline.json (Spanish)

* New translations timeline.json (Swedish)

* New translations timeline.json (Dutch)

* New translations timeline.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations timeline.json (German)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Ukrainian)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Dutch)

* New translations timeline.json (Spanish)

* New translations timeline.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Greek)

* New translations timeline.json (German)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations timeline.json (French)

* New translations tabs.json (French)

* New translations timeline.json (Polish)

* New translations timeline.json (Spanish)

* New translations tabs.json (Spanish)

* New translations timeline.json (Swedish)

* New translations tabs.json (Swedish)

* New translations timeline.json (Czech)

* New translations timeline.json (Dutch)

* New translations tabs.json (Dutch)

* New translations timeline.json (Catalan)

* New translations tabs.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations timeline.json (Russian)

* New translations timeline.json (Greek)

* New translations tabs.json (Greek)

* New translations timeline.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations timeline.json (German)

* New translations timeline.json (German)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (French)

* New translations contextMenu.json (Polish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Swedish)

* New translations timeline.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Ukrainian)

* New translations contextMenu.json (Greek)

* New translations tabs.json (Ukrainian)

* New translations timeline.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations timeline.json (Catalan)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations contextMenu.json (Ukrainian)

* New translations timeline.json (German)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations timeline.json (French)

* New translations tabs.json (French)

* New translations timeline.json (Spanish)

* New translations tabs.json (Spanish)

* New translations timeline.json (Polish)

* New translations tabs.json (Polish)

* New translations timeline.json (Czech)

* New translations timeline.json (Swedish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations timeline.json (Dutch)

* New translations tabs.json (Dutch)

* New translations timeline.json (Catalan)

* New translations tabs.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations timeline.json (Russian)

* New translations tabs.json (Russian)

* New translations timeline.json (Greek)

* New translations tabs.json (Greek)

* New translations timeline.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations timeline.json (Dutch)

* New translations timeline.json (Spanish)

* New translations tabs.json (Spanish)

* New translations timeline.json (Catalan)

* New translations tabs.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations timeline.json (German)

* New translations tabs.json (German)

* New translations tabs.json (Ukrainian)

* New translations timeline.json (Polish)

* New translations timeline.json (Polish)

* New translations imageViewer.json (Polish)

* New translations compose.json (Polish)

* New translations screens.json (Polish)

* New translations tabs.json (Polish)

* New translations tabs.json (Dutch)

* New translations timeline.json (Swedish)

* New translations tabs.json (Swedish)

* New translations contextMenu.json (Swedish)

* New translations tabs.json (Polish)

* New translations tabs.json (Polish)

* New translations mediaSelector.json (Polish)

* New translations emojis.json (Polish)

* New translations contextMenu.json (Polish)

* New translations accountSelection.json (Polish)

* New translations timeline.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Simplified)

* New translations tabs.json (Chinese Simplified)
2023-01-04 00:14:20 +01:00
xmflsct bd5e92cab3 Update build.yml 2023-01-04 00:08:58 +01:00
xmflsct 6b73485aae Bump packages 2023-01-04 00:06:37 +01:00
xmflsct 0bcd0c1725 Continue refine remote logic #638 2023-01-03 23:57:23 +01:00
xmflsct b067b9bdb1 Properly clean and reset navigators 2023-01-03 00:10:44 +01:00
xmflsct 4c6b8f0959 Fix toot action for #638 2023-01-02 23:18:22 +01:00
xmflsct 6dafbc96af Account actions working for #638 2023-01-02 02:08:12 +01:00
xmflsct 62df29a479 Update status.ts 2023-01-01 18:54:42 +01:00
xmflsct f3e1741629 Update updateStatusProperty.ts 2023-01-01 18:48:32 +01:00
xmflsct 2705b4b804 Simplify update toot logic 2023-01-01 18:37:05 +01:00
xmflsct 56d1090ca9 Actions working for #638 2023-01-01 17:20:35 +01:00
xmflsct ced71d6611 Reply working for #638 2023-01-01 16:44:55 +01:00
xmflsct ac9738d358 Remove flat list in compose view 2023-01-01 13:39:48 +01:00
xmflsct 554825a9ea Fix #636 2022-12-31 15:58:18 +01:00
xmflsct 13303c4269 Early demo of #638
Actions are not working yet
2022-12-31 15:53:02 +01:00
xmflsct eb385b8872 Fix bugs 2022-12-31 14:00:52 +01:00
xmflsct 65e9f41a3b Fix bugs 2022-12-31 12:56:10 +01:00
xmflsct f0734e52e7 Add string for #631 2022-12-31 02:08:33 +01:00
xmflsct 7ccfdc7562 Fix #631 2022-12-31 02:06:19 +01:00
xmflsct 4a25feb346 Fix #635 2022-12-31 00:31:25 +01:00
xmflsct b677c4b7ce Fix #558 #602 2022-12-31 00:07:28 +01:00
xmflsct 49a0e6d63e Remove base64 dep 2022-12-30 15:14:16 +01:00
xmflsct 0de7e84f58 Fix #632
No need to warn
2022-12-30 12:56:13 +01:00
xmflsct e13669af56 Support migrating from older database 2022-12-30 10:44:30 +01:00
xmflsct ca7309b862 Fix #601 #577 2022-12-29 23:38:44 +01:00
xmflsct 14b23ac480 Merge branch 'main' of https://github.com/tooot-app/app 2022-12-29 23:14:55 +01:00
John HU 1029cb6a67
Use lowercase via instead of Via (#621) 2022-12-29 23:14:40 +01:00
xmflsct a77e495b6b Fix admin options not showing up 2022-12-29 23:13:22 +01:00
xmflsct 43a98be2d9 Fix in case font size is missing 2022-12-29 23:03:23 +01:00
xmflsct c6aff79055 Fix public domain and API domain differ 2022-12-29 23:00:17 +01:00
xmflsct 53ea661d9a Use i18next's native RTL detection 2022-12-29 18:03:23 +01:00
xmflsct 892e6c6131 Updates 2022-12-29 01:10:50 +01:00
xmflsct 2a40043b2e Refine querying followed tags 2022-12-29 00:58:07 +01:00
xmflsct 4cddbb9bad Remove most React memorization
Though added memo for timeline components making them (almost) pure
2022-12-29 00:36:35 +01:00
xmflsct 1ea6aff328
619 restructure local storage (#628)
* To MMKV migration working

* POC migrated font size settings

* Moved settings to mmkv

* Fix typos

* Migrated contexts slice

* Migrated app slice

* POC instance emoji update

* Migrated drafts

* Migrated simple instance properties

* All migrated!

* Re-structure files

* Tolerant of undefined settings

* Can properly logging in and out including empty state
2022-12-28 23:41:36 +01:00
John HU 71ccb4a93c
Fix README.md build status badges (#622)
* Fix build status badges

Changes required for badges:
https://github.com/badges/shields/issues/8671

* Make special thanks section visually compact
2022-12-28 01:57:35 +01:00
xmflsct a40f0d9f82 Fix #620 #606 2022-12-26 01:06:33 +01:00
xmflsct 34f7218c34 Fix React key missing 2022-12-25 17:40:53 +01:00
xmflsct 21d6baa70d Fix babel 2022-12-24 14:46:39 +01:00
xmflsct f3b46b7e9c Commit yarn plugins 2022-12-24 12:59:07 +01:00
xmflsct ea5705a6de Enable corepack for yarn 3 2022-12-24 12:55:51 +01:00
xmflsct e1f951eb8c
New Crowdin updates (#599)
* New translations instance.json (Russian)

* New translations timeline.json (Russian)

* New translations actions.json (Russian)

* New translations announcements.json (Russian)

* New translations compose.json (Russian)

* New translations screens.json (Russian)

* New translations tabs.json (Russian)

* New translations emojis.json (Russian)

* New translations accountSelection.json (Russian)

* New translations contextMenu.json (German)

* New translations timeline.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations timeline.json (Catalan)

* New translations contextMenu.json (Catalan)

* New translations common.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations compose.json (Catalan)

* New translations timeline.json (Spanish)

* New translations compose.json (Spanish)

* New translations tabs.json (Spanish)

* New translations timeline.json (Catalan)

* New translations compose.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Russian)

* New translations announcements.json (Catalan)

* New translations compose.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Russian)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations common.json (Polish)

* New translations instance.json (Polish)

* New translations parse.json (Polish)

* New translations relationship.json (Polish)

* New translations timeline.json (Polish)

* New translations imageViewer.json (Polish)

* New translations announcements.json (Polish)

* New translations compose.json (Polish)

* New translations contextMenu.json (Polish)

* New translations compose.json (Polish)

* New translations tabs.json (Polish)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations compose.json (German)

* New translations compose.json (Italian)

* New translations compose.json (Japanese)

* New translations compose.json (Korean)

* New translations compose.json (Chinese Simplified)

* New translations compose.json (Chinese Traditional)

* New translations compose.json (Vietnamese)

* New translations compose.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations compose.json (French)

* New translations tabs.json (French)

* New translations compose.json (Polish)

* New translations tabs.json (Polish)

* New translations compose.json (Spanish)

* New translations tabs.json (Spanish)

* New translations compose.json (Swedish)

* New translations tabs.json (Swedish)

* New translations compose.json (Czech)

* New translations tabs.json (Czech)

* New translations compose.json (Dutch)

* New translations tabs.json (Dutch)

* New translations compose.json (Catalan)

* New translations tabs.json (Catalan)

* New translations compose.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations compose.json (Russian)

* New translations tabs.json (Russian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Chinese Traditional)

* New translations contextMenu.json (French)

* New translations contextMenu.json (Polish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Czech)

* New translations tabs.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations contextMenu.json (Ukrainian)

* New translations contextMenu.json (Russian)

* New translations contextMenu.json (Ukrainian)

* New translations tabs.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations tabs.json (Catalan)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Chinese Simplified)

* New translations tabs.json (Chinese Simplified)
2022-12-24 02:25:16 +01:00
xmflsct 219358cf54 Fix #590 2022-12-24 02:13:24 +01:00
xmflsct e27bf7407b Fix #616 2022-12-24 01:59:18 +01:00
xmflsct b6045e5121 Remove most React memo
Maybe would solve iOS out of memory crashes
2022-12-24 01:18:20 +01:00
xmflsct 1e0e8842db Use new Sentry tracing 2022-12-24 01:07:08 +01:00
xmflsct 64b367a247 Fix #614 2022-12-23 20:02:44 +01:00
xmflsct 3594500b3e Fix #610 2022-12-23 18:49:50 +01:00
xmflsct f3c40e9486 Fix #611 2022-12-23 18:19:14 +01:00
xmflsct 57e1206faf Upgrade to yarn 3 2022-12-23 17:47:01 +01:00
xmflsct e32125ad17 Update i18next type 2022-12-23 15:53:40 +01:00
xmflsct b388853429 Refine types for #600 2022-12-22 18:38:04 +01:00
xmflsct 39ab9059d9 Fix #600 2022-12-22 01:21:51 +01:00
xmflsct fb7111d771
New Crowdin updates (#591)
* New translations instance.json (Russian)

* New translations timeline.json (Russian)

* New translations actions.json (Russian)

* New translations announcements.json (Russian)

* New translations compose.json (Russian)

* New translations screens.json (Russian)

* New translations tabs.json (Russian)

* New translations emojis.json (Russian)

* New translations accountSelection.json (Russian)

* New translations contextMenu.json (German)

* New translations timeline.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations timeline.json (Catalan)

* New translations contextMenu.json (Catalan)

* New translations common.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations compose.json (Catalan)

* New translations timeline.json (Spanish)

* New translations compose.json (Spanish)

* New translations tabs.json (Spanish)

* New translations timeline.json (Catalan)

* New translations compose.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Russian)
2022-12-21 15:34:21 +01:00
xmflsct fbdb5ed0db Add update notes
Otherwise Apple would complaint again
2022-12-21 15:33:23 +01:00
xmflsct 10f7d74600 Fix Plerooma search crash
Potentially could be crashing in other scenarios where history data is missing
2022-12-21 15:31:18 +01:00
xmflsct 5e90a0d8f3 Attempt to fix #596 2022-12-21 15:24:23 +01:00
xmflsct a0bfb6cb24 Another fix #597 2022-12-21 15:21:35 +01:00
xmflsct b36863337e Fix #595 2022-12-21 14:42:44 +01:00
xmflsct 852095f5cf Fix #597 2022-12-21 14:38:09 +01:00
xmflsct 047464a9c1 Fix #594 2022-12-21 01:07:12 +01:00
xmflsct e95f1e8157 Merge branch 'main' of https://github.com/tooot-app/app 2022-12-20 23:09:23 +01:00
xmflsct 54c99eb054 Fix #593 2022-12-20 23:09:21 +01:00
xmflsct 4e8b4c0e95
Update subtitle.txt
App Store says subtitle cannot be longer than 30 chars.. So many limitations 😂
2022-12-20 12:11:50 +01:00
xmflsct 2ac1d49f9f
New Crowdin updates (#589)
* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Chinese Traditional)

* New translations common.json (Russian)
2022-12-20 10:51:01 +01:00
xmflsct dab2ca060d Fix visual bugs
Somehow the `onError` of `react-native-fast-image` doesn't work anymore as expected. Maybe because the underlying `SDWebImage` is being patched to other versions.
2022-12-20 10:47:33 +01:00
xmflsct bb02fadc16 Remove schema when instance is being added for Pleroma 2022-12-20 10:04:21 +01:00
xmflsct 5a77801188
New Crowdin updates (#587)
* New translations contextMenu.json (Swedish)

* New translations instance.json (Dutch)

* New translations contextMenu.json (Dutch)
2022-12-20 00:46:22 +01:00
xmflsct ca629befc9
Experiment support of Pleroma (#588) 2022-12-20 00:45:53 +01:00
xmflsct 29a092a925 Some visual fixes based on feedback 2022-12-19 23:58:03 +01:00
xmflsct 6e7ebef99a
New Crowdin updates (#567)
* New translations instance.json (German)

* New translations instance.json (Italian)

* New translations instance.json (Japanese)

* New translations instance.json (Korean)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Chinese Traditional)

* New translations instance.json (Vietnamese)

* New translations instance.json (Portuguese, Brazilian)

* New translations instance.json (French)

* New translations instance.json (Polish)

* New translations instance.json (Spanish)

* New translations instance.json (Swedish)

* New translations instance.json (Czech)

* New translations instance.json (Dutch)

* New translations instance.json (Catalan)

* New translations instance.json (Ukrainian)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Ukrainian)

* New translations instance.json (Chinese Traditional)

* New translations instance.json (Swedish)

* New translations timeline.json (German)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (French)

* New translations timeline.json (Polish)

* New translations timeline.json (Spanish)

* New translations timeline.json (Swedish)

* New translations timeline.json (Czech)

* New translations timeline.json (Dutch)

* New translations timeline.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Swedish)

* New translations timeline.json (German)

* New translations timeline.json (German)

* New translations instance.json (Korean)

* New translations timeline.json (Korean)

* New translations timeline.json (Korean)

* New translations tabs.json (Korean)

* New translations common.json (Korean)

* New translations common.json (French)

* New translations instance.json (French)

* New translations timeline.json (French)

* New translations timeline.json (Dutch)

* New translations timeline.json (French)

* New translations tabs.json (French)

* New translations instance.json (Spanish)

* New translations instance.json (Catalan)

* New translations timeline.json (Catalan)

* New translations compose.json (Catalan)

* New translations tabs.json (Catalan)

* New translations mediaSelector.json (Catalan)

* New translations timeline.json (Chinese Traditional)

* New translations common.json (French)

* New translations instance.json (French)

* New translations parse.json (French)

* New translations timeline.json (French)

* New translations compose.json (French)

* New translations tabs.json (French)

* New translations contextMenu.json (French)

* New translations instance.json (Spanish)

* New translations timeline.json (Spanish)

* New translations compose.json (Spanish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations contextMenu.json (Catalan)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Chinese Traditional)

* New translations common.json (Russian)

* New translations instance.json (Russian)

* New translations parse.json (Russian)

* New translations relationship.json (Russian)

* New translations timeline.json (Russian)

* New translations actions.json (Russian)

* New translations imageViewer.json (Russian)

* New translations announcements.json (Russian)

* New translations compose.json (Russian)

* New translations screens.json (Russian)

* New translations tabs.json (Russian)

* New translations mediaSelector.json (Russian)

* New translations emojis.json (Russian)

* New translations contextMenu.json (Russian)

* New translations accountSelection.json (Russian)

* New translations timeline.json (Chinese Simplified)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations contextMenu.json (French)

* New translations contextMenu.json (Polish)

* New translations common.json (German)

* New translations common.json (Italian)

* New translations common.json (Japanese)

* New translations common.json (Korean)

* New translations common.json (Chinese Simplified)

* New translations common.json (Chinese Traditional)

* New translations common.json (Vietnamese)

* New translations common.json (Portuguese, Brazilian)

* New translations screens.json (German)

* New translations screens.json (Italian)

* New translations screens.json (Japanese)

* New translations screens.json (Korean)

* New translations screens.json (Chinese Simplified)

* New translations screens.json (Chinese Traditional)

* New translations screens.json (Vietnamese)

* New translations screens.json (Portuguese, Brazilian)

* New translations common.json (French)

* New translations screens.json (French)

* New translations common.json (Polish)

* New translations screens.json (Polish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Czech)

* New translations common.json (Spanish)

* New translations screens.json (Spanish)

* New translations common.json (Swedish)

* New translations screens.json (Swedish)

* New translations common.json (Czech)

* New translations screens.json (Czech)

* New translations common.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Ukrainian)

* New translations screens.json (Dutch)

* New translations common.json (Catalan)

* New translations screens.json (Catalan)

* New translations common.json (Ukrainian)

* New translations screens.json (Ukrainian)

* New translations common.json (Russian)

* New translations screens.json (Russian)

* New translations contextMenu.json (Russian)

* New translations contextMenu.json (Chinese Simplified)

* New translations common.json (German)

* New translations common.json (Italian)

* New translations common.json (Japanese)

* New translations common.json (Korean)

* New translations common.json (Chinese Simplified)

* New translations common.json (Chinese Traditional)

* New translations common.json (Vietnamese)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (French)

* New translations common.json (Spanish)

* New translations common.json (Swedish)

* New translations common.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations common.json (Catalan)

* New translations common.json (Ukrainian)

* New translations contextMenu.json (Ukrainian)
2022-12-19 23:42:23 +01:00
xmflsct f37f9e857d Fix #582 2022-12-19 23:20:47 +01:00
xmflsct 72fa8c4fcf Fix #585 2022-12-19 23:06:39 +01:00
xmflsct ed71f86983 Fix Android action sheet color mode 2022-12-19 22:36:30 +01:00
John HU 5967fff318
Fix "Show boosts" "Show replies" toggles (#580)
* Typo

* Fix CheckboxItem check mark lingers around
2022-12-19 21:53:42 +01:00
xmflsct 533ff1d549 Fix #584 2022-12-19 21:46:37 +01:00
xmflsct 61967f4420 Fixed #583 2022-12-19 21:38:08 +01:00
xmflsct 4bd11e2246 Fix #581 2022-12-19 21:20:14 +01:00
xmflsct bace3b85de Fixed #578 2022-12-18 23:32:57 +01:00
xmflsct 50b07fc5eb Experiment with #558 2022-12-18 23:15:58 +01:00
xmflsct d26d8f3c14 Fixed #574
Stupid typo..
2022-12-18 22:01:02 +01:00
xmflsct 71bea470e0 Added Italian store presence
Thanks to @nicolaottomano@mastodon.uno
2022-12-18 21:34:11 +01:00
xmflsct fea45e66bc Fixed #576 2022-12-18 21:16:21 +01:00
xmflsct 909fed0644 Fixed #575 2022-12-18 20:55:33 +01:00
xmflsct 96a448d602 Fixed #573 2022-12-18 20:25:52 +01:00
xmflsct 2c7772d4c2 Fixed #572 2022-12-18 17:25:18 +01:00
Hanjiang Yu c0aad41047
Text wrapping workaround in toot composing screen (#571) 2022-12-18 11:37:30 +01:00
xmflsct 1bd3e150af Hopefully fixed #564 2022-12-18 11:33:49 +01:00
xmflsct 47feac174a Fixed #570 2022-12-18 11:16:30 +01:00
xmflsct a236adfb57 No need to retry if confirmed not found 2022-12-18 11:00:33 +01:00
xmflsct b1f00ce99b Use account lookup instead of search
May increase success rate
2022-12-18 01:29:33 +01:00
xmflsct fea2e82bdd Fixed #568 2022-12-18 01:12:58 +01:00
xmflsct b76d3f50df Make search transition smoother? 2022-12-18 00:41:49 +01:00
xmflsct a5315501fd Fixed #565 2022-12-18 00:00:58 +01:00
xmflsct ef80ab895e Remove min height of cards 2022-12-17 23:31:46 +01:00
xmflsct c59690fcb9 Fixed #566 2022-12-17 23:21:56 +01:00
xmflsct 3691b19a87 Fix Sentry errors 2022-12-16 22:00:22 +01:00
xmflsct 44aff1f283 Fix push settings 2022-12-16 21:18:58 +01:00
xmflsct 4725287554 Remove conversation levels for now as it doesn't work well yet 2022-12-16 17:00:07 +01:00
xmflsct 8b20e186de Update HeaderAndroid.tsx
Fixed #563
2022-12-16 13:16:04 +01:00
xmflsct 7b3fa6d1bc Update Push.tsx 2022-12-16 13:14:55 +01:00
xmflsct ac6de3ebf1
New Crowdin updates (#562)
* New translations timeline.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations timeline.json (German)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)
2022-12-16 10:47:17 +01:00
xmflsct be4eaa93ee Fix push 2022-12-16 10:35:31 +01:00
xmflsct d3d2202caa Fixed #561 2022-12-16 10:11:09 +01:00
xmflsct 41acc776ac
Update release_notes.txt 2022-12-16 01:02:51 +01:00
xmflsct 3c178e9f82
Update release_notes.txt 2022-12-16 01:02:17 +01:00
xmflsct 063f993882
New Crowdin updates (#557)
* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Polish)

* New translations contextMenu.json (Polish)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Dutch)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Swedish)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (German)

* New translations tabs.json (Chinese Simplified)
2022-12-16 00:25:13 +01:00
xmflsct 78dba4ae1a Pilot fix for #558 2022-12-16 00:21:53 +01:00
xmflsct e09e2da1b7 Bump up packages 2022-12-15 22:14:59 +01:00
xmflsct 0e348dcef1 Fix bugs 2022-12-15 19:31:20 +01:00
xmflsct 2f3e398d70 Fixed #556 2022-12-15 18:43:39 +01:00
xmflsct 3d2339c2b5 Fix searching for remote accounts 2022-12-15 14:28:36 +01:00
xmflsct a4cd24f313 Fixed #457 2022-12-15 01:41:34 +01:00
xmflsct c4316804fc Added 🇺🇦 Slava Ukraini 2022-12-15 00:16:13 +01:00
xmflsct 9f680c2a2a
New Crowdin updates (#526)
* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Catalan)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (German)

* New translations tabs.json (Dutch)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations common.json (German)

* New translations common.json (Italian)

* New translations common.json (Japanese)

* New translations common.json (Korean)

* New translations common.json (Chinese Simplified)

* New translations common.json (Chinese Traditional)

* New translations common.json (Vietnamese)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (French)

* New translations tabs.json (French)

* New translations common.json (Polish)

* New translations tabs.json (Polish)

* New translations common.json (Spanish)

* New translations tabs.json (Spanish)

* New translations common.json (Swedish)

* New translations tabs.json (Swedish)

* New translations common.json (Czech)

* New translations tabs.json (Czech)

* New translations common.json (Dutch)

* New translations tabs.json (Dutch)

* New translations common.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations common.json (German)

* New translations actions.json (German)

* New translations actions.json (Italian)

* New translations actions.json (Japanese)

* New translations actions.json (Korean)

* New translations actions.json (Chinese Simplified)

* New translations actions.json (Chinese Traditional)

* New translations actions.json (Vietnamese)

* New translations actions.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations actions.json (French)

* New translations tabs.json (French)

* New translations actions.json (Polish)

* New translations tabs.json (Polish)

* New translations actions.json (Spanish)

* New translations tabs.json (Spanish)

* New translations actions.json (Swedish)

* New translations tabs.json (Swedish)

* New translations actions.json (Czech)

* New translations tabs.json (Czech)

* New translations actions.json (Dutch)

* New translations tabs.json (Dutch)

* New translations actions.json (Catalan)

* New translations tabs.json (Catalan)

* New translations common.json (Ukrainian)

* New translations instance.json (Ukrainian)

* New translations parse.json (Ukrainian)

* New translations relationship.json (Ukrainian)

* New translations timeline.json (Ukrainian)

* New translations actions.json (Ukrainian)

* New translations imageViewer.json (Ukrainian)

* New translations announcements.json (Ukrainian)

* New translations compose.json (Ukrainian)

* New translations screens.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations mediaSelector.json (Ukrainian)

* New translations emojis.json (Ukrainian)

* New translations contextMenu.json (Ukrainian)

* New translations accountSelection.json (Ukrainian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations compose.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations contextMenu.json (Ukrainian)

* New translations accountSelection.json (Ukrainian)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations common.json (Italian)

* New translations common.json (Chinese Simplified)

* New translations common.json (Vietnamese)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (French)

* New translations tabs.json (French)

* New translations contextMenu.json (French)

* New translations tabs.json (Spanish)

* New translations common.json (Swedish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Dutch)

* New translations common.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (Vietnamese)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations mediaSelector.json (Ukrainian)

* New translations emojis.json (Ukrainian)

* New translations contextMenu.json (Ukrainian)

* New translations timeline.json (Ukrainian)

* New translations compose.json (Ukrainian)

* New translations screens.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations tabs.json (Swedish)

* New translations tabs.json (Dutch)

* New translations common.json (Spanish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations common.json (Polish)

* New translations common.json (Polish)

* New translations tabs.json (Polish)

* New translations contextMenu.json (Polish)

* New translations instance.json (German)

* New translations instance.json (Italian)

* New translations instance.json (Japanese)

* New translations instance.json (Korean)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Chinese Traditional)

* New translations instance.json (Vietnamese)

* New translations instance.json (Portuguese, Brazilian)

* New translations compose.json (German)

* New translations compose.json (Italian)

* New translations compose.json (Japanese)

* New translations compose.json (Korean)

* New translations compose.json (Chinese Simplified)

* New translations compose.json (Chinese Traditional)

* New translations compose.json (Vietnamese)

* New translations compose.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations instance.json (French)

* New translations compose.json (French)

* New translations tabs.json (French)

* New translations compose.json (Polish)

* New translations tabs.json (Polish)

* New translations instance.json (Spanish)

* New translations compose.json (Spanish)

* New translations tabs.json (Spanish)

* New translations instance.json (Swedish)

* New translations compose.json (Swedish)

* New translations tabs.json (Swedish)

* New translations compose.json (Czech)

* New translations tabs.json (Czech)

* New translations instance.json (Dutch)

* New translations compose.json (Dutch)

* New translations tabs.json (Dutch)

* New translations instance.json (Catalan)

* New translations compose.json (Catalan)

* New translations tabs.json (Catalan)

* New translations instance.json (Ukrainian)

* New translations compose.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations instance.json (German)

* New translations tabs.json (German)

* New translations instance.json (Swedish)

* New translations tabs.json (Swedish)

* New translations instance.json (Japanese)

* New translations timeline.json (German)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations tabs.json (Japanese)

* New translations timeline.json (French)

* New translations timeline.json (Polish)

* New translations timeline.json (Spanish)

* New translations timeline.json (Swedish)

* New translations timeline.json (Czech)

* New translations timeline.json (Dutch)

* New translations timeline.json (Catalan)

* New translations timeline.json (Ukrainian)

* New translations timeline.json (Swedish)

* New translations instance.json (Ukrainian)

* New translations timeline.json (Ukrainian)

* New translations tabs.json (Ukrainian)

* New translations instance.json (Chinese Traditional)

* New translations instance.json (Vietnamese)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations timeline.json (Japanese)

* New translations tabs.json (Polish)

* New translations timeline.json (Polish)

* New translations instance.json (Dutch)

* New translations timeline.json (Dutch)

* New translations tabs.json (Dutch)

* New translations timeline.json (German)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Ukrainian)

* New translations instance.json (Chinese Simplified)

* New translations timeline.json (Chinese Simplified)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Swedish)

* New translations tabs.json (Ukrainian)
2022-12-15 00:09:43 +01:00
xmflsct c90c8ee8d4 Fixed #452
Unfortunately iOS does not display RTL languages automatically like Android does, so some simple JS library is needed
2022-12-15 00:03:09 +01:00
xmflsct 4a35e910c1 Fixed #447 2022-12-14 23:37:41 +01:00
xmflsct 7f8a8de898 Fixed #240 2022-12-12 23:59:38 +01:00
xmflsct 6e8515d820 Continue to improve #535 2022-12-12 23:57:07 +01:00
xmflsct 17d4245cd9 Fix card url matching regex 2022-12-12 22:56:31 +01:00
xmflsct 96497aad25 Fixed #552
Assuming most toot won't include more than 4 images. For below 4 images, mostly they are not cropped unless they are too long. For single image, mostly it is not cropped unless it is longer than 3/2.
2022-12-12 22:24:03 +01:00
xmflsct 91be219ff3 Fixed #553 2022-12-12 21:02:17 +01:00
xmflsct 6936e8009a Fixed #554 2022-12-12 20:43:45 +01:00
xmflsct dee4e2810a Bump packages 2022-12-12 00:31:32 +01:00
xmflsct 24ccee8afa Fixed #525
HTML is removed. In this way, if a URL is changed, it can be highlighted as well
2022-12-11 16:52:34 +01:00
xmflsct 306bc45e33 Improve status mini card 2022-12-11 14:08:27 +01:00
xmflsct acca2683af Fix reply card for using the full width 2022-12-11 12:16:12 +01:00
xmflsct c18089bf8a Fixed #549 2022-12-11 12:12:46 +01:00
xmflsct e542f0a52e Fixed #534 2022-12-11 01:46:14 +01:00
xmflsct 73eb695cfc Fixed #538 2022-12-11 01:37:26 +01:00
xmflsct 44379504eb Fixed #533
Added trending in the "public" tab
2022-12-11 01:08:38 +01:00
xmflsct 1ece7b3fe3 Fixed #541
Mastodon does not offer the functionality to group notifications like Twitter does, therefore the best solution is to collapse more content by default, assuming users roughly remember what they have tooted
2022-12-10 23:24:41 +01:00
xmflsct 36bbe5bdbd Fixed #548 2022-12-10 23:11:41 +01:00
xmflsct 213328ef1a Add admin notifications besides push #535 2022-12-10 22:43:37 +01:00
xmflsct bdbacf579e Fixed #536 2022-12-10 20:19:18 +01:00
xmflsct 357c4039cb
544 migrate to react query v4 (#547)
* Update all imports

* Update isLoading

* Update onlineManager
2022-12-10 14:47:19 +01:00
xmflsct b449d50b78 Fix push server key data staled 2022-12-10 13:38:26 +01:00
xmflsct 88312e4df5 Fix missing comma 2022-12-10 02:07:49 +01:00
xmflsct 748351026f Improve push error messaging 2022-12-10 01:59:26 +01:00
xmflsct 1a069d5acc Fixed #542 2022-12-10 00:42:45 +01:00
xmflsct e7fb9ed452 Try to fix #543
No physical phone to test
2022-12-10 00:31:11 +01:00
xmflsct 1b58bcad3e Fixed #535 2022-12-09 21:09:00 +01:00
xmflsct 44f83e44b9 Fixed #539
Respect system's reduced motion enabled setting
2022-12-09 00:48:34 +01:00
xmflsct 4a28d47b41 Simple fix #540 2022-12-09 00:35:02 +01:00
xmflsct 7a14c89e5b Fixed #537 2022-12-08 00:38:05 +01:00
xmflsct d6b3eabb18 Fixed #527 2022-12-08 00:19:22 +01:00
xmflsct 3e081ab377 Bringing back building apk 2022-12-08 00:13:41 +01:00
xmflsct 3345692719 Remove review menu 2022-12-08 00:11:03 +01:00
xmflsct 705c1d0ad0 Fixed #529 2022-12-07 23:56:00 +01:00
xmflsct c89612d875 Fixed #530 thanks to ChatGPT 2022-12-06 21:54:32 +01:00
xmflsct 5239fb83c6
New Crowdin updates (#524)
* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations tabs.json (Dutch)

* New translations tabs.json (Catalan)

* New translations tabs.json (Chinese Simplified)
2022-12-05 23:21:10 +01:00
xmflsct 1f2e34e9da Added push server error messaging
Also clean up <Message> component
2022-12-05 23:15:07 +01:00
xmflsct c4f825e087 Would adding View helps #472 ? 2022-12-05 22:11:45 +01:00
xmflsct 5338720106 Fix notification account info not shown 2022-12-05 21:30:19 +01:00
xmflsct 53b38004c3
New Crowdin updates (#517)
* New translations contextMenu.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations common.json (Vietnamese)
2022-12-05 19:59:41 +01:00
xmflsct 210b34304c Refine error logging
Previous attempt resulted in truncated error object which is not readable
2022-12-05 19:24:03 +01:00
xmflsct db6ef36278 Fix account description folding 2022-12-05 18:56:38 +01:00
xmflsct 51489e8e26
New Crowdin updates (#512)
* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Catalan)

* New translations tabs.json (Spanish)

* New translations tabs.json (Catalan)

* New translations contextMenu.json (Japanese)

* New translations screens.json (Dutch)

* New translations tabs.json (Dutch)

* New translations mediaSelector.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations tabs.json (Dutch)

* New translations contextMenu.json (Dutch)
2022-12-05 14:52:48 +01:00
xmflsct c6e27d6d88 Fixed #514 2022-12-05 14:50:03 +01:00
xmflsct 955478c605 Try out DoNotMix
#499
2022-12-05 13:43:02 +01:00
xmflsct 2516b9753b Fix iOS language cannot be changed 2022-12-05 13:40:36 +01:00
xmflsct a901fdb9ff
New Crowdin updates (#509)
* New translations contextMenu.json (German)

* New translations tabs.json (Chinese Traditional)
2022-12-04 20:09:38 +01:00
xmflsct 3d590d836d Fix search debouncing 2022-12-04 20:08:55 +01:00
xmflsct e2e5e80aaf Remove previous fix attempts
#499
2022-12-04 18:42:01 +01:00
xmflsct cb7762d18c Fix Sentry reports 2022-12-04 17:56:47 +01:00
xmflsct b70ca924a1 Fix wrong query key 2022-12-04 16:16:53 +01:00
xmflsct fc06e4c629 Update audio.ts 2022-12-04 16:05:35 +01:00
xmflsct 35bf588b75
Merge pull request #492 from de1acr0ix/fullscreen-video-play-from-start
Always play video in fullscreen from beginning
2022-12-04 14:49:23 +01:00
xmflsct 580ed84d67
New Crowdin updates (#503)
* New translations tabs.json (German)

* New translations tabs.json (Japanese)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations tabs.json (Korean)

* New translations common.json (Korean)

* New translations screens.json (Korean)

* New translations tabs.json (Korean)

* New translations tabs.json (Swedish)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations contextMenu.json (French)

* New translations contextMenu.json (Polish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Czech)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Catalan)

* New translations contextMenu.json (Chinese Simplified)
2022-12-04 14:39:44 +01:00
xmflsct 79246ff821 Refine logging 2022-12-04 14:39:27 +01:00
xmflsct 8d0a58b975
Merge pull request #507 from de1acr0ix/workaround-ios-background-stop-other-audio
Patch expo-av to fix audio issue when switched to background on iOS
2022-12-04 13:58:34 +01:00
Hanjiang Yu 24d57704b9 Patch expo-av 2022-12-04 20:48:52 +08:00
xmflsct 413bb4b76f Fixed #506 2022-12-04 13:48:50 +01:00
xmflsct 196fb05dea Remove button animation
Not great
2022-12-04 13:37:42 +01:00
xmflsct c79caa6dc7 Fixed #505 2022-12-04 13:26:36 +01:00
xmflsct e1e700543f Refine component account 2022-12-04 12:57:03 +01:00
xmflsct 6146ecf712 Fix git folder renaming 2022-12-04 12:29:44 +01:00
xmflsct 7faa4b5044 Added Catalan 2022-12-04 01:24:37 +01:00
xmflsct 277d114b27 Added Dutch 2022-12-04 01:20:49 +01:00
xmflsct 7096c0e2cb Merge branch 'main' of https://github.com/tooot-app/app 2022-12-04 01:14:43 +01:00
xmflsct b3441d6edb
New Crowdin updates (#488)
* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Spanish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Czech)

* New translations common.json (Dutch)

* New translations instance.json (Dutch)

* New translations parse.json (Dutch)

* New translations relationship.json (Dutch)

* New translations timeline.json (Dutch)

* New translations actions.json (Dutch)

* New translations imageViewer.json (Dutch)

* New translations announcements.json (Dutch)

* New translations compose.json (Dutch)

* New translations screens.json (Dutch)

* New translations tabs.json (Dutch)

* New translations mediaSelector.json (Dutch)

* New translations emojis.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations accountSelection.json (Dutch)

* New translations common.json (Dutch)

* New translations instance.json (Dutch)

* New translations parse.json (Dutch)

* New translations relationship.json (Dutch)

* New translations timeline.json (Dutch)

* New translations actions.json (Dutch)

* New translations imageViewer.json (Dutch)

* New translations announcements.json (Dutch)

* New translations compose.json (Dutch)

* New translations screens.json (Dutch)

* New translations tabs.json (Dutch)

* New translations timeline.json (Dutch)

* New translations actions.json (Dutch)

* New translations compose.json (Dutch)

* New translations screens.json (Dutch)

* New translations tabs.json (Dutch)

* New translations mediaSelector.json (Dutch)

* New translations emojis.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations accountSelection.json (Dutch)

* New translations instance.json (German)

* New translations tabs.json (Chinese Traditional)

* New translations compose.json (Chinese Simplified)

* New translations compose.json (Chinese Traditional)

* New translations compose.json (Vietnamese)

* New translations compose.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Vietnamese)

* New translations compose.json (Japanese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations common.json (German)

* New translations common.json (Italian)

* New translations common.json (Japanese)

* New translations common.json (Korean)

* New translations common.json (Chinese Simplified)

* New translations common.json (Chinese Traditional)

* New translations common.json (Vietnamese)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (French)

* New translations compose.json (Korean)

* New translations compose.json (Italian)

* New translations instance.json (Italian)

* New translations contextMenu.json (Chinese Simplified)

* New translations instance.json (Japanese)

* New translations instance.json (Korean)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Chinese Traditional)

* New translations instance.json (Vietnamese)

* New translations instance.json (Portuguese, Brazilian)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Traditional)

* New translations compose.json (German)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations imageViewer.json (German)

* New translations imageViewer.json (Italian)

* New translations imageViewer.json (Japanese)

* New translations imageViewer.json (Korean)

* New translations imageViewer.json (Chinese Simplified)

* New translations imageViewer.json (Chinese Traditional)

* New translations imageViewer.json (Vietnamese)

* New translations imageViewer.json (Portuguese, Brazilian)

* New translations instance.json (French)

* New translations imageViewer.json (French)

* New translations imageViewer.json (Swedish)

* New translations tabs.json (Dutch)

* New translations compose.json (Dutch)

* New translations imageViewer.json (Dutch)

* New translations instance.json (Dutch)

* New translations common.json (Dutch)

* New translations contextMenu.json (Czech)

* New translations tabs.json (Czech)

* New translations compose.json (Czech)

* New translations imageViewer.json (Czech)

* New translations instance.json (Czech)

* New translations common.json (Czech)

* New translations contextMenu.json (Swedish)

* New translations tabs.json (Swedish)

* New translations compose.json (Swedish)

* New translations instance.json (Swedish)

* New translations compose.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (French)

* New translations contextMenu.json (French)

* New translations common.json (Polish)

* New translations instance.json (Polish)

* New translations imageViewer.json (Polish)

* New translations compose.json (Polish)

* New translations contextMenu.json (Polish)

* New translations common.json (Swedish)

* New translations common.json (Spanish)

* New translations instance.json (Spanish)

* New translations imageViewer.json (Spanish)

* New translations compose.json (Spanish)

* New translations tabs.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (Japanese)

* New translations tabs.json (Japanese)

* New translations common.json (Japanese)

* New translations common.json (Dutch)

* New translations tabs.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations common.json (Swedish)

* New translations tabs.json (Swedish)

* New translations contextMenu.json (Swedish)

* New translations contextMenu.json (Dutch)

* New translations contextMenu.json (German)

* New translations tabs.json (German)

* New translations common.json (German)

* New translations common.json (Spanish)

* New translations tabs.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations contextMenu.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations common.json (Vietnamese)

* New translations contextMenu.json (German)

* New translations tabs.json (Spanish)

* New translations common.json (French)

* New translations tabs.json (French)

* New translations contextMenu.json (French)

* New translations common.json (Polish)

* New translations tabs.json (Polish)

* New translations contextMenu.json (Polish)

* New translations common.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations common.json (Vietnamese)

* New translations common.json (Swedish)

* New translations tabs.json (Swedish)

* New translations contextMenu.json (Swedish)

* New translations common.json (Czech)

* New translations tabs.json (Czech)

* New translations contextMenu.json (Czech)

* New translations common.json (Dutch)

* New translations tabs.json (Dutch)

* New translations common.json (Portuguese, Brazilian)

* New translations common.json (Chinese Traditional)

* New translations contextMenu.json (Italian)

* New translations tabs.json (Japanese)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Korean)

* New translations common.json (Chinese Simplified)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations common.json (German)

* New translations common.json (Italian)

* New translations common.json (Japanese)

* New translations common.json (Korean)

* New translations contextMenu.json (Dutch)

* New translations actions.json (Catalan)

* New translations contextMenu.json (Catalan)

* New translations emojis.json (Catalan)

* New translations mediaSelector.json (Catalan)

* New translations tabs.json (Catalan)

* New translations screens.json (Catalan)

* New translations compose.json (Catalan)

* New translations announcements.json (Catalan)

* New translations imageViewer.json (Catalan)

* New translations timeline.json (Catalan)

* New translations timeline.json (Chinese Traditional)

* New translations relationship.json (Catalan)

* New translations parse.json (Catalan)

* New translations instance.json (Catalan)

* New translations common.json (Catalan)

* New translations contextMenu.json (Spanish)

* New translations common.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations contextMenu.json (Chinese Traditional)

* New translations mediaSelector.json (Chinese Traditional)

* New translations accountSelection.json (Catalan)

* New translations common.json (Dutch)

* New translations tabs.json (Dutch)

* New translations contextMenu.json (Dutch)

* New translations common.json (Catalan)

* New translations instance.json (Catalan)

* New translations parse.json (Catalan)

* New translations timeline.json (Catalan)

* New translations actions.json (Catalan)

* New translations imageViewer.json (Catalan)

* New translations announcements.json (Catalan)

* New translations compose.json (Catalan)

* New translations screens.json (Catalan)

* New translations tabs.json (Catalan)

* New translations contextMenu.json (Catalan)

* New translations tabs.json (Spanish)

* New translations compose.json (Catalan)

* New translations tabs.json (Catalan)

* New translations tabs.json (German)

* New translations tabs.json (Polish)

* New translations compose.json (Catalan)

* New translations timeline.json (Catalan)

* New translations tabs.json (Dutch)

* New translations tabs.json (Czech)

* New translations tabs.json (Swedish)

* New translations tabs.json (Spanish)

* New translations tabs.json (French)

* New translations tabs.json (Italian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Korean)

* New translations tabs.json (Japanese)

* New translations tabs.json (Catalan)

* New translations tabs.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Simplified)

* New translations common.json (Chinese Simplified)
2022-12-04 01:14:27 +01:00
xmflsct 52ece9a2eb Bump up packages 2022-12-04 01:12:59 +01:00
xmflsct be30ec3e3c Fix Android crashing 2022-12-04 00:38:15 +01:00
xmflsct 9f76fa08a8 Fix Android browser package 2022-12-04 00:35:13 +01:00
xmflsct d8bff02136 Fix logging logic 2022-12-04 00:13:54 +01:00
xmflsct dab09369cb Add trending tags in search landing page 2022-12-03 23:49:14 +01:00
xmflsct 8a7e78485d Add hashtag sparkline 2022-12-03 23:10:20 +01:00
xmflsct 7421ffd1bc Fix toot relative time does not align with app's language 2022-12-03 21:56:52 +01:00
xmflsct 0fd3fcfd3f Add logging for #472 2022-12-03 21:38:35 +01:00
xmflsct 507ecf5eeb Fix history page 2022-12-03 21:14:00 +01:00
xmflsct 20a55efb9c Fixed #476 2022-12-03 20:47:11 +01:00
xmflsct 6a9f951dba Move screen options into each screen 2022-12-03 16:50:54 +01:00
xmflsct ddfd3a830d
Merge pull request #500 from tooot-app/dependabot/npm_and_yarn/decode-uri-component-0.2.2
Bump decode-uri-component from 0.2.0 to 0.2.2
2022-12-03 16:30:26 +01:00
xmflsct 29fd36a581 Fixed #495 2022-12-03 15:50:15 +01:00
dependabot[bot] 267fa2194d
Bump decode-uri-component from 0.2.0 to 0.2.2
Bumps [decode-uri-component](https://github.com/SamVerschueren/decode-uri-component) from 0.2.0 to 0.2.2.
- [Release notes](https://github.com/SamVerschueren/decode-uri-component/releases)
- [Commits](https://github.com/SamVerschueren/decode-uri-component/compare/v0.2.0...v0.2.2)

---
updated-dependencies:
- dependency-name: decode-uri-component
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-03 00:09:10 +00:00
xmflsct a3a0bf523f Moving to using zeego 2022-12-03 01:08:38 +01:00
xmflsct f619d1bb6a Partial fix #495
Added list removing users
2022-12-02 00:13:59 +01:00
xmflsct 0cc1cdd4b6 Partial fix #495
Add delete list
Also trying out new context menu
2022-11-30 23:47:05 +01:00
xmflsct bb3ddd2779 Partial fix #495
Add list
Edit list info
2022-11-30 22:42:42 +01:00
xmflsct de7498b218 Fixed #497 2022-11-29 23:44:11 +01:00
xmflsct 75800598c2 Fix #489 2022-11-29 21:59:52 +01:00
xmflsct eda77fd7fc Bump packages 2022-11-29 21:58:59 +01:00
xmflsct b80c84f181
Merge pull request #493 from de1acr0ix/fix-undefined-in-dm
Fix the "undefined" string in DM
2022-11-28 22:53:35 +01:00
xmflsct d5c65af44c
Merge pull request #491 from de1acr0ix/audio-in-silent-mode-ios
Play audio in silent mode on iOS
2022-11-28 22:50:27 +01:00
Hanjiang Yu c60de7a5a1 Fix the "undefined" string in DM 2022-11-28 21:42:01 +08:00
Hanjiang Yu 0a5fea1194 Always play video in fullscreen from beginning 2022-11-28 20:36:39 +08:00
Hanjiang Yu 0e9ef0ec40 Play audio in silent mode on iOS 2022-11-25 22:31:49 +08:00
xmflsct bd750da9d5 Update useConnect.ts 2022-11-23 22:09:41 +01:00
xmflsct 6c17123fe3 Try if can find out why badge is not cleared 2022-11-23 21:31:58 +01:00
xmflsct a9d40079cc
New Crowdin updates (#479)
* New translations tabs.json (Japanese)

* New translations tabs.json (Swedish)

* New translations compose.json (Swedish)

* New translations compose.json (Swedish)

* New translations tabs.json (Swedish)

* New translations instance.json (German)

* New translations timeline.json (German)

* New translations contextMenu.json (German)

* New translations actions.json (German)

* New translations tabs.json (German)
2022-11-22 22:04:23 +01:00
xmflsct a0c440be5e Should fix #484 2022-11-22 22:00:33 +01:00
xmflsct 9b40a605b4 Fixed #481 2022-11-22 21:44:56 +01:00
xmflsct a631966952 Now it should finally fix #451 2022-11-22 21:39:25 +01:00
xmflsct 39bda959e3 Bump up packages 2022-11-22 21:10:09 +01:00
xmflsct 8a8b95180b Could not figure out how to build apk properly now
https://github.com/facebook/react-native/issues/34686#issuecomment-1248204118
2022-11-21 21:31:48 +01:00
xmflsct c07522f68b
New Crowdin updates (#474)
* New translations relationship.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Spanish)

* New translations tabs.json (Spanish)

* New translations timeline.json (Spanish)

* New translations screens.json (Spanish)

* New translations tabs.json (Spanish)
2022-11-20 22:49:36 +01:00
xmflsct 51165e47ea Fix Android sharing 2022-11-20 22:42:09 +01:00
xmflsct bfd9e8d50c Update Default.tsx 2022-11-20 22:27:15 +01:00
xmflsct 4f329d7724 Update audio.ts 2022-11-20 22:02:19 +01:00
xmflsct e8b3187f9e Try stopping video playback if audio issue could be fiexed 2022-11-20 17:39:36 +01:00
xmflsct 668a1dc6a6 Added Swedish translation 2022-11-20 16:47:11 +01:00
xmflsct c6bdc08d0f
New Crowdin updates (#468)
* New translations tabs.json (Spanish)

* New translations common.json (Spanish)

* New translations instance.json (Spanish)

* New translations timeline.json (Spanish)

* New translations tabs.json (Spanish)

* New translations mediaSelector.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations tabs.json (Spanish)

* New translations mediaSelector.json (Italian)

* New translations parse.json (Italian)

* New translations relationship.json (Italian)

* New translations timeline.json (Italian)

* New translations actions.json (Italian)

* New translations announcements.json (Italian)

* New translations compose.json (Italian)

* New translations accountSelection.json (Italian)

* New translations common.json (Swedish)

* New translations instance.json (Swedish)

* New translations parse.json (Swedish)

* New translations relationship.json (Swedish)

* New translations timeline.json (Swedish)

* New translations actions.json (Swedish)

* New translations imageViewer.json (Swedish)

* New translations announcements.json (Swedish)

* New translations compose.json (Swedish)

* New translations screens.json (Swedish)

* New translations tabs.json (Swedish)

* New translations mediaSelector.json (Swedish)

* New translations emojis.json (Swedish)

* New translations contextMenu.json (Swedish)

* New translations accountSelection.json (Swedish)

* New translations common.json (Swedish)

* New translations instance.json (Swedish)

* New translations instance.json (Swedish)

* New translations parse.json (Swedish)

* New translations relationship.json (Swedish)

* New translations timeline.json (Swedish)

* New translations timeline.json (Swedish)

* New translations actions.json (Swedish)

* New translations imageViewer.json (Swedish)

* New translations announcements.json (Swedish)

* New translations compose.json (Swedish)

* New translations tabs.json (Swedish)

* New translations mediaSelector.json (Swedish)

* New translations emojis.json (Swedish)

* New translations contextMenu.json (Swedish)

* New translations accountSelection.json (Swedish)

* New translations compose.json (Swedish)

* New translations screens.json (Swedish)

* New translations tabs.json (Swedish)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Polish)

* New translations tabs.json (Swedish)

* New translations tabs.json (Spanish)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations tabs.json (Swedish)

* New translations tabs.json (Spanish)
2022-11-20 16:42:11 +01:00
xmflsct 18e7262f6f Fixed #471 2022-11-20 16:14:08 +01:00
xmflsct fbfae52627 Try fix #451
Android does not support true context menu anyway, thus removing per toot component.
2022-11-20 14:41:41 +01:00
xmflsct bf8826fec4 Fixed #469 2022-11-19 17:48:51 +01:00
xmflsct f1e424e919 Update Podfile.lock 2022-11-17 23:13:26 +01:00
xmflsct 6939010ffd
New Crowdin updates (#465)
* New translations timeline.json (Italian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (German)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations timeline.json (French)

* New translations timeline.json (Spanish)

* New translations tabs.json (Spanish)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Italian)

* New translations timeline.json (German)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (French)

* New translations timeline.json (French)

* New translations timeline.json (Spanish)

* New translations tabs.json (Spanish)
2022-11-17 22:40:47 +01:00
xmflsct ce0adeeb66 Try Android fix
https://github.com/mpiannucci/react-native-context-menu-view/issues/43#issuecomment-1035516730
2022-11-17 22:28:58 +01:00
xmflsct e91a1e3eff Refine copy 2022-11-17 22:22:23 +01:00
xmflsct 3038127fcc Fix filtering hashtag 2022-11-17 22:18:34 +01:00
xmflsct 5907d43eb2 Fixed #463 2022-11-17 21:48:22 +01:00
xmflsct aa5ad5cd4e Fixed #464 2022-11-17 20:13:09 +01:00
xmflsct 94c4c7c942 Prevent i18next from barking
https://github.com/i18next/i18next/pull/1865
2022-11-17 20:09:07 +01:00
xmflsct 1b2e651117 Added Spanish translation 2022-11-17 20:02:56 +01:00
xmflsct 64762d4670 Merge branch 'main' of https://github.com/tooot-app/app 2022-11-17 19:48:46 +01:00
xmflsct 92b28660ef
New Crowdin updates (#462)
* New translations common.json (Spanish)

* New translations instance.json (Spanish)

* New translations parse.json (Spanish)

* New translations relationship.json (Spanish)

* New translations timeline.json (Spanish)

* New translations actions.json (Spanish)

* New translations imageViewer.json (Spanish)

* New translations announcements.json (Spanish)

* New translations compose.json (Spanish)

* New translations timeline.json (German)

* New translations actions.json (German)

* New translations compose.json (German)

* New translations tabs.json (German)

* New translations timeline.json (Spanish)

* New translations mediaSelector.json (Spanish)

* New translations emojis.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations timeline.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (German)

* New translations contextMenu.json (German)

* New translations announcements.json (Spanish)

* New translations compose.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations accountSelection.json (Spanish)

* New translations timeline.json (Spanish)

* New translations imageViewer.json (Spanish)

* New translations compose.json (Spanish)

* New translations tabs.json (Spanish)

* New translations instance.json (Korean)

* New translations parse.json (Korean)

* New translations timeline.json (Korean)

* New translations mediaSelector.json (Korean)

* New translations emojis.json (Korean)

* New translations contextMenu.json (Korean)

* New translations instance.json (Korean)

* New translations timeline.json (Korean)

* New translations contextMenu.json (Korean)

* New translations actions.json (Korean)

* New translations announcements.json (Korean)

* New translations compose.json (Korean)

* New translations tabs.json (Korean)

* New translations accountSelection.json (Korean)

* New translations screens.json (Korean)

* New translations timeline.json (Spanish)

* New translations common.json (Spanish)

* New translations timeline.json (Spanish)

* New translations actions.json (Spanish)

* New translations compose.json (Spanish)

* New translations screens.json (Spanish)

* New translations tabs.json (Spanish)
2022-11-17 19:48:04 +01:00
xmflsct 0d39f25f39 Bump packages 2022-11-17 19:34:43 +01:00
xmflsct 0f6a28abc5 Fix building 2022-11-14 17:54:11 +01:00
xmflsct 925ba2e263
Merge branch 'candidate' into main 2022-11-14 16:12:05 +01:00
xmflsct 83090397ec
New Crowdin updates (#455)
* New translations timeline.json (German)

* New translations timeline.json (Italian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (French)

* New translations contextMenu.json (French)

* New translations timeline.json (Chinese Simplified)

* New translations common.json (Polish)

* New translations instance.json (Polish)

* New translations parse.json (Polish)

* New translations relationship.json (Polish)

* New translations timeline.json (Polish)

* New translations actions.json (Polish)

* New translations imageViewer.json (Polish)

* New translations announcements.json (Polish)

* New translations compose.json (Polish)

* New translations screens.json (Polish)

* New translations tabs.json (Polish)

* New translations mediaSelector.json (Polish)

* New translations emojis.json (Polish)

* New translations contextMenu.json (Polish)

* New translations accountSelection.json (Polish)

* New translations parse.json (Japanese)

* New translations timeline.json (Japanese)

* New translations mediaSelector.json (Japanese)

* New translations tabs.json (Japanese)

* New translations screens.json (Japanese)

* New translations timeline.json (French)

* New translations common.json (Polish)

* New translations timeline.json (Polish)

* New translations common.json (Spanish)

* New translations instance.json (Spanish)

* New translations parse.json (Spanish)

* New translations relationship.json (Spanish)

* New translations timeline.json (Spanish)

* New translations actions.json (Spanish)

* New translations imageViewer.json (Spanish)

* New translations announcements.json (Spanish)

* New translations compose.json (Spanish)

* New translations screens.json (Spanish)

* New translations tabs.json (Spanish)

* New translations mediaSelector.json (Spanish)

* New translations emojis.json (Spanish)

* New translations contextMenu.json (Spanish)

* New translations accountSelection.json (Spanish)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Vietnamese)
2022-11-14 16:08:35 +01:00
xmflsct f11d3abe98 Try to capture connect failure 2022-11-14 16:04:15 +01:00
xmflsct 95f0c5859b Bump SDWebImage 2022-11-14 16:04:05 +01:00
xmflsct b196d87cb1 Fixed #442 2022-11-14 15:54:51 +01:00
xmflsct 6a90557d2b Fix Android building 2022-11-14 14:52:23 +01:00
xmflsct dc83818e90 Increase review count 2022-11-12 18:01:17 +01:00
xmflsct 641e1f0cdc
Test updates (#456)
* Build succeeded

* Fix RN update caused Android build error

Spent whole fucking 2 days to figure this out https://github.com/facebook/react-native/issues/35210

* Fixed #408

Potentially because of too small pressable area

* Fixed #439

* Bump up RN and Expo

* Fixed #450

* Spelling (#449)

* spelling: announcement

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: corrupted

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: dimensions

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: favourites

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: mutation

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: retrieve

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: transitive

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* Fixed #451

More properly adjusted flexbox layout

* Partial fix of #444

It is possible to implement what the web does but that adds additional resources which I believe is not justified. Filtering is meant to be precise. Even hiding the entire block that you still would like to take a look at the content, then why would you set up a certain filter then.

Though showing the matched filter is still useful.

* New Crowdin updates (#440)

* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Chinese Simplified)

* New translations instance.json (German)

* New translations parse.json (German)

* New translations timeline.json (German)

* New translations mediaSelector.json (German)

* New translations emojis.json (German)

* New translations contextMenu.json (German)

* New translations actions.json (German)

* New translations compose.json (German)

* New translations accountSelection.json (German)

* New translations timeline.json (German)

* New translations contextMenu.json (German)

* New translations actions.json (German)

* New translations compose.json (German)

* New translations tabs.json (German)

* New translations screens.json (German)

* New translations common.json (French)

* New translations instance.json (French)

* New translations parse.json (French)

* New translations relationship.json (French)

* New translations timeline.json (French)

* New translations actions.json (French)

* New translations imageViewer.json (French)

* New translations announcements.json (French)

* New translations compose.json (French)

* New translations screens.json (French)

* New translations tabs.json (French)

* New translations mediaSelector.json (French)

* New translations emojis.json (French)

* New translations contextMenu.json (French)

* New translations accountSelection.json (French)

* New translations actions.json (French)

* New translations announcements.json (French)

* New translations compose.json (French)

* New translations accountSelection.json (French)

* New translations instance.json (French)

* New translations parse.json (French)

* New translations relationship.json (French)

* New translations timeline.json (French)

* New translations imageViewer.json (French)

* New translations compose.json (French)

* New translations tabs.json (French)

* New translations mediaSelector.json (French)

* New translations emojis.json (French)

* New translations contextMenu.json (French)

* New translations common.json (French)

* New translations compose.json (French)

* New translations screens.json (French)

* New translations tabs.json (French)

* New translations contextMenu.json (French)

* New translations common.json (French)

* New translations instance.json (French)

* Added French translation 🇫🇷

* Fixed #454

* Fixed #443

Basically matching all none whitespace characters

* Fixed #446

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
Co-authored-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-12 17:59:32 +01:00
xmflsct f2de56f602 Fixed #446 2022-11-12 17:52:50 +01:00
xmflsct c8c3adf088 Fixed #443
Basically matching all none whitespace characters
2022-11-12 12:02:28 +01:00
xmflsct 4d7606cd53 Fixed #454 2022-11-12 11:51:29 +01:00
xmflsct 026ee9ce6d Added French translation 🇫🇷 2022-11-11 23:59:16 +01:00
xmflsct d6a2ae5e56
New Crowdin updates (#440)
* New translations tabs.json (German)

* New translations tabs.json (Italian)

* New translations tabs.json (Japanese)

* New translations tabs.json (Korean)

* New translations tabs.json (Chinese Simplified)

* New translations tabs.json (Chinese Traditional)

* New translations tabs.json (Vietnamese)

* New translations tabs.json (Portuguese, Brazilian)

* New translations tabs.json (Chinese Simplified)

* New translations instance.json (German)

* New translations parse.json (German)

* New translations timeline.json (German)

* New translations mediaSelector.json (German)

* New translations emojis.json (German)

* New translations contextMenu.json (German)

* New translations actions.json (German)

* New translations compose.json (German)

* New translations accountSelection.json (German)

* New translations timeline.json (German)

* New translations contextMenu.json (German)

* New translations actions.json (German)

* New translations compose.json (German)

* New translations tabs.json (German)

* New translations screens.json (German)

* New translations common.json (French)

* New translations instance.json (French)

* New translations parse.json (French)

* New translations relationship.json (French)

* New translations timeline.json (French)

* New translations actions.json (French)

* New translations imageViewer.json (French)

* New translations announcements.json (French)

* New translations compose.json (French)

* New translations screens.json (French)

* New translations tabs.json (French)

* New translations mediaSelector.json (French)

* New translations emojis.json (French)

* New translations contextMenu.json (French)

* New translations accountSelection.json (French)

* New translations actions.json (French)

* New translations announcements.json (French)

* New translations compose.json (French)

* New translations accountSelection.json (French)

* New translations instance.json (French)

* New translations parse.json (French)

* New translations relationship.json (French)

* New translations timeline.json (French)

* New translations imageViewer.json (French)

* New translations compose.json (French)

* New translations tabs.json (French)

* New translations mediaSelector.json (French)

* New translations emojis.json (French)

* New translations contextMenu.json (French)

* New translations common.json (French)

* New translations compose.json (French)

* New translations screens.json (French)

* New translations tabs.json (French)

* New translations contextMenu.json (French)

* New translations common.json (French)

* New translations instance.json (French)
2022-11-11 23:47:48 +01:00
xmflsct 1ae7cc7038 Partial fix of #444
It is possible to implement what the web does but that adds additional resources which I believe is not justified. Filtering is meant to be precise. Even hiding the entire block that you still would like to take a look at the content, then why would you set up a certain filter then.

Though showing the matched filter is still useful.
2022-11-11 23:46:22 +01:00
xmflsct 72917c21f6 Fixed #451
More properly adjusted flexbox layout
2022-11-11 22:46:08 +01:00
Josh Soref beb7ba9dc2
Spelling (#449)
* spelling: announcement

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: corrupted

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: dimensions

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: favourites

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: mutation

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: retrieve

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

* spelling: transitive

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-11 21:53:30 +01:00
xmflsct 3207fc3b58 Fixed #450 2022-11-11 13:58:09 +01:00
xmflsct 6d6dd1a21c Bump up RN and Expo 2022-11-11 13:50:20 +01:00
xmflsct 020ad6be34 Merge branch 'upgrade-to-expo-47' 2022-11-10 19:43:39 +01:00
xmflsct d4be002016 Fixed #439 2022-11-06 23:39:31 +01:00
xmflsct 28028c8aab Fixed #408
Potentially because of too small pressable area
2022-11-05 23:42:59 +01:00
xmflsct 6dcf0f0d7d Fix RN update caused Android build error
Spent whole fucking 2 days to figure this out https://github.com/facebook/react-native/issues/35210
2022-11-05 22:41:10 +01:00
xmflsct 543d345ea5 Build succeeded 2022-11-05 22:33:16 +01:00
xmflsct abff63eef0
Merge pull request #434 from tooot-app/main
Test v4.5.1
2022-11-05 01:56:17 +01:00
xmflsct a0eac3bc01
New Crowdin updates (#431)
* New translations parse.json (Vietnamese)

* New translations timeline.json (Vietnamese)

* New translations tabs.json (Chinese Traditional)

* New translations instance.json (Chinese Traditional)

* New translations timeline.json (Chinese Traditional)

* New translations mediaSelector.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)
2022-11-05 01:55:44 +01:00
xmflsct 7063d30219 Bump to v4.5.1 2022-11-05 01:55:12 +01:00
xmflsct c75bf73a94 Fix Play Store complaining 2022-11-05 01:31:34 +01:00
xmflsct 9ec6f7331d Fixed #433
So weird iOS does not have this issue...
2022-11-05 01:19:44 +01:00
xmflsct 7ef88c735b Add details to UA 2022-11-05 01:11:09 +01:00
xmflsct 0d9992107c Fixed #432
这应该能修复问题1
2022-11-04 23:38:29 +01:00
xmflsct 4b1d628c5e Upgrade to Xcode 14.1 2022-11-04 23:18:21 +01:00
xmflsct 43c5f98529 Merge branch 'main' into candidate 2022-10-31 23:54:20 +01:00
xmflsct 534bfcaf78
New Crowdin updates (#429)
* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (Japanese)

* New translations timeline.json (Korean)

* New translations timeline.json (Italian)

* New translations timeline.json (German)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Chinese Traditional)
2022-10-31 23:54:09 +01:00
xmflsct 32cd53310c Merge branch 'main' into candidate 2022-10-31 23:44:17 +01:00
xmflsct cc3d5b14e5 Fixed #427 2022-10-31 23:43:42 +01:00
xmflsct fa0d28acd1 Fixed #426 2022-10-31 22:29:45 +01:00
xmflsct 4f22e4bd78 Fixed #425 2022-10-31 22:15:51 +01:00
xmflsct c75ecefb09 Fixed #424 2022-10-31 21:54:24 +01:00
xmflsct b6b27a821e Merge branch 'main' into candidate 2022-10-31 20:00:58 +01:00
xmflsct 5f53f66004 Merge branch 'main' of https://github.com/tooot-app/app 2022-10-31 19:42:52 +01:00
xmflsct 5c255ffa6d Prevent going back when zoomed 2022-10-31 19:42:49 +01:00
xmflsct 9863e13e43 Bump up packages 2022-10-31 19:42:14 +01:00
xmflsct 15fded8c6e
Merge pull request #423 from tooot-app/main
Update build.yml
2022-10-31 09:05:17 +01:00
xmflsct 7a5735acd7
Update build.yml 2022-10-31 09:04:53 +01:00
xmflsct bf10e15445 Merge branch 'main' into candidate 2022-10-31 00:31:52 +01:00
xmflsct da1ea314a4 Swipe down close image
https://github.com/intergalacticspacehighway/react-native-reanimated-zoom/issues/15
2022-10-31 00:31:31 +01:00
xmflsct eb5940b85d Merge branch 'main' of https://github.com/tooot-app/app 2022-10-31 00:22:23 +01:00
xmflsct 8a67fbb29c Fix iOS building 2022-10-31 00:22:20 +01:00
xmflsct badca62765
New Crowdin updates (#422)
* New translations mediaSelector.json (Chinese Traditional)

* New translations compose.json (Chinese Traditional)
2022-10-30 22:36:36 +01:00
xmflsct 7655d313a7 Merge branch 'main' into candidate 2022-10-30 22:25:11 +01:00
xmflsct 16574c7d6d Build 2022-10-30 22:25:06 +01:00
xmflsct ba5012134f Merge branch 'main' into candidate 2022-10-30 19:18:46 +01:00
xmflsct 30ca455634 Try to fix building 2022-10-30 19:17:52 +01:00
xmflsct 9a17d7de96 Merge branch 'main' into candidate 2022-10-30 17:48:26 +01:00
xmflsct ab0adb7c2b Merge branch 'main' of https://github.com/tooot-app/app 2022-10-30 17:43:00 +01:00
xmflsct 82be585a5b Try out live text view 2022-10-30 17:42:57 +01:00
xmflsct 24528b3bb5
New Crowdin updates (#421)
* New translations parse.json (German)

* New translations parse.json (Italian)

* New translations parse.json (Japanese)

* New translations parse.json (Korean)

* New translations parse.json (Chinese Simplified)

* New translations parse.json (Chinese Traditional)

* New translations parse.json (Vietnamese)

* New translations parse.json (Portuguese, Brazilian)

* New translations parse.json (Chinese Simplified)

* New translations parse.json (German)

* New translations parse.json (Italian)

* New translations parse.json (Japanese)

* New translations parse.json (Korean)

* New translations parse.json (Chinese Traditional)

* New translations parse.json (Vietnamese)

* New translations parse.json (Portuguese, Brazilian)
2022-10-30 15:29:23 +01:00
xmflsct d203c00279 Fixed #417 2022-10-30 15:05:40 +01:00
xmflsct 10e22f9d4a Fixed #418 2022-10-30 14:49:37 +01:00
xmflsct a8cd620cbb Bump SDWebImage 2022-10-30 14:34:38 +01:00
xmflsct 8bc59d3932 Added zh-Hant 2022-10-30 14:29:43 +01:00
xmflsct 73e4497a38
New Crowdin updates (#419)
* New translations common.json (Chinese Traditional)

* New translations screens.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations screens.json (Chinese Traditional)

* New translations instance.json (Chinese Traditional)

* New translations parse.json (Chinese Traditional)

* New translations timeline.json (Chinese Traditional)

* New translations mediaSelector.json (Chinese Traditional)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Chinese Traditional)

* New translations actions.json (Chinese Traditional)

* New translations imageViewer.json (Chinese Traditional)

* New translations announcements.json (Chinese Traditional)

* New translations compose.json (Chinese Traditional)

* New translations tabs.json (Chinese Traditional)

* New translations accountSelection.json (Chinese Traditional)
2022-10-30 14:13:12 +01:00
xmflsct ec32054c8c
Merge pull request #415 from tooot-app/main
Test v4.5.0
2022-10-27 23:34:16 +02:00
xmflsct ea89bfcc9d
New translations timeline.json (Japanese) (#412) 2022-10-27 23:33:38 +02:00
xmflsct 4b39525c82 Try to fix #413 2022-10-27 23:25:09 +02:00
xmflsct 8aaa9bafb7 Fix copy menu item 2022-10-27 23:05:00 +02:00
xmflsct e5f750c3c8 Fix Sentry reported crashes 2022-10-27 22:51:02 +02:00
xmflsct db6b5e4e70 Bump packages 2022-10-27 22:18:38 +02:00
xmflsct 852948fd23
Update package.json
To trigger a new build
2022-10-12 14:53:24 +02:00
xmflsct b9cb66535c
Merge pull request #404 from tooot-app/main
Test v4.3.4
2022-10-11 22:31:56 +02:00
xmflsct 1dc91c160d
New translations mediaSelector.json (Vietnamese) (#403) 2022-10-11 22:30:36 +02:00
xmflsct 950bda6cb9 Update Fastfile 2022-10-11 22:30:18 +02:00
xmflsct e605a35e3a Use system's preferred language for iOS 2022-10-11 22:28:59 +02:00
xmflsct 757e5bb52f Bump packages 2022-10-11 22:25:28 +02:00
xmflsct 5f6be99657
Merge pull request #402 from tooot-app/main
Update build.yml
2022-10-11 01:08:18 +02:00
xmflsct b00f4c47fe
Update build.yml 2022-10-11 01:07:58 +02:00
xmflsct a62f0f14d1
Merge pull request #401 from tooot-app/main
Test v4.3.4
2022-10-11 00:18:24 +02:00
xmflsct 87fa16c0be
New Crowdin updates (#400)
* New translations mediaSelector.json (Chinese Traditional)

* New translations mediaSelector.json (German)

* New translations mediaSelector.json (Italian)

* New translations mediaSelector.json (Japanese)

* New translations mediaSelector.json (Korean)

* New translations mediaSelector.json (Chinese Simplified)

* New translations mediaSelector.json (Vietnamese)

* New translations mediaSelector.json (Portuguese, Brazilian)

* New translations mediaSelector.json (Chinese Simplified)
2022-10-11 00:17:58 +02:00
xmflsct f6a4a7056c Fixed #382 2022-10-10 23:57:25 +02:00
xmflsct d2272d5d30 Fixed #385
Instead of providing an option to choose whether or not to include EXIF data, by default, EXIF are not included in the upload as Mastodon would not make use of the data anyway.
2022-10-10 23:50:15 +02:00
xmflsct 35c585fb81 Fixed #398 2022-10-10 23:43:26 +02:00
xmflsct 34d02c9ca3 Fixed #394 2022-10-10 23:28:55 +02:00
xmflsct 52c44c600c Fixed #397 2022-10-10 23:28:40 +02:00
xmflsct bd970ec287 Bump packages 2022-10-10 23:28:27 +02:00
xmflsct f5bd5cf232 Update Podfile.lock 2022-09-28 23:58:43 +02:00
xmflsct f38e1317cc Bump up packages 2022-09-28 23:31:49 +02:00
xmflsct 7217887cb4 Update notes 2022-09-26 19:04:31 +02:00
xmflsct bcc14c7c20 Fix release note warning 2022-09-25 23:50:41 +02:00
xmflsct ddb3aef0eb Merge branch 'main' into candidate 2022-09-24 17:16:03 +02:00
xmflsct f6d6964d1d Update fastlane 2022-09-24 17:15:52 +02:00
xmflsct 8d8707cc39 Fix Sentry token warning 2022-09-24 16:50:53 +02:00
xmflsct 1308b274c5 Merge branch 'main' into candidate 2022-09-24 16:33:54 +02:00
xmflsct 660ddfc6ac Test run 2022-09-24 16:33:46 +02:00
xmflsct 9a1f64468e Merge branch 'main' into candidate 2022-09-24 16:00:03 +02:00
xmflsct 7b109a02d9 Try building with older Xcode 2022-09-24 15:59:57 +02:00
xmflsct ef92901d52 Merge branch 'main' into candidate 2022-09-24 14:41:39 +02:00
xmflsct 05ffe75e2a Remove codeql analysis 2022-09-24 14:41:27 +02:00
xmflsct 74d904a440 Add iOS languages 2022-09-24 14:39:54 +02:00
xmflsct 398f37d599 Remove sentry-expo
Too many dependencies it needs, especially the unused expo-updates
2022-09-24 13:42:15 +02:00
xmflsct 8744665fda
Merge pull request #395 from tooot-app/main
Test new packages
2022-09-24 00:56:47 +02:00
xmflsct 08cd1d2c51 Bump up packages 2022-09-24 00:34:18 +02:00
xmflsct ca0403e730 Bump up packages 2022-09-24 00:27:11 +02:00
xmflsct fcce92a33a
Merge pull request #392 from tooot-app/main
Test refined emoji selection
2022-09-23 00:30:45 +02:00
xmflsct 63baddff48
New Crowdin updates (#391)
* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)
2022-09-23 00:30:07 +02:00
xmflsct c1f116c77b Merge branch 'main' of https://github.com/tooot-app/app 2022-09-23 00:24:07 +02:00
xmflsct 3541bedf6d Try rephrasing for Play Store 2022-09-23 00:24:05 +02:00
xmflsct a3e233a91d
New translations contextMenu.json (Vietnamese) (#390) 2022-09-23 00:22:16 +02:00
xmflsct 7d9056b562 Allow custom exit 2022-09-23 00:21:41 +02:00
xmflsct 8ef2b89a09 Remove expo update step 2022-09-22 00:18:08 +02:00
xmflsct fb5585daf2 Merge branch 'main' into candidate 2022-09-21 23:23:30 +02:00
xmflsct ac093f42eb Try fix expo-updates 2022-09-21 23:23:17 +02:00
xmflsct ba1ad2682b Merge branch 'main' into candidate 2022-09-21 21:56:06 +02:00
xmflsct 800ebe989d Try building again 2022-09-21 21:55:58 +02:00
xmflsct c23e317022 Merge branch 'main' into candidate 2022-09-21 10:00:44 +02:00
xmflsct 838dfdb4a3 Bump SDWebImage 2022-09-21 10:00:32 +02:00
xmflsct bfad8fbe7c Merge branch 'main' of https://github.com/tooot-app/app 2022-09-21 09:55:32 +02:00
xmflsct 29e9d24542 Bring back expo-updates as a dependency to sentry-expo
But disabled
2022-09-21 09:55:27 +02:00
xmflsct 05a8e87ff2
Merge pull request #389 from tooot-app/main
Test build v4.3.2 without OTA
2022-09-21 00:23:56 +02:00
xmflsct 45caae7083
New Crowdin updates (#388)
* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Japanese)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations contextMenu.json (Chinese Simplified)
2022-09-21 00:23:07 +02:00
xmflsct a0bb964355 Try to meet Play Store's requirement 2022-09-21 00:17:36 +02:00
xmflsct 5b35951424 Remove expo-updates unfortunately
As now it starts charging
2022-09-21 00:16:55 +02:00
xmflsct d21afeca53
Merge pull request #387 from tooot-app/main
Test v4.3.2
2022-09-20 22:48:04 +02:00
xmflsct ac10482bc8 Target v4.3.2 2022-09-20 22:47:29 +02:00
xmflsct 9203381382
Merge pull request #386 from tooot-app/384-remove-autolinker-dependency
Removed autolinker
2022-09-20 22:23:27 +02:00
xmflsct 7ec7f85893 Removed autolinker 2022-09-20 22:23:01 +02:00
xmflsct fb3cfa0db1 Emoji working for compose 2022-09-19 22:22:52 +02:00
xmflsct b44370d3ec Spoiler now supports emoji as well 2022-09-19 22:01:13 +02:00
xmflsct 2df23a8a2e POC compose using the new emoji selector 2022-09-18 23:54:50 +02:00
xmflsct 7282434e69 Fix emoji state 2022-09-18 23:28:14 +02:00
xmflsct 725a061e78 Added emoji search 2022-09-18 16:49:18 +02:00
xmflsct 8a054f2205 Rewrite emoji component logic to be more generic 2022-09-18 01:02:25 +02:00
xmflsct ef6eec5351
Merge pull request #381 from tooot-app/main
Test v4.3.1
2022-09-14 23:11:00 +02:00
xmflsct 535268c680 Added Japanese 2022-09-14 23:04:35 +02:00
xmflsct 29b39ea5ac
New Crowdin updates (#380)
* New translations instance.json (German)

* New translations timeline.json (Japanese)

* New translations instance.json (Italian)

* New translations instance.json (Japanese)

* New translations instance.json (Korean)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Vietnamese)

* New translations instance.json (Portuguese, Brazilian)

* New translations relationship.json (Japanese)

* New translations contextMenu.json (Japanese)

* New translations announcements.json (Japanese)

* New translations compose.json (Japanese)

* New translations actions.json (Japanese)

* New translations imageViewer.json (Japanese)

* New translations tabs.json (Japanese)

* New translations common.json (Japanese)

* New translations instance.json (German)

* New translations timeline.json (Japanese)

* New translations instance.json (Italian)

* New translations instance.json (Japanese)

* New translations instance.json (Korean)

* New translations instance.json (Chinese Simplified)

* New translations instance.json (Vietnamese)

* New translations instance.json (Portuguese, Brazilian)

* New translations contextMenu.json (Japanese)

* New translations compose.json (Japanese)

* New translations tabs.json (Japanese)

* New translations announcements.json (Japanese)

* New translations imageViewer.json (Japanese)

* New translations common.json (Japanese)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations accountSelection.json (Italian)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations accountSelection.json (Portuguese, Brazilian)

* New translations contextMenu.json (Japanese)
2022-09-14 22:47:38 +02:00
xmflsct ddd1879e48 Try adding fling gesture handler 2022-09-14 22:44:48 +02:00
xmflsct 9b4b575291 Fix duplicated images 2022-09-14 22:44:23 +02:00
xmflsct 969d4abe0e Move image viewer to a new plugin 2022-09-14 21:52:16 +02:00
xmflsct b537c38e9c
New Crowdin updates (#373)
* New translations common.json (Japanese)

* New translations common.json (Japanese)

* New translations instance.json (Japanese)

* New translations parse.json (Japanese)

* New translations relationship.json (Japanese)

* New translations timeline.json (Japanese)

* New translations actions.json (Japanese)

* New translations announcements.json (Japanese)

* New translations compose.json (Japanese)

* New translations screens.json (Japanese)

* New translations mediaSelector.json (Japanese)

* New translations emojis.json (Japanese)

* New translations contextMenu.json (Japanese)

* New translations accountSelection.json (Japanese)

* Add some Japanese translations

Co-authored-by: Hikali-47041 <hikali.47041@gmail.com>
2022-09-13 21:55:07 +02:00
xmflsct 9bc1c878ab
Merge pull request #378 from Hikali-47041/l10n_en
Fix typo "browser"
2022-09-13 21:54:51 +02:00
xmflsct 79a488c84a Fix poll input 2022-09-13 21:53:44 +02:00
Hikali-47041 1bf9a1336f Fix typo "browser" 2022-09-12 19:30:41 +09:00
xmflsct 6929d5d167
Merge pull request #376 from tooot-app/main
Test v4.3
2022-08-19 17:45:29 +02:00
xmflsct 471f3f3391 Temp patch
https://github.com/software-mansion/react-native-screens/pull/1566
2022-08-19 17:44:28 +02:00
xmflsct 8dcddd0792
Merge pull request #374 from tooot-app/main
Test v4.3
2022-08-19 12:23:27 +02:00
xmflsct d1a737eb51 Temp visual fix 2022-08-19 12:22:30 +02:00
xmflsct 1bcdc9fa93 Bump up packages 2022-08-19 12:22:23 +02:00
xmflsct 1507059241 Fix some weird errors 2022-08-19 11:58:49 +02:00
xmflsct 16dfcec9f2 Fix #356 2022-08-19 11:53:16 +02:00
xmflsct 15f22d4c31 Merge branch 'main' into candidate 2022-08-19 02:25:40 +02:00
xmflsct 88bafcc1e0 Feather icon needs svg 2022-08-19 02:25:31 +02:00
xmflsct 0894b4106b
Merge pull request #372 from tooot-app/main
Test v4.2.1
2022-08-19 01:59:37 +02:00
xmflsct 2c65dca811
New Crowdin updates (#371)
* New translations parse.json (Vietnamese)

* New translations tabs.json (Vietnamese)

* New translations contextMenu.json (Vietnamese)

* New translations accountSelection.json (Vietnamese)
2022-08-19 01:59:05 +02:00
xmflsct 9ed6343eb7 Use native view drawing instead of svg 2022-08-19 01:58:17 +02:00
xmflsct f1c04d8c85
Merge pull request #369 from tooot-app/main
Test v4.2
2022-08-18 00:23:03 +02:00
xmflsct 886b6d6cf7 Merge branch 'main' into candidate 2022-08-17 14:14:36 +02:00
xmflsct aba8a38329 Merge branch 'main' into candidate 2022-08-17 01:19:18 +02:00
xmflsct 0260fc26eb Revert back expo config 2022-08-16 23:59:24 +02:00
xmflsct a480c11a26 Merge branch 'main' into candidate 2022-08-16 22:40:11 +02:00
xmflsct ae295d902c
Merge pull request #367 from tooot-app/main
Test build v4.2
2022-08-16 00:29:20 +02:00
xmflsct 4561312709
Merge pull request #366 from tooot-app/main
Test v4.2
2022-08-15 23:02:10 +02:00
xmflsct 38805d7612 Merge branch 'main' into candidate 2022-08-15 00:05:17 +02:00
xmflsct 3312a67211 Merge branch 'main' into candidate 2022-08-14 23:13:14 +02:00
xmflsct 938e74e1b2
Merge pull request #365 from tooot-app/main
Test v4.2
2022-08-14 23:03:05 +02:00
xmflsct 46c864f7f9
Merge pull request #361 from tooot-app/main
Test building
2022-08-13 00:49:47 +02:00
xmflsct 262ec9e9b1
Merge pull request #360 from tooot-app/main
Test building
2022-08-10 00:47:51 +02:00
xmflsct 9f70cef94f Merge branch 'main' into candidate 2022-08-07 01:19:46 +02:00
Zhiyuan Zheng 3b7104a892 Merge branch 'main' into candidate 2022-06-11 21:56:28 +02:00
Zhiyuan Zheng 936c5874f5 Merge branch 'main' into candidate 2022-06-11 21:26:36 +02:00
Zhiyuan Zheng cf29c7c13b Merge branch 'main' into candidate 2022-06-11 20:26:46 +02:00
Zhiyuan Zheng 443eb49ff5 Merge branch 'main' into candidate 2022-06-11 19:56:59 +02:00
xmflsct d0412bcbaf
Merge pull request #334 from tooot-app/main
Update build.yml
2022-06-11 15:06:35 +02:00
Zhiyuan Zheng 38b112c143 Merge branch 'main' into candidate 2022-06-11 14:21:50 +02:00
xmflsct 6a5c39b8dd
Merge pull request #331 from tooot-app/main
Update build.yml
2022-06-11 02:27:53 +02:00
Zhiyuan Zheng eff1ee5e6d Merge branch 'main' into candidate 2022-06-11 01:35:24 +02:00
Zhiyuan Zheng 421ad874db Merge branch 'main' into candidate 2022-06-10 23:40:04 +02:00
xmflsct 4d003de83f
Merge pull request #330 from tooot-app/main
Another test
2022-06-10 20:53:31 +02:00
xmflsct 9fd7cf489f
Merge pull request #328 from tooot-app/main
Try building
2022-06-10 17:04:05 +02:00
xmflsct 6644ca64d7
Merge pull request #327 from tooot-app/main
Final testing of v4.1
2022-06-09 23:28:13 +02:00
xmflsct a70e1af535
Test updates (#323)
* New translations actions.json (German)

* New translations actions.json (Korean)

* New translations actions.json (Chinese Simplified)

* New translations actions.json (Chinese Traditional)

* New translations actions.json (Vietnamese)

* New translations actions.json (Italian)

* New translations actions.json (Portuguese, Brazilian)

* Bump packages

* New translations actions.json (Chinese Simplified)

* Fixed #108

* Fixed #117

* Fixed #137

* Fix badge not cleared on app launch

* Update Expo workflow

* Update build.yml

* New context menu largely working

* Fixed #158

* File format changes by `expo prebuild`

* Update .gitignore

* Try out notification sound

* Bump packages

* New Crowdin updates (#319)

* New translations actions.json (Portuguese, Brazilian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations actions.json (Portuguese, Brazilian)

* New translations compose.json (Portuguese, Brazilian)

* New translations tabs.json (Portuguese, Brazilian)

* New translations actions.json (Vietnamese)

* New translations timeline.json (German)

* New translations mediaSelector.json (Italian)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Chinese Traditional)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (German)

* New translations mediaSelector.json (Portuguese, Brazilian)

* New translations timeline.json (Portuguese, Brazilian)

* New translations timeline.json (Italian)

* New translations mediaSelector.json (German)

* New translations mediaSelector.json (Vietnamese)

* New translations mediaSelector.json (Chinese Traditional)

* New translations mediaSelector.json (Chinese Simplified)

* New translations mediaSelector.json (Korean)

* New translations timeline.json (Chinese Traditional)

* New translations timeline.json (Vietnamese)

* New translations timeline.json (Chinese Simplified)

* New translations timeline.json (Korean)

* New translations contextMenu.json (Portuguese, Brazilian)

* New translations mediaSelector.json (Vietnamese)

* New translations contextMenu.json (Vietnamese)

* New translations contextMenu.json (Vietnamese)

* New translations mediaSelector.json (Chinese Simplified)

* New translations contextMenu.json (German)

* New translations contextMenu.json (Italian)

* New translations contextMenu.json (Korean)

* New translations contextMenu.json (Chinese Simplified)

* New translations contextMenu.json (Portuguese, Brazilian)

* Fixed #321

* Refine photo upload messaging

* Prefer local language detection
2022-06-09 01:49:42 +02:00
888 changed files with 53163 additions and 39446 deletions

View File

@ -7,26 +7,22 @@ on:
jobs:
build-ios:
runs-on: macos-12
runs-on: macos-14
steps:
- name: -- Step 0 -- Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
- uses: tj-actions/branch-names@v8
id: branch
- name: -- Step 1 -- Checkout code
uses: actions/checkout@v2
- name: -- Step 2 -- Setup node
uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: -- Step 3 -- Install node dependencies
run: yarn install
- name: -- Step 4 -- Install ruby dependencies
run: bundle install
- name: -- Step 5 -- Run fastlane
- run: corepack enable
- run: yarn install
- run: bundle install
- run: yarn app:build ios
env:
DEVELOPER_DIR: /Applications/Xcode_13.4.1.app/Contents/Developer
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
DEVELOPER_DIR: /Applications/Xcode_15.2.app/Contents/Developer
ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
@ -40,33 +36,27 @@ jobs:
APP_STORE_CONNECT_API_KEY_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}
APP_STORE_CONNECT_API_KEY_KEY: ${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}
GH_PAT_GET_RELEASE: ${{ secrets.GITHUB_TOKEN }}
run: yarn app:build ios
build-android:
runs-on: macos-12
runs-on: macos-14
steps:
- name: -- Step 0 -- Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
- uses: tj-actions/branch-names@v8
id: branch
- name: -- Step 1 -- Checkout code
uses: actions/checkout@v2
- name: -- Step 2 -- Setup node
uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: -- Step 3 -- Setup Java
uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '11'
- name: -- Step 4 -- Install node dependencies
run: yarn install
- name: -- Step 5 -- Install ruby dependencies
run: bundle install
- name: -- Step 6 -- Run fastlane
java-version: '17'
- run: corepack enable
- run: yarn install
- run: bundle install
- run: yarn app:build android
env:
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
@ -75,40 +65,28 @@ jobs:
ANDROID_KEYSTORE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_KEY_PASSWORD }}
SUPPLY_JSON_KEY_DATA: ${{ secrets.SUPPLY_JSON_KEY_DATA }}
GH_PAT_GET_RELEASE: ${{ secrets.GITHUB_TOKEN }}
run: yarn app:build android
create-release:
runs-on: macos-12
runs-on: macos-14
needs: [build-ios, build-android]
steps:
- name: -- Step 0 -- Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
- uses: tj-actions/branch-names@v8
id: branch
- name: -- Step 1 -- Checkout code
uses: actions/checkout@v2
- name: -- Step 2 -- Setup node
uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
- name: -- Step 3 -- Setup Java
uses: actions/setup-java@v3
- uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '11'
- name: -- Step 4 -- Use Expo action
uses: expo/expo-github-action@v7
with:
expo-version: latest
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: -- Step 5 -- Install node dependencies
run: yarn install
- name: -- Step 6 -- Install ruby dependencies
run: bundle install
- name: -- Step 7 -- Run fastlane
java-version: '17'
- run: corepack enable
- run: yarn install
- run: bundle install
- run: yarn app:build release
env:
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
LC_ALL: en_US.UTF-8
LANG: en_US.UTF-8
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
@ -118,9 +96,4 @@ jobs:
ANDROID_KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
ANDROID_KEYSTORE_ALIAS: ${{ secrets.ANDROID_KEYSTORE_ALIAS }}
ANDROID_KEYSTORE_KEY_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_KEY_PASSWORD }}
GH_PAT_GET_RELEASE: ${{ secrets.GITHUB_TOKEN }}
FL_GITHUB_RELEASE_API_BEARER: ${{ secrets.GITHUB_TOKEN }}
run: yarn app:build release
- name: -- Step 8 -- Publish expo update
run: eas update --auto

View File

@ -1,70 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: "CodeQL"
on:
push:
branches: [ main ]
# pull_request:
# # The branches below must be a subset of the branches above
# branches: [ main ]
# schedule:
# - cron: '35 4 * * 4'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'javascript' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://git.io/codeql-language-support
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

24
.gitignore vendored
View File

@ -32,6 +32,7 @@ DerivedData
*.xcuserstate
project.xcworkspace
ios/.xcode.env.local
ios/containers
# Android/IntelliJ
#
@ -41,6 +42,9 @@ build/
local.properties
*.iml
*.hprof
.cxx/
*.keystore
!debug.keystore
# node.js
#
@ -48,12 +52,6 @@ node_modules/
npm-debug.log
yarn-error.log
# BUCK
buck-out/
\.buckd/
*.keystore
!debug.keystore
# Bundle artifacts
*.jsbundle
@ -65,4 +63,16 @@ buck-out/
web-build/
dist/
# @end expo-cli
# Temporary files created by Metro to check the health of the file watcher
.metro-health-check*
# @end expo-cli
# yarn 3
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions

2
.nvmrc
View File

@ -1 +1 @@
16
20

View File

@ -1,3 +0,0 @@
{
"javascript.inlayHints.functionLikeReturnTypes.enabled": false
}

View File

@ -1,7 +1,7 @@
diff --git a/node_modules/@types/react-native-share-menu/index.d.ts b/node_modules/@types/react-native-share-menu/index.d.ts
index f52822c..ee98565 100755
--- a/node_modules/@types/react-native-share-menu/index.d.ts
+++ b/node_modules/@types/react-native-share-menu/index.d.ts
diff --git a/index.d.ts b/index.d.ts
index f52822c8bed928f387baf90fdb7342c7416a775a..6d9d480d18342832c4b07af2b10f4a63ff538e7b 100755
--- a/index.d.ts
+++ b/index.d.ts
@@ -5,11 +5,9 @@
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Minimum TypeScript Version: 3.7
@ -17,12 +17,18 @@ index f52822c..ee98565 100755
export type ShareCallback = (share?: ShareData) => void;
@@ -28,7 +26,7 @@ interface ShareMenuReactView {
dismissExtension(error?: string): void;
openApp(): void;
continueInApp(extraData?: object): void;
@@ -25,10 +23,10 @@ interface ShareMenu {
}
interface ShareMenuReactView {
- dismissExtension(error?: string): void;
- openApp(): void;
- continueInApp(extraData?: object): void;
- data(): Promise<{mimeType: string, data: string}>;
+ data(): Promise<{data: {mimeType: string; data: string}[]}>;
+ dismissExtension(error?: string): void
+ openApp(): void
+ continueInApp(extraData?: object): void
+ data(): Promise<{ data: { mimeType: string; data: string }[] }>
}
export const ShareMenuReactView: ShareMenuReactView;

View File

@ -0,0 +1,64 @@
diff --git a/ios/Sources/Common/AutoLayoutWrapperView.swift b/ios/Sources/Common/AutoLayoutWrapperView.swift
index e2b9be9c129c66eed3eaebb4e33f5456ce98f5da..ef6a0087f524c8d228b7fee31e54fc3dba769ffa 100644
--- a/ios/Sources/Common/AutoLayoutWrapperView.swift
+++ b/ios/Sources/Common/AutoLayoutWrapperView.swift
@@ -18,7 +18,11 @@ class AutoLayoutWrapperView: UIView {
override func addSubview(_ view: UIView) {
if let detachedView = view as? RNIDetachedView {
- detachedView.updateBounds(newSize: self.bounds.size);
+ do {
+ try detachedView.updateBounds(newSize: self.bounds.size);
+ } catch {
+ print("Error: \(error)");
+ };
};
super.addSubview(view);
@@ -37,7 +41,11 @@ class AutoLayoutWrapperView: UIView {
func updateSizeOfSubviews(newSize: CGSize? = nil){
self.subviews.forEach {
guard let detachedView = $0 as? RNIDetachedView else { return };
- detachedView.updateBounds(newSize: newSize ?? self.bounds.size);
+ do {
+ try detachedView.updateBounds(newSize: newSize ?? self.bounds.size);
+ } catch {
+ print("Error: \(error)");
+ };
};
};
};
diff --git a/ios/Sources/RNIContextMenuView/RNIContextMenuPreviewController.swift b/ios/Sources/RNIContextMenuView/RNIContextMenuPreviewController.swift
index 2b4dc6287c68c88d6652b963ac2cc5f59251ffa9..7c8472e90dac8359f6b40ce2c096323fcf388249 100644
--- a/ios/Sources/RNIContextMenuView/RNIContextMenuPreviewController.swift
+++ b/ios/Sources/RNIContextMenuView/RNIContextMenuPreviewController.swift
@@ -63,7 +63,11 @@ class RNIContextMenuPreviewController: UIViewController {
case .STRETCH:
guard let menuCustomPreviewView = self.menuCustomPreviewView else { return };
- menuCustomPreviewView.updateBounds(newSize: self.view.bounds.size);
+ do {
+ try menuCustomPreviewView.updateBounds(newSize: self.view.bounds.size);
+ } catch {
+ print("Error: \(error)");
+ };
self.preferredContentSize = .zero;
case .INHERIT:
diff --git a/ios/Sources/RNIContextMenuView/RNIContextMenuView.swift b/ios/Sources/RNIContextMenuView/RNIContextMenuView.swift
index affabcdee8303681f1438c6cfdb9d90d6a105ba6..7c470229e06250f4bd80d3133e381b91ff4f61c5 100644
--- a/ios/Sources/RNIContextMenuView/RNIContextMenuView.swift
+++ b/ios/Sources/RNIContextMenuView/RNIContextMenuView.swift
@@ -307,7 +307,11 @@ public class RNIContextMenuView:
.init(with: detachedView)
);
- detachedView.detach();
+ do {
+ try detachedView.detach();
+ } catch {
+ print("Error: \(error)");
+ };
};
#if DEBUG

View File

@ -0,0 +1,38 @@
diff --git a/src/zoom.tsx b/src/zoom.tsx
index 70ce1c8d6a43e711f06b93d1eda3b44a3ad9a659..cdc2713470f2d332b8bf3e9c97e38fd9b78281df 100644
--- a/src/zoom.tsx
+++ b/src/zoom.tsx
@@ -4,6 +4,7 @@ import Animated, {
useSharedValue,
useAnimatedStyle,
useDerivedValue,
+ withDecay,
withTiming,
cancelAnimation,
runOnJS,
@@ -120,11 +121,22 @@ export function Zoom(props: Props) {
}
}
})
- .onEnd(() => {
+ .onEnd((event) => {
if (isPinching.value || !isZoomed.value) return;
- panTranslateX.value = 0;
- panTranslateY.value = 0;
+ const maxTranslateX = (viewWidth.value / 2) * scale.value - viewWidth.value / 2;
+ const minTranslateX = -maxTranslateX;
+ translationX.value = withDecay({
+ velocity: event.velocityX,
+ clamp: [minTranslateX, maxTranslateX]
+ });
+
+ const maxTranslateY = (viewHeight.value / 2) * scale.value - viewHeight.value / 2;
+ const minTranslateY = -maxTranslateY;
+ translationY.value = withDecay({
+ velocity: event.velocityY,
+ clamp: [minTranslateY, maxTranslateY]
+ });
});
const pinch = Gesture.Pinch()

View File

@ -1,7 +1,7 @@
diff --git a/node_modules/react-native-share-menu/android/build.gradle b/node_modules/react-native-share-menu/android/build.gradle
index 9557fdb..ebdeb6f 100644
--- a/node_modules/react-native-share-menu/android/build.gradle
+++ b/node_modules/react-native-share-menu/android/build.gradle
diff --git a/android/build.gradle b/android/build.gradle
index 9557fdbf2fbf97b7f7aeaf7ce86d301a8ced213d..ebdeb6f4de7846d3241101001755595c52a4b05e 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.library'
@ -19,10 +19,10 @@ index 9557fdb..ebdeb6f 100644
versionCode 1
versionName "1.0"
ndk {
diff --git a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
index f42bce6..ee36062 100644
--- a/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
+++ b/node_modules/react-native-share-menu/ios/ReactShareViewController.swift
diff --git a/ios/ReactShareViewController.swift b/ios/ReactShareViewController.swift
index f42bce6ce7e3f48a7ddc83f3366b68fd0664b1a0..ee360622b1d03cc9661c78c6f210b84c3b19a725 100644
--- a/ios/ReactShareViewController.swift
+++ b/ios/ReactShareViewController.swift
@@ -13,7 +13,7 @@ class ReactShareViewController: ShareViewController, RCTBridgeDelegate, ReactSha
func sourceURL(for bridge: RCTBridge!) -> URL! {
#if DEBUG
@ -32,10 +32,10 @@ index f42bce6..ee36062 100644
#else
return Bundle.main.url(forResource: "main", withExtension: "jsbundle")
#endif
diff --git a/node_modules/react-native-share-menu/ios/ShareViewController.swift b/node_modules/react-native-share-menu/ios/ShareViewController.swift
index 12d8c92..64aa72b 100644
--- a/node_modules/react-native-share-menu/ios/ShareViewController.swift
+++ b/node_modules/react-native-share-menu/ios/ShareViewController.swift
diff --git a/ios/ShareViewController.swift b/ios/ShareViewController.swift
index 12d8c92dda20fabd9e7b55fec57b3d867414063c..8a1db0de285b18a9358a10b2ca8293a8c7d56a8e 100644
--- a/ios/ShareViewController.swift
+++ b/ios/ShareViewController.swift
@@ -19,8 +19,8 @@ class ShareViewController: SLComposeServiceViewController {
var hostAppUrlScheme: String?
var sharedItems: [Any] = []
@ -78,7 +78,7 @@ index 12d8c92..64aa72b 100644
override func configurationItems() -> [Any]! {
// To add configuration options via table cells at the bottom of the sheet, return an array of SLComposeSheetConfigurationItem here.
return []
@@ -238,11 +235,10 @@ class ShareViewController: SLComposeServiceViewController {
@@ -238,7 +235,7 @@ class ShareViewController: SLComposeServiceViewController {
func completeRequest() {
// Inform the host that we're done, so it un-blocks its UI. Note: Alternatively you could call super's -didSelectPost, which will similarly complete the extension context.
@ -87,7 +87,3 @@ index 12d8c92..64aa72b 100644
}
func cancelRequest() {
extensionContext!.cancelRequest(withError: NSError())
}
-
}

893
.yarn/releases/yarn-4.1.0.cjs vendored Executable file

File diff suppressed because one or more lines are too long

7
.yarnrc.yml Normal file
View File

@ -0,0 +1,7 @@
compressionLevel: mixed
enableGlobalCache: false
nodeLinker: node-modules
yarnPath: .yarn/releases/yarn-4.1.0.cjs

View File

@ -1,6 +1,13 @@
source "https://rubygems.org"
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
ruby ">= 2.6.10"
# Cocoapods 1.15 introduced a bug which break the build. We will remove the upper
# bound in the template on Cocoapods with next React Native release.
gem 'cocoapods', '>= 1.13', '< 1.15'
gem 'activesupport', '>= 6.1.7.5', '< 7.1.0'
gem "fastlane"
gem 'cocoapods'
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

View File

@ -1,48 +1,47 @@
GEM
remote: https://rubygems.org/
specs:
CFPropertyList (3.0.5)
CFPropertyList (3.0.6)
rexml
activesupport (6.1.5)
activesupport (7.0.4.2)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
addressable (2.8.0)
public_suffix (>= 2.0.2, < 5.0)
addressable (2.8.6)
public_suffix (>= 2.0.2, < 6.0)
algoliasearch (1.27.5)
httpclient (~> 2.8, >= 2.8.3)
json (>= 1.5.1)
artifactory (3.0.15)
atomos (0.1.3)
aws-eventstream (1.2.0)
aws-partitions (1.618.0)
aws-sdk-core (3.132.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.525.0)
aws-sigv4 (~> 1.1)
aws-eventstream (1.3.0)
aws-partitions (1.887.0)
aws-sdk-core (3.191.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.8)
jmespath (~> 1, >= 1.6.1)
aws-sdk-kms (1.58.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-kms (1.77.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.114.0)
aws-sdk-core (~> 3, >= 3.127.0)
aws-sdk-s3 (1.143.0)
aws-sdk-core (~> 3, >= 3.191.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.1)
aws-sigv4 (~> 1.8)
aws-sigv4 (1.8.0)
aws-eventstream (~> 1, >= 1.0.2)
babosa (1.0.4)
claide (1.1.0)
cocoapods (1.11.3)
cocoapods (1.14.3)
addressable (~> 2.8)
claide (>= 1.0.2, < 2.0)
cocoapods-core (= 1.11.3)
cocoapods-core (= 1.14.3)
cocoapods-deintegrate (>= 1.0.3, < 2.0)
cocoapods-downloader (>= 1.4.0, < 2.0)
cocoapods-downloader (>= 2.1, < 3.0)
cocoapods-plugins (>= 1.0.0, < 2.0)
cocoapods-search (>= 1.0.0, < 2.0)
cocoapods-trunk (>= 1.4.0, < 2.0)
cocoapods-trunk (>= 1.6.0, < 2.0)
cocoapods-try (>= 1.1.0, < 2.0)
colored2 (~> 3.1)
escape (~> 0.0.4)
@ -50,10 +49,10 @@ GEM
gh_inspector (~> 1.0)
molinillo (~> 0.8.0)
nap (~> 1.0)
ruby-macho (>= 1.0, < 3.0)
xcodeproj (>= 1.21.0, < 2.0)
cocoapods-core (1.11.3)
activesupport (>= 5.0, < 7)
ruby-macho (>= 2.3.0, < 3.0)
xcodeproj (>= 1.23.0, < 2.0)
cocoapods-core (1.14.3)
activesupport (>= 5.0, < 8)
addressable (~> 2.8)
algoliasearch (~> 1.0)
concurrent-ruby (~> 1.1)
@ -63,7 +62,7 @@ GEM
public_suffix (~> 4.0)
typhoeus (~> 1.0)
cocoapods-deintegrate (1.0.5)
cocoapods-downloader (1.6.3)
cocoapods-downloader (2.1)
cocoapods-plugins (1.0.0)
nap
cocoapods-search (1.0.1)
@ -75,19 +74,18 @@ GEM
colored2 (3.1.2)
commander (4.6.0)
highline (~> 2.0.0)
concurrent-ruby (1.1.10)
concurrent-ruby (1.2.2)
declarative (0.0.20)
digest-crc (0.6.4)
digest-crc (0.6.5)
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)
emoji_regex (3.2.3)
escape (0.0.4)
ethon (0.15.0)
ethon (0.16.0)
ffi (>= 1.15.0)
excon (0.92.4)
faraday (1.10.1)
excon (0.109.0)
faraday (1.10.3)
faraday-em_http (~> 1.0)
faraday-em_synchrony (~> 1.0)
faraday-excon (~> 1.1)
@ -115,8 +113,8 @@ GEM
faraday-retry (1.0.3)
faraday_middleware (1.2.0)
faraday (~> 1.0)
fastimage (2.2.6)
fastlane (2.209.0)
fastimage (2.3.0)
fastlane (2.219.0)
CFPropertyList (>= 2.3, < 4.0.0)
addressable (>= 2.8, < 3.0.0)
artifactory (~> 3.0)
@ -135,20 +133,22 @@ GEM
gh_inspector (>= 1.1.2, < 2.0.0)
google-apis-androidpublisher_v3 (~> 0.3)
google-apis-playcustomapp_v1 (~> 0.1)
google-cloud-env (>= 1.6.0, < 2.0.0)
google-cloud-storage (~> 1.31)
highline (~> 2.0)
http-cookie (~> 1.0.5)
json (< 3.0.0)
jwt (>= 2.1.0, < 3)
mini_magick (>= 4.9.4, < 5.0.0)
multipart-post (~> 2.0.0)
multipart-post (>= 2.0.0, < 3.0.0)
naturally (~> 2.2)
optparse (~> 0.1.1)
optparse (>= 0.1.1)
plist (>= 3.1.0, < 4.0.0)
rubyzip (>= 2.0.0, < 3.0.0)
security (= 0.1.3)
simctl (~> 1.6.3)
terminal-notifier (>= 2.0.0, < 3.0.0)
terminal-table (>= 1.4.5, < 2.0.0)
terminal-table (~> 3)
tty-screen (>= 0.6.3, < 1.0.0)
tty-spinner (>= 0.8.0, < 1.0.0)
word_wrap (~> 1.0.0)
@ -156,16 +156,17 @@ GEM
xcpretty (~> 0.3.0)
xcpretty-travis-formatter (>= 0.0.3)
fastlane-plugin-json (1.1.0)
fastlane-plugin-sentry (1.12.2)
fastlane-plugin-versioning_android (0.1.0)
fastlane-plugin-sentry (1.15.0)
os (~> 1.1, >= 1.1.4)
fastlane-plugin-versioning_android (0.1.1)
fastlane-plugin-yarn (1.2)
ffi (1.15.5)
ffi (1.16.3)
fourflusher (2.3.1)
fuzzy_match (2.0.4)
gh_inspector (1.1.3)
google-apis-androidpublisher_v3 (0.25.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-core (0.7.0)
google-apis-androidpublisher_v3 (0.54.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-core (0.11.3)
addressable (~> 2.5, >= 2.5.1)
googleauth (>= 0.16.2, < 2.a)
httpclient (>= 2.8.1, < 3.a)
@ -173,31 +174,29 @@ GEM
representable (~> 3.0)
retriable (>= 2.0, < 4.a)
rexml
webrick
google-apis-iamcredentials_v1 (0.13.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-playcustomapp_v1 (0.10.0)
google-apis-core (>= 0.7, < 2.a)
google-apis-storage_v1 (0.17.0)
google-apis-core (>= 0.7, < 2.a)
google-cloud-core (1.6.0)
google-cloud-env (~> 1.0)
google-apis-iamcredentials_v1 (0.17.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-playcustomapp_v1 (0.13.0)
google-apis-core (>= 0.11.0, < 2.a)
google-apis-storage_v1 (0.31.0)
google-apis-core (>= 0.11.0, < 2.a)
google-cloud-core (1.6.1)
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.2.0)
google-cloud-storage (1.38.0)
google-cloud-errors (1.3.1)
google-cloud-storage (1.47.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
google-apis-iamcredentials_v1 (~> 0.1)
google-apis-storage_v1 (~> 0.17.0)
google-apis-storage_v1 (~> 0.31.0)
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
googleauth (1.2.0)
googleauth (1.8.1)
faraday (>= 0.17.3, < 3.a)
jwt (>= 1.4, < 3.0)
memoist (~> 0.16)
multi_json (~> 1.11)
os (>= 0.9, < 2.0)
signet (>= 0.16, < 2.a)
@ -205,66 +204,61 @@ GEM
http-cookie (1.0.5)
domain_name (~> 0.5)
httpclient (2.8.3)
i18n (1.10.0)
i18n (1.12.0)
concurrent-ruby (~> 1.0)
jmespath (1.6.1)
json (2.6.2)
jwt (2.4.1)
memoist (0.16.2)
mini_magick (4.11.0)
mini_mime (1.1.2)
minitest (5.15.0)
jmespath (1.6.2)
json (2.7.1)
jwt (2.7.1)
mini_magick (4.12.0)
mini_mime (1.1.5)
minitest (5.18.0)
molinillo (0.8.0)
multi_json (1.15.0)
multipart-post (2.0.0)
multipart-post (2.3.0)
nanaimo (0.3.0)
nap (1.1.0)
naturally (2.2.1)
netrc (0.11.0)
optparse (0.1.1)
optparse (0.4.0)
os (1.1.4)
plist (3.6.0)
plist (3.7.1)
public_suffix (4.0.7)
rake (13.0.6)
rake (13.1.0)
representable (3.2.0)
declarative (< 0.1.0)
trailblazer-option (>= 0.1.1, < 0.2.0)
uber (< 0.2.0)
retriable (3.1.2)
rexml (3.2.5)
rexml (3.2.6)
rouge (2.0.7)
ruby-macho (2.5.1)
ruby2_keywords (0.0.5)
rubyzip (2.3.2)
security (0.1.3)
signet (0.17.0)
signet (0.18.0)
addressable (~> 2.8)
faraday (>= 0.17.5, < 3.a)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simctl (1.6.8)
simctl (1.6.10)
CFPropertyList
naturally
terminal-notifier (2.0.0)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
trailblazer-option (0.1.2)
tty-cursor (0.7.1)
tty-screen (0.8.1)
tty-screen (0.8.2)
tty-spinner (0.9.3)
tty-cursor (~> 0.7)
typhoeus (1.4.0)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.4)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
uber (0.1.0)
unf (0.1.4)
unf_ext
unf_ext (0.0.8.2)
unicode-display_width (1.8.0)
webrick (1.7.0)
unicode-display_width (2.5.0)
word_wrap (1.0.0)
xcodeproj (1.22.0)
xcodeproj (1.24.0)
CFPropertyList (>= 2.3.3, < 4.0)
atomos (~> 0.1.3)
claide (>= 1.0.2, < 2.0)
@ -275,19 +269,21 @@ GEM
rouge (~> 2.0.7)
xcpretty-travis-formatter (1.0.1)
xcpretty (~> 0.2, >= 0.0.7)
zeitwerk (2.5.4)
PLATFORMS
universal-darwin-20
universal-darwin-21
arm64-darwin-22
DEPENDENCIES
cocoapods
activesupport (>= 6.1.7.5, < 7.1.0)
cocoapods (>= 1.13, < 1.15)
fastlane
fastlane-plugin-json
fastlane-plugin-sentry
fastlane-plugin-versioning_android
fastlane-plugin-yarn
RUBY VERSION
ruby 3.1.2p20
BUNDLED WITH
2.3.20
2.3.24

View File

@ -1,19 +1,30 @@
# [tooot](https://tooot.app/) app for Mastodon
# [tooot](https://tooot.app/) app for Mastodon compatible platforms
[![GPL-3.0](https://img.shields.io/github/license/tooot-app/push)](LICENSE) ![GitHub issues](https://img.shields.io/github/issues/tooot-app/app) ![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/tooot-app/app?include_prereleases) ![Code Climate maintainability](https://img.shields.io/codeclimate/maintainability/tooot-app/app) [![Crowdin](https://badges.crowdin.net/tooot/localized.svg)](https://crowdin.tooot.app/project/tooot)
[![GPL-3.0](https://img.shields.io/github/license/tooot-app/push)](LICENSE) ![GitHub issues](https://img.shields.io/github/issues/tooot-app/app) ![GitHub release (latest by date including pre-releases)](https://img.shields.io/github/v/release/tooot-app/app?include_prereleases) [![Crowdin](https://badges.crowdin.net/tooot/localized.svg)](https://crowdin.tooot.app/project/tooot)
![GitHub Workflow Status](https://img.shields.io/github/workflow/status/tooot-app/app/build) ![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/tooot-app/app/build/candidate?label=build%20candidate) ![GitHub Workflow Status (branch)](https://img.shields.io/github/workflow/status/tooot-app/app/build/release?label=build%20release)
![GitHub Workflow Status (candidate)](https://img.shields.io/github/actions/workflow/status/tooot-app/app/build.yml?branch=candidate&label=build%20candidate) ![GitHub Workflow Status (release)](https://img.shields.io/github/actions/workflow/status/tooot-app/app/build.yml?branch=release&label=build%20release)
## Contribute to translation
Please **do not** create a pull request to update translation. tooot's translation is managed through [https://crowdin.tooot.app/](https://crowdin.tooot.app/) and Crowdin struggles to properly sync two ways. If there is a minor update and you do not want to register an account on Crowdin, please open an issue.
## Special thanks
[@forenta](https://github.com/forenta) for German translation
[@andrigamerita](https://github.com/andrigamerita) for Italian translation
[@hellojaccc](https://github.com/hellojaccc) for Korean translation
[@luizpicolo](https://github.com/luizpicolo) for Brazilian Portuguese
[@duy@mas.to](https://mas.to/@duy) for Vietnamese translation
[@jk@mastodon.social](https://mastodon.social/@jk) for the famous Mastodon boop sound
- [@a_mento](https://crowdin.com/profile/a_mento) for Basques translation
- [@dzmitry.zubialevich](https://crowdin.com/profile/dzmitry.zubialevich) for Belarusian translation
- [@amrtf](https://crowdin.com/profile/amrtf) for Catalan and Spanish translation
- [@pat](https://piaille.fr/@pat) for French translation
- [@forenta](https://github.com/forenta) for German translation
- [@heracl.es](https://heracl.es/) for Greek translation
- [@andrigamerita](https://github.com/andrigamerita) for Italian translation
- [@Hikaru](https://github.com/Hikali-47041) and [@la_la](https://mstdn.jp/@la_la_la) for Japanese translation
- [@hellojaccc](https://github.com/hellojaccc) for Korean translation
- [@jan-vandenberg](https://crowdin.com/profile/jan-vandenberg) for Dutch translation
- [@gaute](https://gauteweb.net/) for Norwegian translation
- [@MStankiewiczOfficial](https://crowdin.com/profile/MStankiewiczOfficial) for Polish translation
- [@luizpicolo](https://github.com/luizpicolo) for Brazilian Portuguese
- [@janlindblom](https://github.com/janlindblom) for Swedish
- [@ihoryan](https://crowdin.com/profile/ihoryan) for Ukrainian
- [@duy@mas.to](https://mas.to/@duy) for Vietnamese translation
- [@jimmyorz](https://github.com/jimmyorz) for Traditional Chinese translation
- [@jk@mastodon.social](https://mastodon.social/@jk) for the famous Mastodon boop sound

View File

@ -1,24 +0,0 @@
## Major releases - App Store
"Major releases" are artifacts published as `x.?.?`:
* An artifact must be released as `x.?.?` if native modules have been changed or updated, including upgrading Expo SDK version.
* A new app store version has to be submitted.
* Outdated versions in principle do not receive further OTA updates.
## Minor releases - App Store
"Minor releases" are artifacts published as `?.y.?`:
* An artifact can be released as `?.y.?` when there is no change nor update made to the native modules.
* A new app store version can be submitted for better first launch experience.
* All these versions that are not part of above mentioned outdates versions receive also OTA updates.
## Patch releases - OTA
"Patch releases" are artifacts published as `?.?.z`:
* An artifact must be release as `?.?.z` when there is no major change to the functionalities.
* No new app store version will be submitted.
* All these versions that are not part of above mentioned outdates versions receive also OTA updates.
## OTA release channels
* `MAJOR.MINOR-environment`. Environments include `release`, `candidate` and `development`.

View File

@ -1,55 +0,0 @@
# To learn about Buck see [Docs](https://buckbuild.com/).
# To run your application with Buck:
# - install Buck
# - `npm start` - to start the packager
# - `cd android`
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
# - `buck install -r android/app` - compile, install and run application
#
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
lib_deps = []
create_aar_targets(glob(["libs/*.aar"]))
create_jar_targets(glob(["libs/*.jar"]))
android_library(
name = "all-libs",
exported_deps = lib_deps,
)
android_library(
name = "app-code",
srcs = glob([
"src/main/java/**/*.java",
]),
deps = [
":all-libs",
":build_config",
":res",
],
)
android_build_config(
name = "build_config",
package = "com.xmflsct.app.tooot",
)
android_resource(
name = "res",
package = "com.xmflsct.app.tooot",
res = "src/main/res",
)
android_binary(
name = "app",
keystore = "//android/keystores:debug",
manifest = "src/main/AndroidManifest.xml",
package_type = "debug",
deps = [
":app-code",
],
)

View File

@ -1,226 +1,91 @@
apply plugin: "com.android.application"
import com.android.build.OutputFile
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"
apply plugin: 'com.google.gms.google-services'
/**
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
* and bundleReleaseJsAndAssets).
* These basically call `react-native bundle` with the correct arguments during the Android build
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
* bundle directly from the development server. Below you can see all the possible configurations
* and their defaults. If you decide to add a configuration block, make sure to add it before the
* `apply from: "../../node_modules/react-native/react.gradle"` line.
*
* project.ext.react = [
* // the name of the generated asset file containing your JS bundle
* bundleAssetName: "index.android.bundle",
*
* // the entry file for bundle generation. If none specified and
* // "index.android.js" exists, it will be used. Otherwise "index.js" is
* // default. Can be overridden with ENTRY_FILE environment variable.
* entryFile: "index.android.js",
*
* // https://reactnative.dev/docs/performance#enable-the-ram-format
* bundleCommand: "ram-bundle",
*
* // whether to bundle JS and assets in debug mode
* bundleInDebug: false,
*
* // whether to bundle JS and assets in release mode
* bundleInRelease: true,
*
* // whether to bundle JS and assets in another build variant (if configured).
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
* // The configuration property can be in the following formats
* // 'bundleIn${productFlavor}${buildType}'
* // 'bundleIn${buildType}'
* // bundleInFreeDebug: true,
* // bundleInPaidRelease: true,
* // bundleInBeta: true,
*
* // whether to disable dev mode in custom build variants (by default only disabled in release)
* // for example: to disable dev mode in the staging build type (if configured)
* devDisabledInStaging: true,
* // The configuration property can be in the following formats
* // 'devDisabledIn${productFlavor}${buildType}'
* // 'devDisabledIn${buildType}'
*
* // the root of your project, i.e. where "package.json" lives
* root: "../../",
*
* // where to put the JS bundle asset in debug mode
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
*
* // where to put the JS bundle asset in release mode
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in debug mode
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
*
* // where to put drawable resources / React Native assets, e.g. the ones you use via
* // require('./image.png')), in release mode
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
*
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
* // for example, you might want to remove it from here.
* inputExcludes: ["android/**", "ios/**"],
*
* // override which node gets called and with what additional arguments
* nodeExecutableAndArgs: ["node"],
*
* // supply additional arguments to the packager
* extraPackagerArgs: []
* ]
* This is the configuration block to customize your React Native Android app.
* By default you don't need to apply any configuration, just uncomment the lines you need.
*/
project.ext.react = [
enableHermes: (findProperty('expo.jsEngine') ?: "jsc") == "hermes",
]
apply from: new File(["node", "--print", "require.resolve('react-native/package.json')"].execute().text.trim(), "../react.gradle")
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")
// 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
// skip the bundling of the JS bundle and the assets. By default is just 'debug'.
// If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
// debuggableVariants = ["liteDebug", "prodDebug"]
/* Bundling */
// A list containing the node command and its flags. Default is just 'node'.
// nodeExecutableAndArgs = ["node"]
//
// The command to run when bundling. By default is 'bundle'
// bundleCommand = "ram-bundle"
//
// The path to the CLI configuration file. Default is empty.
// bundleConfig = file(../rn-cli.config.js)
//
// The name of the generated asset file containing your JS bundle
// bundleAssetName = "MyApplication.android.bundle"
//
// The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
// entryFile = file("../js/MyApplication.android.js")
//
// A list of extra flags to pass to the 'bundle' commands.
// See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
// extraPackagerArgs = []
/* Hermes Commands */
// The hermes compiler command to run. By default it is 'hermesc'
// hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
//
// The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
// hermesFlags = ["-O", "-output-source-map"]
}
/**
* Set this to true to create two separate APKs instead of one:
* - An APK that only works on ARM devices
* - An APK that only works on x86 devices
* The advantage is the size of the APK is reduced by about 4MB.
* Upload all the APKs to the Play Store and people will download
* the correct one based on the CPU architecture of their device.
*/
def enableSeparateBuildPerCPUArchitecture = false
/**
* Run Proguard to shrink the Java bytecode in release builds.
* Set this to true to Run Proguard on Release builds to minify the Java bytecode.
*/
def enableProguardInReleaseBuilds = false
/**
* The preferred build flavor of JavaScriptCore.
* The preferred build flavor of JavaScriptCore (JSC)
*
* For example, to use the international variant, you can use:
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
*
* 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
* 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:+'
/**
* Whether to enable the Hermes VM.
*
* This should be set on project.ext.react and mirrored here. If it is not set
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
* and the benefits of using Hermes will therefore be sharply reduced.
*/
def enableHermes = project.ext.react.get("enableHermes", true);
/**
* Architectures to build native code for.
*/
def reactNativeArchitectures() {
def value = project.getProperties().get("reactNativeArchitectures")
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
}
android {
ndkVersion rootProject.ext.ndkVersion
compileSdkVersion rootProject.ext.compileSdkVersion
buildToolsVersion rootProject.ext.buildToolsVersion
compileSdk rootProject.ext.compileSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
namespace "com.xmflsct.app.tooot"
defaultConfig {
applicationId 'com.xmflsct.app.tooot'
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 50
versionName "0.2"
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
arguments "APP_PLATFORM=android-21",
"APP_STL=c++_shared",
"NDK_TOOLCHAIN_VERSION=clang",
"GENERATED_SRC_DIR=$buildDir/generated/source",
"PROJECT_BUILD_DIR=$buildDir",
"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build"
"NODE_MODULES_DIR=$rootDir/../node_modules"
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
cppFlags "-std=c++17"
// Make sure this target name is the same you specify inside the
// src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
targets "tooot_appmodules"
}
}
if (!enableSeparateBuildPerCPUArchitecture) {
ndk {
abiFilters (*reactNativeArchitectures())
}
}
}
manifestPlaceholders = [
runtimeVersion: project.hasProperty('runtimeVersion') ? project.property('runtimeVersion') : "",
branch: project.hasProperty('branch') ? project.property('branch') : "development"
]
}
if (isNewArchitectureEnabled()) {
// We configure the NDK build only if you decide to opt-in for the New Architecture.
externalNativeBuild {
ndkBuild {
path "$projectDir/src/main/jni/Android.mk"
}
}
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
into("$buildDir/react-ndk/exported")
}
afterEvaluate {
// If you wish to add a custom TurboModule or component locally,
// you should uncomment this line.
// preBuild.dependsOn("generateCodegenArtifactsFromSchema")
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
// Due to a bug inside AGP, we have to explicitly set a dependency
// between configureNdkBuild* tasks and the preBuild tasks.
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
configureNdkBuildRelease.dependsOn(preReleaseBuild)
configureNdkBuildDebug.dependsOn(preDebugBuild)
reactNativeArchitectures().each { architecture ->
tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
dependsOn("preDebugBuild")
}
tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
dependsOn("preReleaseBuild")
}
}
}
}
splits {
abi {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include (*reactNativeArchitectures())
}
}
signingConfigs {
debug {
@ -242,32 +107,9 @@ android {
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
// applicationVariants are e.g. debug, release
applicationVariants.all { variant ->
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.android.com/studio/build/configure-apk-splits.html
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
defaultConfig.versionCode * 1000 + versionCodes.get(abi)
}
}
}
}
dependencies {
implementation ("androidx.lifecycle:lifecycle-runtime-ktx:2.3.0") {
force = true
}
implementation fileTree(dir: "libs", include: ["*.jar"])
//noinspection GradleDynamicVersion
implementation "com.facebook.react:react-native:+" // From node_modules
def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true";
def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true";
def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true";
@ -293,60 +135,16 @@ dependencies {
}
}
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
exclude group:'com.facebook.fbjni'
}
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
exclude group:'com.squareup.okhttp3', module:'okhttp'
}
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
exclude group:'com.facebook.flipper'
}
// The version of react-native is set by the React Native Gradle Plugin
implementation("com.facebook.react:react-android")
implementation("com.facebook.react:flipper-integration")
if (enableHermes) {
//noinspection GradleDynamicVersion
implementation("com.facebook.react:hermes-engine:+") { // From node_modules
exclude group:'com.facebook.fbjni'
}
if (hermesEnabled.toBoolean()) {
implementation("com.facebook.react:hermes-android")
} else {
implementation jscFlavor
}
}
if (isNewArchitectureEnabled()) {
// If new architecture is enabled, we let you build RN from source
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
// This will be applied to all the imported transtitive dependency.
configurations.all {
resolutionStrategy.dependencySubstitution {
substitute(module("com.facebook.react:react-native"))
.using(project(":ReactAndroid"))
.because("On New Architecture we're building React Native from source")
substitute(module("com.facebook.react:hermes-engine"))
.using(project(":ReactAndroid:hermes-engine"))
.because("On New Architecture we're building Hermes from source")
}
}
}
// Run this once to be able to run the application with BUCK
// puts all compile dependencies into folder libs for BUCK to use
task copyDownloadableDepsToLibs(type: Copy) {
from configurations.implementation
into 'libs'
}
apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute().text.trim(), "../native_modules.gradle");
applyNativeModulesAppBuildGradle(project)
def isNewArchitectureEnabled() {
// To opt-in for the New Architecture, you can either:
// - Set `newArchEnabled` to true inside the `gradle.properties` file
// - Invoke gradle with `-newArchEnabled=true`
// - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
}
apply plugin: 'com.google.gms.google-services'

View File

@ -1,19 +0,0 @@
"""Helper definitions to glob .aar and .jar targets"""
def create_aar_targets(aarfiles):
for aarfile in aarfiles:
name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
lib_deps.append(":" + name)
android_prebuilt_aar(
name = name,
aar = aarfile,
)
def create_jar_targets(jarfiles):
for jarfile in jarfiles:
name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
lib_deps.append(":" + name)
prebuilt_jar(
name = name,
binary_jar = jarfile,
)

View File

@ -13,6 +13,14 @@
}
},
"oauth_client": [
{
"client_id": "661638997772-erabggnp958v10r0tvsrh3pg880qnvqn.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.xmflsct.app.tooot",
"certificate_hash": "53162f104230ee8b7b1372e4f378e2b9607ca16f"
}
},
{
"client_id": "661638997772-6aiqk97aema0rt280i7nfar3ha2mlgno.apps.googleusercontent.com",
"client_type": 3
@ -31,10 +39,11 @@
"client_type": 3
},
{
"client_id": "661638997772-sqa4raeghhrieqt9guljhcul9b51dvna.apps.googleusercontent.com",
"client_id": "661638997772-65g8ce369ugck3ii4ulk6jhb3ijg51kl.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "com.xmflsct.app.mastodon"
"bundle_id": "com.xmflsct.app.tooot",
"app_store_id": "1549772269"
}
}
]

View File

@ -1,12 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application
android:usesCleartextTraffic="true"
tools:targetApi="28"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" android:exported="false" />
</application>
</manifest>
tools:ignore="GoogleAppIndexingWarning"/>
</manifest>

View File

@ -1,70 +0,0 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
* directory of this source tree.
*/
package com.tooot;
import android.content.Context;
import com.facebook.flipper.android.AndroidFlipperClient;
import com.facebook.flipper.android.utils.FlipperUtils;
import com.facebook.flipper.core.FlipperClient;
import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
import com.facebook.flipper.plugins.inspector.DescriptorMapping;
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
import com.facebook.react.ReactInstanceEventListener;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.bridge.ReactContext;
import com.facebook.react.modules.network.NetworkingModule;
import okhttp3.OkHttpClient;
public class ReactNativeFlipper {
public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
if (FlipperUtils.shouldEnableFlipper(context)) {
final FlipperClient client = AndroidFlipperClient.getInstance(context);
client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
client.addPlugin(new ReactFlipperPlugin());
client.addPlugin(new DatabasesFlipperPlugin(context));
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
client.addPlugin(CrashReporterPlugin.getInstance());
NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
NetworkingModule.setCustomClientBuilder(
new NetworkingModule.CustomClientBuilder() {
@Override
public void apply(OkHttpClient.Builder builder) {
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
}
});
client.addPlugin(networkFlipperPlugin);
client.start();
// Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
// Hence we run if after all native modules have been initialized
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
if (reactContext == null) {
reactInstanceManager.addReactInstanceEventListener(
new ReactInstanceEventListener() {
@Override
public void onReactContextInitialized(ReactContext reactContext) {
reactInstanceManager.removeReactInstanceEventListener(this);
reactContext.runOnNativeModulesQueueThread(
new Runnable() {
@Override
public void run() {
client.addPlugin(new FrescoFlipperPlugin());
}
});
}
});
} else {
client.addPlugin(new FrescoFlipperPlugin());
}
}
}
}

View File

@ -1,5 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" package="com.xmflsct.app.tooot">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
@ -9,17 +8,12 @@
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:requestLegacyExternalStorage="true">
<!-- [Custom] Expo Notifications -->
<meta-data android:name="expo.modules.notifications.default_notification_icon" android:resource="@drawable/ic_stat_notifications" />
<!-- [Custom] End Expo Notifications -->
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://u.expo.dev/3288313f-3ff0-496a-a5a9-d8985e7cad5f"/>
<meta-data android:name="expo.modules.updates.EXPO_RUNTIME_VERSION" android:value="${runtimeVersion}"/>
<meta-data android:name="expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY" android:value="{'expo-channel-name':'${branch}'}"/>
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="WIFI_ONLY"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:exported="true" android:theme="@style/Theme.App.SplashScreen" android:screenOrientation="portrait" android:documentLaunchMode="never">
<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:exported="true" android:theme="@style/Theme.App.SplashScreen" android:documentLaunchMode="never">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>

View File

@ -1,53 +0,0 @@
package com.xmflsct.app.tooot;
import android.os.Bundle;
import com.facebook.react.ReactActivity;
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import expo.modules.ReactActivityDelegateWrapper;
public class MainActivity extends ReactActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(null);
}
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "main";
}
/**
* Returns the instance of the {@link ReactActivityDelegate}. There the RootView is created and
* you can specify the renderer you wish to use - the new renderer (Fabric) or the old renderer
* (Paper).
*/
@Override
protected ReactActivityDelegate createReactActivityDelegate() {
return new ReactActivityDelegateWrapper(this, new MainActivityDelegate(this, getMainComponentName()));
}
public static class MainActivityDelegate extends ReactActivityDelegate {
public MainActivityDelegate(ReactActivity activity, String mainComponentName) {
super(activity, mainComponentName);
}
@Override
protected ReactRootView createRootView() {
ReactRootView reactRootView = new ReactRootView(getContext());
// If you opted-in for the New Architecture, we enable the Fabric Renderer.
reactRootView.setIsFabric(BuildConfig.IS_NEW_ARCHITECTURE_ENABLED);
return reactRootView;
}
@Override
protected boolean isConcurrentRootEnabled() {
// If you opted-in for the New Architecture, we enable Concurrent Root (i.e. React 18).
// More on this on https://reactjs.org/blog/2022/03/29/react-v18.html
return BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
}
}
}

View File

@ -0,0 +1,61 @@
package com.xmflsct.app.tooot;
import android.os.Build
import android.os.Bundle
import com.facebook.react.ReactActivity
import com.facebook.react.ReactActivityDelegate
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
import com.facebook.react.defaults.DefaultReactActivityDelegate
import expo.modules.ReactActivityDelegateWrapper
class MainActivity : ReactActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
// Set the theme to AppTheme BEFORE onCreate to support
// coloring the background, status bar, and navigation bar.
// This is required for expo-splash-screen.
setTheme(R.style.AppTheme);
super.onCreate(null)
}
/**
* Returns the name of the main component registered from JavaScript. This is used to schedule
* rendering of the component.
*/
override fun getMainComponentName(): String = "main"
/**
* Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
* which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
*/
override fun createReactActivityDelegate(): ReactActivityDelegate {
return ReactActivityDelegateWrapper(
this,
BuildConfig.IS_NEW_ARCHITECTURE_ENABLED,
object : DefaultReactActivityDelegate(
this,
mainComponentName,
fabricEnabled
){})
}
/**
* Align the back button behavior with Android S
* where moving root activities to background instead of finishing activities.
* @see <a href="https://developer.android.com/reference/android/app/Activity#onBackPressed()">onBackPressed</a>
*/
override fun invokeDefaultOnBackPressed() {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
if (!moveTaskToBack(false)) {
// For non-root activities, use the default implementation to finish them.
super.invokeDefaultOnBackPressed()
}
return
}
// Use the default back button implementation on Android S
// because it's doing more than [Activity.moveTaskToBack] in fact.
super.invokeDefaultOnBackPressed()
}
}

View File

@ -1,113 +0,0 @@
package com.xmflsct.app.tooot;
import android.app.Application;
import android.content.Context;
import android.content.res.Configuration;
import androidx.annotation.NonNull;
import com.facebook.react.PackageList;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.config.ReactFeatureFlags;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import expo.modules.ApplicationLifecycleDispatcher;
import expo.modules.ReactNativeHostWrapper;
import expo.modules.updates.UpdatesController;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import com.facebook.react.bridge.JSIModulePackage; // <- react-native-reanimated-v2
import com.swmansion.reanimated.ReanimatedJSIModulePackage; // <- react-native-reanimated-v2
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHostWrapper(
this,
new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
@SuppressWarnings("UnnecessaryLocalVariable")
List<ReactPackage> packages = new PackageList(this).getPackages();
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
return packages;
}
@Override
protected String getJSMainModuleName() {
return "index";
}
@Override // <- react-native-reanimated-v2
protected JSIModulePackage getJSIModulePackage() {
return new ReanimatedJSIModulePackage();
}
});
@Override
public ReactNativeHost getReactNativeHost() {
// if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// return mNewArchitectureNativeHost;
// } else {
// return mReactNativeHost;
// }
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
// If you opted-in for the New Architecture, we enable the TurboModule system
ReactFeatureFlags.useTurboModules = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED;
SoLoader.init(this, /* native exopackage */ false);
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
ApplicationLifecycleDispatcher.onApplicationCreate(this);
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig);
}
/**
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
*
* @param context
* @param reactInstanceManager
*/
private static void initializeFlipper(
Context context, ReactInstanceManager reactInstanceManager) {
if (BuildConfig.DEBUG) {
try {
/*
We use reflection here to pick up the class that initializes Flipper,
since Flipper library is not available in release mode
*/
Class<?> aClass = Class.forName("com.xmflsct.app.tooot.ReactNativeFlipper");
aClass
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
.invoke(null, context, reactInstanceManager);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
}
}

View File

@ -0,0 +1,58 @@
package com.xmflsct.app.tooot;
import android.app.Application
import android.content.res.Configuration
import androidx.annotation.NonNull
import com.facebook.react.PackageList
import com.facebook.react.ReactApplication
import com.facebook.react.ReactHost
import com.facebook.react.ReactNativeHost
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.flipper.ReactNativeFlipper
import com.facebook.soloader.SoLoader
import expo.modules.ApplicationLifecycleDispatcher
import expo.modules.ReactNativeHostWrapper
class MainApplication : Application(), ReactApplication {
override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(
this,
object : DefaultReactNativeHost(this) {
override fun getPackages(): List<ReactPackage> {
// Packages that cannot be autolinked yet can be added manually here, for example:
// packages.add(new MyReactNativePackage());
return PackageList(this).packages
}
override fun getJSMainModuleName(): String = "index"
override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
}
)
override val reactHost: ReactHost
get() = getDefaultReactHost(this.applicationContext, reactNativeHost)
override fun onCreate() {
super.onCreate()
SoLoader.init(this, false)
if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
// If you opted-in for the New Architecture, we load the native entry point for this app.
load()
}
ApplicationLifecycleDispatcher.onApplicationCreate(this)
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig)
}
}

View File

@ -1,25 +1,11 @@
import org.apache.tools.ant.taskdefs.condition.Os
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "31.0.0"
buildToolsVersion = "34.0.0"
minSdkVersion = 21
compileSdkVersion = 31
targetSdkVersion = 31
kotlinVersion = '1.6.10'
if (System.properties['os.arch'] == "aarch64") {
// For M1 Users we need to use the NDK 24 which added support for aarch64
ndkVersion = "24.0.8215888"
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
// For Android Users, we need to use NDK 23, otherwise the build will
// fail due to paths longer than the OS limit
ndkVersion = "23.1.7779620"
} else {
// Otherwise we default to the side-by-side NDK version from AGP.
ndkVersion = "21.4.7075529"
}
compileSdkVersion = 34
targetSdkVersion = 34
ndkVersion = "25.1.8937393"
kotlinVersion = '1.8.0'
}
repositories {
google()
@ -27,31 +13,11 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.google.gms:google-services:4.3.3'
classpath("com.android.tools.build:gradle:7.1.1")
classpath("com.android.tools.build:gradle")
classpath("com.facebook.react:react-native-gradle-plugin")
classpath("de.undercouch:gradle-download-task:5.0.1")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath 'com.google.gms:google-services:4.3.14'
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
}
}
allprojects {
repositories {
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute().text.trim(), "../android"))
}
maven {
// Android JSC is installed from npm
url(new File(["node", "--print", "require.resolve('jsc-android/package.json')"].execute().text.trim(), "../dist"))
}
google()
mavenCentral()
jcenter()
maven { url 'https://www.jitpack.io' }
}
}
apply plugin: "com.facebook.react.rootproject"

View File

@ -25,9 +25,6 @@ android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.125.0
# Use this property to specify which architecture you want to build.
# You can also override it from the CLI using
# ./gradlew <task> -PreactNativeArchitectures=x86_64
@ -39,10 +36,14 @@ reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
# are providing them.
newArchEnabled=false
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.configureondemand=true
# Use this property to enable or disable the Hermes JS engine.
# If set to false, you will be using JSC instead.
hermesEnabled=true
org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
# org.gradle.daemon=true
# org.gradle.parallel=true
# org.gradle.configureondemand=true
# The hosted JavaScript engine
# Supported values: expo.jsEngine = "hermes" | "jsc"

Binary file not shown.

View File

@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

81
android/gradlew vendored
View File

@ -1,7 +1,7 @@
#!/bin/sh
#
# Copyright 2015 the original author or authors.
# Copyright © 2015-2021 the original authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@ -17,14 +17,56 @@
#
##############################################################################
##
## Gradle start up script for UN*X
##
#
# Gradle start up script for POSIX generated by Gradle.
#
# Important for running:
#
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
# noncompliant, but you have some other compliant shell such as ksh or
# bash, then to run this script, type that shell name before the whole
# command line, like:
#
# ksh Gradle
#
# Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features:
# * functions;
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
# * compound commands having a testable exit status, especially «case»;
# * various built-in commands including «command», «set», and «ulimit».
#
# Important for patching:
#
# (2) This script targets any POSIX shell, so it avoids extensions provided
# by Bash, Ksh, etc; in particular arrays are avoided.
#
# The "traditional" practice of packing multiple parameters into a
# space-separated string is a well documented source of bugs and security
# problems, so this is (mostly) avoided, by progressively accumulating
# options in "$@", and eventually passing that to Java.
#
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
# see the in-line comments for details.
#
# There are tweaks for specific operating systems such as AIX, CygWin,
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
#
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
app_path=$0
# Need this for daisy-chained symlinks.
while
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
@ -37,13 +79,11 @@ do
*) app_path=$APP_HOME$link ;;
esac
done
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
APP_NAME="Gradle"
APP_BASE_NAME=${0##*/}
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# 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
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@ -73,6 +113,7 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@ -89,22 +130,29 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi
# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
@ -122,7 +170,9 @@ fi
if "$cygwin" || "$msys" ; then
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
JAVACMD=$( cygpath --unix "$JAVACMD" )
# Now convert the arguments - kludge to limit ourselves to /bin/sh
for arg do
if
@ -147,16 +197,27 @@ if "$cygwin" || "$msys" ; then
done
fi
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
# double quotes to make sure that they get re-expanded; and
# * put everything else in single quotes, so that it's not re-expanded.
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
org.gradle.wrapper.GradleWrapperMain \
"$@"
# Stop when "xargs" is not available.
if ! command -v xargs >/dev/null 2>&1
then
die "xargs is not available"
fi
# Use "xargs" to parse quoted args.
#
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
@ -183,4 +244,4 @@ eval "set -- $(
tr '\n' ' '
)" '"$@"'
exec "$JAVACMD" "$@"
exec "$JAVACMD" "$@"

17
android/gradlew.bat vendored
View File

@ -14,7 +14,7 @@
@rem limitations under the License.
@rem
@if "%DEBUG%" == "" @echo off
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@ -25,7 +25,7 @@
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
if "%DIRNAME%"=="" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto execute
if %ERRORLEVEL% equ 0 goto execute
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@ -69,20 +69,23 @@ goto fail
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
:omega

View File

@ -0,0 +1,3 @@
defaults.url=https://sentry.io/
defaults.org=tooot
defaults.project=app

View File

@ -1,17 +1,10 @@
rootProject.name = 'tooot'
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute().text.trim(), "../scripts/autolinking.gradle");
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle");
useExpoModules()
apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute().text.trim(), "../native_modules.gradle");
apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle");
applyNativeModulesSettingsGradle(settings)
include ':app'
includeBuild('../node_modules/react-native-gradle-plugin')
if (settings.hasProperty("newArchEnabled") && settings.newArchEnabled == "true") {
include(":ReactAndroid")
project(":ReactAndroid").projectDir = file('../node_modules/react-native/ReactAndroid')
include(":ReactAndroid:hermes-engine")
project(":ReactAndroid:hermes-engine").projectDir = file('../node_modules/react-native/ReactAndroid/hermes-engine')
}
includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile())

View File

@ -1,44 +1,24 @@
import { ExpoConfig } from '@expo/config'
import { versions } from './package.json'
import { version } from './package.json'
import 'dotenv/config'
const toootVersion = `${versions.major}.${versions.minor}.${versions.patch}`
export default (): ExpoConfig => ({
updates: {
url: "https://u.expo.dev/3288313f-3ff0-496a-a5a9-d8985e7cad5f"
},
runtimeVersion: `${versions.major}.${versions.minor}`,
name: 'tooot',
description: 'tooot for Mastodon',
slug: 'tooot',
scheme: 'tooot',
version: toootVersion,
version,
// @ts-ignore
extra: { environment: process.env.ENVIRONMENT },
privacy: 'hidden',
assetBundlePatterns: ['assets/*'],
hooks: {
postPublish: [
{
file: 'sentry-expo/upload-sourcemaps',
config: {
organization: process.env.SENTRY_ORGANIZATION,
project: process.env.SENTRY_PROJECT,
authToken: process.env.SENTRY_AUTH_TOKEN,
setCommits: process.env.GITHUB_SHA || undefined,
deployEnv: process.env.ENVIRONMENT
}
}
]
},
jsEngine: 'hermes',
ios: {
bundleIdentifier: 'com.xmflsct.app.tooot'
},
android: {
package: 'com.xmflsct.app.tooot',
googleServicesFile: './configs/google-services.json',
permissions: ['CAMERA', 'VIBRATE'],
blockedPermissions: ['USE_BIOMETRIC', 'USE_FINGERPRINT']
permissions: ['NOTIFICATIONS', 'CAMERA', 'VIBRATE'],
blockedPermissions: ['USE_BIOMETRIC', 'USE_FINGERPRINT'],
googleServicesFile: './android/app/google-services.json'
},
plugins: [
[

View File

@ -1,47 +1,27 @@
module.exports = function (api) {
api.cache(true)
const plugins = [
'@babel/plugin-proposal-optional-chaining',
[
'module-resolver',
{
root: ['./'],
alias: {
'@assets': './assets',
'@root': './src',
'@api': './src/api',
'@helpers': './src/helpers',
'@components': './src/components',
'@screens': './src/screens',
'@utils': './src/utils'
}
}
],
'react-native-reanimated/plugin'
]
if (
process.env.NODE_ENV === 'production' ||
process.env.BABEL_ENV === 'production'
) {
plugins.push('transform-remove-console')
}
api.cache(false)
return {
presets: [
'babel-preset-expo',
presets: ['babel-preset-expo'],
plugins: [
'@babel/plugin-proposal-optional-chaining',
[
'@babel/preset-react',
'module-resolver',
{
importSource: '@welldone-software/why-did-you-render',
runtime: 'automatic',
development:
process.env.NODE_ENV === 'development' ||
process.env.BABEL_ENV === 'development'
root: ['./'],
alias: {
'@components': './src/components',
'@i18n': './src/i18n',
'@screens': './src/screens',
'@utils': './src/utils'
}
}
]
],
plugins
].concat(
process.env.NODE_ENV === 'production' || process.env.BABEL_ENV === 'production'
? ['transform-remove-console']
: [],
['react-native-reanimated/plugin']
)
}
}

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CLIENT_ID</key>
<string>661638997772-65g8ce369ugck3ii4ulk6jhb3ijg51kl.apps.googleusercontent.com</string>
<key>REVERSED_CLIENT_ID</key>
<string>com.googleusercontent.apps.661638997772-65g8ce369ugck3ii4ulk6jhb3ijg51kl</string>
<key>API_KEY</key>
<string>AIzaSyAOS1Yq_uNVctG89LB6Dl1PVhb_FAQRbRg</string>
<key>GCM_SENDER_ID</key>
<string>661638997772</string>
<key>PLIST_VERSION</key>
<string>1</string>
<key>BUNDLE_ID</key>
<string>com.xmflsct.app.tooot</string>
<key>PROJECT_ID</key>
<string>xmflsct-mastodon-app</string>
<key>STORAGE_BUCKET</key>
<string>xmflsct-mastodon-app.appspot.com</string>
<key>IS_ADS_ENABLED</key>
<false></false>
<key>IS_ANALYTICS_ENABLED</key>
<false></false>
<key>IS_APPINVITE_ENABLED</key>
<true></true>
<key>IS_GCM_ENABLED</key>
<true></true>
<key>IS_SIGNIN_ENABLED</key>
<true></true>
<key>GOOGLE_APP_ID</key>
<string>1:661638997772:ios:c8d2e09264a344b09f8b29</string>
</dict>
</plist>

View File

@ -1,46 +0,0 @@
{
"project_info": {
"project_number": "661638997772",
"project_id": "xmflsct-mastodon-app",
"storage_bucket": "xmflsct-mastodon-app.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:661638997772:android:4fd02851f757f8fa9f8b29",
"android_client_info": {
"package_name": "com.xmflsct.app.tooot"
}
},
"oauth_client": [
{
"client_id": "661638997772-6aiqk97aema0rt280i7nfar3ha2mlgno.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyDUw4s-mhQsHvs4hdIsldsi68ZIygM5MC4"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "661638997772-6aiqk97aema0rt280i7nfar3ha2mlgno.apps.googleusercontent.com",
"client_type": 3
},
{
"client_id": "661638997772-sqa4raeghhrieqt9guljhcul9b51dvna.apps.googleusercontent.com",
"client_type": 2,
"ios_info": {
"bundle_id": "com.xmflsct.app.mastodon"
}
}
]
}
}
}
],
"configuration_version": "1"
}

View File

@ -1,10 +1,5 @@
# 'preserve_hierarchy': true
files:
[
{
'source': '/src/i18n/en/**/*.json',
'translation': '/src/i18n/%osx_locale%/**/%original_file_name%',
'ignore': ['*.ts'],
},
]
- source: /src/i18n/en/**/*.json
translation: /src/i18n/%osx_locale%/**/%original_file_name%
ignore:
- '*.ts'

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 248 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 403 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

BIN
demo/screenshots/Tab-Me.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 251 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 KiB

View File

@ -1,6 +1,7 @@
const demoStatuses = [
const demoStatus: Mastodon.Status[] = [
{
id: '1',
uri: 'https://example.com',
created_at: new Date().toISOString(),
sensitive: false,
visibility: 'public',
@ -13,7 +14,6 @@ const demoStatuses = [
bookmarked: false,
content:
'<p>Would you like to try out this simple, beautiful and open-source mobile app for Mastodon? 😊</p>',
reblog: null,
application: {
name: 'tooot',
website: 'https://tooot.app'
@ -23,19 +23,31 @@ const demoStatuses = [
username: 'tooot📱',
acct: 'tooot@xmflsct.com',
display_name: 'tooot📱',
avatar_static:
'https://avatars.githubusercontent.com/u/77554750?s=200&v=4'
avatar: 'https://avatars.githubusercontent.com/u/77554750?s=200&v=4',
avatar_static: 'https://avatars.githubusercontent.com/u/77554750?s=200&v=4',
url: '',
header: '',
header_static: '',
locked: false,
discoverable: false,
created_at: new Date().toISOString(),
last_status_at: new Date().toISOString(),
statuses_count: 1,
followers_count: 1,
following_count: 1,
fields: [],
bot: false
},
media_attachments: [],
poll: {
id: '1',
expires_at: new Date().setDate(new Date().getDate() + 5),
expires_at: new Date().setDate(new Date().getDate() + 5).toString(),
expired: false,
multiple: false,
votes_count: 10,
voters_count: null,
voters_count: 2,
voted: false,
own_votes: null,
own_votes: undefined,
options: [
{
title: 'I would love to!',
@ -48,11 +60,15 @@ const demoStatuses = [
],
emojis: []
},
mentions: []
mentions: [],
tags: [],
emojis: [],
pinned: false
},
{
id: '2',
created_at: new Date().setMinutes(new Date().getMinutes() - 2),
uri: 'https://example.com',
created_at: new Date().setMinutes(new Date().getMinutes() - 2).toString(),
sensitive: false,
spoiler_text: '',
visibility: 'public',
@ -65,18 +81,26 @@ const demoStatuses = [
bookmarked: false,
content:
'<p>Mastodon is a free and open-source self-hosted social networking service. It allows anyone to host their own server node in the network, and its various separately operated user bases are federated across many different servers. These nodes are referred to as "instances" by Mastodon users.</p>',
reblog: null,
application: {
name: 'Web',
website: null
},
application: { name: 'Web' },
account: {
id: '1000',
username: 'Mastodon',
acct: 'mastodon',
display_name: 'Mastodon',
avatar_static:
'https://mastodon.social/apple-touch-icon.png'
avatar: 'https://mastodon.social/apple-touch-icon.png',
avatar_static: 'https://mastodon.social/apple-touch-icon.png',
url: '',
header: '',
header_static: '',
locked: false,
discoverable: false,
created_at: new Date().toISOString(),
last_status_at: new Date().toISOString(),
statuses_count: 1,
followers_count: 1,
following_count: 1,
fields: [],
bot: false
},
media_attachments: [],
card: {
@ -85,18 +109,31 @@ const demoStatuses = [
description:
'Mastodon is an open source decentralized social network - by the people for the people. Join the federation and take back control of your social media!',
type: 'link',
image:
'https://mastodon.social/apple-touch-icon.png'
image: 'https://mastodon.social/apple-touch-icon.png',
author_name: '',
author_url: '',
provider_name: '',
provider_url: '',
html: '<p></p>',
width: 100,
height: 100,
embed_url: 'https://example.com',
blurhash: ''
},
mentions: []
mentions: [],
tags: [],
emojis: [],
pinned: false
},
{
id: '3',
created_at: '2021-01-24T09:50:00.901Z',
uri: '',
created_at: new Date().setHours(new Date().getHours() - 1).toString(),
sensitive: false,
spoiler_text: '',
visibility: 'public',
replies_count: 2,
reblogs_count: null,
reblogs_count: 1,
favourites_count: 3,
favourited: false,
reblogged: false,
@ -104,24 +141,38 @@ const demoStatuses = [
bookmarked: true,
content:
'<p>These servers are connected as a federated social network, allowing users from different servers to interact with each other seamlessly. Once a Mastodon server knows another Mastodon server, it "federates" with the other Mastodon server. Mastodon is a part of the wider Fediverse, allowing its users to also interact with users on different open platforms that support the same protocol, such as PeerTube and Friendica.</p>',
reblog: null,
application: {
name: 'Web',
website: null
},
application: { name: 'Web' },
account: {
id: '1001',
username: 'Fediverse',
acct: 'fediverse',
display_name: 'Fediverse',
avatar:
'https://e7.pngegg.com/pngimages/667/514/png-clipart-mastodon-fediverse-social-media-free-software-logo-social-media-blue-text.png',
avatar_static:
'https://e7.pngegg.com/pngimages/667/514/png-clipart-mastodon-fediverse-social-media-free-software-logo-social-media-blue-text.png'
'https://e7.pngegg.com/pngimages/667/514/png-clipart-mastodon-fediverse-social-media-free-software-logo-social-media-blue-text.png',
url: '',
header: '',
header_static: '',
locked: false,
discoverable: false,
created_at: new Date().toISOString(),
last_status_at: new Date().toISOString(),
statuses_count: 1,
followers_count: 1,
following_count: 1,
fields: [],
bot: false
},
media_attachments: [],
mentions: []
mentions: [],
tags: [],
emojis: [],
pinned: false
},
{
id: '4',
uri: 'https://example.com',
created_at: '2021-01-24T08:50:00.901Z',
sensitive: false,
visibility: 'public',
@ -134,7 +185,6 @@ const demoStatuses = [
bookmarked: false,
content:
'<p>tooot is an open source, simple mobile client for Mastodon. Focusing on your connections while being able to explore the Fediverse.</p>',
reblog: null,
application: {
name: 'tooot',
website: 'https://tooot.app'
@ -144,14 +194,30 @@ const demoStatuses = [
username: 'tooot📱',
acct: 'tooot@xmflsct.com',
display_name: 'tooot📱',
avatar_static:
'https://avatars.githubusercontent.com/u/77554750?s=200&v=4'
avatar: 'https://avatars.githubusercontent.com/u/77554750?s=200&v=4',
avatar_static: 'https://avatars.githubusercontent.com/u/77554750?s=200&v=4',
url: '',
header: '',
header_static: '',
locked: false,
discoverable: false,
created_at: new Date().toISOString(),
last_status_at: new Date().toISOString(),
statuses_count: 1,
followers_count: 1,
following_count: 1,
fields: [],
bot: false
},
media_attachments: [],
mentions: []
mentions: [],
tags: [],
emojis: [],
pinned: false
},
{
id: '5',
uri: 'https://example.com',
created_at: '2021-01-24T07:50:00.901Z',
sensitive: false,
visibility: 'public',
@ -164,7 +230,6 @@ const demoStatuses = [
bookmarked: false,
content:
'<p>- tooot supports multiple accounts<br />- tooot supports browsing external instance<br />- tooot aims to support multiple languages</p>',
reblog: null,
application: {
name: 'tooot',
website: 'https://tooot.app'
@ -174,12 +239,27 @@ const demoStatuses = [
username: 'tooot📱',
acct: 'tooot@xmflsct.com',
display_name: 'tooot📱',
avatar_static:
'https://avatars.githubusercontent.com/u/77554750?s=200&v=4'
avatar: 'https://avatars.githubusercontent.com/u/77554750?s=200&v=4',
avatar_static: 'https://avatars.githubusercontent.com/u/77554750?s=200&v=4',
url: '',
header: '',
header_static: '',
locked: false,
discoverable: false,
created_at: new Date().toISOString(),
last_status_at: new Date().toISOString(),
statuses_count: 1,
followers_count: 1,
following_count: 1,
fields: [],
bot: false
},
media_attachments: [],
mentions: []
mentions: [],
tags: [],
emojis: [],
pinned: false
}
]
export default demoStatuses
export default demoStatus

View File

@ -1,8 +1,3 @@
languages(['zh-Hans', 'vi', 'ko', 'en-US', 'de-DE'])
name({
'default' => "tooot"
})
keywords({
'default' => "Mastodon,tooot,social,decentralized,长毛象,社交,去中心"
})

View File

@ -1,23 +1,13 @@
skip_docs
VERSIONS = read_json( json_path: "./package.json" )[:versions]
VERSION = read_json( json_path: "./package.json" )[:version]
GITHUB_RELEASE = "v#{VERSION}"
ENVIRONMENT = ENV["ENVIRONMENT"]
VERSION = "#{VERSIONS[:major]}.#{VERSIONS[:minor]}"
RELEASE_CHANNEL = "#{VERSIONS[:major]}.#{VERSIONS[:minor]}-#{ENVIRONMENT}"
BUILD_NUMBER = "#{Time.now.strftime("%y%m%d")}#{ENV["GITHUB_RUN_NUMBER"]}"
GITHUB_REPO = "tooot-app/app"
case ENVIRONMENT
when "candidate"
GITHUB_RELEASE = "v#{VERSION}-#{VERSIONS[:patch]}"
when "release"
GITHUB_RELEASE = "v#{VERSION}"
else
GITHUB_RELEASE= ""
end
XCODEPROJ = "./ios/tooot.xcodeproj"
INFO_PLIST = "./ios/tooot/Info.plist"
EXPO_PLIST = "./ios/tooot/Supporting/Expo.plist"
desc "ANDROID: Prepare play store"
private_lane :prepare_playstore_android do
@ -31,9 +21,6 @@ private_lane :build_ios do
IPA_FILE = "#{BUILD_DIRECTORY}/tooot.ipa"
DSYM_FILE = "#{BUILD_DIRECTORY}/tooot.app.dSYM.zip"
set_info_plist_value( path: EXPO_PLIST, key: "EXUpdatesRuntimeVersion", value: VERSION )
set_info_plist_value( path: EXPO_PLIST, key: "EXUpdatesRequestHeaders", subkey: "expo-channel-name", value: ENVIRONMENT )
setup_ci
set_info_plist_value( path: INFO_PLIST, key: "CFBundleShortVersionString", value: VERSION )
set_info_plist_value(
@ -49,7 +36,7 @@ private_lane :build_ios do
export_method: "app-store",
include_symbols: true,
output_directory: BUILD_DIRECTORY,
silent: false
silent: true
)
case ENVIRONMENT
@ -97,8 +84,6 @@ private_lane :build_android do
print_command: true,
print_command_output: true,
properties: {
"runtimeVersion" => VERSION,
"branch" => ENVIRONMENT,
"android.injected.signing.store.file" => "#{File.expand_path('..', Dir.pwd)}/android/tooot.jks",
"android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["ANDROID_KEYSTORE_ALIAS"],
@ -136,8 +121,6 @@ private_lane :build_android_apk do
print_command: true,
print_command_output: true,
properties: {
"runtimeVersion" => VERSION,
"branch" => ENVIRONMENT,
"android.injected.signing.store.file" => "#{File.expand_path('..', Dir.pwd)}/android/tooot.jks",
"android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PASSWORD"],
"android.injected.signing.key.alias" => ENV["ANDROID_KEYSTORE_ALIAS"],
@ -149,31 +132,18 @@ private_lane :build_android_apk do
end
lane :ios do
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_bearer: ENV['GH_PAT_GET_RELEASE'])
if releaseExists
puts("Release #{GITHUB_RELEASE} exists. Continue with building React Native only.")
else
puts("Release #{GITHUB_RELEASE} does not exist.")
cocoapods(clean_install: true, podfile: "./ios/Podfile")
build_ios
end
cocoapods(clean_install: true, podfile: "./ios/Podfile")
build_ios
rocket
end
lane :android do
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_bearer: ENV['GH_PAT_GET_RELEASE'])
if releaseExists
puts("Release #{GITHUB_RELEASE} exists. Continue with building React Native only.")
else
puts("Release #{GITHUB_RELEASE} does not exist. Create new release as well as new native build.")
build_android
end
build_android
rocket
end
lane :release do
releaseExists = get_github_release(url: GITHUB_REPO, version: "v#{VERSION}", api_bearer: ENV['GH_PAT_GET_RELEASE'])
if !releaseExists
if ENVIRONMENT == 'release'
build_android_apk
set_github_release(
repository_name: GITHUB_REPO,
@ -181,7 +151,7 @@ lane :release do
tag_name: GITHUB_RELEASE,
description: "No changelog provided",
commitish: git_branch,
is_prerelease: ENVIRONMENT == 'candidate',
is_prerelease: false,
upload_assets: ["#{File.expand_path('..', Dir.pwd)}/tooot-#{GITHUB_RELEASE}.apk"]
)
end

View File

@ -0,0 +1 @@
../../en-US/name.txt

View File

@ -0,0 +1 @@
../../it/description.txt

View File

@ -0,0 +1 @@
../../it/subtitle.txt

View File

@ -1 +0,0 @@
tooot

View File

@ -0,0 +1 @@
../../zh-Hans/name.txt

View File

@ -0,0 +1 @@
../en-US/name.txt

View File

@ -1,5 +1,10 @@
tooot is an open source, simple yet elegant Mastodon mobile client.
tooot is an open source, simple yet elegant Mastodon mobile client. A Mastodon (https://joinmastodon.org/) account is required to use this app.
A Mastodon (https://joinmastodon.org/) account is required to use this app.
tooot supports:
- Cross platform, including iPadOS and MacOS
- Multiple accounts
- Dark mode or adapt to system
- Adjustable toot font size
- Push notification
If you have suggestions, please reach out to @tooot@xmflsct.com or support@tooot.ap.
If you have suggestions, please reach out to @tooot@xmflsct.com or support@tooot.app.

View File

@ -0,0 +1 @@
tooot - fediverse and Mastodon

View File

@ -1,2 +1 @@
Support selecting multiple images
Long press toot to show options
Enjoy toooting! This version includes improvements and fixes.

View File

@ -1 +1 @@
Open source Mastodon client
Simple, just works

View File

@ -0,0 +1,10 @@
tooot è un client Mastodon semplice e open source. Per utilizzare questo client, devi disporre di un account Mastodon. (https://joinmastodon.org/).
Tooot supporta:
- Multipiattaforma, inclusi iPadOS e MacOS
- Accesso a più account
- Modalità scura o adattiva
- Dimensione del carattere del testo regolabile
- Notifiche push e altre funzioni
Per suggerimenti o commenti sull'utilizzo, contattare @tooot@xmflsct.com o support@tooot.app.

View File

@ -0,0 +1 @@
App open source per Mastodon

View File

@ -1,11 +1,10 @@
tooot是一个专门为中文用户社区所打造的开源、简洁长毛象客户端。使用此客户端需要已经拥有一个长毛象https://joinmastodon.org/)账号。
tooot起始于专注中文社区的简洁、开源长毛象手机客户端。使用此客户端需要已经拥有一个长毛象https://joinmastodon.org/)账号。
tooot支持
- iPad
- 跨平台,及iPadOS、MacOS
- 多账号登录
- 黑暗或自适应模式
- 可调整正文字体大小
- 可调正文字体尺寸
- 消息推送
等功能。
如有使用建议或意见,请联系@tooot@xmflsct.com或者support@tooot.app。

View File

@ -0,0 +1 @@
tooot - 探索联邦宇宙

View File

@ -1,2 +1 @@
支持同时上传多张图片
长按嘟文弹出嘟文选项
tooot-ing愉快此版本包括改进和修复。

View File

@ -1 +1 @@
开源毛象客户端
简约,想你所想

View File

@ -1,8 +1,4 @@
import { registerRootComponent } from 'expo'
import App from './src/App'
import App from '@root/App'
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
// It also ensures that whether you load the app in the Expo client or in a native build,
// the environment is set up appropriately
registerRootComponent(App)

View File

@ -1,11 +1,20 @@
require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking")
require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")
platform :ios, '12.4'
install! 'cocoapods', :deterministic_uuids => false
# Resolve react_native_pods.rb with node to allow for hoisting
require Pod::Executable.execute_command('node', ['-p',
'require.resolve(
"react-native/scripts/react_native_pods.rb",
{paths: [process.argv[1]]},
)', __dir__]).strip
production = ENV["PRODUCTION"] == "1"
platform :ios, '13.4'
prepare_react_native_project!
flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
linkage = ENV['USE_FRAMEWORKS']
if linkage != nil
Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
use_frameworks! :linkage => linkage.to_sym
end
require 'json'
podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {}
@ -14,22 +23,19 @@ target 'tooot' do
use_expo_modules!
config = use_native_modules!
# Flags change depending on the env values.
flags = get_default_flags()
use_react_native!(
:path => config[:reactNativePath],
:production => production,
:hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',
:fabric_enabled => flags[:fabric_enabled],
:flipper_configuration => FlipperConfiguration.disabled,
# An absolute path to your application root.
:app_path => "#{Pod::Config.instance.installation_root}/.."
)
post_install do |installer|
react_native_post_install(installer)
__apply_Xcode_12_5_M1_post_install_workaround(installer)
react_native_post_install(
installer,
config[:reactNativePath],
:mac_catalyst_enabled => false
)
# For share extension
installer.pods_project.targets.each do |target|
@ -50,8 +56,6 @@ end
target 'ShareExtension' do
use_react_native!(
:production => production,
:hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',
:flipper_configuration => FlipperConfiguration.disabled
)

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,2 @@
"NSPhotoLibraryAddUsageDescription" = "Дазвольце tooot захоўваць выявы ў папку камеры";
"NSPhotoLibraryUsageDescription" = "Дазвольце tooot захоўваць выявы ў папку камеры";

View File

@ -0,0 +1,2 @@
"NSPhotoLibraryAddUsageDescription" = "Permet que tooot desi imatges al carret de la càmera";
"NSPhotoLibraryUsageDescription" = "Permet que tooot desi imatges al carret de la càmera";

View File

@ -0,0 +1,2 @@
"NSPhotoLibraryAddUsageDescription" = "Erlauben Sie tooot, Bilder in Ihrer Kamerarolle zu speichern";
"NSPhotoLibraryUsageDescription" = "Erlauben Sie tooot, Bilder in Ihrer Kamerarolle zu speichern";

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