2
2
mirror of https://github.com/mastodon/mastodon-ios synced 2025-04-11 22:58:02 +02:00

7139 Commits

Author SHA1 Message Date
shannon
a1774ced00 Add Role and Permissions to Account entity 2025-04-02 17:00:02 -04:00
shannon
36cde7dc50 Tap on admin report navigates to full report
This will only work if you are logged in to the admin account on the system browser.
2025-04-02 13:59:20 -04:00
shannon
030c3e1260 Distinguish between different types of admin reports in the notifications screen 2025-04-02 13:24:58 -04:00
shannon
d73e318c39 Improve Voice Over experience on Followers and Following lists
Fixes IOS-394
2025-04-02 11:28:22 -04:00
shannon
c809d18d97 Remove Arkana from scripts
Contributes to IOS-393
2025.02-7135
2025-04-02 08:41:34 -04:00
shannon
a7bdbd710a Remove Arkana from the gemfile
Contributes to IOS-393
2025-04-02 08:28:23 -04:00
shannon
7734f59072 Multiple states can now wrap a valid deviceToken
Contributes to IOS-384
2025.02-7133
2025-04-01 15:42:28 -04:00
shannon
9adf10a05e Use account name as title of notifications screen
To make it clear that these settings are for the current account only, if there are multiple accounts signed in.

Contributes to IOS-384
2025-04-01 15:41:20 -04:00
shannon
a53b454a92 Check if notification permission has been granted when returning from the background.
This whole area needs work. This solution updates the subscriptions more often than necessary.

Contributes to IOS-384
2025-04-01 15:17:52 -04:00
shannon
428fa2b19d Additional error handling for push notification subscriptions
Contributes to IOS-384
2025-04-01 10:51:44 -04:00
shannon
d7d565879f Remove push notification subscription management responsibility from SettingService
The SettingService used to be created very soon after launch, so it would catch the new registration token. It is now only created when needed by the Settings view controller, which makes it a bad place to keep the listener responsible for updating the current subscriptions with the new device token.

Also, update all subscriptions on launch, rather than each account’s subscriptions only when they become the active account.

Contributes to IOS-384
2025-04-01 09:16:28 -04:00
shannon
bf2a1ce790 Remove Arkana
Was only used for setting push notification endpoints.
2025-03-31 10:39:51 -04:00
shannon
457f494a28 Hardcode push notification endpoint
Contributes to IOS-384
2025.02-7127
2025-03-28 16:30:23 -04:00
shannon
a9b7e5a341 Prepare to handle grouped adminSignUp notifications 2025-03-28 12:02:17 -04:00
shannon
3b8f1f6fae Warning fix 2025.02-7125 2025-03-26 19:00:58 -04:00
shannon
95afad2050 Localization updates 2025-03-26 18:59:22 -04:00
Eugen Rochko
ab7a82cc74
New Crowdin updates (#1423)
* New translations app.json (Lithuanian)

* New translations ios-infoplist.json (Lithuanian)

* New translations intents.strings (Lithuanian)

* New translations intents.stringsdict (Lithuanian)

* New translations localizable.stringsdict (Lithuanian)

* New translations app.json (Lithuanian)

* New translations localizable.stringsdict (Lithuanian)

* New translations localizable.stringsdict (Lithuanian)

* New translations localizable.stringsdict (Lithuanian)

* New translations localizable.stringsdict (Lithuanian)

* New translations app.json (Lithuanian)

* New translations ios-infoplist.json (Lithuanian)

* New translations intents.strings (Lithuanian)

* New translations intents.stringsdict (Lithuanian)

* New translations localizable.stringsdict (Lithuanian)

* New translations app.json (Lithuanian)

* New translations app.json (Lithuanian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Simplified)

* New translations localizable.stringsdict (Chinese Simplified)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Simplified)

* New translations app.json (German)

* New translations app.json (Lithuanian)

