* convert TimelineFragment to Kotlin
* cleanup some code
* migrate to viewbinding
* cleanup even more code
* address review feedback
* improve findStatusOrReblogPositionById
* 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
* 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
* 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>
* 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
* 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>
* 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
* 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
* Rename .java to .kt
* convert OkHttpUtils to Kotlin
* trust new letsencrypt root cert
* cleanup OkHttpUtils
* add link to lets encrypt cert to OkHttpUtils
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.
* add personal notes to AccountActivity
* use RxJava instead of plain okhttp calls
* make AccountViewModel rx aware
* hide note input until data is loaded
* Perform manual isolation of display names etc. instead of relying on BidiFormatter.
Fixes#1921
* Make follow request notification header formatting more like other notifications
* 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
* 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
* 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
* 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
* 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
* 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
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.
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.
* 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
* enable multiple hashtags in one hashtag tab
* add comment explaining the code in TabAdapter
* delete unused drawables
* add padding to EditText in dialog
* convert MainActivity to Kotlin
* migrate to MaterialDrawer 8
* fix drawer styles
* revert removing BezelImageView and material_drawer_header override
* fix tests
* add lost comment back to material_drawer_header.xml
* add tools:parentTag to material_drawer_header.xml
* use when instead of if in MainActivity
* fix statusbar color over the drawer
* cleanup drawer item creation
* tint secondary drawer items as well
* remove unnecessary ids
* fix header text color in the light theme
* improve header text contrast
DatePicker seems to think that it's in UTC. So setting selected time
might not work as aspect and receiving value from it might be in UTC
as well. This commit fixes the second issue by interpreting the date
as UTC date. Tested with America/New_York (GMT-5 at the moment) and
Russia/Kamchatka (GMT+12).
* Add option to show link previews in timelines.
Addresses #1075
* Indent cards in non-selected statuses when viewing threads
* Indent cards in timelines
* Fix clipping of right side of preview in timelines