Обработка двух просмотров чата с помощью FirebaseRecyclerAdapter и FirebaseRecyclerOptions - PullRequest
0 голосов
/ 06 ноября 2018

Я хочу создать приложение чата с Firebase DB. Проблема возникает, когда я хочу изменить положение сообщений чата в зависимости от сообщения UID.

Адаптер My Recycler

protected RecyclerView.Adapter newAdapter() {

        Query sItemQuery = mDatabase.child("chat_messages").child(chatId).limitToLast(50);

        FirebaseRecyclerOptions<ChatMessage> options =
                new FirebaseRecyclerOptions.Builder<ChatMessage>()
                        .setQuery(sItemQuery, ChatMessage.class)
                        .setLifecycleOwner(this)
                        .build();

        return new FirebaseRecyclerAdapter<ChatMessage, ChatMessageViewHolder>(options) {


            @NonNull
            @Override
            public ChatMessageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                ChatMessageViewHolder holder = new ChatMessageViewHolder(LayoutInflater.from(parent.getContext())
                        .inflate(R.layout.single_chat_bubble, parent, false), getApplication());


                return holder;
            }

            @Override
            public int getItemViewType(int position) {
                if (isSender(position)) {
                    return R.layout.single_chat_page_right;
                } else {
                    return R.layout.single_chat_bubble;
                }
            }
            @Override
            public void onDataChanged() {
                // If there are no items, show a view that invites the user to add a message.
                //mEmptyListMessage.setVisibility(getItemCount() == 0 ? View.VISIBLE : View.GONE);
            }

            @Override
            protected void onBindViewHolder(@NonNull ChatMessageViewHolder holder, int position, @NonNull ChatMessage model) {
                holder.bind(model);

                holder.setOnClickListener(new ChatMessageViewHolder.ClickListener() {
                    @Override
                    public void onItemClick(View view, int position) {
                        Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG).show();
                    }

                    @Override
                    public void onItemLongClick(View view, int position) {



                    }
                });
            }
        };
    }

Я хочу проверить Uid == Текущий UId.

Я тоже пытался это сделать, но не могу найти модель при получении. Тип представления элемента

 private boolean isSender(int position) {
        if(position % 2 == 0){
            return true;
        }
        return false;
       // user.getUid().equals(getItem(position).getSender());
    }
...