public override async void OnReceive(Context context, Intent intent) { if (intent != null) { string action = intent.Action; if (action.Equals(ACTION_PROCESS_LOCATION)) { LocationResult result = LocationResult.ExtractResult(intent); if (result != null) { var location = result.LastLocation; Location pwsz = new Location("PWSZ") { Latitude = 49.609080, Longitude = 20.704225 }; float[] results = new float[3]; Location.DistanceBetween(location.Latitude, location.Longitude, pwsz.Latitude, pwsz.Longitude, results); var distance = results[0]; if (distance < 200) { await WebApiDataController.SetSendNotificationsAsync(true); } else { await WebApiDataController.SetSendNotificationsAsync(false); } } } } }
private void LoadMessages(int alarmId) { messagesList = WebApiDataController.GetMessages(alarmId); if (messagesList.FirstOrDefault().UserName == "failed" && messagesList.FirstOrDefault().Message == "failed") { return; } DisplayMessages(); }
private async void RegisterButton_ClickAsync(object sender, EventArgs e) { TextView errorTextView = FindViewById <TextView>(Resource.Id.errorTextView); if (CrossConnectivity.Current.IsConnected) { errorTextView.Visibility = ViewStates.Gone; if (!dataValid || EmptyField()) { errorTextView.Text = "Wypełnij dane poprawnie..."; errorTextView.Visibility = ViewStates.Visible; } else { registerUser.UserName = registerUser.Email.Split('@').ElementAt(0); var registerSuceed = await WebApiDataController.RegisterUser(this, registerUser); if (!registerSuceed) { errorTextView.Text = "Konto o podanym adresie już istnieje"; errorTextView.Visibility = ViewStates.Visible; } else { Toast.MakeText(this, "Zarejestrowano pomyślnie", ToastLength.Short); AlertDialog.Builder dialog = new AlertDialog.Builder(this); AlertDialog alert = dialog.Create(); alert.SetTitle("Ważne!"); alert.SetMessage("Aktywuj konto linkiem wysłanym w wiadomości e-mail. Link wygasa za 6 godzin."); alert.SetButton("OK", (c, ev) => { alert.Hide(); Bundle extras = new Bundle(); extras.PutString("email", emailEditText.Text); extras.PutBoolean("registered", true); FinishActivity(1); Intent intent = new Intent(this, typeof(SignInActivity)); intent.PutExtras(extras); StartActivity(intent); }); alert.Show(); errorTextView.Visibility = ViewStates.Gone; } } } else { errorTextView.Text = "Brak połączenia z internetem"; errorTextView.Visibility = ViewStates.Visible; } }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.LoadingView); CreateNotificationChannel(); IsPlayServicesAvailable(); var token = FirebaseInstanceId.Instance.Token; WebApiDataController.PostNotifyToken(token); FirebaseMessaging.Instance.SubscribeToTopic("news"); var intent = new Intent(this, typeof(LoadDataActivity)); StartActivity(intent); Finish(); }
private async void SigninButton_Click(object sender, EventArgs e) { TextView errorTextView = FindViewById <TextView>(Resource.Id.signInErrorTextView); bool loggedIn; if (CrossConnectivity.Current.IsConnected) { errorTextView.Visibility = ViewStates.Gone; if (!dataValid) { errorTextView.Text = "Wypełnij dane poprawnie..."; errorTextView.Visibility = ViewStates.Visible; } else { loggedUser.RememberMe = true; loggedIn = await WebApiDataController.LogIn(loggedUser); if (loggedIn) { Toast.MakeText(this, "Zalogowano", ToastLength.Short); SetContentView(Resource.Layout.LoadingView); var intent = new Intent(this, typeof(NotificationActivity)); StartActivity(intent); Finish(); } else { errorTextView.Text = "Nie udało się zalogować"; errorTextView.Visibility = ViewStates.Visible; } } } else { errorTextView.Text = "Brak połączenia z internetem"; errorTextView.Visibility = ViewStates.Visible; } }
private void OkButton_Click(object sender, EventArgs e) { var user = SQLiteDb.GetUser(); if (user.Email == "failed") { return; } InputMethodManager imm = (InputMethodManager)GetSystemService(InputMethodService); imm.HideSoftInputFromWindow(nameEditText.WindowToken, 0); ShortAlarm shortAlarm = new ShortAlarm(); Room room = SQLiteDb.FindRoom(choosenRoom); string now = DateTime.Now.ToString("s"); shortAlarm.Archived = false; shortAlarm.RoomId = room.Id; shortAlarm.Name = nameEditText.Text; shortAlarm.UserId = user.Id; shortAlarm.NotifyDate = Convert.ToDateTime(now); WebApiDataController.PostAlarm(this, shortAlarm); Task.Delay(3000); Finish(); }
protected override async void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.MainPage); Instance = this; var width = Convert.ToInt32(Resources.DisplayMetrics.WidthPixels * 0.96); var alarms = await SQLiteDb.GetAlarms(this); Alarm alarm = new Alarm(); if (alarms.Count() > 0) { alarm = alarms.Last(); } if (alarm != null) { var floatingButton = FindViewById <FloatingActionButton>(Resource.Id.mainPageFloatingActionButton); this.RunOnUiThread(() => { if (DateTime.Now.Subtract(alarm.NotifyDate).TotalHours > 24) { floatingButton.Visibility = ViewStates.Gone; } else { floatingButton.Visibility = ViewStates.Visible; } }); floatingButton.Click += (o, e) => { var intent = new Intent(this, typeof(AlarmActivity)); intent.PutExtra("alarmId", alarm.Id); StartActivity(intent); }; } ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this); var notificationsAlways = prefs.GetBoolean("settingsNotifications", true); if (notificationsAlways) { await UpdateLocationAsync(false); await WebApiDataController.SetSendNotificationsAsync(true); } else { await UpdateLocationAsync(true); } Button planButton = FindViewById <Button>(Resource.Id.planButton); planButton.Click += (o, e) => { var intent = new Intent(this, typeof(BuildingPlansActivity)); StartActivity(intent); }; Button reportButton = FindViewById <Button>(Resource.Id.reportButton); reportButton.Click += (o, e) => { SQLiteDb.LoadRoomsToDB(this); var intent = new Intent(this, typeof(ReportEmergencyActivity)); StartActivity(intent); }; Button threatsButton = FindViewById <Button>(Resource.Id.threatsButton); threatsButton.Click += (o, e) => { SQLiteDb.LoadAlarmsToDb(this).GetAwaiter(); var intent = new Intent(this, typeof(AlarmsHistoryActivity)); StartActivity(intent); }; Button settingsButton = FindViewById <Button>(Resource.Id.settingsButton); settingsButton.Click += (o, e) => { var intent = new Intent(this, typeof(SettingsActivity)); StartActivity(intent); Finish(); }; }
public override void OnTokenRefresh() { var refreshedToken = FirebaseInstanceId.Instance.Token; WebApiDataController.PostNotifyToken(refreshedToken); }
private void TurnOn() { user = SQLiteDb.GetUser(); if (user.Email == "failed") { var intent = new Intent(this, typeof(SignInActivity)); StartActivityForResult(intent, 1); Finish(); } else if (CrossConnectivity.Current.IsConnected) { if (user.RememberMe && DateTime.Now.Subtract(user.AuthorizationTime).TotalSeconds >= 86399) { //Remember me, Authorization key not actve var logged = WebApiDataController.LogIn(user).Result; if (logged) { //logged in var intent = new Intent(this, typeof(LoadDataActivity)); StartActivity(intent); Finish(); } else { //not logged in AlertDialog.Builder dialog = new AlertDialog.Builder(this); AlertDialog alert = dialog.Create(); alert.SetTitle("Błąd"); alert.SetMessage("Logowanie nie było możliwe. Wprowadź dane logowania."); alert.SetButton("OK", (c, ev) => { alert.Hide(); var intent = new Intent(this, typeof(SignInActivity)); StartActivity(intent); Finish(); }); alert.Show(); } } else if (!user.RememberMe && DateTime.Now.Subtract(user.AuthorizationTime).TotalSeconds >= 86399) { //Dont remember me var intent = new Intent(this, typeof(SignInActivity)); StartActivityForResult(intent, 1); Finish(); } else { //Authorization key still active var intent = new Intent(this, typeof(LoadDataActivity)); StartActivity(intent); Finish(); } } else { AlertDialog.Builder dialog = new AlertDialog.Builder(this); AlertDialog alert = dialog.Create(); alert.SetTitle("Błąd"); alert.SetMessage("Brak połączenia z internetem"); alert.SetButton("SPRÓBUJ PONOWNIE", (c, ev) => { alert.Hide(); TurnOn(); }); alert.SetButton2("OK", (c, ev) => { alert.Hide(); Finish(); }); alert.Show(); } }