private async void ButtonClick(object sender, EventArgs e) { progress.IsVisible = true; FrameBtnLogin.IsVisible = false; RestClientMP server = new RestClientMP(); var replace = EntryLogin.Text .Replace("+", "") .Replace(" ", "") .Replace("(", "") .Replace(")", "") .Replace("-", ""); var entryPassText = EntryPass.Text.ToString(); if (!replace.Equals("") && !entryPassText.Equals("")) { LoginResult login = await server.Login(replace, entryPassText); await DisplayAlert("Успешно", login.ToString(), "OK"); } else { await DisplayAlert("Ошибка", "Заполните пустые поля", "OK"); } progress.IsVisible = false; FrameBtnLogin.IsVisible = true; }
public App() { InitializeComponent(); Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("MzU2OTY1QDMxMzgyZTMzMmUzMEtpcFNHRnBKOUppMFJ1RUxjWTlsbUt6QzFOY3JyMUlGVi9McDJSSmQxVW89"); PdfViewerResourceManager.Manager = new ResourceManager("xamarinJKH.Resources.Syncfusion.SfPdfViewer.XForms", GetType().GetTypeInfo().Assembly); CrossBadge.Current.ClearBadge(); Crashes.SendingErrorReport += SendingErrorReportHandler; Crashes.SentErrorReport += SentErrorReportHandler; Crashes.FailedToSendErrorReport += FailedToSendErrorReportHandler; Crashes.GetErrorAttachments += GetErrorAttachmentHandler; //только темная тема в ios //if (Device.RuntimePlatform == Device.iOS && Application.Current.UserAppTheme == OSAppTheme.Unspecified) // Application.Current.UserAppTheme = OSAppTheme.Light; var task = Task.Run(async() => await getSettingsAsync()); task.Wait(); // var f = getSettingsAsync(); if (/*Device.RuntimePlatform == Device.iOS &&*/ Application.Current.UserAppTheme == OSAppTheme.Unspecified) { switch (Settings.MobileSettings.appTheme) { case "": Application.Current.UserAppTheme = OSAppTheme.Light; break; case "light": Application.Current.UserAppTheme = OSAppTheme.Light; break; case "dark": Application.Current.UserAppTheme = OSAppTheme.Dark; break; } } DependencyService.Register <RestClientMP>(); switch (Device.RuntimePlatform) { case Device.iOS: Color color = Color.White; int theme = Preferences.Get("Theme", 0); switch (theme) { case 1: color = Color.White; break; case 2: color = Color.Black; break; case 0: switch (Settings.MobileSettings.appTheme) { case "": color = Color.Black; break; case "light": color = Color.Black; break; case "dark": color = Color.White; break; } break; } //if (theme!=1) // color = Color.Black; //else // color = Color.White; //var color = Application.Current.UserAppTheme == OSAppTheme.Light /*|| Application.Current.UserAppTheme == OSAppTheme.Unspecified*/ ? Color.Black : Color.White; var c2 = Settings.MobileSettings.appTheme == "light" ? Color.Black : Color.White; var nav = new Xamarin.Forms.NavigationPage(new MainPage()) { BarBackgroundColor = c2, BarTextColor = color }; nav.On <iOS>().SetIsNavigationBarTranslucent(true); nav.On <iOS>().SetStatusBarTextColorMode(StatusBarTextColorMode.MatchNavigationBarTextLuminosity); MainPage = nav; break; case Device.Android: MainPage = new MainPage(); break; default: break; } CrossFirebasePushNotification.Current.Subscribe("general"); CrossFirebasePushNotification.Current.OnTokenRefresh += async(s, p) => { System.Diagnostics.Debug.WriteLine($"TOKEN : {p.Token}"); token = p.Token; await server.RegisterDevice(isCons); }; CrossFirebasePushNotification.Current.OnNotificationReceived += (s, p) => { System.Diagnostics.Debug.WriteLine("Received"); //CrossBadge.Current.ClearBadge(); if (Device.RuntimePlatform == Device.iOS) { if (DependencyService.Get <IAppState>().IsAppBackbround()) { badgeCount++; CrossBadge.Current.SetBadge(badgeCount); } } else { CrossBadge.Current.ClearBadge(); } Device.BeginInvokeOnMainThread(async() => { if (isCons) { MessagingCenter.Send <Object>(this, "UpdateAppCons"); } else { MessagingCenter.Send <Object>(this, "AutoUpdate"); } try { bool displayAlert = false; string o = string.Empty; // if (p.Data.ContainsKey("title") && p.Data.ContainsKey("body")) // { // var current_page = // (App.Current.MainPage.Navigation.ModalStack.ToList()[0] as Xamarin.Forms.TabbedPage) // .CurrentPage; // if (!(current_page is AppPage)) // { // displayAlert = await MainPage.DisplayAlert(p.Data["title"].ToString(), // p.Data["body"].ToString(), "OK", "Отмена"); // if (p.Data.ContainsKey("type_push")) // o = p.Data["type_push"].ToString(); // } // } //ios // if (p.Data.ContainsKey("aps.alert.title") && p.Data.ContainsKey("aps.alert.body")) // { // var current_page = // (App.Current.MainPage.Navigation.ModalStack.ToList()[0] as Xamarin.Forms.TabbedPage) // .CurrentPage; // if (!(current_page is AppPage)) // { // displayAlert = await MainPage.DisplayAlert(p.Data["aps.alert.title"].ToString(), // p.Data["aps.alert.body"].ToString(), "OK", "Отмена"); // if (p.Data.ContainsKey("gcm.notification.type_push")) // o = p.Data["gcm.notification.type_push"].ToString(); // } // } if (o.ToLower().Equals("осс")) { await MainPage.Navigation.PushModalAsync(new OSSMain()); } if (o.ToLower().Equals("comment")) { if (isCons) { await Task.Delay(500); MessagingCenter.Send <Object>(this, "RefreshApp"); } else { MessagingCenter.Send <Object>(this, "AutoUpdateComments"); } } if (o.ToLower().Equals("comment")) { var tabbedpage = App.Current.MainPage.Navigation.ModalStack.ToList()[0]; if (tabbedpage is xamarinJKH.Main.BottomNavigationPage) { var stack = (tabbedpage as Xamarin.Forms.TabbedPage).Children[3].Navigation .NavigationStack; if (stack.Count == 2) { var app_page = stack.ToList()[0]; } else { if (!isCons) { MessagingCenter.Send <Object, int>(this, "SwitchToApps", int.Parse(p.Data["id_request"].ToString())); } else { MessagingCenter.Send <Object, int>(this, "SwitchToAppsConst", int.Parse(p.Data["id_request"].ToString())); } } } if (tabbedpage is xamarinJKH.MainConst.BottomNavigationConstPage) { var stack = (tabbedpage as Xamarin.Forms.TabbedPage).Children[0].Navigation .NavigationStack; if (stack.Count == 2) { var app_page = stack.ToList()[0]; } else { if (!isCons) { MessagingCenter.Send <Object, int>(this, "SwitchToApps", int.Parse(p.Data["id_request"].ToString())); } else { MessagingCenter.Send <Object, int>(this, "SwitchToAppsConst", int.Parse(p.Data["id_request"].ToString())); } } } } if (o.ToLower() == "announcement") { var tabbedpage = App.Current.MainPage.Navigation.ModalStack.ToList()[0]; if (tabbedpage is xamarinJKH.Main.BottomNavigationPage) { var stack = (tabbedpage as Xamarin.Forms.TabbedPage).Children[0].Navigation .NavigationStack; if (stack.Count == 2 && !isCons) { await(tabbedpage as Xamarin.Forms.TabbedPage).Children[0].Navigation.PopToRootAsync(); } if (!isCons) { MessagingCenter.Send <Object, (string, string)>(this, "OpenNotification", (p.Data["body"].ToString(), p.Data["title"].ToString())); } } //if (tabbedpage is xamarinJKH.MainConst.BottomNavigationConstPage) //{ // var stack = (tabbedpage as Xamarin.Forms.TabbedPage).Children[0].Navigation // .NavigationStack; // if (stack.Count == 2) // { // var app_page = stack.ToList()[0]; // } // else // { // if (!isCons) // MessagingCenter.Send<Object, int>(this, "SwitchToApps", // int.Parse(p.Data["id_request"].ToString())); // else // MessagingCenter.Send<Object, int>(this, "SwitchToAppsConst", // int.Parse(p.Data["id_request"].ToString())); // } //} } } catch { } }); }; CrossFirebasePushNotification.Current.OnNotificationOpened += async(s, rea) => { Analytics.TrackEvent("открыт пуш"); System.Diagnostics.Debug.WriteLine("Opened"); if (rea.Data.ContainsKey("type_push") || rea.Data.ContainsKey("gcm.notification.type_push")) { string o = ""; if (Device.RuntimePlatform == Device.Android) { o = rea.Data["type_push"].ToString(); } else { o = rea.Data["gcm.notification.type_push"].ToString(); } Analytics.TrackEvent($"тип пуша {o}"); if (o.ToLower().Equals("announcement")) { Device.BeginInvokeOnMainThread(async() => { string login = Preferences.Get("login", ""); string pass = Preferences.Get("pass", ""); if (!pass.Equals("") && !login.Equals("")) { LoginResult loginResult = await server.Login(login, pass); if (loginResult.Error == null) { Settings.EventBlockData = await server.GetEventBlockData(); foreach (var each in Settings.EventBlockData.Announcements) { if (rea.Data.ContainsKey("aps.alert.title") && rea.Data.ContainsKey("aps.alert.body")) { if (rea.Data["aps.alert.title"].Equals(each.Header) & rea.Data["aps.alert.body"].Equals(each.Text)) { await MainPage.Navigation.PushModalAsync(new NotificationOnePage(each)); } } if (rea.Data.ContainsKey("title") && rea.Data.ContainsKey("body")) { if (rea.Data["title"].Equals(each.Header) & rea.Data["body"].Equals(each.Text)) { await MainPage.Navigation.PushModalAsync(new NotificationOnePage(each)); } } } } else { Analytics.TrackEvent($"сервер вернул ошибку: {loginResult.Error}"); } } }); } if (o.ToLower().Equals("осс")) { Device.BeginInvokeOnMainThread(async() => { string login = Preferences.Get("login", ""); string pass = Preferences.Get("pass", ""); if (!pass.Equals("") && !login.Equals("")) { LoginResult loginResult = await server.Login(login, pass); if (loginResult.Error == null) { Settings.Person = loginResult; await MainPage.Navigation.PushModalAsync(new OSSMain()); } } }); } if (o.ToLower().Equals("comment")) { if (rea.Data.ContainsKey("id_request")) { var id = int.Parse(rea.Data["id_request"].ToString()); Analytics.TrackEvent("ключ id_request=" + id); Analytics.TrackEvent("isCons=" + isCons); // if (!isStart) // { // // if (!isCons) // MessagingCenter.Send<Object, int>(this, "SwitchToApps", id); // else // MessagingCenter.Send<Object, int>(this, "SwitchToAppsConst", id); // } // else // { string login = Preferences.Get("login", ""); string pass = Preferences.Get("pass", ""); string loginConst = Preferences.Get("loginConst", ""); string passConst = Preferences.Get("passConst", ""); LoginResult loginResult = isCons ? await server.LoginDispatcher(loginConst, passConst) : await server.Login(login, pass); if (loginResult.Error == null) { if (isCons) { RequestList requestList = await server.GetRequestsListConst(); var request = requestList.Requests.Find(x => x.ID == id); await MainPage.Navigation.PushModalAsync(new AppConstPage(request)); } else { RequestList requestsList = await server.GetRequestsList(); var request = requestsList.Requests.Find(x => x.ID == id); await MainPage.Navigation.PushModalAsync(new AppPage(request, false, request.IsPaid)); } } } else { Analytics.TrackEvent("ключ id_request не найден"); } // Analytics.TrackEvent($"App.Current.MainPage.Navigation.ModalStack.Count={App.Current.MainPage.Navigation.ModalStack.Count}"); // if (App.Current.MainPage.Navigation.ModalStack.Count>0) // { // var tabbedpage = App.Current.MainPage.Navigation.ModalStack.ToList()[0]; // if (tabbedpage is xamarinJKH.Main.BottomNavigationPage) // { // var tp = (tabbedpage as Xamarin.Forms.TabbedPage); // Analytics.TrackEvent($"BottomNavigationPage Children count = {tp.Children.Count}"); // // if (tp.Children.Count >= 4) // { // var stack = tp.Children[3].Navigation.NavigationStack; // if (stack.Count == 2) // { // var app_page = stack.ToList()[0]; // } // else // { // pExec(rea); // } // } // else // { // pExec(rea); // } // } // // if (tabbedpage is xamarinJKH.MainConst.BottomNavigationConstPage) // { // var tp = (tabbedpage as Xamarin.Forms.TabbedPage); // Analytics.TrackEvent($"BottomNavigationConstPage Children count = {tp.Children.Count}"); // if (tp.Children.Count >= 1) // { // var stack = tp.Children[0].Navigation.NavigationStack; // if (stack.Count == 2) // { // var app_page = stack.ToList()[0]; // } // else // { // pExec(rea); // } // } // else // { // pExec(rea); // } // // } // } } } }; CrossFirebasePushNotification.Current.OnNotificationAction += (s, p) => { System.Diagnostics.Debug.WriteLine("Action"); if (!string.IsNullOrEmpty(p.Identifier)) { System.Diagnostics.Debug.WriteLine($"ActionId: {p.Identifier}"); foreach (var data in p.Data) { System.Diagnostics.Debug.WriteLine($"{data.Key} : {data.Value}"); } } }; }