* Enforce 420-character limit on media descriptions in the UI
* Persist media descriptions with drafts
* Defer media description update until after upload finishes
* Make description field 2 lines for better visibility of hint text
* Reuse Gson instance
* Force retranslation of modified string "hint_describe_for_visually_impaired"
* Add bounds check when reading serialized media descriptions
* set minSdkVersion to 21
* use elevation instead of additional views for shadow
* clean up code occurrences
* remove drawable compat code
* remove no longer needed resources
* remove unneeded android:clipChildren="false"
* Revert "remove no longer needed resources"
This reverts commit 67a4d6f8d87b3f116b95d90dfb48f350d342f503.
* remove no longer needed resources (this time the right ones)
* upgrade MaterialDrawer
* improve CustomEmojiHelper so now any parent view can be used for invalidation
* cleanup MainActivity a bit
* add emojiList to account database and show compatEmojis and custom emojis in drawer
* improve perf of drawer profile update
* fix account switching
* reuse gson, break after profile item was found
* Add EmojiCompat
* EmojiCompat doesn' replace all emojis anymore
* This app should be now capable of loading a EmojiCompat-font located in a file somewhere inside the device's storage
* Should now replace all emojis
* Add EmojiCompat support to EditTextTyped
* Provide EmojiCompat fonts
* The app won't crash anymore when no emoji font is available.
Emoji font should now be located at [Private external app directory]/files/EmojiCompat.ttf
* Removed BundledEmojiCompat dependency
Since this EmojiCompat-implementation does not rely on BundledEmojiCompat, there's no reason to have it enabled.
* Update EditTextTyped.kt
Since connection isn't assigned to (I tried doing so), it can be declared final/val again.
* Update README.md
* Add some non-working emoji preferences
* Add a short font list for testing
* Finished implementation
* Add Twemoji to font list
* Update documentation, more comments
* Delete AssetEmojiCompat which is obsolete now
* Update the font list
* Update the font list
* Fix font list & add Exception handling for malformed JSON files (hopefully)
* More fixes. It should work now...
* Removed AssetEmojiCompat (again)
* Add most of the changes
* Improved the EmojiCompat dialog's style
* The font list is now based on a static layout without external files
* Re-add the real font URL for Twemoji
* Emoji-font captions are now translatable
* Removed one unused String (loading)
* Removed emoji fonts from this repo
* Applied changes from the PR change requests
* The correct emoji font will be selected after cancelling a change
* Add details on the EmojiCompat fonts available (not shown yet)
* Add licensing information on Twemoji and Blobmoji
* Reworked some strings
* Moved FileEmojiCompat to its own library
* Update FileEmojiCompat to the latest version (1.0.3)
* EmojiCompat bug should be fixed
* Better handling of failed downloads
* Removed one TODO
Signed-off-by: Constantin A <10349490+C1710@users.noreply.github.com>
* Update emoji attribution strings
Signed-off-by: Constantin A <10349490+C1710@users.noreply.github.com>
* Fixed some misspelled strings
Signed-off-by: Constantin A <10349490+C1710@users.noreply.github.com>
* inject MastodonApi into LoginActivity
* inject AccountManager into MainActivity
* inject AccountManager into SplashActivity, convert to Kotlin
* inject AccountManager into AccountActivity
* inject AccountManager into LoginActivity
* inject AccountManager into NotificationsFragment and NotificationClearBroadcastReceiver, fix MainActivity
* ooops
* use same OkHttpClient for Retrofit & Picasso
* fix ordering of okhttp interceptors
* remove dependencies on TuskyApplication
* bugfix
* Query instance for toot character limit
Fixes#393
* Move maximumTootCharacters to instance field
* Add caching for maximum toot characters, expanding on the emoji list storage
* Update formatting per review feedback
* Fix compose activity tests
* Rename mastodon api point for nicer interaction with kotlin
* Default emoji list to empty list instead of null, to appease json converters in failure cases
* Use empty list helper
* Fix database migration
* do not add media urls to status text
* add scrolling to content
* add arrow icon and animation to replying-to toggle
* remove unnecessary compose_button_colors.xml
* improve toot button
* improve bottom bar, add bottom sheet for compose options, dedicated cw button
* fix crash on Android < API 21
* move media picking from dialog to bottom sheet
* add small style tootbutton
* fix colors/button background for light theme
* add icons to media chose bottom sheet
* improve hide media button, delete unused styles
* fix crash on dev build when taking photo
* consolidate drawables
* consolidate strings and ids, add tooltips to buttons
* allow media only toots
* change error message to show max size of upload correctly
* fix button color
* add emoji
* code cleanup
* Merge branch 'master' into compose_activity_refactoring
# Conflicts:
# app/src/main/java/com/keylesspalace/tusky/ComposeActivity.java
* fix hidden snackbar
* improve hint text color
* add SendTootService
* fix timeline refreshing
* toot saving and error handling for sendtootservice
* restructure some code
* convert EditTextTyped to Kotlin
* fixed pick media button disabled color
* force sensitive media when content warning is shown
* add db cache for emojis & fix tests
* reorder buttons to match mastodon web
* add possibility to cancel sending of toot
* correctly delete sent toots
* refresh SavedTootActivity after toot was sent
* remove unused resources
* correct params for toot saving in SendTootService
* consolidate strings
* bugfix
* remove unused resources
* fix notifications on old android for SendTootService
* fix crash
* basic implementation
* improve LoginActivity
* darken drawer background image
* add current avatar in ComposeActivity
* add account name to logout dialog
* multi account support for notifications
* multi account support for notifications
* bugfixes & cleanup
* fix bug where somethings notifications would open with the wrong user
* correctly set active account in SFragment
* small improvements
* Split theme definitions into day and night
* Add support for Night Mode in code
* Add theme chooser in preferences
* Fix translations
* Adjust IDs
* Adjust preferences for custom themes
* UI tweaks for custom theme support
* Added code for custom theme support 🍅
* Fixed resource display in Kotlin 🍅
* Restored styles
* Updated strings
* Fixed getIdentifier() to fit into setTheme()
* Removed redundant resources
* Reset default theme to "Dusky"
* Fixed night mode handler to maintain compatibility
* Refactor functions to use helper methods
* Added license block
* Added preview to theme selector
* Added color identifier getter helper method
* Fixed reference in AccountMediaFragment
* Cleanup
* Fixed navbar foreground not changing color
* Fix fallback theme switch(){}
* Enable location-based daylight trigger
* Cleanup
* Modified theming strategy to reduce clutter in preferences
* Updated translations for latest version
* Removed "Default" theme flavor from settings
* Updated Polish translations 🇵🇱
* Modified TwilightManager handling code to support Android M's UiModeManager features and moved it to its own function
* Updated Polish translations 🇵🇱
* Cleanup; Fixed hardcoded string
* Added missing escape in string
* Removed permission request dialog.
As we now use native UiModeManager APIs that don't need special permission for Android 6.0 and above, we no longer need to bother user with Android M+ specific location permission request dialog.
* Increased readability of ThemeUtil class
* Refactored ThemeUtils.setAppNightMode method
* Cleanup
This change allows the user to manually enter an unauthenticated proxy
configuration to be used for all API connections. This is mainly
intended for using Tusky with Tor (via Orbot or a local proxy).
Some things were pulled out of adapters to fragments. New classes were introduced - StatusViewData and NotificationViewData. They not only have view state in them but also help decoupling.
Because introducing parallel model list requires a lot of synchronisation PairedList was added.
Also synchronisation between fragments and adapters is quiet tedious and error-prone and should be replaces with better solution.
Oh, I also couldn’t resist and fixed bug with buttons animation in the same commit.
Although for now it makes no difference calling super.onCreate or not
(the method Application.onCreate() is empty), it is denoted with
@CallSuper and might cause errors in some IDE if it is not called.