protected override async void OnAppearing() { base.OnAppearing(); await _vm.InitAsync(); if (_syncService.SyncInProgress) { IsBusy = true; } _broadcasterService.Subscribe(_pageName, async(message) => { if (message.Command == "syncStarted") { Device.BeginInvokeOnMainThread(() => IsBusy = true); } else if (message.Command == "syncCompleted" || message.Command == "sendUpdated") { await Task.Delay(500); Device.BeginInvokeOnMainThread(() => { IsBusy = false; if (_vm.LoadedOnce) { var task = _vm.LoadAsync(); } }); } }); await LoadOnAppearedAsync(_mainLayout, false, async() => { if (!_syncService.SyncInProgress || (await _sendService.GetAllAsync()).Any()) { try { await _vm.LoadAsync(); } catch (Exception e) when(e.Message.Contains("No key.")) { await Task.Delay(1000); await _vm.LoadAsync(); } } else { await Task.Delay(5000); if (!_vm.Loaded) { await _vm.LoadAsync(); } } await ShowPreviousPageAsync(); AdjustToolbar(); }, _mainContent); }