This adds support for the new Mastodon 4.2 role badges. Admins can
define if a role should be visible in the interface and then we get it
delivered by the Api on the `Account` object like this:
```
"roles": [
{
"id": "4",
"name": "TEST",
"color": "#ffee00"
}
]
```
- keeps compatibility with older Mastodon version and non Mastodon
servers
- Took me a while, but I figured out a way to use the color and have it
look ok on all backgrounds (Mastodon itself ignores the color and just
always uses its brand color)
- falls back to Tusky blue in case no color is configured
- I adjusted the "Follows you" and "Bot" badges so they match the new
badge style
- In case the "Follows you" and "Bot" badges are visible at the same
time, "Follows you" gets its own line and "Bot" goes into the same line
as the role badge.
- Will work even with a lot of role badges (right now users can only
have 1 role at once though)
- Will work even when the badges federate (right now they don't)
<img
src="https://github.com/tuskyapp/Tusky/assets/10157047/24cbe889-ae46-408e-bfa0-cf3fd3c24f74"
width="320" />
* Fix duplicated language entries from system and app language sets.
Closes#2900
* Prefer modern language codes.
Closes#2903
* Synchronize per-account default posting language with server.
Closes#2902
* Allow users to post in languages android doesn't know about yet (e.g. toki pona)
* Always put the preselected language at the top of the list
* Show account's creation date in Profile.
* Fix broken test.
* Store account creation date in the Database.
* Reformat and reposition Joined Date according to PR Feedback.
* Revert "Store account creation date in the Database."
This reverts commit d9761f53 as it's not needed.
* Change Account's Creation Date to a java.util.Date.
Update Test.
* Fix wildcard import.
* Show full month instead of an abbreviation.
* Remove `lazy` usage in favor of local instantiation.
Co-authored-by: Martin Marconcini <martin.marconcini.rodriguez@nl.abnamro.com>
Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
* Refactor-all-the-things version of the fix for issue #573
* Migrate SpanUtils to kotlin because why not
* Minimal fix for issue #573
* Add tests for compose spanning
* Clean up code suggestions
* Make FakeSpannable.getSpans implementation less awkward
* Add secondary validation pass for urls
* Address code review feedback
* Fixup type filtering in FakeSpannable again
* Make all mentions in compose activity use the default link color
* new layout for AccountActivity
* fix the light theme
* convert AccountActivity to Kotlin
* introduce AccountViewModel
* Merge branch 'master' into account-activity-redesign
# Conflicts:
# app/src/main/java/com/keylesspalace/tusky/AccountActivity.java
* add Bot badge to profile
* parse custom emojis in usernames
* add possibility to cancel follow request
* add third tab on profiles
* add account fields to profile
* add support for moved accounts
* set click listener on account moved view
* fix tests
* use 24dp as statusbar size
* add ability to hide reblogs from followed accounts
* add button to edit own account to AccountActivity
* set toolbar top margin programmatically
* fix crash
* add shadow behind statusbar
* introduce ViewExtensions to clean up code
* move code out of offsetChangedListener for perf reasons
* clean up stuff
* add error handling
* improve type safety
* fix ConstraintLayout warning
* remove unneeded ressources
* fix event dispatching
* fix crash in event handling
* set correct emoji on title
* improve some things
* wrap follower/foillowing/status views