* New translations app.json (Lithuanian)

* New translations ios-infoplist.json (Chinese Simplified)

* New translations intents.strings (Chinese Simplified)

* New translations app.json (Chinese Simplified)

* New translations app.json (Portuguese, Brazilian)

* New translations intents.strings (Chinese Simplified)

* New translations intents.stringsdict (Chinese Simplified)

* New translations localizable.stringsdict (Chinese Simplified)

* New translations app.json (Icelandic)

* New translations app.json (Icelandic)

* New translations localizable.stringsdict (Icelandic)

* New translations app.json (Vietnamese)

* New translations app.json (Vietnamese)

* New translations localizable.stringsdict (Vietnamese)

* New translations app.json (Thai)

* New translations app.json (Icelandic)

* New translations app.json (Spanish)

* New translations app.json (Czech)

* New translations app.json (German)

* New translations app.json (Portuguese)

* New translations app.json (Chinese Simplified)

* New translations app.json (Vietnamese)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Lithuanian)

* New translations app.json (Thai)

* New translations app.json (Romanian)

* New translations app.json (French)

* New translations app.json (Arabic)

* New translations app.json (Belarusian)

* New translations app.json (Catalan)

* New translations app.json (Danish)

* New translations app.json (Greek)

* New translations app.json (Basque)

* New translations app.json (Finnish)

* New translations app.json (Hebrew)

* New translations app.json (Hungarian)

* New translations app.json (Armenian)

* New translations app.json (Italian)

* New translations app.json (Japanese)

* New translations app.json (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Russian)

* New translations app.json (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Turkish)

* New translations app.json (Ukrainian)

* New translations app.json (Chinese Traditional)

* New translations app.json (English)

* New translations app.json (Galician)

* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Latvian)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Burmese)

* New translations app.json (Welsh)

* New translations app.json (Sinhala)

* New translations app.json (Scottish Gaelic)

* New translations app.json (Aragonese)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Sorani (Kurdish))

* New translations app.json (Kabyle)

* New translations app.json (Vietnamese)

* New translations app.json (Icelandic)

* New translations app.json (German)

* New translations localizable.stringsdict (Icelandic)

* New translations app.json (Italian)

* New translations app.json (Chinese Traditional)

* New translations app.json (Italian)
2025.02-7123
2025-03-26 18:53:24 -04:00
shannon
11e1d97c1f Bump version number to 2025.02 2025.02-7122 2025-03-26 16:48:32 -04:00
shannon
47358a746e Add handling for several missing notification types 2025-03-26 16:47:54 -04:00
shannon
491cbd09c3 Add reason_required handling to new account registrations 2025-03-26 10:34:01 -04:00
shannon
d02fef490f Correct handling of approval_required on V2 instances 2025-03-26 09:48:27 -04:00
shannon
d911c5a076 Remove self from count of other voters
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025-03-26 09:48:27 -04:00
shannon
597d704d4e Add age verification to new account registration on servers that require it
Also improve the form fill experience by only marking a field invalid after it has been edited at least once, or was valid and then became invalid. (Or, for date of birth, is the last thing standing in the way of everything being valid, since the birth date is pre-filled with a likely-invalid value.)

