* Added setting to toggle precise date as default display
* Applied spotless
* Improved time format setting with a ListPreference
* Fixed default time format value in list preference
Co-authored-by: Rémi Rigal <remi.rigal@orange.com>
Documentation for postDelayed:
> Causes the Runnable r to be added to the message queue, to be run
> after the specified amount of time elapses.
> The runnable will be run on the thread to which this handler
> is attached.
> <b>The time-base is {@link android.os.SystemClock#uptimeMillis}.</b>
> Time spent in deep sleep will add an additional delay to execution.
TL;DR: if the CPU is in deep sleep, the postDelayed runnable won't be executed.
Previously the MessageFacade and MessageStateHolder both had their own
state of the last deleted message, which was redundant. Now only
MessageStateHolder governs the state of a pending deletion and
MessageFacade handles commiting the deletion to the server.
This seems to cause an issue where onSwipe is not being called anymore
afterwards. Steps to reproduce:
1. Delete a message
2. Scroll a little bit down
3. Undo delete
4. Try delete again
-> Swiping works, but callback is not being called.
When swiping away a message it is only removed from the local message
lists and a snackbar appears. When the snackbar is dismissed or the user
deletes another message the delete request is sent to the server. If the
user presses "undo" on the snackbar the message is reinserted into the
local lists at its previous position.
- Add information (link to documentation) when no messages are present
- Add example URL in LoginActivity to indicate the expected format
- Fix capitalization in UI
The problem is that HttpUrl.parse parses URLs with trailing whitespace without problems, but during the URL parsing in ClientFactory an exception is thrown in that case.
Other errors when instantiating the API client are now handled as well.