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();
        }
예제 #2
0
        protected override async void OnCreate(Bundle savedInstanceState)
        {
            width = Resources.DisplayMetrics.WidthPixels;
            var alarmId = Intent.GetIntExtra("alarmId", 1);

            alarm = SQLiteDb.GetAlarms(this).GetAwaiter().GetResult().FirstOrDefault(a => a.Id == alarmId);
            var room = SQLiteDb.GetRooms(this).FirstOrDefault(r => r.Id == alarm.Id);

            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.ChatLayout);
            messagesListView = FindViewById <ListView>(Resource.Id.messagesListView);
            var newMessageLinearLayout = FindViewById <LinearLayout>(Resource.Id.newMessageLinearLayout);

            if (alarm.Archived == true)
            {
                newMessageLinearLayout.Visibility = ViewStates.Gone;
            }

            loggedUser = SQLiteDb.GetUser();
            LoadMessages(alarmId);
            newMessageEditText = FindViewById <EditText>(Resource.Id.newMessageEditText);
            newMessageEditText.SetWidth(Convert.ToInt32(width * 0.85));
            newMessageEditText.TextChanged += NewMessageEditText_TextChanged;

            var toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);
            string title = alarm.Name;

            if (title.Length > 17)
            {
                title = alarm.Name.Substring(0, 17) + "...";
            }
            SupportActionBar.Title = title;
            // Create your application here

            if (loggedUser.Email != "failed")
            {
                var userName         = loggedUser.UserName;
                var hubConnection    = new HubConnection("https://pwszalarmwebapi.azurewebsites.net");
                var messagesHubProxy = hubConnection.CreateHubProxy("MessagesHub");

                messagesHubProxy.On <int, int, string, string, DateTime>("sendMessageToClients", (id, alarmId, userName, message, messageTime) =>
                {
                    if (messagesList.FirstOrDefault().UserName == "failed" && messagesList.FirstOrDefault().Message == "failed")
                    {
                        messagesList.Clear();
                    }
                    this.RunOnUiThread(() =>
                    {
                        var messageObj = new Messages
                        {
                            Id          = id,
                            AlarmId     = alarmId,
                            UserName    = userName,
                            Message     = message,
                            MessageTime = messageTime
                        };
                        messagesList.Add(messageObj);
                        DisplayMessages();
                    });
                });
                try
                {
                    await hubConnection.Start();
                }
                catch (Exception ex)
                {
                    SQLiteDb.ShowAlert(this, "Błąd", ex.Message);
                }

                //Sending message
                var sendImageButton = FindViewById <ImageButton>(Resource.Id.sendMessageImageButton);
                sendImageButton.Click += async(o, e) =>
                {
                    InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
                    var message            = newMessageEditText.Text;
                    if (!string.IsNullOrEmpty(message))
                    {
                        await messagesHubProxy.Invoke("SendMessage", new object[] { alarmId, userName, message });
                    }
                    message = null;
                    newMessageEditText.Text = message;
                };
                newMessageEditText.EditorAction += (sender, e) =>
                {
                    if (e.ActionId == ImeAction.Done)
                    {
                        sendImageButton.PerformClick();
                    }
                    else
                    {
                        e.Handled = false;
                    }
                };
            }
        }
예제 #3
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();
     }
 }