Fix navigation bug when finishing onboarding
The bug occurs when finishing onboarding while having the do-not-keep-activities developer option enabled.
Closes #142 (closed)
@earthlingIB Testing instructions: This fix makes sure the problematic behavior does not happen any longer, i.e. that the wiping-complete screen does not come up in the wrong position in the sequence of screens (after finishing onboarding with the do-not-keep-activities option enabled). At the same time, it is important to check that this fix did not break anything else, i.e. it is important to check that the wiping-complete screen does come up when it is supposed to.
I think it is rather clear, how to check that the wiping-complete screen does not appear in the wrong place. Just check that after onboarding we correctly arrive at the do-not-kill-me fragment with both the do-not-keep-activities option enabled and disabled.
The other thing, to check whether the wiping complete screen does appear where it is supposed to is rather complicated. There are a bunch of slightly different situations that need to be checked carefully. The basic situations are these:
- 1. Wiping from within the mailbox app.
- 2. Wiping remotely using briar.
In both cases, the wipe-complete screen should be visible eventually.
There are variations of the above cases that are important to check individually:
- A. The user has the mailbox status screen open while the wiping happens.
- B. The user has moved the mailbox app to the background while the wiping happens and until wiping finished.
- C. The user has moved the mailbox app to the background while the wiping happens but brings it back to the foreground before it has finished.
Then another dimension of variation is whether the do-not-keep-activities option has been enabled.
- * do-not-keep-activities is enabled
- no-* do-not-keep-activities is disabled
That leaves us with quite a lot of combinations. It is a bit tedious to test, but I think there's not really a way around it:
- All combinations with do-not-keep activities disabled: 1A, 1B, 1C, 2A, 2B, 2C
- And then the same combinations but with do-not-keep activities enabled: 1A*, 1B*, 1C*, 2A*, 2B*, 2C*
Concerning the "wipe-complete screen should be visible eventually":
- In variations A and C, the wiping complete screen should be presented to the user instantly once wiping completed.
- In variation B, the user has navigated away from the app while wiping finishes. In this case the wipe-complete screen does not appear unsolicited, instead it should appear when the user reopens the app, either by moving back to it using the recent app switcher or by relaunching the app from the launcher. (Oh my, another variation for case B, sorry!)