* Attempt-zero implementation of a "focus" feature for image attachments. Choose "Set focus" in the attachment menu, tap once to select focus point (no visual feedback currently), tap "OK". Works in tests.
* Remove code duplication between 'update description' and 'update focus'
* Fix ktlint/bitrise failures
* Make updateMediaItem private
* When focus is set on a post attachment the preview focuses correctly. ProgressImageView now inherits from MediaPreviewImageView.
* Replace use of PointF for Focus where focus is represented, fix ktlint
* Substitute 'focus' for 'focus point' in strings
* First attempt draw focus point. Only updates on initial load. Modeled on code from RoundedCorners builtin from Glide
* Redraw focus after each tap
* Dark curtain where focus isn't (now looks like mastosoc)
* Correct ktlint for FocusDialog
* draft: switch to overlay for focus indicator
* Draw focus circle, but ImageView and FocusIndicatorView seem to share a single canvas
* Switch focus circle to path approach
* Correctly scale, save and load focuses. Clamp to visible area. Focus editor looks and feels right
* ktlint fixes and comments
* Focus indicator drawing should use device-independent pixels
* Shrink focus window when it gets unattractively tall (no linting, misbehaves on wide aspect ratio screens)
* Correct max-height behavior for screens in landscape mode
* Focus attachment result is are flipped on x axis; fix this
* Correctly thread focus through on scheduled posts, redrafted posts, and drafts (but draft focus is lost on post)
* More focus ktlint fixes
* Fix specific case where a draft is given a focus, then deleted, then posted in that order
* Fix accidental file change in focus PR
* ktLint fix
* Fix property style warnings in focus
* Fix remaining style warnings from focus PR
Co-authored-by: Conny Duck <k.pozniak@gmx.at>
* Show target domains for non-mention/non-hashtag links where the target domain is not provided or differs from the domain in the text.
Addresses #2694
* Add link signifier to the marked-up domain
* Back down on validating hashtags and mentions, don't markup _any_ urls where the text starts with #/@
Currently translated at 99.3% (488 of 491 strings)
Translated using Weblate (Italian)
Currently translated at 99.3% (488 of 491 strings)
Co-authored-by: Luca <f5e54431-cf3e-4a72-afcd-66ad76a38c19@anonaddy.me>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/it/
Translation: Tusky/Tusky
* initial setup
* add spacing between images
* use blurhash
* handle hidden state and show video indicator
* handle item clicks
* small cleanup
* move SquareImageView into account.media package
* fix build
* improve AccountMediaGridAdapter
* handle loadstate, errors and refreshing
* remove commented out code
* log error
* show audio attachments with icon
* fix glitchy transition animation
* set image Description on imageview
* show toast with media description on long press
* Fix broken timeline when there are only expired filters
The issue happened when the only applicable filters are expired. There
was a check to not produce an empty regex when there are no filters but
it was done before removing expired filters so we would produce an
empty regex that would match (and remove) everything and the timeline
would get stuck.
* Make a mini-optimization for FilterModel
* Add UI for selecting post language
* Apply selected language when sending status
* Save/restore post language with drafts
* Fall back to english if the configured language isn't found in the locale list (no-NB)
* Remove comment about no_NB
* Move language dropdown to top of compose view
* Preserve language when redrafting
* Set default language to target post's language when replying
* Add Tusky license header to new source file
* Tweak language dropdown button width
* Show filter expiration in list
* Add support for setting and updating the duration of a filter
* Add tests for duration conversion math
* Refactor network wrapper code
* Mark updated mastodon api functions as suspend
* Avoid creating unnecessary Date objects
* Apply suggestions to filter dialog layout
Currently translated at 100.0% (489 of 489 strings)
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (489 of 489 strings)
Co-authored-by: Hồ Nhất Duy <kantcer@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
Currently translated at 99.5% (487 of 489 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 99.7% (488 of 489 strings)
Co-authored-by: Connyduck <weblate@connyduck.at>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/nb_NO/
Translation: Tusky/Tusky
* initial class setup
* handle events and filters
* handle status state changes
* code formatting
* fix status filtering
* cleanup code a bit
* implement removeAllByAccountId
* move toolbar into fragment, implement menu
* error and load state handling
* fix pull to refresh
* implement reveal button
* use requireContext() instead of context!!
* jump to detailed status
* add ViewThreadViewModelTest
* fix ktlint
* small code improvements (thx charlag)
* add testcase for toggleRevealButton
* add more state change testcases to ViewThreadViewModel
* Add support for following hashtags. Addresses #2637
* Update rxjava to coroutines
* Update new tag api to use suspend functions
* Update hashtag unfollow icon
* Set correct tint on hashtag follow/unfollow icons
* Translate hashtag follow/unfollow error messages
* Toast => Snackbar
* Remove unnecessary view lookup
Currently translated at 100.0% (489 of 489 strings)
Translated using Weblate (German)
Currently translated at 100.0% (489 of 489 strings)
Co-authored-by: Connyduck <weblate@connyduck.at>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
* remove megabyte counts from file size error messages
The file size limits depend on the server; change strings to reflect that.
* show real file size limits instead of assuming Mastodon defaults
* correct previous commit
* correct previous commit (again)
* remove megabyte counts from file size error messages
The file size limits depend on the server; change strings to reflect that.
* Translated using Weblate (Galician)
Currently translated at 100.0% (489 of 489 strings)
Co-authored-by: XoseM <xosem@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gl/
Translation: Tusky/Tusky
* Translated using Weblate (Finnish)
Currently translated at 5.5% (1 of 18 strings)
Translation: Tusky/Tusky description
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky-app/fi/
* correct previous commit
correct previous commit (again)
fixed type error caused by previous commits
* fix lint error...
* Update strings.xml
* improve code, calculate correct max size and format it
Co-authored-by: Laura <the-ceo-of-antifa@protonmail.com>
Co-authored-by: XoseM <xosem@disroot.org>
Co-authored-by: Konrad Pozniak <k.pozniak@gmx.at>
Currently translated at 51.9% (254 of 489 strings)
Co-authored-by: Laura Aléanor <the-ceo-of-antifa@protonmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fi/
Translation: Tusky/Tusky
Currently translated at 100.0% (489 of 489 strings)
Co-authored-by: Konstantin <konstantin.tutsch@disroot.org>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/de/
Translation: Tusky/Tusky
* 2616: Save Scheduled Time for Drafts.
Signed-off-by: Martin Marconcini <martin.marconcini.rodriguez@nl.abnamro.com>
* Revert 39.json schema to the original state before my changes.
* handle media size instance limits
* remove unused attributes from Instance entity
* support max_media_attachments
* support pleroma field limits, remove max_bio_chars support
* improve field input margin
* fix tests
* MAX_ACCOUNT_FIELDS -> DEFAULT_MAX_ACCOUNT_FIELDS
* improve "add field" button behavior
* fix copy paste mistake in AccountFieldEditAdapter
* refactor sendStatus to be a suspending function
Currently translated at 100.0% (488 of 488 strings)
Co-authored-by: ButterflyOfFire <butterflyoffire@protonmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr/
Translation: Tusky/Tusky
Currently translated at 100.0% (488 of 488 strings)
Translated using Weblate (French)
Currently translated at 100.0% (488 of 488 strings)
Co-authored-by: codl <codl@codl.fr>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr/
Translation: Tusky/Tusky
The new message for the crop feature, "The attachment could not be edited.", turned out to be awkward in some languages (French) where according to the translator it would be better to more specifically say "The image could not be edited." (as currently we can only edit images). Patch replaces error_media_edit_failed with a error_image_edit_failed and deletes the existing error_media_edit_failed-s.
Only use distributors which are compatible with FEATURE_BYTES_MESSAGE
This is because Mastodon sends notifications that are arbritary bytes,
not UTF-8. This causes issues in older versions of UnifiedPush
distributors and providers that don't support FEATURE_BYTES_MESSAGE
Loading of statuses and loading of filters is an "intended" race:
we want to display statuses first, especially if they are cached.
Unfortunately we do not cache filters themselves so when we load cached
statuses we do not apply filters.
One part of the solution is to re-filter the statuses once we fetch the
filters. This commit implements it. Caching of filters is not included
yet.
* Fix unintended [mismatched] show-replies preference and add a comment to prevent confusion.
* Change the key on TAB_FILTER_HOME_REPLIES to reset everyone's value here once.
Currently translated at 98.7% (482 of 488 strings)
Co-authored-by: Luca <f5e54431-cf3e-4a72-afcd-66ad76a38c19@anonaddy.me>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/it/
Translation: Tusky/Tusky
Currently translated at 97.7% (477 of 488 strings)
Translated using Weblate (Portuguese (Portugal))
Currently translated at 98.1% (477 of 486 strings)
Co-authored-by: Bruno Miguel <brunoalexandremiguel@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/pt_PT/
Translation: Tusky/Tusky
Currently translated at 100.0% (488 of 488 strings)
Translated using Weblate (Hungarian)
Currently translated at 99.5% (484 of 486 strings)
Co-authored-by: Gera, Zoltan <gerazo@manioka.hu>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/hu/
Translation: Tusky/Tusky
Currently translated at 99.5% (486 of 488 strings)
Translated using Weblate (Gaelic)
Currently translated at 99.5% (483 of 485 strings)
Co-authored-by: GunChleoc <fios@foramnagaidhlig.net>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/gd/
Translation: Tusky/Tusky
Currently translated at 100.0% (488 of 488 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (486 of 486 strings)
Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (485 of 485 strings)
Co-authored-by: Vegard Skjefstad <vegard@vegard.net>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/nb_NO/
Translation: Tusky/Tusky
Currently translated at 98.7% (479 of 485 strings)
Co-authored-by: ButterflyOfFire <butterflyoffire@protonmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr/
Translation: Tusky/Tusky
Currently translated at 100.0% (488 of 488 strings)
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (486 of 486 strings)
Translated using Weblate (Vietnamese)
Currently translated at 100.0% (485 of 485 strings)
Co-authored-by: Hồ Nhất Duy <kantcer@gmail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/vi/
Translation: Tusky/Tusky
Currently translated at 100.0% (488 of 488 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (486 of 486 strings)
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (485 of 485 strings)
Co-authored-by: Eric <alchemillatruth@purelymail.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/zh_Hans/
Translation: Tusky/Tusky
Currently translated at 100.0% (485 of 485 strings)
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (485 of 485 strings)
Co-authored-by: Ihor Hordiichuk <igor_ck@outlook.com>
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/uk/
Translation: Tusky/Tusky
* First attachment crop attempt: Can crop in place, but does not delete/replace on server so has no effect
* Attachment crop feature works
* ktlint fixes on attachment crop patch
* Upgrade Android-Image-Cropper to 4.2.1
* An error message should be displayed if attachment cropping fails and it is not because the user intentionally cancelled.
* Remove 2 of the 3 "state passing" variables by using MediaUtils
* Cropper should use content uri (MIME type bearing) and setOutputCompressFormat so that PNGs reach the server safely.
* Change to crop requested by Conny: Store inflight cropImageItemOld in view model
* Change to crop requested by Conny: Sort cropImage with the other contracts
* ktlint fixes on attachment crop patch (again)
* 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>