// Replace the contents of a view (invoked by the layout manager) public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position) { ConverstionsModel item = _listOfActiveConversations[position]; if (holder is ConvAdapterViewHolder viewHolder) { viewHolder.NameTextView.Text = item.Username; } }
void OnChatAccepted(Object[] obj) { Log.Error("WebSocket", "Chat Accepted"); var data = (JSONObject)obj[0]; string email; string room; try { //username = data.getString("username"); email = data.GetString("from"); room = data.GetString("room"); } catch (JSONException e) { Log.Error("on Join: ", e.Message); return; } Utils.CreateChannels(email, email); // aici adaugi in array-ul de room-uri try { string SharedRooms = Utils.GetDefaults("Rooms"); if (SharedRooms != null) { var model = JsonConvert.DeserializeObject <List <ConverstionsModel> >(SharedRooms); var currentModel = new ConverstionsModel { Username = email, Room = room }; var existingElement = false; foreach (ConverstionsModel conversation in model) { if (conversation.Username.Equals(currentModel.Username)) { existingElement = true; break; } } if (!existingElement) { model.Add(currentModel); } string serialized = JsonConvert.SerializeObject(model); Utils.SetDefaults("Rooms", serialized); } else { var model = new List <ConverstionsModel>(); var currentModel = new ConverstionsModel { Username = email, Room = room }; model.Add(currentModel); string serialized = JsonConvert.SerializeObject(model); Utils.SetDefaults("Rooms", serialized); } } catch (Exception e) { Log.Error("Error OnConversation", e.Message); } Notification nb = Utils.CreateChatNotification("Cerere acceptata", $"{email} ti-a acceptat cererea de chat!", email, room, _context, 2); var ids = room.Split(':'); Utils.GetManager().Notify(ids[0] == Utils.GetDefaults("Id") ? int.Parse(ids[1]) : int.Parse(ids[0]), nb); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.activity_chat); var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar); SetSupportActionBar(toolbar); Title = string.Empty; mMessages = new List <ChatModel>(); mAdapter = new ChatAdapter(this, mMessages); //mAdapter.ItemClick += delegate (object sender, int i) //{ // Toast.MakeText(this, mMessages[i].Username, ToastLength.Short).Show(); //}; layoutManager = new LinearLayoutManager(this) { Orientation = LinearLayoutManager.Vertical }; //layoutManager.ReverseLayout = true; RecyclerView = FindViewById <RecyclerView>(Resource.Id.messages); RecyclerView.SetLayoutManager(layoutManager); RecyclerView.SetAdapter(mAdapter); Ctx = this; mInputMessageView = (EditText)FindViewById(Resource.Id.tbMessage); send = FindViewById <Button>(Resource.Id.Send); send.Click += Send_Click; // delegate async { mAdapter.Clear(); if (savedInstanceState == null) { Bundle extras = Intent.Extras; RoomName = Intent.GetStringExtra("Room"); mUsername = Intent.GetStringExtra("EmailFrom"); var ids = RoomName.Split(':'); NotificationManagerCompat.From(this).Cancel( ids[0] == Utils.GetDefaults("Id") ? int.Parse(ids[1]) : int.Parse(ids[0])); //Active = Intent.GetBooleanExtra("Active", false); if (extras == null) { Finish(); } else if (Intent.GetBooleanExtra("AcceptClick", false)) { try { //adaugare la lista de prieteni string sharedRooms = Utils.GetDefaults("Rooms"); if (sharedRooms != null) { var model = JsonConvert.DeserializeObject <List <ConverstionsModel> >(sharedRooms); var currentModel = new ConverstionsModel { Username = mUsername, Room = RoomName }; var existingElement = false; foreach (ConverstionsModel conversation in model) { if (!conversation.Username.Equals(currentModel.Username)) { continue; } existingElement = true; break; } if (!existingElement) { model.Add(currentModel); } string serialized = JsonConvert.SerializeObject(model); Utils.SetDefaults("Rooms", serialized); } else { var model = new List <ConverstionsModel>(); var currentModel = new ConverstionsModel { Username = mUsername, Room = RoomName }; model.Add(currentModel); string serialized = JsonConvert.SerializeObject(model); Utils.SetDefaults("Rooms", serialized); } } catch (Exception e) { Log.Error("Error", e.Message); } string emailFrom = Utils.GetDefaults("Email"); try { string dest = extras.GetString("EmailFrom"); JSONObject mailObject = new JSONObject().Put("dest", dest) .Put("from", emailFrom) .Put("accepted", true).Put("room", RoomName); Log.Error("aici", mailObject.ToString()); WebSocketClient.Socket.Emit("chat accepted", mailObject); } catch (JSONException e) { e.PrintStackTrace(); } } //NotificationManagerCompat.From(this).Cancel(400); Task.Run(async() => { _conversationsRecords = await SqlHelper <ConversationsRecords> .CreateAsync(); var conversations = await _conversationsRecords.QueryValuations($"SELECT * FROM ConversationsRecords WHERE Room = '{RoomName}'"); foreach (ConversationsRecords message in conversations) { AddMessage(message.Message, message.MessageType == 0 ? 3 : 0); } }); } SupportActionBar.SetDisplayHomeAsUpEnabled(true); SupportActionBar.SetDisplayShowHomeEnabled(true); toolbar.NavigationClick += delegate { OnBackPressed(); }; Title = mUsername; }