ฉันกำลังพยายามเปลี่ยน Configuration ของ Mesibo Call UI แต่มันไม่เปลี่ยน ผมลองแล้วดังนี้
MesiboCallConfig mesiboCallConfig = new MesiboCallConfig();
mesiboCallConfig.backgroundColor = getResources().getColor(R.color.colorPrimary);
ฉันยังมีปัญหาในการปรับแต่งฟองข้อความและแก้ไขเค้าโครงข้อความ / ไฟล์ที่ด้านล่าง ฉันสามารถปรับแต่งฟองส่งข้อความและข้อความได้ แต่ในกรณีของการถ่ายโอนไฟล์ฉันกำลังดิ้นรนในการแสดงความคืบหน้าและจัดการการอัปโหลดไฟล์และดาวน์โหลดในพื้นหลังหากผู้ใช้ออกจากส่วนของข้อความ ฉันได้ลองทำตามวิธีต่อไปนี้แล้ว
import android.net.Uri;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.cardview.widget.CardView;
import com.mesibo.api.Mesibo;
import com.mesibo.messaging.MesiboMessagingFragment;
import com.mesibo.messaging.MesiboRecycleViewHolder;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import static com.mesibo.api.Mesibo.FileInfo.TYPE_IMAGE;
public class CustomMessagingFragment extends MesiboMessagingFragment implements MesiboRecycleViewHolder.Listener, Mesibo.MessageListener {
@Override
public int Mesibo_onGetItemViewType(Mesibo.MessageParams messageParams, String message) {
try {
String tag = message.split(" ")[0];
if (tag.equals("<>")) {
return MesiboRecycleViewHolder.TYPE_CUSTOM;
} else if (tag.equals("^^")) {
return 2581;
} else {
if (messageParams.isIncoming()) {
return MesiboRecycleViewHolder.TYPE_INCOMING;
} else {
return MesiboRecycleViewHolder.TYPE_OUTGOING;
}
}
} catch (Exception e) {
return MesiboRecycleViewHolder.TYPE_OUTGOING;
}
// return MesiboRecycleViewHolder.TYPE_NONE;
}
@Override
public MesiboRecycleViewHolder Mesibo_onCreateViewHolder(ViewGroup viewGroup, int viewType) {
//Logger.e("on " + viewType);
//Log.e("ViewType ", "int " + viewType);
if (viewType == MesiboRecycleViewHolder.TYPE_HEADER) {
}
if (MesiboRecycleViewHolder.TYPE_CUSTOM == viewType) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.special_message_layout, viewGroup, false);
return new SpecialMessageViewHolder(v);
} else {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.layout_message_show, viewGroup, false);
return new IncomingOutgoingMessageViewHolder(v);
}
// return null;
}
@Override
public void Mesibo_onBindViewHolder(MesiboRecycleViewHolder mesiboRecycleViewHolder, int viewType, boolean selected, Mesibo.MessageParams messageParams, Mesibo.MesiboMessage mesiboMessage) {
if (MesiboRecycleViewHolder.TYPE_CUSTOM == viewType) {
SpecialMessageViewHolder IncomingView = (SpecialMessageViewHolder) mesiboRecycleViewHolder;
IncomingView.totoal_view.setVisibility(View.VISIBLE);
Calendar var1;
(var1 = Calendar.getInstance()).setTimeInMillis(mesiboMessage.ts);
Date var2 = var1.getTime();
SimpleDateFormat localDateFormat = new SimpleDateFormat("hh:mm aa", Locale.US);
String time = localDateFormat.format(var2);
IncomingView.mIncomingMessageTV.setText(mesiboMessage.message);
IncomingView.mTime.setText(time);
}
if (MesiboRecycleViewHolder.TYPE_INCOMING == viewType) {
IncomingOutgoingMessageViewHolder messageViewHolder = (IncomingOutgoingMessageViewHolder) mesiboRecycleViewHolder;
messageViewHolder.mOutgoing_total_view.setVisibility(View.GONE);
messageViewHolder.mIncoming_total_view.setVisibility(View.VISIBLE);
Calendar var1;
(var1 = Calendar.getInstance()).setTimeInMillis(mesiboMessage.ts);
Date var2 = var1.getTime();
SimpleDateFormat localDateFormat = new SimpleDateFormat("hh:mm aa");
String time = localDateFormat.format(var2);
// messageViewHolder.mIncomingMessageTV.setText(mesiboMessage.message);
if (mesiboMessage.file == null) {
messageViewHolder.mIncomingMessageTV.setText(mesiboMessage.message);
} else {
messageViewHolder.mIncomingMessageTV.setVisibility(View.GONE);
messageViewHolder.mIncomingMessageIV.setVisibility(View.VISIBLE);
String url = mesiboMessage.file.message;
Log.v("File Info In Recycle: ", url.substring(0, url.length()-1));
messageViewHolder.mIncomingMessageIV.setImageURI(Uri.parse(url.substring(0, url.length()-1)));
}
messageViewHolder.mIncomingTime.setText(time);
}
if (MesiboRecycleViewHolder.TYPE_OUTGOING == viewType) {
IncomingOutgoingMessageViewHolder messageViewHolder = (IncomingOutgoingMessageViewHolder) mesiboRecycleViewHolder;
messageViewHolder.mOutgoing_total_view.setVisibility(View.VISIBLE);
messageViewHolder.mIncoming_total_view.setVisibility(View.GONE);
Calendar var1;
(var1 = Calendar.getInstance()).setTimeInMillis(mesiboMessage.ts);
Date var2 = var1.getTime();
SimpleDateFormat localDateFormat = new SimpleDateFormat("hh:mm aa");
String time = localDateFormat.format(var2);
// messageViewHolder.mOutgoingMessageTV.setText(mesiboMessage.message);
if (mesiboMessage.file == null) {
messageViewHolder.mOutgoingMessageTV.setText(mesiboMessage.message);
} else {
messageViewHolder.mOutgoingMessageTV.setVisibility(View.GONE);
messageViewHolder.mOutgoingMessageIV.setVisibility(View.VISIBLE);
String url = mesiboMessage.file.message;
Log.v("File Info In Recycle: ", url.substring(0, url.length()-1));
messageViewHolder.mOutgoingMessageIV.setImageURI(Uri.parse(url.substring(0, url.length()-1)));
}
messageViewHolder.mOutgoingTime.setText(time);
messageViewHolder.mSendStatus.setVisibility(View.VISIBLE);
switch (mesiboMessage.status) {
case 0:
messageViewHolder.mSendStatus.setText("Sending..");
break;
case 1:
messageViewHolder.mSendStatus.setText("Sent");
break;
case 2:
messageViewHolder.mSendStatus.setText("Delivered");
break;
case 3:
messageViewHolder.mSendStatus.setText("Read");
break;
default:
break;
}
}
}
@Override
public void Mesibo_oUpdateViewHolder(MesiboRecycleViewHolder mesiboRecycleViewHolder, Mesibo.MesiboMessage mesiboMessage) {
}
@Override
public void Mesibo_onViewRecycled(MesiboRecycleViewHolder mesiboRecycleViewHolder) {
}
@Override
public boolean Mesibo_onMessage(Mesibo.MessageParams messageParams, byte[] bytes) {
return super.Mesibo_onMessage(messageParams, bytes);
}
@Override
public void onMediaButtonClicked(int i) {
super.onMediaButtonClicked(i);
}
public static class SpecialMessageViewHolder extends MesiboRecycleViewHolder {
View mViewIncomingMessage;
TextView mIncomingMessageTV;
TextView mTime;
CardView totoal_view;
public SpecialMessageViewHolder(View v) {
super(v);
totoal_view = v.findViewById(R.id.cardview_recive_messsage);
mIncomingMessageTV = v.findViewById(R.id.textview_msg_recive);
mTime = v.findViewById(R.id.textview_recive_time);
mViewIncomingMessage = v;
}
}
public static class IncomingOutgoingMessageViewHolder extends MesiboRecycleViewHolder{
View mViewIncomingMessage;
ImageView mIncomingMessageIV, mOutgoingMessageIV;
TextView mIncomingMessageTV, mOutgoingMessageTV;
TextView mIncomingTime, mOutgoingTime, mSendStatus;
CardView mIncoming_total_view, mOutgoing_total_view;
public IncomingOutgoingMessageViewHolder(View v) {
super(v);
mIncoming_total_view = v.findViewById(R.id.cardview_recive_messsage);
mOutgoing_total_view = v.findViewById(R.id.cardview_send_messsage);
mIncomingMessageTV = v.findViewById(R.id.textview_msg_recive);
mOutgoingMessageTV = v.findViewById(R.id.textview_msg_send);
mIncomingTime = v.findViewById(R.id.textview_recive_time);
mOutgoingTime = v.findViewById(R.id.textview_send_time);
mSendStatus = v.findViewById(R.id.textview_msg_send_status);
mIncomingMessageIV = v.findViewById(R.id.imageview_msg_recive);
mOutgoingMessageIV = v.findViewById(R.id.imageview_msg_send);
mViewIncomingMessage = v;
}
}
อย่าสร้างการกำหนดค่าใหม่คุณควรรับการกำหนดค่าและแก้ไขแทน
เปลี่ยนแปลง
MesiboCallConfig mesiboCallConfig = new MesiboCallConfig();
ถึง
MesiboCallConfig mesiboCallConfig = MesiboCall.getInstance().getConfig():
Jana Duggar เปิดใจเกี่ยวกับการค้นหาความรักของเธอ นี่คือทุกสิ่งที่เธอพูดเกี่ยวกับหัวข้อและกรอบเวลา 5 ปีสำหรับการแต่งงาน
เมื่อเร็ว ๆ นี้ แซม ฮิวแฮน นักแสดงจากเรื่อง 'Outlander' ได้เปิดเผยสิ่งที่เขาจะทำจากกองถ่ายเพื่อระลึกถึงเจมี เฟรเซอร์ บทบาทที่ทำให้เขากลายเป็นดารา
'She Loves You' เขียนขึ้นในหนึ่งชั่วโมง บันทึกเสียงในหนึ่งวัน และเป็นเพลงของ The Beatles ที่มีการแสดงที่ดีที่สุดเพลงหนึ่งในอาชีพของพวกเขา
Dolly Parton และคุณย่า Bessie มีความสัมพันธ์พิเศษ คุณยายพาร์ตันป่วยหนัก แต่นั่นไม่ได้ทำให้ดอลลี่หยุดแกล้งเธอ
คุณอาจคิดว่าไม้โอ๊คหรือฮิคคอรีเป็นไม้ที่แข็ง แต่เมื่อต้องพูดถึงไม้ที่แข็งที่สุดในโลกแล้ว พวกมันกลับไม่ใกล้เคียงเลย
มหาสมุทรเต็มไปด้วยความงาม แต่ก็ซ่อนสิ่งมีชีวิตใต้ท้องทะเลที่น่ากลัวที่สุดบางชนิดไว้เช่นกัน สัตว์เหล่านี้หลายชนิดซ่อนตัวอยู่ใต้ผิวน้ำอันมืดมิด ในโลกใต้ทะเลลึกอันแสนกดดันและมืดมิด
หากคุณกำลังต่อสู้กับศัตรูหรือกำลังเตรียมตัวสำหรับโหมด PvP การรู้ถึงการเสริมพลังดาบที่ดีที่สุดใน Minecraft จะช่วยให้คุณได้เปรียบอย่างมาก การเสริมพลังดาบจะช่วยให้คุณสร้างความเสียหายได้มากขึ้น เพิ่มจำนวนม็อบที่ดรอป และเพิ่มความทนทานของดาบ
เมื่อผู้คนพูดถึงประเทศสังคมนิยม พวกเขามักจะนึกถึงการควบคุมโดยรัฐบาลอย่างเต็มรูปแบบโดยไม่มีกรรมสิทธิ์ส่วนบุคคล แต่ในทางปฏิบัติ เศรษฐกิจแบบสังคมนิยมมีความหลากหลายอย่างมาก
“เด็ก” โผล่รับเชิญดาราดังพร้อมข่าวร้าย
RAV4 นี้อ้างว่าอยู่ในสภาพที่ดีเยี่ยมและมีไว้สำหรับการเล่นเก้าอี้ดนตรี
ภาพจากโดรนจับภาพนักดับเพลิงที่กำลังพยายามดับไฟ
Eyes of Wakanda เชื่อมโยงโดยตรงกับ MCU พร้อมอัปเดตเกี่ยวกับ X-Men '97, What If..., Daredevil และอีกมากมาย
Ava Gardner แต่งงานกับ Mickey Rooney และ Frank Sintra และเธอยังคบหาดูใจกับดาราฮอลลีวูดอีกหลายคน ต่อไปนี้คือประวัติการออกเดทของ Ava Gardner
จอห์น คลีส แต่งงานกับเจนนิเฟอร์ เวด ภรรยาของเขาในปี 2012 นี่คือทุกสิ่งที่คุณต้องรู้เกี่ยวกับเจนนิเฟอร์ เวด ภรรยาของจอห์น คลีส
Michael C. Hall แต่งงานกับ Morgan Macgregor ภรรยาของเขาตั้งแต่ปี 2016 นี่คือทุกสิ่งที่คุณต้องการทราบเกี่ยวกับภรรยาของ Michael C. Hall
Mena Suvari แต่งงานกับ Michael Hope สามีของเธอมาตั้งแต่ปี 2018 นี่คือทุกสิ่งที่ควรรู้เกี่ยวกับสามีของ Mena Suvari
มันทำให้ฉันประหลาดใจ ทันใดนั้นมันก็เกิดขึ้นบ่อยๆ มันอยู่กลางทางอีกครั้ง <ไม่ ไม่ใช่คนในมหาสมุทรแปซิฟิก คุณเป็นสีน้ำตาลแดง คนที่งานคาร์นิวัล> ทุกพาดหัวข่าวดัง…..
ในปี 2022 ด้วยการเปิดตัว GPT-3 ทักษะการเขียนดูเหมือนจะมีความสำคัญน้อยลง ด้วย AI คนที่เขียนไม่ดีก็สามารถสร้างพนักงานที่มีคุณภาพได้เช่นกัน
ในโลกที่เปลี่ยนแปลงอย่างรวดเร็วและการแข่งขันในปัจจุบัน อาชีพของคนๆ หนึ่งมีบทบาทสำคัญในการเติบโตส่วนบุคคล ความมั่นคงทางการเงิน และความพึงพอใจในชีวิตโดยรวม อย่างไรก็ตาม ผู้คนจำนวนมากพบว่าตัวเองติดอยู่ในวงจรของความเมื่อยล้าและความไม่พอใจอย่างไม่หยุดยั้ง ค่อยๆ สูญเสียชีวิตการทำงานไป
เมื่อสัปดาห์ที่แล้วฉันสังเกตเห็นข่าวประชาสัมพันธ์ที่เผยแพร่ผ่าน PressGazette (เว็บไซต์ข่าวของสื่ออังกฤษ) บทความประกาศว่า Acast ซึ่งเป็นบริษัทโฮสติ้งและโฆษณาพอดคาสต์ของ Scandi จะเป็นผู้นำกลุ่มผู้เผยแพร่ "อาจมีอิทธิพลมากที่สุด" ในพอดคาสต์