
Before, it would change fields in a final Repo instance, which means that things could be out of sync when accessed. Now it swaps out the old one with a new Repo instance in one step. The local repo variables are now declared volatile so that they are more predictable when accessed from various threads (WifiStateChangeService, SwapService, etc.) askServerToSwapWithUs(NewRepoConfig) was unused, so I removed it.