Commit graph

1439 commits

Author SHA1 Message Date
Konrad Pozniak
15304440ef
fix "nothing here" flickering when starting Tusky (#2377) 2022-03-12 09:38:59 +01:00
kyori19
72bb34bf27
Fix some network timeline bugs (#2373)
* Fix network timeline gap loading

* Fix fullReload keeps nextKey

* Fix reload after clearing timeline

* Improve logic to handle overlapped statuses
2022-03-12 09:38:48 +01:00
Konrad Pozniak
55513e8e2b
Android 12 support, update AndroidX libraries (#2367)
* Android 12 support, update AndroidX libraries

* fix ktlint

* add Android 12 splash screen support

* fix comments in MainActivity

* remove deprecated Intent.ACTION_CLOSE_SYSTEM_DIALOGS

* delete TimelineViewModelTest

* fix notifications on Android 12

* improve splash screen

* handle pending intent flags in a dedicated function
2022-03-09 20:50:23 +01:00
Konrad Pozniak
221cdb3611
move "animate custom emojis" preference next to "animate avatars" (#2376) 2022-03-08 21:40:10 +01:00
Konrad Pozniak
34b7a3c8ee
Don't hide potential timeline bugs by catching all exceptions (#2372)
* don't hide potential timeline bugs by catching all exceptions

* fix NetworkTimelineRemoteMediatorTest

* improve ifExpected function

* fix code formatting
2022-03-08 21:39:59 +01:00
Ivan Kupalov
4d8289b245
Implement Login via WebView (#2371)
* Improve login process with newer APIs

* Implement login with WebView instead of browser tab or external browser

Oauth process requires us to open login prompt for correct instance and
we need to receive the result back. Usually it is done with redirect
parameter.

Previously we've been using BrowserTabs API and have been falling back
to just opening browser. This mostly worked but is very clumsy:

 - It relies on few system mechanisms for opening URLs in both
directions
 - Browsers do weird things and tend to break quite a bit
 - There's a good chance that the app can die in the process and we need
to recover our state.

So instead we are now using WebView. It has disadvantages (users have
to trust us to show correct page, logins are not shared w/ browser) but
it should be more reliable.

* Changes to login after review

* Move login classes to their own package

* Fix linting issues
2022-03-08 21:22:19 +01:00
Konrad Pozniak
841373e947
fix various timeline related crashes (#2369)
* fix various timeline related crashes

* fix ktlint
2022-03-06 17:40:24 +01:00
Konrad Pozniak
73e9338f3c
fix timeline jumping to top when activity is recreated (#2364) 2022-03-03 20:01:47 +01:00
Konrad Pozniak
497b434663
Improve timeline dao (#2353)
* improve TimelineDao methods

* remove @Transaction from cleanup methods
2022-03-02 20:40:06 +01:00
Konrad Pozniak
a6335e6bcd
update Android Image Cropper and get rid of deprecated onActivityResult (#2351)
* update Android Image Cropper and get rid of deprecated onActivityResult

* add comment why skipping caches is necessary

* inject application into EditProfileViewModel instead of passing it everytime
2022-03-02 20:39:56 +01:00
Konrad Pozniak
4dee5c2774
display account name when display name is not set (#2361) 2022-03-01 21:29:16 +01:00
Konrad Pozniak
b145fc9d50
fix String.inc() and String.dec() not being inverse operations (#2355) 2022-03-01 21:29:05 +01:00
Levi Bard
7114575497
Instance configuration: the easy parts (#2341)
* Add data model for instance configuration

* Support instance.configuration.statuses.max_characters

* Support instance.configuration.statuses.characters_reserved_per_url

* Support instance.configuration.polls.max_options and max_characters_per_option

* Pacify ktlint

* Support instance-configured poll durations

* Fixup versions for migration after rebase
2022-03-01 19:43:36 +01: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
Konrad Pozniak
2c91b1148c
fix database migration to v29 (#2354) 2022-02-27 20:16:41 +01:00
Konrad Pozniak
2960a85ff1
use ViewData only instead of Pair<Status, ViewData> in Search (#2336) 2022-02-25 18:57:49 +01:00
Konrad Pozniak
c592dfef78
Don't use notifyDataSetChanged in TimelineFragment (#2334) 2022-02-25 18:57:40 +01:00
Konrad Pozniak
f7dfffa762
merge ModalTimelineActivity & ViewTagActivity into StatusListActivity (#2332)
* Rename .java to .kt

* merge ModalTimelineActivity & ViewTagActivity into StatusListActivity

* fix crash when opening hashtag
2022-02-25 18:57:31 +01:00
Konrad Pozniak
eea81d7106
use POST api/v2/media to upload media (#2327) 2022-02-25 18:57:18 +01:00
Konrad Pozniak
8dbf255617
get rid of deprecated onActivityCreated in TimelineFragment (#2326) 2022-02-25 18:56:58 +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
Levi Bard
f822234995
Add "open as" to profiles (#2340)
* Extract "open as" utilities to BaseActivity

* Add "open as" to profiles.
Fixes #2329

* Rename STATUS_URL intent extra key

* Add nullability notations for new java code

* Pacify ktlint
2022-02-25 18:55:58 +01:00
Konrad Pozniak
69bcc92c46
fix cache cleanup deleting more statuses than it should (#2348)
* fix cache cleanup deleting more statuses than it should

* reset LOAD_AT_ONCE

* improve tests

* move cache clean code back to ViewModel
2022-02-21 19:33:10 +01:00
Konrad Pozniak
a76c580d7e
fix duplicate detail status (#2345) 2022-02-20 10:58:12 +01:00
Mélanie Chauvel
c8ed6b482e
increase default poll max option chars from 25 to 50 (#2343)
25 is old Mastodon default, the new one is 50
2022-02-18 20:08:38 +01:00
Konrad Pozniak
c20effe6c9
fix some mentions not being opened in Tusky (#2339)
* fix some mentions not being opened in Tusky

* link PR in code
2022-02-15 17:04:00 +01:00
Konrad Pozniak
97fe4f88c5
fix crash in drafts caused by minification of DraftAttachment (#2337)
* fix crash in drafts caused by minification of DraftAttachment

* fix formatting
2022-02-14 19:20:15 +01:00
Konrad Pozniak
329df1280b
fix sensitive media in search and notifications (#2335) 2022-02-12 09:56:08 +01:00
Konrad Pozniak
ae656a17a8
fix vertical insets of AccountActivity (#2320) 2022-02-09 20:45:56 +01:00
Konrad Pozniak
2fd45c1cdb
Fix comparing statuses and diffing in NotificationsFragment (#2318) 2022-02-07 20:38:54 +01:00
Konrad Pozniak
d2d52da717
Fix crash in TimelineFragment (#2317) 2022-02-07 20:04:40 +01:00
Konrad Pozniak
db1cc02fb8
Fix announcement reactions (#2311)
* fix size of announcement reactions

* fix announcement reactions not updating correctly

* remove unused code

* improve code

* remove unused imports
2022-02-05 19:13:05 +01:00
Konrad Pozniak
329bc51f90
fix apng emojis not rendered when animation is turned off (#2312) 2022-02-05 08:56:24 +01:00
Konrad Pozniak
61ba6fe181
Fix disappearing placeholders (#2309)
* add getNextPlaceholderIdAfter to TimelineDao

* fix disappearing placeholders

* fix disappearing placeholders
2022-02-03 18:51:15 +01:00
Konrad Pozniak
c3da6f901f
display custom emoji in announcements (#2310) 2022-02-02 21:43:16 +01:00
Konrad Pozniak
ab6ea6dc89
fix placeholder not disappearing when no statuses are loaded (#2305) 2022-02-02 18:29:59 +01:00
Konrad Pozniak
8f5fb5b35c
Fix some weird behavior when clicking links in statuses (#2304)
* Fix some weird behavior when clicking links in statuses

* open browser when user clicks a status link again
2022-01-28 07:44:38 +01:00
Konrad Pozniak
6c5c628b90
delete unused class NetworkState (#2301) 2022-01-23 20:25:06 +01:00
Konrad Pozniak
e29567c9ec
Cleanup dagger setup (#2300)
* cleanup dagger setup

* fix tests

* fix ktlint

* cleanup FragmentBuildersModule
2022-01-23 20:24:55 +01:00
Konrad Pozniak
2fd01f7e2d
use custom JsonAdapter to be compatible with instances that have a custom subscribing feature (#2298) 2022-01-21 07:34:26 +01:00
Konrad Pozniak
1586817c3d
Update gradle, kotlin and other dependencies (#2291)
* update gradle, kotlin and other dependencies

* fix new warnings

* remove unused import

* update Proguard rules

* add explicit dependency on Gson to get the newest version

* remove debug flag from proguard rules again

* fix typo
2022-01-20 21:10:32 +01:00
Konrad Pozniak
a000228165
correctly detect end of pagination in network timeline (#2296)
* correctly detect end of pagination in network timeline

closes #2293

* improve NetworkTimelineRemoteMediatorTest

* remove unused import
2022-01-20 18:30:21 +01:00
Konrad Pozniak
f29e46ad55
fix media hidden default in ViewThreadFragment (#2295) 2022-01-17 18:45:11 +01:00
Konrad Pozniak
fe350ccf36
move AccountActivity and related classes to a new package (#2216)
* move AccountActivity and related classes to a new package

* fix ktlint

* fix ktlint

* fix imports
2022-01-11 19:55:17 +01:00
Konrad Pozniak
643e012b11
Timeline paging (#2238)
* first setup

* network timeline paging / improvements

* rename classes / move to correct package

* remove unused class TimelineAdapter

* some code cleanup

* remove TimelineRepository, put mapper functions in TimelineTypeMappers.kt

* add db migration

* cleanup unused code

* bugfix

* make default timeline settings work again

* fix pinning statuses from timeline

* fix network timeline

* respect account settings in NetworkTimelineRemoteMediator

* respect account settings in NetworkTimelineRemoteMediator

* update license headers

* show error view when an error occurs

* cleanup some todos

* fix db migration

* fix changing mediaPreviewEnabled setting

* fix "load more" button appearing on top of timeline

* fix filtering and other bugs

* cleanup cache after 14 days

* fix TimelineDAOTest

* fix code formatting

* add NetworkTimeline unit tests

* add CachedTimeline unit tests

* fix code formatting

* move TimelineDaoTest to unit tests

* implement removeAllByInstance for CachedTimelineViewModel

* fix code formatting

* fix bug in TimelineDao.deleteAllFromInstance

* improve loading more statuses in NetworkTimelineViewModel

* improve loading more statuses in NetworkTimelineViewModel

* fix bug where empty state was shown too soon

* reload top of cached timeline on app start

* improve CachedTimelineRemoteMediator and Tests

* improve cached timeline tests

* fix some more todos

* implement TimelineFragment.removeItem

* fix ListStatusAccessibilityDelegate

* fix crash in NetworkTimelineViewModel.loadMore

* fix default state of collapsible statuses

* fix default state of collapsible statuses -tests

* fix showing/hiding media in the timeline

* get rid of some not-null assertion operators in TimelineTypeMappers

* fix tests

* error handling in CachedTimelineViewModel.loadMore

* keep local status state when refreshing cached statuses

* keep local status state when refreshing network timeline statuses

* show placeholder loading state in cached timeline

* better comments, some code cleanup

* add TimelineViewModelTest, improve code, fix bug

* fix ktlint

* fix voting in boosted polls

* code improvement
2022-01-11 19:00:29 +01:00
Mélanie Chauvel
c0c8eec36b
filter messages by also looking at media descriptions (#2285) 2022-01-04 19:28:49 +01:00
Konrad Pozniak
0ae3a2ed2a
fix confirmFavourites default (#2282) 2021-12-29 13:44:00 +01:00
Konrad Pozniak
6b7d3ef613
fix loading Gif avatars into the main appbar (#2268)
* fix loading Gif avatars into the main appbar

and respect the animateAvatars setting

closes #2259

* fix formatting
2021-12-05 19:12:52 +01:00
Konrad Pozniak
b62ccd918f
fix compose button on profile page being half hidden (#2267) 2021-11-16 21:38:59 +01:00
Konrad Pozniak
d1d564a7e2
support animated PNGs and WEBPs (#2244) 2021-10-09 10:45:41 +02:00
Colin Kinloch
c37ccbb6e8
Add confirmation for favourite and bookmark actions (#2245)
* Add confirmation for favourite and bookmark actions

* Favourite confirmation american spelling and default values

* Remove bookmarking confirmation

* Update app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java

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

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2021-10-04 07:48:44 +02:00
Levi Bard
651b35267f
Fix toolbar for instance list activity. (#2248)
Fixes #2247
2021-09-28 19:55:30 +02:00
Levi Bard
d07c1b098e
Highlight your own votes when displaying poll results (#2242)
* Highlight your own votes when displaying poll results

* Unbreak tests

* Add a checkmark to the description of self-voted options
2021-09-17 22:12:17 +02:00
Levi Bard
45598cf047
Audio caption improvements (#2220)
* Fix caption display in audio player

* Make video/audio description scrollable

* Constrain the maximum size of media label previews
2021-09-17 21:55:54 +02:00
Levi Bard
d93a9b5753
Fix crash when updating profile and the source field exists, but some of _its_ fields don't (#2243) 2021-09-17 21:51:00 +02:00
Levi Bard
59b977c57c
Fix filtering timelines (#2214) 2021-06-30 20:11:14 +02:00
Konrad Pozniak
2cc53d6772 fix codestyle 2021-06-28 22:04:34 +02:00
Konrad Pozniak
9ca7e708bd
fix liking/boosting/bookmarking/voting boosted statuses in timeline (#2212) 2021-06-28 21:41:18 +02: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
955267199e
migrate scheduled toots to paging 3 (#2208) 2021-06-24 21:24:04 +02:00
Konrad Pozniak
f6dd131b95
migrate drafts to paging 3 (#2206)
* migrate drafts to paging 3

* migrate DraftHelper to coroutines
2021-06-24 21:23:29 +02:00
Konrad Pozniak
554820de5f
migrate reporting to paging 3 (#2205)
* migrate reporting to paging 3

* apply PR feedback
2021-06-20 10:58:19 +02:00
Konrad Pozniak
920c71560b
throw HttpException instead of generic exception in TimelineViewModel (#2202) 2021-06-20 10:19:03 +02:00
Ivan Kupalov
837ee2e40d
Convert some adapters to Kotlin (#2187)
* Rename .java adapters to .kt

* Convert Account adapters to Kotlin

* Apply feedback for adapter refactoring
2021-06-20 10:18:40 +02:00
Konrad Pozniak
6d4f5ad027
migrate to paging 3 (#2182)
* migrate conversations and search to paging 3

* delete SearchRepository

* remove unneeded executor from search

* fix bugs in conversations

* update license headers

* fix conversations refreshing

* fix search refresh indicators

* show fullscreen loading while conversations are empty

* search bugfixes

* error handling

* error handling

* remove mastodon bug workaround

* update ConversationsFragment

* fix conversations more menu and deleting conversations

* delete unused class

* catch exceptions in ConversationsViewModel

* fix bug where items are not diffed correctly / cleanup code

* fix search progressbar display conditions
2021-06-17 18:54:56 +02:00
Konrad Pozniak
31da851f28
correctly serialize custom spans to html (#2199) 2021-06-14 11:00:35 +02:00
Konrad Pozniak
f04a2a1ee4
fix reblog avatar (#2197) 2021-06-14 10:22:08 +02:00
Konrad Pozniak
86002efc97
fix "show notifications filter" preference opening tabs preferences (#2193) 2021-06-11 20:50:52 +02:00
Ivan Kupalov
44a5b42cac
Timeline refactor (#2175)
* Move Timeline files into their own package

* Introduce TimelineViewModel, add coroutines

* Simplify StatusViewData

* Handle timeilne fetch errors

* Rework filters, fix ViewThreadFragment

* Fix NotificationsFragment

* Simplify Notifications and Thread, handle pin

* Redo loading in TimelineViewModel

* Improve error handling in TimelineViewModel

* Rewrite actions in TimelineViewModel

* Apply feedback after timeline factoring review

* Handle initial failure in timeline correctly
2021-06-11 20:15:40 +02:00
Konrad Pozniak
3301643c1d
update to SDK 30 and fix deprecations (#2173)
* update to SDk 30 and fix deprecations

* remove unnecessary .run

* revert ViewMediaActivity change
2021-06-01 19:46:07 +02:00
Konrad Pozniak
e032d38d56
fix LiveData nullability issues (#2181) 2021-05-31 15:16:07 +02:00
Ivan Kupalov
59c62204c7
Fix crash in NotificationsAdapter when spoiler is null. (#2178) 2021-05-27 16:41:54 +02:00
Konrad Pozniak
d5e539fd64
cleanup MainActivity / last remnants of SavedToots (#2174) 2021-05-22 19:24:40 +02:00
Konrad Pozniak
ca5c455881
update AndroidX, use ActivityResultContracts (#2170)
* update AndroidX, use ActivityResultContracts

* make allowMultiple setable in PickMediaFiles

* add license headers to PickMediaFiles
2021-05-22 17:50:08 +02:00
Konrad Pozniak
81057213db
don't upscale images in caption dialog (#2165)
* don't upscale images in caption dialog

* don't upscale images in caption dialog
2021-05-21 17:52:03 +02:00
Konrad Pozniak
387e62ea4b
get rid of jcenter (#2163)
* get rid of jcenter

* fix BottomSheetActivityTest

* update Android Image Cropper license
2021-05-21 17:51:47 +02:00
Konrad Pozniak
751109ac39
upgrade kotlin to 1.5.0 (#2162)
* upgrade kotlin to 1.5.0

* don't explicitly set kotlin jvmtarget
2021-05-21 17:51:35 +02:00
Konrad Pozniak
40b24cd242
migrate to RxJava3 (#2146)
* migrate to RxJava3

* remove unused import
2021-05-16 19:53:27 +02:00
Konrad Pozniak
6c37cc770c
remove SavedToots (#2141)
* remove SavedToots

* fix tests
2021-05-16 19:17:56 +02:00
Konrad Pozniak
b156be6ded
work around mastodon mute bug (#2150) 2021-05-09 18:37:41 +02:00
Konrad Pozniak
076a2b248a
fix crash when captioning large images (#2149) 2021-05-06 07:33:15 +02:00
Konrad Pozniak
bd670a01c3
fix event handling in TimelineFragment (#2143) 2021-05-02 17:17:30 +02:00
Konrad Pozniak
bcc852c521
update Room to 2.3.0 (#2138)
and use the new ProvidedTypeConverter
2021-04-24 18:31:16 +02:00
Konrad Pozniak
bf6d7a6b97
Convert TimelineFragment to Kotlin & ViewBinding (#2131)
* convert TimelineFragment to Kotlin

* cleanup some code

* migrate to viewbinding

* cleanup even more code

* address review feedback

* improve findStatusOrReblogPositionById
2021-04-22 18:48:16 +02:00
Konrad Pozniak
dee6a3a160
always show follow requests in main menu (#1809)
* always show follow requests in main menu

* update recyclerview to v1.2.0

* fix bug that shows follow requests info to wrong users
2021-04-10 20:30:44 +02:00
Zero King
41847bc009
Add missing breaks in switch statements (#2127) 2021-04-06 17:18:52 +02:00
Konrad Pozniak
f293670c14
migrating to ViewBinding part 6: the final cleanup (#2117) 2021-03-21 12:42:28 +01:00
Konrad Pozniak
bea5098cc1
migrating to ViewBinding part 4: Fragments (#2108)
* migrating to ViewBinding part 4: Fragment

* fix imports

* don't use viewBinding extension in ViewImage and ViewVideoFragment

* don't use viewBinding extension in ViewImage and ViewVideoFragment
2021-03-13 21:27:20 +01:00
Konrad Pozniak
0b86f58139
convert some regular strings to plural strings (#2100)
* convert some regular strings to plural strings

* convert hint_describe_for_visually_impaired from string to plurals

* fix ukrainian strings
2021-03-07 19:43:25 +01:00
Konrad Pozniak
2d0862cfc5
fix MainActivity switching to notification tab when opened from recents (#2099) 2021-03-07 19:29:45 +01:00
Konrad Pozniak
fc4b47aee4
migrating to ViewBinding part 4: Adapters (#2095) 2021-03-07 19:24:01 +01:00
Konrad Pozniak
22bed19d90
migrating to ViewBinding part 3: EmojiPreference (#2094) 2021-03-07 19:06:05 +01:00
Konrad Pozniak
ff69a2ad0d
migrating to ViewBinding part 2: Activities (#2093) 2021-03-07 19:05:51 +01:00
Konrad Pozniak
5167b8578e
migrating to ViewBinding part 1: Dialogs + Views (#2091) 2021-03-07 19:04:22 +01:00
kyori19
cf642d9eb0
Avoid using displayName for displaying purpose (#2101) 2021-03-05 16:26:51 +01:00
Konrad Pozniak
574480524a
fix custom emojis in names when liking/boosting a boosted toot (#2092) 2021-03-01 21:44:02 +01:00
Konrad Pozniak
13392258f6
upgrade Material Design lib and use their new time picker (#2077) 2021-02-23 20:29:02 +01:00
Konrad Pozniak
6ebbe5f657
fix crash when rotating screen in a preference dialog twice (#2083) 2021-02-23 18:53:43 +01:00
Konrad Pozniak
d2a8254d4f
add content description to account subscription button (#2076) 2021-02-18 19:26:25 +01:00
Konrad Pozniak
e3b79097d4
remove redundant options from account toolbar (#2075) 2021-02-18 19:26:14 +01:00
Konrad Pozniak
ff7d900b67
fix profile note "Saved" message appearing on other account changes (#2079) 2021-02-18 19:26:03 +01:00
David
2fea6011fd
NavIcon Avatar fix (#2080)
* NavIcon Avatar fix

* Added in all three methods
2021-02-16 18:45:45 +01:00
Konrad Pozniak
be77d91e91
change draft attachment directory (#2070) 2021-02-09 19:45:43 +01:00
Ivan Kupalov
c178804efe
Fix TalkBack not initializing old views in recycler (#2036) 2021-02-09 18:41:40 +01:00
Konrad Pozniak
4d856365f9
cleanup drafts when user logs out (#2067)
* cleanup drafts when user logs out

* delete unused method

* remove unneeded sorting from loadDraftsSingle
2021-02-07 16:40:09 +01:00
Alibek Omarov
9580870445
Animated emoji support (#2064)
* Animated emoji support

* Try to query preference only once

* Revert to using SpannableStringBuilder
2021-02-06 08:14:51 +01:00
Alibek Omarov
c685192d49
Don't stop autocompletion after second @ (#2062)
* ComposeTokenizer: do not search stop after second @

* ComposeTokenizer: try to fix test

* ComposeTokenizer: try to fix test 2

* ComposeTokenizer: try to fix test 3

* ComposeTokenizer: fix autocomplete for accounts with 1 character nickname

* ComposeTokenizer: better document tokenizer

* ComposeTokenizer: add tests

* ComposeTokenizer: remove unused logging
2021-02-04 19:16:58 +01:00
Konrad Pozniak
483beaa957
move onOptionsItemSelected to BaseActivity (#2059)
* move onOptionsItemSelected to BaseActivity

* revert change in ComposeActivity
2021-01-31 20:27:02 +01:00
Konrad Pozniak
dc5f0c87a2
remove let's encrypt root cert again (#2056)
* remove let's encrypt root cert again

* fix user-agent example
2021-01-31 19:35:39 +01:00
Konrad Pozniak
886ff2f06b
get rid of BaseFragment by using RxJava instead of Retrofit Calls (#2055)
* get rid of BaseFragment by using RxJava instead of Retrofit Calls

* fix tests
2021-01-31 19:34:33 +01:00
Alibek Omarov
455942505c
ComposeViewModel: remove unused variable (#2060) 2021-01-31 18:58:45 +01:00
Alibek Omarov
b00aa9b461
SpanUtils: highlight nicknames with dashes (#2061)
While it's not allowed to create such accounts on Mastodon, it federates fine with servers that allow dashes.
2021-01-31 18:57:48 +01:00
lenchan139
0275504a05
Move compose content's EditText cursor to first when shared content parsed in ComposeActivity (#2030)
* multiple media upload support

* multiple media upload support

* multiple media upload support

* remove  typing

* Update app/src/main/res/values/strings.xml

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

* remove magic number on string.xml and add to activity.

* move edittext cursor to first when shareBody parsed in ComposeActivity

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2021-01-26 16:38:03 +01:00
Konrad Pozniak
46468b8a78
use CustomTabColorSchemeParams instead of deprecated methods (#2049) 2021-01-25 16:23:32 +01:00
Konrad Pozniak
940d6d395a
Drafts v2 (#2032)
* cleanup warnings, reorganize some code

* move ComposeAutoCompleteAdapter to compose package

* composeOptions doesn't need to be a class member

* add DraftsActivity and DraftsViewModel

* drafts

* remove unnecessary Unit in ComposeViewModel

* add schema/25.json

* fix db migration

* drafts

* cleanup code

* fix compose activity rotation bug

* fix media descriptions getting lost when restoring a draft

* improve deleting drafts

* fix ComposeActivityTest

* improve draft layout for almost empty drafts

* reformat code

* show toast when opening reply to deleted toot

* improve item_draft layout
2021-01-21 18:57:09 +01:00
Levi Bard
baa915a0a3
Support opening unknown attachment types via openLink (#2044)
* Support opening unknown attachment types via openLink. #1970

* Fix label text for unknown attachment types
2021-01-18 13:53:13 +01:00
Levi Bard
cb2296f248
Prompt before deleting lists (#2043)
* Prompt before deleting lists. #1998

* Address pull request feedback
2021-01-18 11:40:13 +01:00
Levi Bard
5fbd459aed
Make tapping the main toolbar scroll to the top of the timeline. #1899 (#2045) 2021-01-15 21:23:02 +01:00
Garrit Franke
4c7d09b1e3
Show display names for reposts (#2041)
* WIP: Show display names for reposts

* Display emojis on reposts

* Move unicode wrapping

Co-authored-by: Garrit Franke <garrit@slashdev.space>
2021-01-15 21:16:32 +01:00
Levi Bard
be60155de5
Implement timed mutes. (#2035)
Fixes #2033
2021-01-15 21:05:36 +01:00
lenchan139
f7a630c1d8
multiple media upload support (#2029)
* multiple media upload support

* multiple media upload support

* multiple media upload support

* remove  typing

* Update app/src/main/res/values/strings.xml

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

* remove magic number on string.xml and add to activity.

Co-authored-by: Konrad Pozniak <connyduck@users.noreply.github.com>
2020-12-30 17:36:00 +01:00
Konrad Pozniak
8b9ddca7bd
cleanup code in ConversationsFragment, SearchFragment and Report*Fragments (#2027) 2020-12-27 21:25:35 +01:00
Garrit Franke
0fbb4e9713
Wellbeing mode (#1992)
* Add wellbeing mode settings toggle

* Translate wellbeing mode string to german

* Disable fav/boost count on toots if wellbeing is enabled

* Hide follow/post stats on profiles

* Reload notifications when wellbeing mode is toggled

* Add wellbeing mode explainer dialog

* Move wellbeing filter timeline into own category

* Add toggles for quantitative stats

* Hide announcement badge counts if wellbeing is enabled

* Move fetching of wellbeing setting to activity

* Add wellbeing option to statusDisplayOptions

* Update post filters for all accounts

* Remove local translations

* Revert "Remove local translations"

This reverts commit e92e636a5c759b09649174ab68ec91bc13680287.

* Remove german translations
2020-12-23 19:13:37 +01:00
Alibek Omarov
b91a0aceeb
Notification bell (#2012)
* Add notification bell button, API endpoints and new relationship field

* Add notification type for subscriptions

* Add subscriptions to legacy notification filtering

* Update schemas

* Fix build

* Make rewrite static method into method of Notification class, fix getNotificationText

* Mastodon wording for subscriptions
2020-12-23 12:52:39 +01:00
Konrad Pozniak
a19411c947
cleanup accountManager.activeAccount usages in MainActivity (#2021) 2020-12-13 16:32:04 +01:00
Konrad Pozniak
5db3bb3779
Workaround for old Androids not connecting to new Let's Encrypt hosts (#2014)
* Rename .java to .kt

* convert OkHttpUtils to Kotlin

* trust new letsencrypt root cert

* cleanup OkHttpUtils

* add link to lets encrypt cert to OkHttpUtils
2020-12-13 16:31:12 +01:00
Konrad Pozniak
9cdf486ceb
remove ThemeUtils.getTintedDrawable (#2015) 2020-12-09 19:08:16 +01:00
Konrad Pozniak
b1a1a69988
fix the notification buttons on the Muted users page (#2009) 2020-12-04 18:55:13 +01:00
Levi Bard
b8268538fd
Fix negative count on the unread announcements badge. (#2010)
Fixes #1994
2020-12-04 17:37:52 +01:00
Levi Bard
3c93804751
Fix links in announcements. (#2011)
Fixes #2008
2020-12-04 17:35:51 +01:00
Konrad Pozniak
a9337bcb78
fix workmanager crashing because of async initialization (#2003) 2020-12-01 07:39:30 +01:00
Konrad Pozniak
9793035a3d
fix crash when opening some audio attachments (#2002) 2020-12-01 07:39:15 +01:00
Konrad Pozniak
3558d441a4
better distinction between green and blue build flavors (#1997) 2020-11-28 17:34:21 +01:00
Konrad Pozniak
227e219241
load drawer avatar earlier to avoid flicker on app start (#1993)
* load drawer avatar earlier to avoid flicker on app start

* use placeholder when loading drawer avatar for the first time
2020-11-25 19:41:57 +01:00
Ivan Kupalov
ef1ae581b4
Fix some of the StrictMode violations (#1931)
Mostly it's disk reads/writes.

Conscrypt reads own version on startup which reads from disk multiple
times. There's no solution for it right now.

SharedPreferences which are used in BaseActivity also read from disk
and pretty early but it shouldn't be a problem.
2020-11-23 20:05:48 +01:00
Konrad Pozniak
9ea2557148
fix crash when clearing glide requests (#1989) 2020-11-22 19:03:11 +01:00
Konrad Pozniak
34fb546200
upgrade dependencies (#1990)
* upgrade dependencies

* fix tests
2020-11-22 19:02:54 +01:00
Konrad Pozniak
f917a5aa4b
apply the home filter to lists (#1991) 2020-11-22 19:02:38 +01:00
kyori19
fef4b8b07f
[needs help] Support announcements (#1977)
* Implement announcements activity

* Update reactions without api access

* Add badge style

* Use emptyList() as default parameter

* Simplify newIntent

* Use List instead of Array

* Remove unneeded ConstraintLayout

* Add lineSpacingMultiplier

* Fix wording

* Apply material design's default chip style

* Dismiss announcements automatically
2020-11-18 21:12:27 +01:00
Konrad Pozniak
ce973ea7e7
Personal account notes (#1978)
* add personal notes to AccountActivity

* use RxJava instead of plain okhttp calls

* make AccountViewModel rx aware

* hide note input until data is loaded
2020-11-17 20:10:54 +01:00
Conor Flynn
e91272a4c6
Adds link to account page when clicking on displayName (#1982)
* Adds link to account page when clicking on displayName.

* Reuses the onClickListener

* Fixes formatting.
2020-11-15 21:31:34 +01:00
Levi Bard
2170e6b0fa
Perform bidirectionality isolation manually instead of relying on BidiFormatter (#1976)
* Perform manual isolation of display names etc. instead of relying on BidiFormatter.
Fixes #1921

* Make follow request notification header formatting more like other notifications
2020-11-04 18:21:41 +01:00
Levi Bard
d7e47caef3
Add tests for compose activity initial state changes (#1972) 2020-10-28 18:43:11 +01:00
Garrit Franke
af44b25c29
Delete scheduled post after editing (#1947)
* Delete scheduled post after editing

This ensures that editing a scheduled toot will not duplicate it.

Fixes #1924

* Fix scheduled toot editing

* Convert isEditingScheduledToot to property

* Replace MediatorLiveData with combineLiveData

* Remove dead code

* Fix observer emission

* Fix "Finish media upload" appearing for split second
2020-10-25 18:41:11 +01:00
Konrad Pozniak
21b28f1bbb
fix crash in ViewImageFragment (#1964) 2020-10-25 18:36:31 +01:00
Konrad Pozniak
6d27d822ca
update Kotlin to 1.4.10 and fix some warnigs (#1963) 2020-10-25 18:36:00 +01:00
Levi Bard
e0346a8e88
Open photos embedded in preview cards in the image viewer (#1966)
* Open photos embedded in preview cards in the internal image viewer instead of opening the browser

* Enable toolbar for single image viewer

* Apply review feedback
2020-10-22 21:15:46 +02:00
Konrad Pozniak
53bd081802
use MaterialContainerTransform for ActionButton animation (#1961)
* use MaterialContainerTransform for ActionButton animation

* fix back button in TabPreferenceActivity
2020-10-19 14:57:55 +02:00
Levi Bard
b885aa8f83
Use blurhash for preview cards (#1960) 2020-10-17 18:41:38 +02:00
Levi Bard
a1887d1891
Fix filtering of boosts (#1954) 2020-10-13 18:30:39 +02:00
Vignesh Kumar
3b67f339b1
Change characters left color to red when negative (#1952)
* Change characters left color to red when negative

* Use val for the integers, optimize variable assignment

* Added tusky_red color

* remove extra line typo

* make characters left bold

* change red hue

* fix typo
2020-10-13 18:30:06 +02:00
Levi Bard
8e2e815b84
Set onClick listener for poll result view. (#1946)
Fixes #1861
2020-10-02 21:18:39 +02:00
Levi Bard
e237639adc
Save draft when redrafting a post (#1744) 2020-10-02 18:32:46 +02:00
Konrad Pozniak
26a051220b
improve relative poll timestamp string format (#1939) 2020-10-02 17:11:48 +02:00
Levi Bard
387c8b043c
Publish mute/block events from the report activity. (#1945)
Fixes #1870
2020-10-02 17:01:15 +02:00
Ivan Kupalov
e4c10f1ca4
Improve notifications fetching (#1930)
* Improve notifications fetching

 - Only fetch notifications up to the latest fetched one
 - Use timeline markers to avoid showing already seen notifications

* Apply some of the suggestions
2020-09-20 18:43:28 +02:00
duggalsu
17b7abb537
Remove 'Add Data' button if all 4 metadata fields are used in Edit Profile (#1934)
* Remove 'Add Data' button if all 4 metadata fields are used

* Removed option for disabling add field button
2020-09-14 10:39:46 +02:00
Konrad Pozniak
a6673a6eb2
simplify timeline cleanup (#1932)
* simplify timeline cleanup

* fix test
2020-09-14 07:52:54 +02:00
Konrad Pozniak
67df1a7065
fix another crash in ViewVideoFragment (#1926) 2020-09-03 20:17:11 +02:00
Konrad Pozniak
67225dd4c0
fix various bugs when creating tab with multiple hashtags (#1925) 2020-09-02 12:28:13 +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
fc7b02d987
use current user's avatar as drawer toggle (#1919)
* use current user's avatar as drawer toggle

* avoid hardcoded 36dp

* remove unused import
2020-09-01 16:49:30 +02:00
Konrad Pozniak
6ee493d8ea
fix notifications sometimes not rendering (#1905)
* fix notifications sometimes not rendering

* fix empty timeline fragment as well

* add link to github issue as explanation
2020-08-21 18:51:05 +02:00
Karol Kosek
a010687709
SettingsConstants: fix home tab filters (#1906)
Showing repeats was swapped with showing replies.
2020-08-21 09:15:53 +02:00
Levi Bard
d8d4b947ed
Fix opening public filter list from account preferences (#1904) 2020-08-20 18:08:04 +02:00
Konrad Pozniak
15df5c4df7
add icon for tabs preference (#1892) 2020-08-17 21:21:03 +02:00
Konrad Pozniak
a653c92e63
Fix crash in ViewVideoFragment (#1894) 2020-08-17 21:20:46 +02:00
Konrad Pozniak
dd3d372b80 add setting to hide top toolbar 2020-08-16 10:01:51 +02:00
David Teresi
c94d793bff Allow newlines in image descriptions 2020-08-14 16:42:18 -04:00
Konrad Pozniak
e2f3c74774
Fix cards in timelines/confirm boost preferences (#1878) 2020-08-08 10:03:07 +02:00
Ivan Kupalov
8b243a7f05
Fix crash in ViewImageFragment, fix #1876 (#1877)
It was not checked whether captionSheet is present.
2020-08-04 21:57:12 +02:00
Ivan Kupalov
ed2918da2e
Description improvements (#1846)
* Increase character limit for media descriptions to 1500

It was increased in Mastodon 3.0.0 which was released in October 2019.

* Improve image description view

Since media descriptions can be longer now, we need to adjust the UI.
It is a common problem that description takes up the whole screen, it's
hard for readers and also discourages people from adding descriptions.

This commit uses bottom sheet to hide most of the description. Since we
know how much screen space it will cover, we can use darker background
which makes reading text easier.

* Adjust description handle

* Fix unable to dismiss image caption
2020-08-01 21:48:51 +02:00
Ivan Kupalov
be8fc9f15a
Fix crash in the image viewer (#1871)
This is imperfect as it probably reduces quality of the image but it
fixes the crash for now.
2020-08-01 13:26:59 +02:00
Konrad Pozniak
467c33aacb
upgrade SwipeRefreshLayout to 1.1.0 (#1866) 2020-07-28 10:38:28 +02:00
Ivan Kupalov
f37a589dce
Roll back image viewer but retain swiping fix (#1863)
This fixes crashes with images which were too wide (aspect ratio wise).
2020-07-27 10:42:39 +02:00
Mélanie Chauvel
b3b4794a2b
Implement optional notifications muting for account muting (#1856) 2020-07-27 10:28:59 +02:00
Konrad Pozniak
7f0093bd58
remove scrolling from notification options bar (#1858) 2020-07-20 11:25:36 +02:00
Mélanie Chauvel
4205f5493e
Make account views clickable instead of avatar only (#1855)
Affects:
- New follower request and New follower notifications
- Accounts in Blocked users and Muted users pages
2020-07-07 20:35:31 +02:00
Konrad Pozniak
dfd30ec52a
correctly update the menu when muting domains (#1848) 2020-06-23 19:59:49 +02:00
Ivan Kupalov
58a1046348
Improve image viewer (#1843)
This commit does 3 things:
1. Replaces PhotoView (which is abandonware) with modern TouchImageView
2. Fixes an issue with panning images. Gesture was not intercepted
properly and pager was taking control instead of image being moved.
3. Adds feedback to dismissing of images with vertical gesture.
2020-06-22 21:26:37 +02:00
Konrad Pozniak
56f4f8a38d
fix MainActivity title when coming from a notification (#1844) 2020-06-21 19:52:27 +02:00
Konrad Pozniak
5246ab7d72
speedup blurhash decoding by using a intermediate int array (#1835) 2020-06-21 18:26:06 +02:00
Konrad Pozniak
836b7f3f76
don't create a CW when sharing text to Tusky (#1836) 2020-06-21 18:25:17 +02:00
Konrad Pozniak
74bd493878
add possibility to move the main navigation to the bottom (#1808)
* add possibility to move the main navigation to the bottom

* add top toolbar with drawer toggle, title and search button
2020-06-18 11:04:53 +02:00
Ivan Kupalov
ecb94beb3c
Fix settings default values for preferences (#1828)
At some point settings DSL was refactored to first add a preference and
then run the builder. We shouldn't add a preference to the hierarchy
without setting a key for the preference first because preference gets
it's default value in `onAttachedToHierarchy()` and if the key is not
set then no default value will be set either.

This commit changes the order to execute builder (and set the key)
first and and preference to the point later.
2020-06-14 19:58:05 +02:00
Levi Bard
4219871095
Fix preview cards for uncollapsible statuses (#1826) 2020-06-09 19:00:23 +02:00
Ivan Kupalov
c64df0fd1d
Settings refactor (#1615)
* Refactor main preferences to use DSL

* Refactor account preferences to use DSL

* Use DSL in rest of the preference screens

* Preferences cleanup

* Fix preference dependencies
2020-06-08 09:21:12 +02:00
Ivan Kupalov
4188b6ea09
Fix loading more than one page of favs/bookmarks, fix #1824 (#1825) 2020-06-07 19:37:34 +02:00
Alibek Omarov
5b187bcb5e
NotificationsFragment: show appbar if there is no notifications (#1810)
Thus, if user accidentally will filter everything, they will be able to return to initial state.
2020-05-30 10:10:47 +02:00
Levi Bard
1c09441c32
Fix showing/hiding of preview cards in timeline posts that are collapsed for length. (#1796)
Also properly places the preview card after the "collapse for length" button.
2020-05-21 18:32:22 +02:00
kyori19
e6b7d2ff9c
Fix large media uploading (#1800) 2020-05-21 14:50:19 +02:00
Konrad Pozniak
df8dc3a198
enable multiple hashtags in one hashtag tab (#1790)
* enable multiple hashtags in one hashtag tab

* add comment explaining the code in TabAdapter

* delete unused drawables

* add padding to EditText in dialog
2020-05-15 22:10:29 +02:00
Alibek Omarov
2fc7ad13bb
CustomEmojiHelper: rewrite to Kotlin (#1787)
* CustomEmojiHelper: rewrite to Kotlin

* CustomEmojiHelper: PR fixes
2020-05-15 22:09:12 +02:00
Konrad Pozniak
e72bdcaf42
add missing attribute to TimelineDao query (#1788) 2020-05-13 07:53:24 +02:00
Konrad Pozniak
b280e25727
use AndroidX WorkManager instead of Evernote Android Job (#1783)
* use AndroidX WorkManager instead of Evernote Android Job

* move notification related classes to their own package

* fix missing import
2020-05-12 18:46:49 +02:00
kyori19
623eb1fe2a
Add "account" filter context (#1776) 2020-05-08 19:17:02 +02:00
kyori19
23a1701151
Fix tag highlighting in editor (#1773)
* Fix tag highlighting in editor

* Add test case for tag highlighting
2020-05-08 19:16:35 +02:00
Konrad Pozniak
83c06f44e7
Fix RxJava UndeliverableException crashes (#1778) 2020-05-08 16:53:38 +02:00
Konrad Pozniak
a69e6a66ba
fix confirmReblogs default values (#1777) 2020-05-05 20:26:40 +02:00
Conny Duck
73fa94d39b close drawer after click 2020-04-28 21:56:02 +02:00