Contributes to IOS-378
2025-03-26 09:48:19 -04:00
shannon
9f1291ca36 Localized strings for age verification
Contributes to IOS-378
2025-03-26 08:19:51 -04:00
shannon
f7b72faf56 Add the new min_age key to V2 Instance 2025-03-26 08:18:16 -04:00
shannon
a0c6b2c1ea Prevent race condition caused by loading newer notification groups at the same time as older
Possible when very few notifications groups exist for this user, so the bottom loader is visible as soon as the notifications tab is opened.
2025.01 2025.01-7114
2025-03-24 13:52:11 -04:00
shannon
7502daecd0 Honor requested minID when fetching notifications
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025-03-24 11:15:38 -04:00
shannon
c746507cc4 Remove unreachable error handler 2025-03-24 10:48:14 -04:00
shannon
e7ad48c9c0 Correctness improvement for merging cached and freshly fetched notification groups
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025-03-24 10:47:57 -04:00
shannon
fb4724371b Updated localizations 2025.01-7110 2025-03-13 14:56:54 -04:00
Eugen Rochko
ac8616d0f3
New Crowdin updates (#1422)
* New translations app.json (Italian)

* New translations app.json (Italian)

* New translations app.json (Czech)

* New translations localizable.stringsdict (Czech)

* New translations app.json (Czech)

* New translations app.json (Portuguese)

* New translations localizable.stringsdict (Portuguese)

* New translations app.json (Portuguese)

* New translations app.json (Spanish)

* New translations localizable.stringsdict (Spanish)
2025.01-7109
2025-03-13 14:20:16 -04:00
shannon
eb2b874ab5 Show new avatar image as soon as it has been chosen.
Also, lighten the editing overlay effect on the header and avatar images.
2025.01-7108
2025-03-13 13:05:55 -04:00
shannon
48be2e2f8f Add “see more” accessibility option to trigger refresh of notifications feed
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
Contributes to IOS-380
2025-03-13 11:23:39 -04:00
shannon
716cf2427f VoiceOver improvements for filtered notifications banner
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
Contributes to IOS-380
2025-03-13 11:22:49 -04:00
shannon
00bcae4bd6 Attempt to improve VoiceOver for accepted/rejected follower requests
Unfortunately needs further work (VoiceOver does not announce this label as part of the row).

Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
Contributes to IOS-380
2025-03-13 11:22:41 -04:00
shannon
b6b486533b Improved VoiceOver experience for Grouped Notifications screen
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
Contributes to IOS-380
2025-03-13 10:59:48 -04:00
shannon
7b348c0d5b Update strings 2025.01-7103 2025-03-11 14:06:07 -04:00
shannon
ef1081e688 Correct Localizable files in StringsConvertor 2025-03-11 13:55:22 -04:00
shannon
7ee72b2dd2 Revert "Remove obsolete localization file"
It may not have been obsolete.

This reverts commit dd0cba8781ac77d84bba32bf6f9c61a2bd342c4f.
2025-03-11 13:43:47 -04:00
Eugen Rochko
f11d37c24a
New Crowdin updates (#1421)
* New translations app.json (Korean)

* New translations intents.strings (Portuguese)

* New translations app.json (Kabyle)

* New translations app.json (Icelandic)

* New translations app.json (French)

* New translations app.json (Arabic)

* New translations app.json (Belarusian)

* New translations app.json (Korean)

* New translations app.json (Romanian)

* New translations app.json (Spanish)

* New translations app.json (Catalan)

* New translations app.json (Czech)

* New translations app.json (Danish)

* New translations app.json (German)

* New translations app.json (Greek)

* New translations app.json (Basque)

* New translations app.json (Finnish)

* New translations app.json (Hebrew)

* New translations app.json (Hungarian)

* New translations app.json (Armenian)

* New translations app.json (Italian)

* New translations app.json (Japanese)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Portuguese)

* New translations app.json (Russian)

* New translations app.json (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Turkish)

* New translations app.json (Ukrainian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Traditional)

* New translations app.json (English)

* New translations app.json (Vietnamese)

* New translations app.json (Galician)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Thai)

* New translations app.json (Latvian)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Burmese)

* New translations app.json (Welsh)

* New translations app.json (Sinhala)

* New translations app.json (Scottish Gaelic)

* New translations app.json (Aragonese)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Sorani (Kurdish))

* New translations app.json (Kabyle)

* New translations app.json (Icelandic)

* New translations app.json (French)

* New translations app.json (Arabic)

* New translations app.json (Belarusian)

* New translations app.json (Korean)

* New translations app.json (Romanian)

