Commit Graph

1443 Commits

Author SHA1 Message Date
Levi Bard 83862569e2
Nullcheck channels when reading importance. (#2971)
Fixes #2970
2022-12-02 19:46:02 +01:00
Levi Bard 588307f7a1
Enable setting the default posting language from Tusky (#2946)
* Extract locale utils

* Extract makeIcon

* Allow setting the (server-synchronized) default posting language from Tusky.
Closes #2902

* Add copyright headers

* Address review feedback
2022-12-02 19:19:17 +01:00
Eva Tatarka cc790ccf69
Add option to not crop image previews (#2832)
* Don't crop image previews with aspects between 2:1 & 1:2

Fixes #1995

* Custom media preview layout for handling various aspect ratios
2022-12-01 21:20:46 +01:00
Levi Bard 6b95790457
Add support for moderation report notifications (#2887)
* Add support for moderation report notifications

* Translate report categories

* Apply tint inside flag drawable

* Remove unused imports

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2022-12-01 20:11:55 +01:00
kylegoetz 86e5c92a05
show "now" instead of "in 0s" timestamps (#2843)
* Add roundoff threshold for "now" (new string resource) output in getRelativeTimeSpanString

* added tests

* added string resource translation for `status_created_at_now` in DE, ES, JA

* fixed ktlint issues

* use resource file in test, linting passes

* 501ms and 999ms now show "now" instead of "0s"
2022-12-01 19:54:29 +01:00
Nik Clayton 330401c7d0
Disable tab swiping by preference in profile and search (#2889)
The "Enable swipe gesture to switch between tabs" preference was ignored
on the tabs on a profile page ("Posts", "With Replies", "Pinned", "Media"),
and search ("Posts", "Accounts", "Hashtags").

Fix this.

While I'm here, replace a string for the preference name in MainActivity.kt
with a constant.

Fixes https://github.com/tuskyapp/Tusky/issues/2874.
2022-12-01 19:51:13 +01:00
Konrad Pozniak 8c08fbddb6 fix merge conflict 2022-12-01 19:33:20 +01:00
Levi Bard 9362e59d9d
Add view for browsing and unfollowing followed hashtags (#2794)
* Add view for browsing and unfollowing followed hashtags.
Implements #2785

* Improve list interface

* Remove superfluous suspend modifier

* Migrate to paginated loading for followed tags view

* Update app/src/main/java/com/keylesspalace/tusky/components/followedtags/FollowedTagsViewModel.kt

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>

* Fix unhandled exception when opening the followed tags view while offline

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2022-12-01 19:24:27 +01:00
Levi Bard 0126ee9500
Language selection fixes (#2917)
* 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
2022-11-24 15:45:19 +01:00
Konrad Pozniak 4f81636bbe
correctly show "nothing here" in AccountMediaFragment (#2911)
* correctly show "nothing here" in AccountMediaFragment

* remove unused imports
2022-11-23 20:07:23 +01:00
Konrad Pozniak ff4ddf90b6
fix crash when logging out while on conversations (#2895)
* fix crash when logging out while on conversations

* fix code formatting
2022-11-22 20:36:07 +01:00
Konrad Pozniak f6a5510841
respect spoiler/sensitive settings in conversations (#2891)
* respect spoiler/sensitive settings in conversations

* fix code formatting
2022-11-22 20:11:30 +01:00
Levi Bard 3fb103aa14
Prioritize users' default locales in language list (#2850)
* Prioritize users' default locales in language list.
Closes #2844

* Add the configured app languages before the configured system languages
2022-11-19 19:03:42 +01:00
Levi Bard 2676782327
Replace the default federated timeline tab with the direct messages tab. (#2866)
Closes #2552
2022-11-19 19:01:00 +01:00
Konrad Pozniak 61a1baf533
keep status state in thread view after refreshing (#2855)
* keep status state in thread view after refreshing

* add clarifying parentheses
2022-11-18 21:03:51 +01:00
Konrad Pozniak 667a728dd5
fix media permissions on Android 10+ (#2837) 2022-11-16 20:43:49 +01:00
Konrad Pozniak c96a81571c
support Android 13 per-app languages (#2829)
* support Android 13 per-app languages

* fix tests

* fix language ids in locales_config.xml

* fix language setting default in ComposeActivity
2022-11-16 19:45:18 +01:00
kyori19 d1482324cc
Make URLSpans with trailing URL not marked up (#2813) 2022-11-16 18:28:00 +01:00
kyori19 dbc4a3dcb2
Add done button to lists dialog 2022-11-16 21:54:11 +09:00
Ben Dundon 3bc1fc4606
Switch to an unambiguous date format in Absolute Time mode (#2800)
* Switched to an unambiguous date format

* Updated unit tests to reflect expected change
2022-11-15 19:46:05 +01:00
kyori19 a3d13b2743
Fix `markupHiddenUrls` destructs original CharSequence (#2814) 2022-11-15 19:02:35 +01:00
Levi Bard 21b3b53f93
Make bare domain detection more robust in link markup logic (#2792) 2022-11-15 18:05:26 +01:00
kyori19 45cc000d07
Add or remove from lists in AccountActivity 2022-11-13 06:05:55 +09:00
Josh Soref a9c6f69561
Warn about losing media (#2784)
Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-09 19:33:48 +01:00
Konrad Pozniak 1fb58a9116
revert CompatExtensions (#2773) 2022-11-09 19:32:54 +01:00
Josh Soref 98092e6ff7
Spelling (#2771)
* spelling: activity

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

* spelling: animation

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

* spelling: detailed

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

* spelling: hierarchy

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

* spelling: javascript

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

* spelling: memory

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

* spelling: notification

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

* spelling: opened

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

* spelling: preferable

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

* spelling: repetitive

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

* spelling: spoiler

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

* spelling: thumbnail

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

* spelling: visibility

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

* spelling: whitespace

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

Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-11-09 19:32:39 +01:00
Eva Tatarka be96aa576e
Show toast if pin fails (#2755)
* Show toast if pin fails

Fixes #2229

* Swtich to snackbar

* Show generic error message if no server error is available

* Fix pin error logging
2022-11-09 19:30:50 +01:00
Benjamin Stürmer a64dee9be0
#2072: hide add reaction when limit is reached (#2766)
* #2072: hide add reaction when limit is reached

* use extensions function for show/hide view

* fix condition :(
2022-11-07 20:10:49 +01:00
Abrar Wiryawan c0a06f7188
migrate `IOUtils` to Kotlin (#2763)
* migrate `IOUtils` to Kotlin

* Fix ktlint

* change functions inside IOUtils to extension function
2022-11-07 20:10:06 +01:00
Eva Tatarka b39cb06748
Navigate to the Follow Requests page from notification (#2757)
* Navigate to the Follow Requests page from notification

Fixes #2655

* Fix lock status
2022-11-07 20:04:07 +01:00
Eva Tatarka 4bf541932a
Handle config changes for video playback (#2754)
Fixes #2419
2022-11-07 19:57:13 +01:00
Konrad Pozniak 8e9b356074
show rules on the login screen (#2746)
* show rules on the login screen

* fix code formatting

* fix code formatting

* fix tests
2022-11-05 17:37:20 +01:00
Konrad Pozniak f870445b54
Fix rendering of link preview images (#2743)
* fix link previews in timelines rendering images incorrectly

* fix ripple effect when clicking on cards

* remove unnecessary line of code
2022-11-04 19:22:53 +01:00
Konrad Pozniak d17a0c43ab
Api 33 support (#2719)
* update to Api 33, fix some deprecations

* fix deprecated serializable/parcelable methods

* ask for notification permission

* fix code formatting

* add back comment in PreferencesActivity
2022-11-04 19:22:38 +01:00
Levi Bard 58e8f75287
Don't markup urls where the display text is exactly the domain (#2732)
* Don't markup urls where the display text is exactly the domain (or www.thedomain)

* Remove unused arguments
2022-11-01 16:41:55 +01:00
Konrad Pozniak 532afaad2b
warn before deleting a scheduled post (#2721) 2022-10-28 16:46:38 +02:00
Konrad Pozniak 2481bc0523
improve check for media upload status (#2720) 2022-10-28 16:46:12 +02:00
fynngodau 050891ebe5
Retain instance state in compose activity (#2722)
* Correctly restore instance state in compose activity

Store post visiblity, schedule time, and visibility of content warning
field to instance state and restore upon restoration.

* Remove redundant line
2022-10-18 19:38:27 +02:00
mcclure 85a6b2d96b
Preference to disable multiple-login usernames (#2718)
* Preference to disable multiple-login usernames (with problems)

* Fix problem where 'show self username disambiguation' does not take effect immediately because MainActivity needed to be restarted

* Make 'show username in toolbars' a 3-option selector, default when multiple accounts logged in

* Move SHOW_SELF_USERNAME higher in preference fragment
2022-10-18 19:38:17 +02:00
Levi Bard 9dd3a3d79b
Parse html tags out of status content before applying filters. (#2713)
Fixes #2660
2022-10-14 20:03:19 +02:00
Ivan Kupalov 91d18998ac
Request status language in getStatuses() (#2710) 2022-09-26 11:06:44 +02:00
mcclure 7684f06938
Add UI for image-attachment "focus" (#2620)
* 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>
2022-09-21 20:28:06 +02:00
Levi Bard 5d09a67b52
Fix the tag span generation for tags with nonascii characters (#2700)
* Update mention and tag regexes from mastodon

* Normalize nonascii tag names the same way that mastodon does
2022-09-17 19:06:45 +02:00
Levi Bard 687cffd540
Show target domains for non-mention/non-hashtag links where the target domain is not provided or differs from the domain in the text (#2698)
* 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 #/@
2022-09-17 19:06:07 +02:00
Vivianne c908ebb3f1
Add display of handle when using multiple accounts (#2697)
- Shown on the main toolbar (subtitle)
- Shown just above the "replying to" message (even if not replying)
2022-09-17 19:05:56 +02:00
Konrad Pozniak 655ce30031
migrate timeline api calls from Rx Single to suspending functions (#2690)
* migrate timeline api calls from Rx Single to suspending functions

* fix tests
2022-09-13 19:47:55 +02:00
Prat 5bc680ab78
Refactor Caption Dialog to handle screen rotation (#2626) (#2693)
Co-authored-by: Prat T <pt2121@users.noreply.github.com>
2022-09-12 18:21:00 +02:00
Konrad Pozniak c8fc2418b8
AccountMediaFragment improvements (#2684)
* 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
2022-09-02 16:52:47 +02:00
Ivan Kupalov 257f3a5c1c
Fix broken timeline when there are only expired filters (#2689)
* 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
2022-08-31 18:55:27 +02:00
Konrad Pozniak 4665637086
make all model classes immutable (#2686) 2022-08-31 18:54:40 +02:00