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