* New translations app.json (Spanish)

* New translations app.json (Catalan)

* New translations app.json (Czech)

* New translations app.json (Danish)

* New translations app.json (German)

* New translations app.json (Greek)

* New translations app.json (Basque)

* New translations app.json (Finnish)

* New translations app.json (Hebrew)

* New translations app.json (Hungarian)

* New translations app.json (Armenian)

* New translations app.json (Italian)

* New translations app.json (Japanese)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Portuguese)

* New translations app.json (Russian)

* New translations app.json (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Turkish)

* New translations app.json (Ukrainian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Traditional)

* New translations app.json (English)

* New translations app.json (Vietnamese)

* New translations app.json (Galician)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Thai)

* New translations app.json (Latvian)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Burmese)

* New translations app.json (Welsh)

* New translations app.json (Sinhala)

* New translations app.json (Scottish Gaelic)

* New translations app.json (Aragonese)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Sorani (Kurdish))

* New translations localizable.stringsdict (Romanian)

* New translations localizable.stringsdict (French)

* New translations localizable.stringsdict (Spanish)

* New translations localizable.stringsdict (Arabic)

* New translations localizable.stringsdict (Belarusian)

* New translations localizable.stringsdict (Catalan)

* New translations localizable.stringsdict (Czech)

* New translations localizable.stringsdict (Danish)

* New translations localizable.stringsdict (German)

* New translations localizable.stringsdict (Greek)

* New translations localizable.stringsdict (Basque)

* New translations localizable.stringsdict (Finnish)

* New translations localizable.stringsdict (Hebrew)

* New translations localizable.stringsdict (Hungarian)

* New translations localizable.stringsdict (Armenian)

* New translations localizable.stringsdict (Italian)

* New translations localizable.stringsdict (Japanese)

* New translations localizable.stringsdict (Korean)

* New translations localizable.stringsdict (Dutch)

* New translations localizable.stringsdict (Polish)

* New translations localizable.stringsdict (Portuguese)

* New translations localizable.stringsdict (Russian)

* New translations localizable.stringsdict (Slovenian)

* New translations localizable.stringsdict (Swedish)

* New translations localizable.stringsdict (Turkish)

* New translations localizable.stringsdict (Ukrainian)

* New translations localizable.stringsdict (Chinese Simplified)

* New translations localizable.stringsdict (Chinese Traditional)

* New translations localizable.stringsdict (English)

* New translations localizable.stringsdict (Vietnamese)

* New translations localizable.stringsdict (Galician)

* New translations localizable.stringsdict (Icelandic)

* New translations localizable.stringsdict (Portuguese, Brazilian)

* New translations localizable.stringsdict (Indonesian)

* New translations localizable.stringsdict (Spanish, Argentina)

* New translations localizable.stringsdict (Thai)

* New translations localizable.stringsdict (Latvian)

* New translations localizable.stringsdict (Hindi)

* New translations localizable.stringsdict (English, United States)

* New translations localizable.stringsdict (Burmese)

* New translations localizable.stringsdict (Welsh)

* New translations localizable.stringsdict (Sinhala)

* New translations localizable.stringsdict (Scottish Gaelic)

* New translations localizable.stringsdict (Aragonese)

* New translations localizable.stringsdict (Kurmanji (Kurdish))

* New translations localizable.stringsdict (Sorani (Kurdish))

* New translations localizable.stringsdict (Kabyle)

* New translations app.json (French)

* New translations app.json (French)

* New translations localizable.stringsdict (Romanian)

* New translations localizable.stringsdict (French)

* New translations localizable.stringsdict (Spanish)

* New translations localizable.stringsdict (Arabic)

* New translations localizable.stringsdict (Belarusian)

* New translations localizable.stringsdict (Catalan)

* New translations localizable.stringsdict (Czech)

* New translations localizable.stringsdict (Danish)

* New translations localizable.stringsdict (German)

