Как отображать сообщение справа слева, как в вацапе с использованием 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);
    }

}

Ответы (0 шт):