* Convert ComposeActivity to Kotlin
* More ComposeActivity cleanups
* Move ComposeActivity to it's own package
* Remove ComposeActivity.IntentBuilder
* Re-do part of the media downsizing/uploading
* Add sending of status to ViewModel, draft media descriptions
* Allow uploading video, update description after uploading
* Enable camera, enable upload cancelling
* Cleanup of ComposeActivity
* Extract CaptionDialog, extract ComposeActivity methods
* Fix handling of redrafted media
* Add initial state and media uploading out of Activity
* Change ComposeOptions.mentionedUsernames to be Set rather than List
We probably don't want repeated usernames when we are writing a post
and Set provides such guarantee for free plus it tells it to the
callers. The only disadvantage is lack of order but it shouldn't be a
problem.
* Add combineOptionalLiveData. Add docs.
It it useful for nullable LiveData's. I think we cannot differentiate
between value not being set and value being null so I just added the
variant without null check.
* Add poll support to Compose.
* cleanup code
* move more classes into compose package
* cleanup code
* fix button behavior
* add error handling for media upload
* add caching for instance data again
* merge develop
* fix scheduled toots
* delete unused string
* cleanup ComposeActivity
* fix restoring media from drafts
* make media upload code a little bit clearer
* cleanup autocomplete search code
* avoid duplicate object creation in SavedTootActivity
* perf: avoid unnecessary work when initializing ComposeActivity
* add license header to new files
* use small toot button on bigger displays
* fix ComposeActivityTest
* fix bad merge
* use Singles.zip instead of Single.zip
Currently translated at 100.0% (382 of 382 strings)
Translation: Tusky/Tusky
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr/
Deleted translation using Weblate (English (Australia))
Translated using Weblate (English (Australia))
Currently translated at 27.6% (105 of 380 strings)
Translation: Tusky/Tusky
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/en_AU/
Added translation using Weblate (English (Australia))
Deleted translation using Weblate (English (Australia))
Translated using Weblate (English (United Kingdom))
Currently translated at 3.9% (15 of 380 strings)
Translation: Tusky/Tusky
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/en_GB/
Deleted translation using Weblate (French (Belgium))
Deleted translation using Weblate (Luxembourgish)
Added translation using Weblate (English (United Kingdom))
Deleted translation using Weblate (English (United Kingdom))
Translated using Weblate (English (United States))
Currently translated at 0.8% (3 of 380 strings)
Translation: Tusky/Tusky
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/en_US/
Added translation using Weblate (English (United States))
Deleted translation using Weblate (English (United States))
Translated using Weblate (English (United States))
Currently translated at 0.8% (3 of 380 strings)
Translation: Tusky/Tusky
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/en_US/
Translated using Weblate (French (Belgium))
Currently translated at 0.3% (1 of 380 strings)
Translation: Tusky/Tusky
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr_BE/
Added translation using Weblate (French (Belgium))
Translated using Weblate (French)
Currently translated at 100.0% (380 of 380 strings)
Translation: Tusky/Tusky
Translate-URL: https://weblate.tusky.app/projects/tusky/tusky/fr/
* show poll notifications in the app
* show poll notifications in the app
* allow filtering poll notifications in the poll fragment
* show poll notifications in system notifications
* New translations strings.xml (French)
* New translations strings.xml (German)
* New translations strings.xml (German)
* New translations strings.xml (Italian)
* New translations strings.xml (Japanese)
* New translations strings.xml (Japanese)
* New translations strings.xml (Japanese)
* New translations strings.xml (Arabic)
* New translations strings.xml (Arabic)
* New translations strings.xml (Esperanto)
* New translations strings.xml (Esperanto)
* New translations strings.xml (Esperanto)
* New translations strings.xml (Esperanto)
* New translations strings.xml (Czech)
* New translations strings.xml (French)
* New translations strings.xml (Czech)
* New translations strings.xml (Czech)
* New translations strings.xml (German)
* New translations strings.xml (French)
* New translations strings.xml (Hungarian)
* New translations strings.xml (Arabic)
* New translations strings.xml (Arabic)
* New translations strings.xml (Arabic)
* New translations strings.xml (Esperanto)
* New translations strings.xml (Esperanto)
* New translations strings.xml (German)
* New translations strings.xml (Italian)
* New translations strings.xml (Italian)
* New translations strings.xml (German)
* New translations strings.xml (German)
* New translations strings.xml (French)
* New translations strings.xml (French)
* New translations strings.xml (Hungarian)
* New translations strings.xml (French)
* New translations strings.xml (Italian)
* 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
* Add black theme
On amoled screens a completely black theme helps save battery,
besides looking awesome!
* Fix first set of merge request issues except the dialog.
* Black theme inherits from dark and only the different values
are declared
* Make nav bar translucent (for some reason content does not
go behind it in main activity. Need to investigate)
* Remove nav bar line
* Fix toolbar color
* Fix dialog issue with black theme.
Revert translucent navigation.
* Translations updated, as well as possible from online sources.
* Make login screen respect black theme
* Refactor-all-the-things version of the fix for issue #573
* Migrate SpanUtils to kotlin because why not
* Minimal fix for issue #573
* Add tests for compose spanning
* Clean up code suggestions
* Make FakeSpannable.getSpans implementation less awkward
* Add secondary validation pass for urls
* Address code review feedback
* Fixup type filtering in FakeSpannable again
* Make all mentions in compose activity use the default link color
* new layout for AccountActivity
* fix the light theme
* convert AccountActivity to Kotlin
* introduce AccountViewModel
* Merge branch 'master' into account-activity-redesign
# Conflicts:
# app/src/main/java/com/keylesspalace/tusky/AccountActivity.java
* add Bot badge to profile
* parse custom emojis in usernames
* add possibility to cancel follow request
* add third tab on profiles
* add account fields to profile
* add support for moved accounts
* set click listener on account moved view
* fix tests
* use 24dp as statusbar size
* add ability to hide reblogs from followed accounts
* add button to edit own account to AccountActivity
* set toolbar top margin programmatically
* fix crash
* add shadow behind statusbar
* introduce ViewExtensions to clean up code
* move code out of offsetChangedListener for perf reasons
* clean up stuff
* add error handling
* improve type safety
* fix ConstraintLayout warning
* remove unneeded ressources
* fix event dispatching
* fix crash in event handling
* set correct emoji on title
* improve some things
* wrap follower/foillowing/status views
* 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
* Strings: FR: Update translation
* Follow is not a good term, replace it by something more relevant.
* Strings: FR: Add missing translates
* Code string 'saved' is translated 'Drafts' in English.
Use 'saved' based words in FR however.
Fix a few grammatical issues to comply with existing rules :
- space before "!" in fr str for "error_compose_character_limit" as in fr str for "footer_empty"
- second part of negation added in fr str for "error_media_upload_opening", "error_media_upload_sending", "error_failed_app_registration" (ne ... pas) as in fr str for "error_empty" and others
- added a period in fr str for "dialog_whats_an_instance"
Some typos have been fixed and terminology changes have been suggested.
Also the gender-inclusive marks have been removed: independently
of our personal opinions regarding which sociological features
a written language should or shouldn’t take into account,
the fact remains that interpunct, hyphen, slash and apostrophe
are not admitted characters to highlight the feminine gender
due to the reading issues that would come out of those
graphical modifications. Moreover, those marks do not take into account
accessibility problems either (screen readers, etc.).
Therefore French grammatical rules should logically prevail.