* New translations localizable.stringsdict (Greek)

* New translations localizable.stringsdict (Basque)

* New translations localizable.stringsdict (Finnish)

* New translations localizable.stringsdict (Hebrew)

* New translations localizable.stringsdict (Hungarian)

* New translations localizable.stringsdict (Armenian)

* New translations localizable.stringsdict (Italian)

* New translations localizable.stringsdict (Japanese)

* New translations localizable.stringsdict (Korean)

* New translations localizable.stringsdict (Dutch)

* New translations localizable.stringsdict (Polish)

* New translations localizable.stringsdict (Portuguese)

* New translations localizable.stringsdict (Russian)

* New translations localizable.stringsdict (Slovenian)

* New translations localizable.stringsdict (Swedish)

* New translations localizable.stringsdict (Turkish)

* New translations localizable.stringsdict (Ukrainian)

* New translations localizable.stringsdict (Chinese Simplified)

* New translations localizable.stringsdict (Chinese Traditional)

* New translations localizable.stringsdict (English)

* New translations localizable.stringsdict (Vietnamese)

* New translations localizable.stringsdict (Galician)

* New translations localizable.stringsdict (Icelandic)

* New translations localizable.stringsdict (Portuguese, Brazilian)

* New translations localizable.stringsdict (Indonesian)

* New translations localizable.stringsdict (Spanish, Argentina)

* New translations localizable.stringsdict (Thai)

* New translations localizable.stringsdict (Latvian)

* New translations localizable.stringsdict (Hindi)

* New translations localizable.stringsdict (English, United States)

* New translations localizable.stringsdict (Burmese)

* New translations localizable.stringsdict (Welsh)

* New translations localizable.stringsdict (Sinhala)

* New translations localizable.stringsdict (Scottish Gaelic)

* New translations localizable.stringsdict (Aragonese)

* New translations localizable.stringsdict (Kurmanji (Kurdish))

* New translations localizable.stringsdict (Sorani (Kurdish))

* New translations localizable.stringsdict (Kabyle)

* New translations app.json (Dutch)

* New translations app.json (Dutch)

* New translations app.json (Chinese Traditional)

* New translations localizable.stringsdict (French)

* New translations localizable.stringsdict (Dutch)

* New translations localizable.stringsdict (Chinese Traditional)

* New translations app.json (Spanish, Argentina)

* New translations localizable.stringsdict (Spanish, Argentina)

* New translations app.json (Italian)

* New translations localizable.stringsdict (Italian)

* New translations localizable.stringsdict (Italian)
2025.01-7100
2025-03-11 11:20:24 -04:00
shannon
6783182e21 Regularly update the time-elapsed stamps in the notification views
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025.01-7099
2025-03-11 11:12:17 -04:00
shannon
77f81e5849 Do not show seconds in notification timestamp, only “now” if < 1 minute
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025-03-11 11:12:17 -04:00
shannon
4721dd102a Show notification stamp in units no larger than days
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025-03-11 11:12:17 -04:00
shannon
357282ee53 Remove beta setting for grouped notifications
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025-03-11 11:12:17 -04:00
shannon
dc6e0cfe2f Remove unwanted space between notification header and longer summary posts
Contributes to #399 [BUG] Multiple interactions do not collapse into a single notification
2025-03-11 11:12:09 -04:00
shannon
f7b992f996 Remove baseline alignment 2025.01-7094 2025-03-10 14:39:01 -04:00
shannon
2e458c8f00 Remove unused localized keys 2025-03-10 14:29:19 -04:00
shannon
ac5c088005 Correct plurals in base localization 2025-03-10 14:28:32 -04:00
shannon
62c1f05db4 Remove redundant accessibility label. 2025.01-7091 2025-03-10 13:37:12 -04:00
shannon
dd0cba8781 Remove obsolete localization file 2025-03-10 13:37:12 -04:00