Example #1
0
 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);
                 }
             }
         }
     }
 }
Example #2
0
 private void LoadMessages(int alarmId)
 {
     messagesList = WebApiDataController.GetMessages(alarmId);
     if (messagesList.FirstOrDefault().UserName == "failed" && messagesList.FirstOrDefault().Message == "failed")
     {
         return;
     }
     DisplayMessages();
 }
Example #3
0
        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);
        }
Example #9
0
 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();
     }
 }