* Remember paused state for autoplay videos
* Update cached playback info
Update cached playback info instead of keeping track of it with a local variable
* Add missing null check
* Move logic into play()
Gallery can set aspect ratio to -1 which would result in negative measured height. It seem that Android treats dimensions as unsigned numbers, so negative numbers actually become huge positive numbers resulting in "infinite" height.
It should be noted that this change allows to disable aspect ratio logic even when some dimension is set to `wrap_content`.
Low effort/high impact case. Simple change that removes Retrofit instance creation from startup path because it is used only after receiving response from Reddit. Eliminates Retrofit instance creation completely if it is not used. Also improves type safety by replacing common Retrofit type with specific api type.
* Allow importing theme as any text
Browsers copy content as text/html and it caused theme import to fail
* Coerce clipboard data to text
Clipboard can have mime type of text even when it doesn't actually contain text. For example it can contain uri to text content provider. Using `coerceToText` automatically handles all cases and returns best text representation of content.
Unified branches, extracted repeatedly used expressions.
Fortunately both branches had the same logic, except for placeholder position hint calculation.
* Fix placeholder position check
Because of the missed negation `placeholderPosition` could actually point to a different comment. As a result loaded comments would be displayed at a wrong position which could result in duplicated comments.
* Extract placeholder search code
Simple refactoring. The only notable change is that now technically `placeholderPosition` can be -1. In practice that should never happen, but I added checks anyways
* Separate network dependency injection module
- Moved network-related dependencies into a separate module
- Consolidated common dependencies to save resources constructing a http client/retrofit
* Separate construction of access token interceptor
* Create providers for Context and Application to be injectable
* Refactor AppModule and AppComponent
- Use component builder to store application context and provide to modules
- Optimise AppModule providers
* Use component factory to add component dependencies
* Updated network dependencies to singleton.
Add missing OAuth base url for oauth request
Co-authored-by: Kurian Vithayathil <no.reply@github.com>
Co-authored-by: Docile-Alligator <25734209+Docile-Alligator@users.noreply.github.com>
* Use and store sort type as enum for comments
* Use and store sort type as enum for posts
* Use sort type enum for search
* Remove unused reddit api methods
These were missed in the first "sort type" pr
* Remove unused isHiddenInRecyclerView Post field
Was used only for reads and was always false
* Remove unused isHiddenManuallyByUser Post field
Was only written to and read for serialization. Never used for any logic