the initial idea was to have an abstract fragment class that could
handle the details about launching the QR scanner and accept the result.
however, the right place to do this is the activity, because only an
activity can receive the scan result, and launch the QR app.
Before, this was worked around by a LiveData thing that the activity
observed, and which the "Scan" buttons triggered. This has a nasty side
effect that the LiveData is triggered whenever the activity is
re-instantiated