1fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi/*
2fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * Copyright (C) 2018 The Android Open Source Project
3fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi *
4fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * Licensed under the Apache License, Version 2.0 (the "License");
5fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * you may not use this file except in compliance with the License.
6fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * You may obtain a copy of the License at
7fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi *
8fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi *      http://www.apache.org/licenses/LICENSE-2.0
9fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi *
10fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * Unless required by applicable law or agreed to in writing, software
11fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * distributed under the License is distributed on an "AS IS" BASIS,
12fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * See the License for the specific language governing permissions and
14fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi * limitations under the License
15fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi */
16fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi
17fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqipackage com.android.incallui.rtt.impl;
18fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi
19fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.content.res.Resources;
20fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.support.v7.widget.RecyclerView.ViewHolder;
21fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.view.Gravity;
22fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.view.View;
23fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.widget.ImageView;
24fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.widget.LinearLayout;
25fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.widget.LinearLayout.LayoutParams;
26fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqiimport android.widget.TextView;
27fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi
28fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi/** ViewHolder class for RTT chat message bubble. */
29fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqipublic class RttChatMessageViewHolder extends ViewHolder {
30fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi
31fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  private final TextView messageTextView;
32fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  private final Resources resources;
33fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  private final ImageView avatarImageView;
34fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  private final View container;
35fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi
36fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  RttChatMessageViewHolder(View view) {
37fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    super(view);
38fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    container = view.findViewById(R.id.rtt_chat_message_container);
39fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    messageTextView = view.findViewById(R.id.rtt_chat_message);
40fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    avatarImageView = view.findViewById(R.id.rtt_chat_avatar);
41fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    resources = view.getResources();
42fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  }
43fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi
44fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  void setMessage(RttChatMessage message, boolean isSameGroup) {
45fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    messageTextView.setText(message.getContent());
46fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    LinearLayout.LayoutParams params = (LayoutParams) container.getLayoutParams();
47fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    params.gravity = message.isRemote ? Gravity.START : Gravity.END;
48fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    params.topMargin =
49fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi        isSameGroup
50fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi            ? resources.getDimensionPixelSize(R.dimen.rtt_same_group_message_margin_top)
51fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi            : resources.getDimensionPixelSize(R.dimen.rtt_message_margin_top);
52fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    container.setLayoutParams(params);
53fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    messageTextView.setEnabled(message.isRemote);
54fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    if (message.isRemote) {
55fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi      if (isSameGroup) {
56fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi        avatarImageView.setVisibility(View.INVISIBLE);
57fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi      } else {
58fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi        avatarImageView.setVisibility(View.VISIBLE);
59fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi        avatarImageView.setImageResource(R.drawable.product_logo_avatar_anonymous_white_color_120);
60fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi      }
61fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    } else {
62fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi      avatarImageView.setVisibility(View.GONE);
63fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi    }
64fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi  }
65fdbf2a0d7124af3e3026acbe39873bd2deea13edwangqi}
66