Store invitation outcome in metadata and make it available to the UI
This MR is based on !479 and should only be merged after that one has been merged as well.
It stores the invitation outcome in the message metadata and includes it in the `canBeOpened()` calculation for private groups and sharables.
Closes#877
See merge request !480
Migrate blog sharing to new sharing client infrastructure
This MR contains a second small commit that fixes#816 and adds a test for it.
Closes#476, #701
See merge request !479
Check the blog item in NavDrawer when opening a blog via notification
There are three scenarios where the selected item in the NavDrawer changes:
1. The user selects an item -> the item is checked automatically.
2. The user pressed back -> already handled in onBackPressed (needs to be extended with #606)
3. The user touched a notification -> handled by this commit.
Signed-off-by: goapunk <noobie@goapunks.net>
Closes#889
See merge request !481
Stop periodic list update only once
When testing the forum unread code, I noticed the recycler view is detaching twice. Once because the stop method is called and once because the view detaches from the window. Wouldn't it be safe to null the refresher when the updates are stopped?
See merge request !478
Remove code for collapsing threads and for reply count
Besides removing lots of code, this MR also improves the encapsulation between adapter and view holders.
Closes#478, #502, #526, #682, #683, #835, #836
See merge request !477
Threaded Unread Handling

This leaves in the collapsing code for now and just hides the UI element for collapsing. The code can be removed in a second pass to simplify the adapter.
Closes#879
See merge request !476
New Forum Sharing Client
This is very similar to how the private group invitations work and I am sure there's still some tiny bugs that I didn't catch.
All existing integration tests either pass or have been modified to pass.
Once this has been merged, the code should be usable for blog sharing as well.
Closes#475
See merge request !467
Fix memory leaks caused by periodic view refreshing tasks
This branch implements @goapunk's suggested solution to #851. Credit goes to @ernir for finding the bug and the initial solution, and @goapunk for the improved solution - I just did a quick implementation so we can get this fixed as quickly as possible.
Closes#851
See merge request !473
Make sure contact name is initialized when needed
This uses a Listenable Future and unfortunately requires 4 basically identical methods to handle the incoming events. Any suggestions for improving that are welcome.
Closes#710
See merge request !472
Add a handleDbException() method to BaseActivity
This adds a `handleDbException()` method to BaseActivity and a corresponding method for fragments that calls through to the activity.
For now, the method just finishes the activity
and NavDrawerActivity overrides it to do nothing,
and all the error places marked with TODO that finish the activity call the method instead.
That gives us zero functional improvement over the status quo,
but it allows us to change the default behaviour easily,
and then we can start thinking about which cases should have non-default behaviour.
First part of #469
See merge request !469
and a corresponding method for fragments that calls through to the activity.
For now, the method just finishes the activity
and NavDrawerActivity overrides it to do nothing,
and all the error places marked with TODO that finish the activity call the method instead.
That gives us zero functional improvement over the status quo,
but it allows us to change the default behaviour easily,
and then we can start thinking about which cases should have non-default behaviour.
Show open button in private conversation after accepting invitations
To keep the implementation simple, the Open button does appear where the Accept button had been previously.
In order to make the Open button functional, I had to make the `GroupId` of the invitation target available to the UI. Most code in this MR is due to that.

Closes#793
See merge request !457
Ignore QR code results until local QR code is created
* Make scanning only possible after we are "ready" (= our QrCode was created and set).
Signed-off-by: goapunk <noobie@goapunks.net>
Closes#814
See merge request !454
Update all logos
The launcher icons are now in mipmap folders which is the recommended practice, because on a low-res device, the high res drawables are stripped from the app. This is bad when the user decides to show the app icons really big on the launcher and the high-res drawables are not available anymore.
The old launcher icon seemed to have some sort of 3D effect.

Navigation Drawer Old:

Navigation Drawer New:

Closes#828
See merge request !459