To ensure multiple operations can happen in parallel on the plugin, each
with a separate interactivity state, keep two FlatpakInstallation
objects around for each GsFlatpak
. One is interactive, the other is
non-interactive.
Execute interactive operations on the interactive one, and vice-versa.
This is necessary because FlatpakInstallation
doesn’t provide a
per-method ‘interactive’ argument. It only has a single interactive
state for the entire object. That can’t change without significant new
API in libflatpak (or API breaks).
Based on work by Milan Crha.
Signed-off-by: Philip Withnall pwithnall@endlessos.org
Fixes: #1645 (closed)