Как отображать сообщение справа слева, как в вацапе с использованием firebase?
У меня сейчас все с одной стороны, либо могу сделать все с другой стороны, но разделить мои сообщения справа а пользователей слева не могу. Логику понимаю, что нужно как то индефицировать входящие сообщения и включать item1, а если исходящее item2, но как это на уровне кода написать?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
web_layout = findViewById(R.id.web_layout);
submitButton = findViewById(R.id.submit_buttom);
emojiButton = findViewById(R.id.emoji_buttom);
emojiconEditText = findViewById(R.id.textFild);
emojIconActions = new EmojIconActions(getApplicationContext(), web_layout, emojiconEditText, emojiButton);
emojIconActions.ShowEmojIcon();
getWindow().setBackgroundDrawableResource(R.drawable.fon_8) ;
submitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ("".equals(emojiconEditText.getText().toString().trim())) {
return;
} else
FirebaseDatabase.getInstance().getReference().push().setValue(new Message_Activity(
FirebaseAuth.getInstance().getCurrentUser().getDisplayName(),
emojiconEditText.getText().toString()
));
emojiconEditText.setText("");
}
});
//Пользователь еще не авторизован
if (FirebaseAuth.getInstance().getCurrentUser() == null)
startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder().build(), SING_IN_CODE);
else {
//Snackbar.make(web_layout, "Вы авторизованы", Snackbar.LENGTH_SHORT).show();
displayAllMessages();
}
}
private void displayAllMessages() {
ListView listOfMessege = findViewById(R.id.list_of_message);
if (???) {
adapter = new FirebaseListAdapter<Message_Activity>(this, Message_Activity.class, R.layout.list_item, FirebaseDatabase.getInstance().getReference()) {
@Override
protected void populateView(@NonNull View v, @NonNull Message_Activity model, int position) {
TextView mess_user, mess_time;
BubbleTextView mess_text;
mess_user = v.findViewById(R.id.message_user);
mess_time = v.findViewById(R.id.message_time);
mess_text = v.findViewById(R.id.message_text);
mess_user.setText(model.getUserName());
mess_text.setText(model.getTextMessage());
mess_time.setText(DateFormat.format("HH:mm", model.getMessageTime()));
}
};
listOfMessege.setAdapter(adapter);
} else {
displayAllMessages_2();
}
}
private void displayAllMessages_2() {
ListView listOfMessege_2 = findViewById(R.id.list_of_message);
adapter_2 = new FirebaseListAdapter<Message_Activity>(this, Message_Activity.class, R.layout.list_item_2, FirebaseDatabase.getInstance().getReference()) {
@Override
protected void populateView(@NonNull View v, @NonNull Message_Activity model, int position) {
TextView may_user, may_time;
BubbleTextView may_text;
may_user = v.findViewById(R.id.message_may);
may_time = v.findViewById(R.id.message_time_may);
may_text = v.findViewById(R.id.message_text_may);
may_user.setText(model.getUserName());
may_text.setText(model.getTextMessage());
may_time.setText(DateFormat.format("HH:mm", model.getMessageTime()));
}
};
listOfMessege_2.setAdapter(adapter_2);
}
}