The observer was moved and is now bound to the activity and its
context. If the activity is re-created we leak the observer and
therefore the activity itself.
With this we make sure to stop the observer and also don't use
the activity context to begin with.
We'll now clearly differentiate between cold / hot starts of HomeActivity.kt.
This is needed because Android will resend the original Intent which initially
started the Activity whenever it is restarted from the Recents Screen if the
activity is already destroyed at that time. So in the event that the activity
was before started with an Intent to open a webpage for example whenever the
activity is restarted from Recents it will receive the same Intent to open a
webpage even though that Intent has already been consumed.
Activity's onCreate() will only use the intent processors when the activity is
cold started so that we'll only initially act upon Intents configured for
different behaviors inside the app.
If the activity is destroyed while in background and opened from Recents it
will not act upon the original Intent which is now resent by Android.
Activity's onNewIntent() will be called to act upon a new Intent if the
activity is hot started since we are declared as singleTask and it now has the
responsibility to delegate various intent processors to consume that Intent.
- Added the undo action for deleting individual history items by creating a new field to the history state containing the id's of the history items that are pending for deletion; This field is used inside the update function from the view to show/hide the items.
- Added a new check inside the "deleteMulti" method from BookmarkFragment that calls the showRemoveFoldersDialog to prevent the user from being able to delete one or more bookmark folders without being asked for confirmation, as in #8648.