* make MastodonApi.createStatus suspending
* check if media processing has finished before sending status
* add backoff for retrying processed media check
* Add back the emojiInitCallback and move EmojiCompat init
* Small adjustments
* Make sure that we don't hit the IllegalStateException when EmojiCompat-ing the display names
* Add a TODO for when Material Drawer 9 can be used
* Remove EmojiCompat.process and initcallback
* 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
* guard against the status of a notification being null in rare cases
* improve code, fix bug when payloads is not null
* remove findViewById
* add comments in NotificationsAdapter
* refactor compose & announcements to coroutines
* fix code formatting
* add javadoc to InstanceInfoRepository
* fix comments in ImageDownsizer
* remove unused Either extensions
* add explicit return type for InstanceInfoRepository.getEmojis
* make ComposeViewModel.pickMedia return Result
* cleanup code in ImageDownsizer
* Improve time format of posts when using absolute time
* fix AbsoluteTimeFormatter, add tests
* fix tests
Co-authored-by: Conny Duck <k.pozniak@gmx.at>
* fix black theme on Android 12
* Revert "fix black theme on Android 12"
This reverts commit 2286706fdb239e15be72ac8943405ffeb2258219.
* bring back SplashActivity
* 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
* 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
* 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
* 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
* 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
* 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
* 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