Commit Graph

35 Commits

Author SHA1 Message Date
Conny Duck 31ad946e1a use link icon instead of emoji when showing hidden urls 2023-09-24 16:28:53 +02:00
Mike Barnes 83de22950d
Update LinkHelperTest.kt
Remove negative test for a URL that's invalid for Pleroma, but valid for Bookwyrm
2023-08-08 19:10:36 +10:00
Mike Barnes e290df5499
Update LinkHelperTest.kt
Add test URLs for Bookwyrm
2023-08-07 19:43:03 +10:00
SpaceFox 9a7e456edf
Ensures AbsoluteTimeFormatterTest class is not locale-dependant (#3863)
As tests are run against locale JVM and test does not force
a locale to run, so some tests may fail due to a different result only
due to the locale of the JVM used.

Example here with test `same year formatting` in class
`AbsoluteTimeFormatterTest` line 30 on a French JVM. There may be other
lines to fail with other languages.

Fixes #3859
2023-07-19 08:50:41 +02:00
Nik Clayton 5e8a63a046
Throttle UI actions instead of debouncing (#3651)
Introduce Flow<T>.throttleFirst(). In a flow this emits the first value,
and each value afterwards that is > some timeout after the previous
value.

This prevents accidental double-taps on UI elements from generating
multiple-actions.

The previous code used debounce(). That has a similar effect, but with
debounce() the code has to wait until after the timeout period has
elapsed before it can process the action, leading to an unnecessary
UI delay.

With throttleFirst a value is emitted immediately, there's no need
to wait. It's subsequent values that are potentially throttled.
2023-06-11 13:34:22 +02:00
Nik Clayton 071e00774e
Replace shortNumber() with formatNumber() (#3519)
formatNumber() was existing code to show numbers with suffixes like K, M, etc, so re-use that code and delete shortNumber().

Update the tests to (a) test formatNumber(), and (b) be parameterised.
2023-06-10 16:29:26 +02:00
Konrad Pozniak 11cf93fa55
Remove unused class PairedList (#3602) 2023-04-30 21:49:05 +02:00
Grigorii Ioffe 75e7b9f1a5
Show toot stat inline (#3413)
* Show toot stat inline

* Correct elements position

* Format stats and show it according to setting

* inline toot statistics setting

* Code formatting

* Use kotlin functions

* Change the statistics setting description

* Use capital letters for all variants

* increase the statistics margin

* Merge fixes

* Code review fixes

* move setReblogsCount and setFavouritedCount to StatusViewHolder

* code cleaning

* code cleaning

* import lexicographical order

---------

Co-authored-by: Grigorii Ioffe <zikasaks@gmail.com>
Co-authored-by: grigoriiioffe <zikasaks@icloud.com>
2023-03-18 08:57:26 +01:00
Konrad Pozniak d839f18267
update ktlint plugin to 11.3.1, format code (#3442) 2023-03-13 13:16:39 +01:00
Goooler ca29ee2b0b
Use more orEmpty extensions (#3399)
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/or-empty.html
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/or-empty.html
2023-03-01 21:06:55 +01:00
Levi Bard f2b07196e6
Improve language list prioritization. (#3293)
Partially addresses #3277
2023-02-25 21:15:21 +01:00
Levi Bard 8ca92d9fde
Add new mastodon status url format to looksLikeMastodonUrl. (#3136)
Fixes #3092
2023-01-09 21:07:22 +01:00
Nik Clayton 22834431ca
Convert util/{HttpHeaderLink,PairedList,TimestampUtils,ThemeUtils} to Kotlin (#3046)
* Fix off-by-one error in HttpHeaderLink

Link headers with multiple URLs with multiple parameters were being parsed
incorrectly.

Detected by adding unit tests ahead of converting to Kotlin.

* Convert util/HttpHeaderLink from Java to Kotlin

* Convert util/ThemeUtils from Java to Kotlin

* Convert util/TimestampUtils from Java to Kotlin

* Add tests for PairedList

* Convert util/PairedList from Java to Kotlin

* Implement feedback from PR

* Relicense as GPL
2022-12-31 13:01:35 +01:00
Levi Bard 9e52f7acf1
Load goto social and microblog.pub urls in the app (#2945)
* Move looksLikeMastodonUrl to LinkHelper

* Add support for goto social and microblog.pub urls.
Closes #2893
2022-12-03 12:16:17 +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
kyori19 d1482324cc
Make URLSpans with trailing URL not marked up (#2813) 2022-11-16 18:28:00 +01: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
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
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
Guntbert Reiter 9a8dfaa744
Remove code to check the server version (#2469)
solves #2439
2022-04-29 18:35:25 +02:00
Constantin A f15b3e61bb
New emoji picker (#2395)
* Update to Emoji2

* Hopefully fix the emoji picker preference

* Switch to released Filemojicompat version

* Filemojicompat version as an own var

* Remove an unused import

* Small cleanup

* Correct onDisplayPreferenceDialog; test TuskyApplication

* Use TextViews instead of EmojiTextViews

* Recreate the Main Activity if the emoji pack is updated

* Enable coreLibraryDesugaring (for Java Streams); update Filemojicompat, downgrade Emoji2

* Update emoji font versions to 14

* Use FilemojiCompat 3.2.0-beta01

* Make ktLint happy again

* Remove coreLibraryDesugaring and a FIXME

* Use EmojiPickerPreference.get()

* Disable emoji pack import

* Update FilemojiCompat to Beta 2

* Update FilemojiCompat to Beta 3

* Update FilemojiCompat to Beta 3.2.0 final

* Update FilemojiCompat to 3.2.1
2022-04-26 18:50:58 +02:00
Mélanie Chauvel e0abcbfada
Improve time format of posts when using absolute time (#2413)
* Improve time format of posts when using absolute time

* fix AbsoluteTimeFormatter, add tests

* fix tests

Co-authored-by: Conny Duck <k.pozniak@gmx.at>
2022-04-18 21:41:18 +02:00
Levi Bard cdefcc441f
Fix relinkifying tags in posts from remote servers (#2359)
* Fix relinkifying tags in posts from remote servers

* Completely ignore urls, and (case-insensitively) match tag names instead
2022-02-28 16:54:25 +01:00
Conny Duck 842ab9e131 fix LinkHelperTest 2022-02-25 19:35:02 +01:00
Levi Bard addce87eb6
Use tags from status when adding handlers to hashtag spans in status content (#2344)
* Migrate LinkHelper to kotlin

* Support tags field on statuses

* Use embedded tags list in status instead of text scraping to embed tag click handler.
Fixes #2283

* Make mentions and tags lists nonnullable

* Make LinkHelper.openLink a Context extension method

* Use builtin extension for uri conversion

* More cleanup in LinkHelper

* Add tests for LinkHelper.getDomain

* Unbreak tags in places that don't have a tag list (e.g. profiles)

* Fixup javadoc
2022-02-25 18:56:21 +01:00
Konrad Pozniak 16ffcca748
add ktlint plugin to project and apply default code style (#2209)
* add ktlint plugin to project and apply default code style

* some manual adjustments, fix wildcard imports

* update CONTRIBUTING.md

* fix formatting
2021-06-28 21:13:24 +02:00
Konrad Pozniak 1d309850b0
convert EmojiPreference and EmojiCompatFont to Kotlin (#1922)
* convert EmojiPreference and EmojiCompatFont to Kotlin

* move preference related to to dedicated preference package

* update proguard-rules.pro

* reformat & add comment

* maintain disposable information in EmojiPreference instead of EmojiCompatFont
2020-09-02 12:27:51 +02:00
Konrad Pozniak 398ee66084
simplify DI & test setup, convert TuskyApplication to Kotlin (#1675)
* simplify DI & test setup, convert TuskyApplication to Kotlin

* try to fix tests on bitrise

* remove conscrypt-openjdk-uber test dependency again
2020-02-25 19:49:15 +01:00
Konrad Pozniak ce2ee660ae
add test for VersionUtils (#1602)
* add test for VersionUtils

* add nullability annotation to VersionUtils
2019-12-21 18:56:30 +01:00
Konrad Pozniak 78b5aa8baf
Upgrade api level to Android 10, implement new sharing api (#1537)
* upgrade api level to Android 10, resolve compile errors

* use androidx.preference.PreferenceManager instead of deprecated platform class

* add hyphenation to important TextViews

*  setBottomSheetCallback -> addBottomSheetCallback

* implement new sharing api

* improve TuskyTileService so it shows account picker when multiple accounts are present

* delete unused AccountChooserService

* fix test

* improve ShareShortcutHelper

* remove debug log statement

* improve image loading fallback behavior in ShareShortcutHelper

* improve behavior on foldable devices
2019-10-22 21:18:20 +02:00
Konrad Pozniak f975522e63
fix shouldTrimStatus and add tests (#1404) 2019-07-25 12:15:54 +02:00
mike castleman 728e4f4858
add tests 2019-06-01 15:30:17 -04:00