getList() {
+ return list;
+ }
+
+ @NonNull
+ @Override
+ public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return new ViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_msg_message, parent, false));
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
+ holder.setData(list.get(position), position);
+ }
+
+ @Override
+ public int getItemCount() {
+ return list.size();
+ }
+
+ public class ViewHolder extends RecyclerView.ViewHolder {
+ ImageView avatar;
+ TextView name;
+ TextView content;
+ TextView time;
+ TextView read;
+
+ public ViewHolder(@NonNull View itemView) {
+ super(itemView);
+ avatar = itemView.findViewById(R.id.msg_message_avatar);
+ name = itemView.findViewById(R.id.msg_message_title);
+ content = itemView.findViewById(R.id.msg_message_content);
+ time = itemView.findViewById(R.id.msg_message_content_time);
+ read = itemView.findViewById(R.id.msg_message_content_not_read);
+ }
+
+ public void setData(MsgMessageBean bean, int position) {
+ if (bean.isNotRead()) {
+ read.setVisibility(View.VISIBLE);
+ read.setText(bean.getNotReadNum() + "");
+ } else {
+ read.setVisibility(View.GONE);
+ }
+ ImgLoader.display(mContext, bean.getAvatar(), avatar);
+ name.setText(bean.getNickname());
+ content.setText(bean.getContent());
+ time.setText(String.format("·%s", bean.getTime()));
+ }
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/MsgGreetConfigBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/MsgGreetConfigBean.java
new file mode 100644
index 000000000..72c6b5b2d
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/MsgGreetConfigBean.java
@@ -0,0 +1,39 @@
+package com.shayu.onetoone.bean;
+
+import com.yunbao.common.bean.BaseModel;
+
+public class MsgGreetConfigBean extends BaseModel {
+ private int id;
+ private String content;
+
+ public MsgGreetConfigBean(String content) {
+ this.content = content;
+ }
+
+ public MsgGreetConfigBean() {
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ @Override
+ public String toString() {
+ return "MsgGreetConfigBean{" +
+ "id=" + id +
+ ", content='" + content + '\'' +
+ '}';
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/MsgMessageBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/MsgMessageBean.java
new file mode 100644
index 000000000..c46db4e75
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/MsgMessageBean.java
@@ -0,0 +1,85 @@
+package com.shayu.onetoone.bean;
+
+import com.yunbao.common.bean.BaseModel;
+
+public class MsgMessageBean extends BaseModel {
+ private int id;
+ private String avatar;
+ private String nickname;
+ private String content;
+ private String time;
+ private boolean isNotRead;//是否有未读
+ private int notReadNum;//未读数量
+
+ public MsgMessageBean() {
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getAvatar() {
+ return avatar;
+ }
+
+ public void setAvatar(String avatar) {
+ this.avatar = avatar;
+ }
+
+ public String getNickname() {
+ return nickname;
+ }
+
+ public void setNickname(String nickname) {
+ this.nickname = nickname;
+ }
+
+ public String getContent() {
+ return content;
+ }
+
+ public void setContent(String content) {
+ this.content = content;
+ }
+
+ public String getTime() {
+ return time;
+ }
+
+ public void setTime(String time) {
+ this.time = time;
+ }
+
+ public boolean isNotRead() {
+ return isNotRead;
+ }
+
+ public void setNotRead(boolean notRead) {
+ isNotRead = notRead;
+ }
+
+ public int getNotReadNum() {
+ return notReadNum;
+ }
+
+ public void setNotReadNum(int notReadNum) {
+ this.notReadNum = notReadNum;
+ }
+
+ @Override
+ public String toString() {
+ return "MsgMessageBean{" +
+ "id=" + id +
+ ", avatar='" + avatar + '\'' +
+ ", nickname='" + nickname + '\'' +
+ ", content='" + content + '\'' +
+ ", time='" + time + '\'' +
+ ", isNotRead=" + isNotRead +
+ ", notReadNum=" + notReadNum +
+ '}';
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java b/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
new file mode 100644
index 000000000..ce35c8fe3
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/dialog/MsgMoreDialog.java
@@ -0,0 +1,43 @@
+package com.shayu.onetoone.dialog;
+
+import android.content.Context;
+import android.view.View;
+
+import androidx.annotation.NonNull;
+
+import com.lxj.xpopup.core.AttachPopupView;
+import com.shayu.onetoone.R;
+import com.shayu.onetoone.manager.RouteManager;
+
+public class MsgMoreDialog extends AttachPopupView implements View.OnClickListener {
+ View config, read;
+
+ public MsgMoreDialog(@NonNull Context context) {
+ super(context);
+ }
+
+ @Override
+ protected int getImplLayoutId() {
+ return R.layout.dialog_msg_more;
+ }
+
+ @Override
+ protected void onCreate() {
+ super.onCreate();
+ config = findViewById(R.id.ll_config);
+ read = findViewById(R.id.ll_read);
+ config.setOnClickListener(this);
+ read.setOnClickListener(this);
+ }
+
+ @Override
+ public void onClick(View v) {
+ int id = v.getId();
+ if (id == R.id.ll_config) {
+ RouteManager.forwardMsgMoreConfigActivity();
+ } else if (id == R.id.ll_read) {
+
+ }
+ dismiss();
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
new file mode 100644
index 000000000..b7052c4ea
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
@@ -0,0 +1,28 @@
+package com.shayu.onetoone.manager;
+
+import com.alibaba.android.arouter.launcher.ARouter;
+
+/**
+ * 路由跳转Activity
+ */
+public class RouteManager {
+ public static final String ACTIVITY_MAIN = "/activity/MainActivity";
+ public static final String ACTIVITY_MSG_MORE_CONFIG_ACTIVITY = "/activity/MsgMoreConfigActivity";
+ public static final String ACTIVITY_MSG_CHAT = "/activity/ChatActivity";
+
+
+ public static void forwardMainActivity() {
+ ARouter.getInstance().build(ACTIVITY_MAIN)
+ .navigation();
+ }
+
+ public static void forwardMsgMoreConfigActivity() {
+ ARouter.getInstance().build(ACTIVITY_MSG_MORE_CONFIG_ACTIVITY)
+ .navigation();
+ }
+
+ public static void forwardMsgChatActivity() {
+ ARouter.getInstance().build(ACTIVITY_MSG_CHAT)
+ .navigation();
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/utils/NeverCrashUtils.java b/OneToOne/src/main/java/com/shayu/onetoone/utils/NeverCrashUtils.java
new file mode 100644
index 000000000..6758587d8
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/utils/NeverCrashUtils.java
@@ -0,0 +1,157 @@
+package com.shayu.onetoone.utils;
+
+import android.app.Application;
+import android.content.Context;
+import android.os.Build;
+import android.os.Handler;
+import android.os.Looper;
+import android.util.Log;
+import android.widget.Toast;
+
+import com.yunbao.common.bean.CrashSaveBean;
+import com.yunbao.common.utils.AppManager;
+import com.yunbao.common.utils.FileUtil;
+import com.yunbao.common.utils.SpUtil;
+
+import java.io.File;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.util.Arrays;
+
+/**
+ * @ClassName NeverCrashUtils
+ * @Description 全局捕获异常
+ */
+public class NeverCrashUtils {
+
+ private final static String TAG = NeverCrashUtils.class.getSimpleName();
+ private final static NeverCrashUtils INSTANCE = new NeverCrashUtils();
+
+ private boolean debugMode;
+ private MainCrashHandler mainCrashHandler;
+ private UncaughtCrashHandler uncaughtCrashHandler;
+
+ private NeverCrashUtils() {
+ }
+
+ public static NeverCrashUtils getInstance() {
+ return INSTANCE;
+ }
+
+ private synchronized MainCrashHandler getMainCrashHandler() {
+ if (null == mainCrashHandler) {
+ mainCrashHandler = (t, e) -> {
+ };
+ }
+ return mainCrashHandler;
+ }
+
+ /**
+ * 主线程发生异常时的回调,可用于打印日志文件
+ *
+ * 注意跨线程操作的可能
+ */
+ public NeverCrashUtils setMainCrashHandler(MainCrashHandler mainCrashHandler) {
+ this.mainCrashHandler = mainCrashHandler;
+ return this;
+ }
+
+ private synchronized UncaughtCrashHandler getUncaughtCrashHandler() {
+ if (null == uncaughtCrashHandler) {
+ uncaughtCrashHandler = (t, e) -> {
+ };
+ }
+ return uncaughtCrashHandler;
+ }
+
+ /**
+ * 子线程发生异常时的回调,可用于打印日志文件
+ *
+ * 注意跨线程操作的可能
+ */
+ public NeverCrashUtils setUncaughtCrashHandler(UncaughtCrashHandler uncaughtCrashHandler) {
+ this.uncaughtCrashHandler = uncaughtCrashHandler;
+ return this;
+ }
+
+ private boolean isDebugMode() {
+ return debugMode;
+ }
+
+ /**
+ * debug模式,会打印log日志,且toast提醒发生异常,反之则都没有
+ */
+ public NeverCrashUtils setDebugMode(boolean debugMode) {
+ this.debugMode = debugMode;
+ return this;
+ }
+
+ /**
+ * 完成监听异常的注册
+ *
+ * @param application application
+ */
+ private boolean errorWhile = true;
+
+ public void register(Application application) {
+ //主线程异常拦截
+ new Handler(Looper.getMainLooper()).post(() -> {
+ while (errorWhile) {
+ try {
+ Looper.loop();
+ } catch (Throwable e) {
+ if (isDebugMode()) {
+ Log.e(TAG, "未捕获的主线程异常行为", e);
+ }
+ e.printStackTrace();
+ AppManager.runDebugCode(() -> Toast.makeText(application, "发生闪退:" + e.getMessage(), Toast.LENGTH_SHORT).show());
+ FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()), throwableToString(e), "error.log");
+ getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e);
+ AppManager.runDebugCode(() -> errorWhile = false);
+ // return;
+ }
+ }
+ });
+/*
+ //子线程异常拦截
+ Thread.setDefaultUncaughtExceptionHandler((t, e) -> {
+ if (isDebugMode()) {
+ Log.e(TAG, "未捕获的子线程异常行为", e);
+ }
+ e.printStackTrace();
+ Toast.makeText(application, "发生闪退", Toast.LENGTH_SHORT).show();
+ FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()),throwableToString(e),"error.log");
+ getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e);
+ getUncaughtCrashHandler().uncaughtException(t, e);
+
+ });*/
+ }
+
+ public interface MainCrashHandler {
+ void mainException(Thread t, Throwable e);
+ }
+
+ public interface UncaughtCrashHandler {
+ void uncaughtException(Thread t, Throwable e);
+ }
+
+ private static String throwableToString(Throwable e) {
+ StringWriter writer = new StringWriter();
+ writer.write("time=" + System.currentTimeMillis() + "\n");
+ writer.write("AndroidVersion=" + Build.VERSION.SDK_INT + "\n");
+ writer.write("AndroidName=" + Build.VERSION.RELEASE + "\n");
+ writer.write("PhoneName=" + Build.BRAND + "\n");
+ writer.write("Phone=" + Build.MODEL + "\n");
+ writer.write("CPU=" + Arrays.toString(Build.SUPPORTED_ABIS) + "\n");
+ writer.write("runTime=" + (System.currentTimeMillis() - CrashSaveBean.getInstance().getStartTime()) + "\n");
+ writer.write("enterRoom=" + CrashSaveBean.getInstance().getEnterRoom() + "\n");
+ writer.write("slidingRoom=" + CrashSaveBean.getInstance().getSlidingRoom() + "\n");
+ writer.write("playSvga=" + CrashSaveBean.getInstance().getPlaySvga() + "\n");
+ writer.write("ActivitySize=" + CrashSaveBean.getInstance().getActivitySize() + "\n");
+ writer.write("UserData=" + SpUtil.getInstance().getStringValue(SpUtil.USER_INFO) + "\n");
+ writer.write("[ERROR]");
+ PrintWriter printWriter = new PrintWriter(writer);
+ e.printStackTrace(printWriter);
+ return writer.toString();
+ }
+}
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_msg_greet_config_btn_apply.xml b/OneToOne/src/main/res/drawable/bg_msg_greet_config_btn_apply.xml
new file mode 100644
index 000000000..c42d29374
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_msg_greet_config_btn_apply.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_msg_greet_config_btn_cancel.xml b/OneToOne/src/main/res/drawable/bg_msg_greet_config_btn_cancel.xml
new file mode 100644
index 000000000..fd834efe6
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_msg_greet_config_btn_cancel.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_msg_more_config.xml b/OneToOne/src/main/res/drawable/bg_msg_more_config.xml
new file mode 100644
index 000000000..91eccf1db
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_msg_more_config.xml
@@ -0,0 +1,12 @@
+
+
+ -
+
+
+
+
- #d000000
+ - 0
+ - 4
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_msg_more_config_img.xml b/OneToOne/src/main/res/drawable/bg_msg_more_config_img.xml
new file mode 100644
index 000000000..8ab9e41fe
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_msg_more_config_img.xml
@@ -0,0 +1,12 @@
+
+
+ -
+
+
+
+
- #d000000
+ - 0
+ - 4
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_msg_more_config_top.xml b/OneToOne/src/main/res/drawable/bg_msg_more_config_top.xml
new file mode 100644
index 000000000..7961a714c
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_msg_more_config_top.xml
@@ -0,0 +1,12 @@
+
+
+ -
+
+
+
+
- #d000000
+ - 0
+ - 4
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/drawable/bg_red_point.xml b/OneToOne/src/main/res/drawable/bg_red_point.xml
new file mode 100644
index 000000000..685b0aef1
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_red_point.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout-v26/item_msg_message.xml b/OneToOne/src/main/res/layout-v26/item_msg_message.xml
new file mode 100644
index 000000000..b739809f1
--- /dev/null
+++ b/OneToOne/src/main/res/layout-v26/item_msg_message.xml
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_launcher.xml b/OneToOne/src/main/res/layout/activity_launcher.xml
index 2c09d16ba..d2960a407 100644
--- a/OneToOne/src/main/res/layout/activity_launcher.xml
+++ b/OneToOne/src/main/res/layout/activity_launcher.xml
@@ -5,6 +5,6 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".activitys.LauncherActivity">
+ tools:context=".activity.LauncherActivity">
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_main.xml b/OneToOne/src/main/res/layout/activity_main.xml
index 24e3acc4f..9853df0ee 100644
--- a/OneToOne/src/main/res/layout/activity_main.xml
+++ b/OneToOne/src/main/res/layout/activity_main.xml
@@ -4,7 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- tools:context=".activitys.MainActivity">
+ tools:context=".activity.MainActivity">
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_msg_config.xml b/OneToOne/src/main/res/layout/activity_msg_config.xml
new file mode 100644
index 000000000..27daaaf23
--- /dev/null
+++ b/OneToOne/src/main/res/layout/activity_msg_config.xml
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/dialog_msg_more.xml b/OneToOne/src/main/res/layout/dialog_msg_more.xml
new file mode 100644
index 000000000..c14bb9668
--- /dev/null
+++ b/OneToOne/src/main/res/layout/dialog_msg_more.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/fragment_msg_message.xml b/OneToOne/src/main/res/layout/fragment_msg_message.xml
index 77d9ef65f..4152d31e2 100644
--- a/OneToOne/src/main/res/layout/fragment_msg_message.xml
+++ b/OneToOne/src/main/res/layout/fragment_msg_message.xml
@@ -1,6 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/item_msg_greet_config.xml b/OneToOne/src/main/res/layout/item_msg_greet_config.xml
new file mode 100644
index 000000000..9f1e58b07
--- /dev/null
+++ b/OneToOne/src/main/res/layout/item_msg_greet_config.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/item_msg_message.xml b/OneToOne/src/main/res/layout/item_msg_message.xml
new file mode 100644
index 000000000..03fb56c77
--- /dev/null
+++ b/OneToOne/src/main/res/layout/item_msg_message.xml
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/rc_conversation_fragment.xml b/OneToOne/src/main/res/layout/rc_conversation_fragment.xml
new file mode 100644
index 000000000..ab8e7277a
--- /dev/null
+++ b/OneToOne/src/main/res/layout/rc_conversation_fragment.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/view_activity_title.xml b/OneToOne/src/main/res/layout/view_activity_title.xml
new file mode 100644
index 000000000..9cb803bf5
--- /dev/null
+++ b/OneToOne/src/main/res/layout/view_activity_title.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/view_msg_greet_config_add.xml b/OneToOne/src/main/res/layout/view_msg_greet_config_add.xml
new file mode 100644
index 000000000..10720b4df
--- /dev/null
+++ b/OneToOne/src/main/res/layout/view_msg_greet_config_add.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/bg_msg_more.png b/OneToOne/src/main/res/mipmap-xxhdpi/bg_msg_more.png
new file mode 100644
index 0000000000000000000000000000000000000000..b1502ec3317b7751846c3b1cfe450c0a1efc72ff
GIT binary patch
literal 3159
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
literal 0
HcmV?d00001
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_more_config_add.png b/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_more_config_add.png
new file mode 100644
index 0000000000000000000000000000000000000000..130b8e37b549c0cb6ec5ee4b73a7d5d88e045742
GIT binary patch
literal 618
zcmV-w0+s!VP)Px%BuPX;RA@u(nL%sRKorN{B$?t&)`ACnS)m?17Y|a;Lao(f4lY`#E2aGi7NjRX
zLQ6q}BE9U<){kI|AYS#jl@&q3LQN*JN#4jrQ+C;*MS6^RDbhty$R1>mQ+9W<2ic=e_9!|I?m6ChixNcL^!>)W
zI99oY5E7y&yzMxwbUn@agias}+riw=f@kP(Iq5hwu9+Gb28#GH4`7P_I98?uDD<@u
zl9?{1>@Xs~^_W8SiPtvf5VXJB|a0`k>vqJ39isxxL%u-0Ph;
z!nVkBXpQgN59e=nx`7mTlC5Lc6=9*Jm}
z`k;?jTMI{H6S1n-OD7_oh;=#nmkROE|*E=%dRu%QzB9#QX-xqQ3j?^A{N2;
zZ+8zN8{PQdKNr&lrAdE!F}U-koDs&)wqlQsoxLkuvwhcfZP)Px*_(?=TRCr$Polj^~M;yn$yPFkvlc=#&kQD7ndh#GW)E1=*g*Hv~A~`g)LYp+S
z2N6#ap?IpdDjqDUr69#iJgE)dv?y&TlwLfvc#0*p(9%}T{*mnNd*zqxZeFIpw>$gx
z?RzsXzXt)Go!`uFzMq-*=FgjXDad8K0x9D?6bIpjME`cX)Fg~Fx^%$^^DuO1rlGbZ
zFQg#=kC`Ih0q{B#ejdOnCY<7uje0Es*apB+es~VReE>Tdo1*}3DB)Cw832<^{L28Q
zn96qqz;!16BLI5={H^?!u4^&K*c<}zosS+Tee^rbgp(HkdcvD*T0tVCCrn~<07jVb
za{#89@B;wuGU2}i*u_BF4qzU@9>t~v;23~g45SMHPB3{~1VBQmcL?(T8i2fF^8mnp
z0RJ$MegiPfcHwRy*mq#3nYPLfdUq|C@o1KS)hOgE~+i*HUJur(D;EHa9L0!t6gOEZ#9^e
zTVeFPy@PJ8!K^?MNYN``L5|Xr1d;^`Sm2^oOZptZGXR@?mK`i8r`0a9`nOv23pz
zwMsEMuj=i)=oh1plC_@#(#^J@ZU`iSWPt(}xTv-ydTFEvAmj6Lg#|^j+C^4>nY%NK
zsn$4&jbv6i677vZvH-6@5=a&(V1bKTE$Jx$`rA_fv!Gn-U7VTuDeG+hV@Ey*dbwh}^Q#WB
z`X_3};mYjI;cB&S(RJ7E8kK78g^!QFL+_nidnF3eS6AnD=lcg2O2xtokbM6DO2wrY
zC&u4?Xf2`oJKr|@zs~m+Ncn+>`nEYp`h;R*s=PnkiG;^rt$&!NGH`W;xt!OUFQs~0l~9q*Gc-c*jFx>
z8WY51>gIC!6s^*BdQl?J%Ebkz>WoajKl)3j_5tIw`WrEKx3Z#I%PzW(Su6JGbQ+H1
z&QFZL^=d%TJ2lfD%r+A4y!v(OQa%0`S8fhxvwe#}TTsAk+nTLFa-AP1-W_?RZRBtw
zmGF<4e4tqUjhJ8!
zOOpiL?z9H8@^WNYH6~a(0x6hoky;6)NaYTenHD73RS`_wu&lIpRmlFNu;dPwj@JI9
zU`ZQdm4M#e#+bXy;{E27N`$+AC2Lte38SJCt=(KV&kQmxzet
z)E*+6*%$F^S)o^kL_s2TzW(OMJ}1+632w@9Yqbv}d>t!vIE@4obs|d7REjQPtrJnK
zKU*j|J$sUq*4aW7uXxYDj5hg)(
zVD)dcXLbkx2kH(0TIN-+^8ijU;S`r_)N2U8F4M6f2CR*=Z(
z36sejfDtDA9Dr#i`~ZNvOgL?r+QmTH4qzU@9>s=s#UBH3O9`hkTmW!_$>U;OD0Rt&
z{J%yYD^qM90N4*eJ$IEL(awxvCXa&v?)m6(+DE@pCVZ>XD6}9+OIlOXn3fduKI*L$
sVWg3Shf)|iG}DkSxCK>0AXxzEKf>)Zmk4180ssI207*qoM6N<$f{6re$p8QV
literal 0
HcmV?d00001
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_more_config_del.png b/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_more_config_del.png
new file mode 100644
index 0000000000000000000000000000000000000000..9575865d4feaed065fbcb88af443cc8bbdabaa4d
GIT binary patch
literal 1905
zcmV-%2afoOP)j{00001b5ch_0Itp)
z=>Px+D@jB_RA@u(TWM@mRTTcteeV@0pklP{NQjD}QA47Jh)akmbOtI>haWCc6OCI;
zlqk_oD-S!EAEpo#twx5WAjm^UqIaKWf?M^VJMVj{*RsI)lqmSgUn_A!*UcQzTs
zcavt)_ujeZe0MqbyZ4++s8QjCb|YMIIt=4hFwO^K8VFX^)f4Xm#Fqfx1_jSxm$#W-
zv;VHTUI0{!N;tmaG_d;^jE1>j2H1!CtyLib4E+W93<6q8*|yKCt-fmT+_K_$koP)>
zrq>kkXvm0U!)}AuFpDq20tt%$O_xivzTj5lou>%M)Ah8wTTtN#ne3}A+C|ey9L*Pg-7K6~F8bRp^
zUV*oB5p8&|;@+>cD-;H9wwqvCo546rJrE`kcaT&bSwz%NK0hk$Kwdb2xHo?qq0dR!+#vBLa1}>z&``)ZnSM@zF%r0
zlasuyD)77@brm4yK`tt#7A8sK=72Da-0=G#+FDqTYETFPn2!Z;9+)N#Q3q8s!v*ML
z5Pbn+qcm+KNy8^-JZTkitZNOdao4~LomOdeDCHxqW>hoWdkh(oVPrlaPjpcT2oYjGbe#;i3o}O@NIyga=*ys^>T|h6c4j9#lf~MD%l;DDmP}&bIXG>LAf3PlL2}G1Nmj8us2q_J+ThJF(BSVnPj4D
z;PG@1nCAfEYxta?zT{83I{0FHJQ}TM0n7pTJqYtQT7Qq+365As16G#UUux0;-GEsf<^
z`UaTepHzE(d2r+hE2%fRw0!Uv+mp~}tq15LMJXkCFV{>?@?{+ej;Fr{#B|kYlH~?`
zA7zuBI=K*hJbgbPItuba9$|e%PTMS0dO&r5Hg&s{>j$yarAmtzOToF4|h
z!~??!{D0ruM?GKg_GO%tN5eiE_94CfFEYGn&PQ`Ta(EHR(T9Yir7l|PqNPqAV@2z{
zZYz9%9b-i#Cn7l!$%#l#L~_P-+!4e3|1!MPZy<4a6|p)SB$kD-I{2Sbrjl44zYBJo
z%a7HmaMkd0`@b%r-sPKgWQAj?*CEUci!!{Hkds`clPe-QcLI1={Vxo__cl?s{Q{l*
zzJW^Khyk~iUbA7mQ#+$&Ir+gzZ@W$j4&>AKJ2eTu;X6JK3cdubO01i
zJa8xmytlyO^rEcn-2g2nr)~XcCXNlhaC_=AFs6nTNbk%3hX^1Y-#0KseHww;1oI>S
zCj(dnq7#QDP;bY8d&*eZW7;G{Uf4MoV&bcCi+#pmnm4QDmpbL@5*2dnN$d@p7!4B$
z`9EgpRv0aK<+)XY5ZQ$*f;GG*TJtHRuDZzXSVFyeUQrTw1v%bzEtv0sHQ{XKRAic%
zy5(5U#uyxdGUH1+xFG)#2;G!vm+3UxQZjhe05Uy|t#crdfZ*8(&;*F1>(c-#)ocd{
rJHX-%Ab19O^DBDgoj{00001b5ch_0Itp)
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
literal 0
HcmV?d00001
diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/ic_top_break.png b/OneToOne/src/main/res/mipmap-xxhdpi/ic_top_break.png
new file mode 100644
index 0000000000000000000000000000000000000000..35916e4025f6da1984a2c7c533cff9298bf5b450
GIT binary patch
literal 1425
zcmV;C1#bF@P)Px)OG!jQRA@uhnqO!fMI6WH_nW;<4um#$Xs)HcDV0)v@FA8WVi85KRf}?n;6u4w
z_x2h@`XZvpMx;K7rliRwx4EQsFiThkYdRBWkzQv~aq(3%H@O9ay#*_|2r>0Y`l
zq`AH9?j`$pJG=A!-0wTT`OVA%+ag!BT1`nQ?;$zaZ1%5wKEE1P8iaiyj`sC>U0+&S
z`amf)1OQAab&4@&8HVA6>2FKG*tY#6V{AYvwWeK4xyLlkKei3b*|TSR9mlzZhyy~1
zHQf{)A;k89nV+BUxpCvh93nm~rCb9+L;^XT$z)y+J8rsSGt08HUAuPu1OWT|*3xyI
zHJi;D(=-cV?A2$|)7!lWXTOg$C_5f;=EKwK&5kj0p#Djhi&N*{k
zcf3?84Kc<#0wLbSV8~jzT<(`(M0$IB*{xf*hE3D7+6=(D%@ToG&stvAiUcH)$gF3r
zs6k?fNy1uw&&6i5@$vC{HBGySi1+&kdmIsoH8qcpj_%QQ{Q~EFe^MZ^*lc8EWM?{^
z{*`l{Yk>fO>gnl$sIu02=`2#4k+nGI*AOx1pV_@i_@rSNBb!aXcX~cDm|CqiAf^12
zF?L@Igd#$78I|^iVT{KK5}D0rW@a979Orug(ET9kbQ+eImj_Fw(sbM)k-$t%O&yR@
zUIKuWQpz7`rIacr1+r0WHS%s69CxZ8|?J1CD(Od
zE|<#}5)Fs1vrv)otn~!|Xnqi-l*<@<&@hba-2w>}nLAjkA%r+sE|-7nCP>>bwOZ|n
z5aMIMwLIZBrIat3rg^#BAZ@`^tJNI<@H+tP46fOgQs<8!KYnB@fV2fejVhJOUe5Uy
z0Lb{~6WSJ%Qcm>s^}QB$TPTh{pzQ=OF)=Z~IiKa6?{-}p@Bd#kuQ-lV$z(FG=JWa6
zJ9%-a-Qb;V!_a%`_4-|nM&nyu*Qpi@zWN6t#Ixmcd9e!||8*G(h90mi3v;>LSBOXx
z=bCQMaz7*DGsR-@W;cLB!;nZy3QDP3I-P#8*=(-qPNh<0x$ByyJzppk5>M3~!FWJa
zCBLQX`rCfX(L#(dwt$F72L}hQB^jZPVOk<5Cnrw=zq8YTDQYzAgUFzZqV{{?J`;4(S!&VDjgCU@?v9YYCX_te?>2z<~
zeF#LNTc4gF;y&L=+xGep$Un%vxo8pqj?oyBQl83Yv%_I`e7b5gKagcvdVhca-SitG
f{uy?>&~yI+TA7Vf0T^Jg00000NkvXXu0mjfei5Zs
literal 0
HcmV?d00001
diff --git a/OneToOne/src/main/res/values/style.xml b/OneToOne/src/main/res/values/style.xml
new file mode 100644
index 000000000..9b54d20db
--- /dev/null
+++ b/OneToOne/src/main/res/values/style.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 7d45ccc5a..e5625c196 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,7 +10,7 @@ buildscript {
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.fabric.io/public' }
- maven { url 'http://maven.faceunity.com/repository/maven-public/' }//美颜库
+ maven { url 'https://maven.faceunity.com/repository/maven-public/' }//美颜库
google()
mavenCentral()
}
@@ -37,9 +37,9 @@ allprojects {
maven { url "https://mvn.mob.com/android" }
maven { url 'https://maven.aliyun.com/repository/public' }
maven { url 'https://maven.aliyun.com/repository/google' }
- maven { url 'http://developer.huawei.com/repo'}//华为库
+ maven { url 'https://developer.huawei.com/repo'}//华为库
maven { url 'https://maven.fabric.io/public' }
- maven { url 'http://maven.faceunity.com/repository/maven-public/' }//美颜库
+ maven { url 'https://maven.faceunity.com/repository/maven-public/' }//美颜库
maven { url "https://jitpack.io" }
google() // Google's Maven repository
}
diff --git a/gradle.properties b/gradle.properties
index e850a38e3..2a9224bc0 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -13,7 +13,7 @@
#Thu Feb 04 00:05:45 CST 2021
android.injected.testOnly=false
org.gradle.daemon=true
-org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
+org.gradle.jvmargs=-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true
android.useAndroidX=true
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 9276a5849..d8213d257 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,4 +1,4 @@
-#Mon Sep 17 11:16:30 CST 2018
+#Thu Sep 28 15:02:07 CST 2023
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME