diff --git a/OneToOne/build.gradle b/OneToOne/build.gradle index b05736f60..6c9aec0f9 100644 --- a/OneToOne/build.gradle +++ b/OneToOne/build.gradle @@ -15,6 +15,74 @@ android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion + packagingOptions { + pickFirst "lib/armeabi/libyuvutils.so" + pickFirst "lib/arm64-v8a/libyuvutils.so" + pickFirst "lib/armeabi-v7a/libyuvutils.so" + pickFirst "lib/armeabi/libyuvtools.so" + pickFirst "lib/arm64-v8a/libyuvtools.so" + pickFirst "lib/armeabi-v7a/libyuvtools.so" + exclude "lib/arm64-v8a/libmmcv_api_handgesture.so" + exclude "lib/arm64-v8a/libmmcv_api_express.so" + exclude "lib/arm64-v8a/libMediaEncoder.so" + exclude "lib/arm64-v8a/libarcore_sdk_c.so" + exclude "lib/arm64-v8a/libmediadecoder.so" + exclude "lib/arm64-v8a/libMediaMuxer.so" + exclude "lib/arm64-v8a/libarcore_sdk_jni.so" + exclude "lib/arm64-v8a/libMediaUtils.so" + exclude "lib/arm64-v8a/libcosmosffmpeg.so" + //旧美颜so + exclude 'lib/arm64-v8a/libxeengine.so' + exclude 'lib/arm64-v8a/libmmcv_base.so' + exclude 'lib/arm64-v8a/libmmcrypto.so' + exclude 'lib/arm64-v8a/libMNN.so' + // exclude 'lib/arm64-v8a/libc++_shared.so' + exclude 'lib/arm64-v8a/libmmcv_api_base.so' + exclude 'lib/arm64-v8a/libmmcv_api_beauty.so' + exclude 'lib/arm64-v8a/libmmcv_api_bodylandmark.so' + exclude 'lib/arm64-v8a/libmmcv_api_express.so' + exclude 'lib/arm64-v8a/libmmcv_api_faceattributes.so' + exclude 'lib/arm64-v8a/libmmcv_api_facefeatures.so' + exclude 'lib/arm64-v8a/libmmcv_api_faceprocessor.so' + exclude 'lib/arm64-v8a/libmmcv_api_facerecognition.so' + exclude 'lib/arm64-v8a/libmmcv_api_handgesture.so' + exclude 'lib/arm64-v8a/libmmcv_api_imagequality.so' + exclude 'lib/arm64-v8a/libmmcv_api_objectdetect.so' + exclude 'lib/arm64-v8a/libmmcv_api_segmentation.so' + exclude 'lib/arm64-v8a/libmmcv_api_videoprocessor.so' + exclude 'lib/arm64-v8a/libmmlic.so' + exclude 'lib/arm64-v8a/libMNN_CL.so' + exclude 'lib/arm64-v8a/libMNN_Express.so' + exclude 'lib/armeabi-v7a/libxeengine.so' + exclude 'lib/armeabi-v7a/libmmcv_base.so' + exclude 'lib/armeabi-v7a/libmmcrypto.so' + exclude 'lib/armeabi-v7a/libMNN.so' + // exclude 'lib/armeabi-v7a/libc++_shared.so' + exclude 'lib/armeabi-v7a/libmmcv_api_base.so' + exclude 'lib/armeabi-v7a/libmmcv_api_beauty.so' + exclude 'lib/armeabi-v7a/libmmcv_api_bodylandmark.so' + exclude 'lib/armeabi-v7a/libmmcv_api_express.so' + exclude 'lib/armeabi-v7a/libmmcv_api_faceattributes.so' + exclude 'lib/armeabi-v7a/libmmcv_api_facefeatures.so' + exclude 'lib/armeabi-v7a/libmmcv_api_faceprocessor.so' + exclude 'lib/armeabi-v7a/libmmcv_api_facerecognition.so' + exclude 'lib/armeabi-v7a/libmmcv_api_handgesture.so' + exclude 'lib/armeabi-v7a/libmmcv_api_imagequality.so' + exclude 'lib/armeabi-v7a/libmmcv_api_objectdetect.so' + exclude 'lib/armeabi-v7a/libmmcv_api_segmentation.so' + exclude 'lib/armeabi-v7a/libmmcv_api_videoprocessor.so' + exclude 'lib/armeabi-v7a/libmmlic.so' + exclude 'lib/armeabi-v7a/libMNN_CL.so' + exclude 'lib/armeabi-v7a/libMNN_Express.so' + //美颜 + if (rootProject.ext.manifestPlaceholders.isPluginModel) { + exclude 'lib/armeabi-v7a/libCNamaSDK.so' + exclude 'lib/arm64-v8a/libCNamaSDK.so' + exclude 'lib/armeabi-v7a/libfuai.so' + exclude 'lib/arm64-v8a/libfuai.so' + } + + } defaultConfig { applicationId "com.shayu.onetoonenew" diff --git a/OneToOne/src/main/AndroidManifest.xml b/OneToOne/src/main/AndroidManifest.xml index c28cf82a6..cd40c6bd2 100644 --- a/OneToOne/src/main/AndroidManifest.xml +++ b/OneToOne/src/main/AndroidManifest.xml @@ -236,7 +236,7 @@ >() { - int point = 0; - + //大于0则是通过会话未读监听器获取到的数,则不用再调用获取未读数接口了 + if (count >= 0) { + updateUnreadCount(MsgMessageFragment.systemPoint + count); + Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, MsgMessageFragment.systemPoint + count)); + return; + } + RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback() { @Override - public void onSuccess(List data) { - for (OfficialNoticeBean datum : data) { - point += datum.getNum(); - } - Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_SYSTEM, point + count)); - //大于0则是通过会话未读监听器获取到的数,则不用再调用获取未读数接口了 - if (count >= 0) { - updateUnreadCount(point + count); - return; - } - RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback() { - @Override - public void onSuccess(Integer integer) { - updateUnreadCount(point + integer); - } - - @Override - public void onError(RongIMClient.ErrorCode e) { - - } - }); + public void onSuccess(Integer integer) { + updateUnreadCount(MsgMessageFragment.systemPoint + integer); + Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, MsgMessageFragment.systemPoint + integer)); } @Override - public void onError(String error) { + public void onError(RongIMClient.ErrorCode e) { } }); @@ -278,6 +254,10 @@ public class MainActivity extends AbsOTOActivity { public void busEvent(MessageMsgBusEvent event) { if (event.getType() == MessageMsgBusEvent.TYPE_ALL_READ) { updateUnreadCount(0); + } else if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_POINT) { + if (event.getNum() == -1) { + showRedPoint(-1); + } } } } \ No newline at end of file diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HomeRankFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HomeRankFragment.java index 2732087d6..2d15654f5 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HomeRankFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/home/HomeRankFragment.java @@ -190,6 +190,7 @@ public class HomeRankFragment extends BaseFragment { void setData(HomeRankBean user, int position) { getItem(position,mItem1,mItem2,mItem3).setVisibility(View.VISIBLE); + getItem(position,diamond1,diamond2,diamond3).setVisibility(View.VISIBLE); getItem(position, mName1, mName2, mName3).setText(user.getUserNicename()); getItem(position, mVotes1, mVotes2, mVotes3).setText(user.getMoney()); if (user.isFollow()) { diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java index 07400bc76..60799465e 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java @@ -7,6 +7,7 @@ import android.content.ClipData; import android.content.ClipboardManager; import android.content.Intent; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; @@ -19,6 +20,7 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.content.FileProvider; import com.lxj.xpopup.XPopup; import com.makeramen.roundedimageview.RoundedImageView; @@ -27,9 +29,7 @@ import com.shayu.onetoone.adapter.MsgChatMessageListAdapter; import com.shayu.onetoone.bean.FollowBean; import com.shayu.onetoone.bean.GiftBean; import com.shayu.onetoone.bean.MessageChatAuthContent; -import com.shayu.onetoone.bean.MessageChatTipsContent; import com.shayu.onetoone.bean.MessageConsumeConfigBean; -import com.shayu.onetoone.bean.OfficialNoticeBean; import com.shayu.onetoone.bean.SendConsumeBean; import com.shayu.onetoone.bean.UserBean; import com.shayu.onetoone.dialog.BottomListDialog; @@ -53,7 +53,6 @@ import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.ProcessImageUtil; -import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.WordUtil; @@ -70,6 +69,8 @@ import java.util.List; import io.rong.imkit.IMCenter; import io.rong.imkit.config.RongConfigCenter; import io.rong.imkit.conversation.MessageListAdapter; +import io.rong.imkit.conversation.extension.InputMode; +import io.rong.imkit.conversation.extension.RongExtensionViewModel; import io.rong.imkit.model.UiMessage; import io.rong.imkit.picture.PictureSelector; import io.rong.imkit.picture.config.PictureMimeType; @@ -89,7 +90,7 @@ public class ChatMessageFragment extends AbsConversationFragment { View mInputPanel; View numLayout; EditText mEditText; - ImageView img, call, video, gift; + ImageView img, call, video, gift,mEmojiToggleBtn; ProcessImageUtil cameraUtil; String targetId; Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE; @@ -103,6 +104,7 @@ public class ChatMessageFragment extends AbsConversationFragment { ImageView status; TextView num; Button follow; + RongExtensionViewModel mExtensionViewModel; private String token; @@ -126,7 +128,7 @@ public class ChatMessageFragment extends AbsConversationFragment { initBtn(); initChat(); initPriceBean(); - cameraUtil = new ProcessImageUtil(getActivity(), "com.shayu.onetoone.fileprovider"); + cameraUtil = new ProcessImageUtil(getActivity(), "${packageName}.fileprovider"); mRongExtension.setVisibility(View.VISIBLE); // img.setOnClickListener(v -> cameraUtil.getImageByCamera()); @@ -202,19 +204,25 @@ public class ChatMessageFragment extends AbsConversationFragment { MsgInputPanelForAudio audio; MsgInputPanelForGift giftPanel; + /** + * 反射拿融云的view + */ private void initBtn() { try { Field field = mRongExtension.getInputPanel().getClass().getDeclaredField("mInputPanel"); field.setAccessible(true); mInputPanel = (View) field.get(mRongExtension.getInputPanel()); assert mInputPanel != null; + field=mRongExtension.getInputPanel().getClass().getDeclaredField("mExtensionViewModel"); + field.setAccessible(true); + mExtensionViewModel= (RongExtensionViewModel) field.get(mRongExtension.getInputPanel()); mSendBtn = mInputPanel.getRootView().findViewById(R.id.send_btn); - img = mInputPanel.getRootView().findViewById(R.id.input_panel_image_btn); video = mInputPanel.getRootView().findViewById(R.id.input_panel_video_btn); call = mInputPanel.getRootView().findViewById(R.id.input_panel_call_btn); gift = mInputPanel.getRootView().findViewById(R.id.input_panel_gift_btn); mEditText = mInputPanel.getRootView().findViewById(R.id.edit_btn); + mEmojiToggleBtn = mInputPanel.findViewById(R.id.input_panel_emoji_btn); ImageView mVoiceToggleBtn = (ImageView) mInputPanel.getRootView().findViewById(R.id.input_panel_voice_toggle); assert mVoiceToggleBtn != null; audio = new MsgInputPanelForAudio(targetId, getActivity(), mRongExtension); @@ -230,12 +238,25 @@ public class ChatMessageFragment extends AbsConversationFragment { } }); mVoiceToggleBtn.setOnClickListener(view -> { + mExtensionViewModel.getInputModeLiveData().setValue(InputMode.TextInput); + giftPanel.hide(); audio.show(); }); gift.setOnClickListener(v -> { + mExtensionViewModel.getInputModeLiveData().setValue(InputMode.TextInput); + audio.hide(); giftPanel.show(); }); + mEmojiToggleBtn.setOnClickListener(v -> { + if(mExtensionViewModel.getInputModeLiveData().getValue()==InputMode.TextInput){ + audio.hide(); + giftPanel.hide(); + mExtensionViewModel.getInputModeLiveData().setValue(InputMode.EmoticonMode); + }else{ + mExtensionViewModel.getInputModeLiveData().setValue(InputMode.TextInput); + } + }); video.setOnClickListener(v -> { if (call.getTag() != null) { @@ -281,7 +302,9 @@ public class ChatMessageFragment extends AbsConversationFragment { @Override public void onError(int status, String msg) { super.onError(status, msg); - sendAuthRequest(); + if(status==1) { + sendAuthRequest(); + } } }); }); @@ -328,7 +351,9 @@ public class ChatMessageFragment extends AbsConversationFragment { @Override public void onError(int status, String msg) { super.onError(status, msg); - sendAuthRequest(); + if(status==1) { + sendAuthRequest(); + } } }); }); @@ -380,10 +405,10 @@ public class ChatMessageFragment extends AbsConversationFragment { .getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback() { @Override public void onSuccess(UserBean data) { - if (data.getInfo().getName_auth() == 1) { - listener.onError(0, ""); - } else { + if (data.getInfo().getName_auth() == 2) { listener.onSuccess("", null); + } else { + listener.onError(data.getInfo().getName_auth(), ""); } } @@ -657,7 +682,14 @@ public class ChatMessageFragment extends AbsConversationFragment { for (LocalMedia item : selectList) { String mimeType = item.getMimeType(); if (mimeType.startsWith("image")) { - ImageMessage imageMessage = ImageMessage.obtain(Uri.parse(item.getPath()), sendOrigin); + Uri uri; + //判断安卓版本小于10 + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) { + uri= FileProvider.getUriForFile(mContext,mContext.getPackageName()+".fileprovider",new File(item.getPath())); + }else{ + uri=Uri.parse(item.getPath()); + } + ImageMessage imageMessage = ImageMessage.obtain(uri, sendOrigin); Message message = Message.obtain(targetId, conversationType, imageMessage); message.setSenderUserId(CommonAppConfig.getInstance().getUid()); message.setObjectName("RC:ImgMsg"); @@ -714,35 +746,20 @@ public class ChatMessageFragment extends AbsConversationFragment { } private void showRedPoint() { - OTONetManager.getInstance(mContext).getMessageSystemLists(new HttpCallback>() { - int point = 0; - + RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback() { @Override - public void onSuccess(List data) { - for (OfficialNoticeBean datum : data) { - point += datum.getNum(); + public void onSuccess(Integer integer) { + Integer tmp = integer + MsgMessageFragment.systemPoint; + if (tmp <= 0) { + numLayout.setVisibility(View.INVISIBLE); + return; } - RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback() { - @Override - public void onSuccess(Integer integer) { - Integer tmp = integer + point; - if (tmp <= 0) { - numLayout.setVisibility(View.INVISIBLE); - return; - } - numLayout.setVisibility(View.VISIBLE); - num.setText(tmp + ""); - } - - @Override - public void onError(RongIMClient.ErrorCode e) { - - } - }); + numLayout.setVisibility(View.VISIBLE); + num.setText(tmp + ""); } @Override - public void onError(String error) { + public void onError(RongIMClient.ErrorCode e) { } }); @@ -757,7 +774,7 @@ public class ChatMessageFragment extends AbsConversationFragment { @Subscribe public void event(MessageMsgBusEvent event) { - if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_SYSTEM) { + if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_POINT) { if (event.getNum() <= 0) { numLayout.setVisibility(View.INVISIBLE); return; diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageInteractiveFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageInteractiveFragment.java index 2319fc248..d312c99b1 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageInteractiveFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageInteractiveFragment.java @@ -48,6 +48,13 @@ public class MessageInteractiveFragment extends AbsConversationFragment { .getSystemMessageList(noticeBean.getType(), new HttpCallback>() { @Override public void onSuccess(List data) { + if(data.isEmpty()){ + mList.setVisibility(View.GONE); + findViewById(R.id.view_empty).setVisibility(View.VISIBLE); + return; + } + mList.setVisibility(View.VISIBLE); + findViewById(R.id.view_empty).setVisibility(View.GONE); List list = new ArrayList<>(); for (SystemMessageBean item : data) { SystemNoticeUiMessage message = new SystemNoticeUiMessage(new Message()); diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageNoticeFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageNoticeFragment.java index 685446db4..1f67d0053 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageNoticeFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MessageNoticeFragment.java @@ -46,6 +46,13 @@ public class MessageNoticeFragment extends AbsConversationFragment { .getSystemMessageList(noticeBean.getType(), new HttpCallback>() { @Override public void onSuccess(List data) { + if(data.isEmpty()){ + mList.setVisibility(View.GONE); + findViewById(R.id.view_empty).setVisibility(View.VISIBLE); + return; + } + mList.setVisibility(View.VISIBLE); + findViewById(R.id.view_empty).setVisibility(View.GONE); List list = new ArrayList<>(); for (SystemMessageBean item : data) { SystemNoticeUiMessage message = new SystemNoticeUiMessage(new Message()); diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgFriendFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgFriendFragment.java index 88963f26b..19471812d 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgFriendFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgFriendFragment.java @@ -1,7 +1,6 @@ package com.shayu.onetoone.activity.fragments.message; import android.graphics.Color; -import android.net.Uri; import android.os.Bundle; import android.text.SpannableString; import android.view.LayoutInflater; @@ -12,15 +11,12 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.alibaba.fastjson.JSONObject; import com.shayu.onetoone.R; import com.shayu.onetoone.activity.fragments.BaseFragment; import com.shayu.onetoone.adapter.MsgMessageRecyclerViewAdapter; import com.shayu.onetoone.bean.HomeItemBean; -import com.shayu.onetoone.bean.OfficialNoticeBean; import com.shayu.onetoone.event.MessageMsgBusEvent; import com.shayu.onetoone.manager.OTONetManager; -import com.yanzhenjie.recyclerview.OnItemClickListener; import com.yanzhenjie.recyclerview.OnItemMenuClickListener; import com.yanzhenjie.recyclerview.OnItemMenuStateListener; import com.yanzhenjie.recyclerview.SwipeMenuBridge; @@ -31,7 +27,6 @@ import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.StringUtil; -import com.yunbao.common.utils.WordUtil; import org.greenrobot.eventbus.Subscribe; @@ -55,8 +50,6 @@ import io.rong.imkit.widget.refresh.listener.OnRefreshListener; import io.rong.imkit.widget.refresh.wrapper.RongRefreshHeader; import io.rong.imlib.RongIMClient; import io.rong.imlib.model.Conversation; -import io.rong.imlib.model.Message; -import io.rong.imlib.model.UserInfo; /** * 消息-好友 @@ -238,7 +231,7 @@ public class MsgFriendFragment extends BaseFragment implements BaseAdapter.OnIte @Subscribe public void event(MessageMsgBusEvent event) { - if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_SYSTEM) { + if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_POINT) { page = 1; initData(); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java index cfd50301d..fe4a4dc0d 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/MsgMessageFragment.java @@ -1,7 +1,6 @@ package com.shayu.onetoone.activity.fragments.message; import android.content.Context; -import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; @@ -24,19 +23,16 @@ import com.shayu.onetoone.bean.OfficialNoticeBean; import com.shayu.onetoone.bean.TargetUserInfoBean; import com.shayu.onetoone.event.MessageMsgBusEvent; import com.shayu.onetoone.manager.OTONetManager; -import com.shayu.onetoone.manager.RouteManager; import com.yanzhenjie.recyclerview.OnItemMenuClickListener; import com.yanzhenjie.recyclerview.OnItemMenuStateListener; import com.yanzhenjie.recyclerview.SwipeMenuBridge; import com.yanzhenjie.recyclerview.SwipeMenuCreator; import com.yanzhenjie.recyclerview.SwipeMenuItem; import com.yanzhenjie.recyclerview.SwipeRecyclerView; -import com.yunbao.common.CommonAppConfig; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.DpUtil; -import com.yunbao.common.utils.RandomUtil; import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; @@ -90,6 +86,7 @@ import io.rong.imlib.model.UserInfo; * copy {@link io.rong.imkit.conversationlist.ConversationListFragment} */ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnItemClickListener { + public static int systemPoint = 0; private static final String TAG = MsgMessageFragment.class.getSimpleName(); SwipeRecyclerView mList; SmartRefreshLayout mRefreshLayout; @@ -174,13 +171,13 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt private void initSystemNotice() { - - + systemPoint = 0; OTONetManager.getInstance(mContext) .getMessageSystemLists(new HttpCallback>() { @Override public void onSuccess(List data) { for (OfficialNoticeBean datum : data) { + systemPoint += datum.getNum(); if (datum.getType() == 3) { SpUtil.setStringValue("customerService", JSONObject.toJSONString(datum)); continue; @@ -196,6 +193,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt } onConversationListRefresh(mRefreshLayout); mAdapter.notifyDataSetChanged(); + Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, -1)); } @Override @@ -209,7 +207,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt } private SingleConversation setTopData(String title, String content, long time, String avatar, int num, int id, String exp) { - if(StringUtil.isEmpty(content)){ + if (StringUtil.isEmpty(content)) { content = ""; } SingleConversation conversation = new SingleConversation(getContext(), new Conversation()); @@ -241,7 +239,9 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt * 全部标记已读 */ public void allRead() { - // clearTopData(); + // clearTopData(); + OTONetManager.getInstance(mContext) + .messageReadAll(null); RongCoreClient.getInstance().getUnreadConversationList(new IRongCoreCallback.ResultCallback>() { @Override public void onSuccess(List conversations) { @@ -350,7 +350,9 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt public void onResume() { super.onResume(); + initSystemNotice(); if (this.mConversationListViewModel != null) { + mConversationListViewModel.getConversationList(false, true, 0L); this.mConversationListViewModel.clearAllNotification(); } @@ -426,6 +428,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt protected void onConversationListRefresh(RefreshLayout refreshLayout) { if (this.mConversationListViewModel != null) { + Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, -1)); this.mConversationListViewModel.getConversationList(false, true, 0L); } } @@ -489,7 +492,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt Bundle bundle = new Bundle(); bundle.putInt("model", noticeBean.getType()); bundle.putString("data", JSONObject.toJSONString(noticeBean)); - RouteUtils.routeToConversationActivity(getContext(), conversationIdentifier,bundle); + RouteUtils.routeToConversationActivity(getContext(), conversationIdentifier, bundle); } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/SystemMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/SystemMessageFragment.java index 8106f75dc..4645df151 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/SystemMessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/SystemMessageFragment.java @@ -93,6 +93,13 @@ public class SystemMessageFragment extends AbsConversationFragment { .getSystemMessageList(SystemMessageBean.TYPE_SYSTEM, new HttpCallback>() { @Override public void onSuccess(List data) { + if(data.isEmpty()){ + mList.setVisibility(View.GONE); + findViewById(R.id.view_empty).setVisibility(View.VISIBLE); + return; + } + mList.setVisibility(View.VISIBLE); + findViewById(R.id.view_empty).setVisibility(View.GONE); for (SystemMessageBean item : data) { sendMessage(item); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java index 0c0181f0d..9b0b3501b 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/CompleteActivity.java @@ -87,7 +87,7 @@ public class CompleteActivity extends AbsOTOActivity { } private void initCamera() { - cameraUtil = new ProcessImageUtil(this, "com.shayu.onetoone.fileprovider"); + cameraUtil = new ProcessImageUtil(this, "${packageName}.fileprovider"); cameraUtil.setImageResultCallback(new ImageResultCallback() { @Override public void beforeCamera() { diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java index b843099b1..947c11662 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java @@ -18,51 +18,29 @@ import android.widget.TextView; import androidx.recyclerview.widget.RecyclerView; import com.alibaba.android.arouter.facade.annotation.Route; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; import com.blankj.utilcode.util.DeviceUtils; -import com.blankj.utilcode.util.GsonUtils; import com.fm.openinstall.OpenInstall; import com.fm.openinstall.listener.AppInstallAdapter; import com.fm.openinstall.model.AppData; -import com.lzy.okgo.model.Response; import com.shayu.onetoone.R; import com.shayu.onetoone.activity.AbsOTOActivity; -import com.shayu.onetoone.activity.MainActivity; -import com.shayu.onetoone.bean.JoinAnchorBean; import com.shayu.onetoone.manager.OTONetManager; import com.shayu.onetoone.manager.RouteManager; -import com.shayu.onetoone.utils.MainHttpUtil; import com.yunbao.common.CommonAppConfig; -import com.yunbao.common.CommonAppContext; import com.yunbao.common.Constants; import com.yunbao.common.HtmlConfig; -import com.yunbao.common.activity.AbsActivity; import com.yunbao.common.activity.WebViewActivity; import com.yunbao.common.bean.ConfigBean; import com.yunbao.common.bean.IMLoginModel; -import com.yunbao.common.bean.LiveBean; import com.yunbao.common.bean.UserAreaBean; -import com.yunbao.common.bean.UserBean; import com.yunbao.common.fragment.LoadingDialog; -import com.yunbao.common.http.CommonHttpConsts; -import com.yunbao.common.http.CommonHttpUtil; -import com.yunbao.common.http.HttpCallback; -import com.yunbao.common.http.HttpClient; -import com.yunbao.common.http.JsonBean; -import com.yunbao.common.http.LiveHttpUtil; import com.yunbao.common.http.live.LiveNetManager; -import com.yunbao.common.interfaces.CommonCallback; import com.yunbao.common.manager.IMLoginManager; -import com.yunbao.common.manager.NoviceInstructorManager; import com.yunbao.common.manager.imrongcloud.RongcloudIMManager; -import com.yunbao.common.utils.LiveRoomCheckLivePresenter; import com.yunbao.common.utils.RouteUtil; -import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; - import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -160,7 +138,7 @@ public class LoginActivity extends AbsOTOActivity { public void onTextChanged(CharSequence s, int start, int before, int count) { String phone = mEditPhone.getText().toString(); String pwd = mEditPwd.getText().toString(); - mBtnLogin.setEnabled(!TextUtils.isEmpty(phone) && !TextUtils.isEmpty(pwd)); + // mBtnLogin.setEnabled(!TextUtils.isEmpty(phone) && !TextUtils.isEmpty(pwd)); } @Override @@ -373,6 +351,6 @@ public class LoginActivity extends AbsOTOActivity { @Override public void onBackPressed() { super.onBackPressed(); - RouteUtil.forwardEntry2(); + RouteManager.forwardEntryActivity(); } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallAudioActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallAudioActivity.java index 19a50af68..0d5077873 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallAudioActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/message/CallAudioActivity.java @@ -104,6 +104,10 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis CallClientManager.getManager().removeOnVoIPCallListener(onCallStatusListener); } + @Override + public void onBackPressed() { + } + private void initView() { // 获取全局变量 vague = findViewById(R.id.vague); diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthActivity.java index 4716146b0..440236fa5 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthActivity.java @@ -149,7 +149,7 @@ public class AuthActivity extends AbsActivity { } private void initCamera() { - cameraUtil = new ProcessImageUtil(this, "com.shayu.onetoone.fileprovider"); + cameraUtil = new ProcessImageUtil(this, "${packageName}.fileprovider"); cameraUtil.setImageResultCallback(new ImageResultCallback() { @Override public void beforeCamera() { diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthBloggerActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthBloggerActivity.java index 78427f85d..4ce09f365 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthBloggerActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/AuthBloggerActivity.java @@ -172,7 +172,7 @@ public class AuthBloggerActivity extends AbsActivity { }; private void initCamera() { - cameraUtil = new ProcessImageUtil(this, "com.shayu.onetoone.fileprovider"); + cameraUtil = new ProcessImageUtil(this, "${packageName}.fileprovider"); cameraUtil.setImageResultCallback(new ImageResultCallback() { @Override public void beforeCamera() { diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java index 1ffec088c..755688cfa 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/user/EditProfileActivity.java @@ -138,7 +138,7 @@ public class EditProfileActivity extends AbsActivity { } private void initCamera() { - cameraUtil = new ProcessImageUtil(this, "com.shayu.onetoone.fileprovider"); + cameraUtil = new ProcessImageUtil(this, "${packageName}.fileprovider"); cameraUtil.setImageResultCallback(new ImageResultCallback() { @Override public void beforeCamera() { diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/OfficialNoticeBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/OfficialNoticeBean.java index c865ec575..d864f7707 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/bean/OfficialNoticeBean.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/OfficialNoticeBean.java @@ -57,6 +57,9 @@ public class OfficialNoticeBean extends BaseModel { } public int getNum() { + if (num < 0) { + num = 0; + } return num; } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java index 0986350d5..fc1d24daf 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/UserBean.java @@ -69,7 +69,7 @@ public class UserBean extends BaseModel { private int b_y; private int b_ym; private int b_ymd; - private int name_auth; + private int name_auth;//1 未提交 2 已认证 3已提交 private long name_auth_time; private String auth_front; private String auth_back; diff --git a/OneToOne/src/main/java/com/shayu/onetoone/event/MessageMsgBusEvent.java b/OneToOne/src/main/java/com/shayu/onetoone/event/MessageMsgBusEvent.java index ef2e6a810..a0295721a 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/event/MessageMsgBusEvent.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/event/MessageMsgBusEvent.java @@ -2,7 +2,8 @@ package com.shayu.onetoone.event; public class MessageMsgBusEvent extends AbsBusEvent { public static final int TYPE_ALL_READ = 0; - public static final int TYPE_UPDATE_SYSTEM=1; + public static final int TYPE_UPDATE_POINT =1; + public static final int TYPE_UPDATE_SYSTEM =2; private int num; diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java index 1a122dd9a..ec851748a 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java @@ -85,6 +85,37 @@ public class CallClientManager { public void addOnVoIPCallListener(OnCallStatusListener statusListener) { listeners.add(statusListener); + RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() { + @Override + public void onCallWait(SurfaceView localVideo) { + for (OnCallStatusListener listener : listeners) { + listener.onCallWait(localVideo); + } + } + + @Override + public void onCallStart(String userId, SurfaceView remoteVideo) { + for (OnCallStatusListener listener : listeners) { + listener.onCallStart(userId, remoteVideo); + } + startTimer(null); + } + + @Override + public void onCallEnd() { + for (OnCallStatusListener listener : listeners) { + listener.onCallEnd(); + } + endTimer(); + } + + @Override + public void onStartFirstFrame() { + for (OnCallStatusListener listener : listeners) { + listener.onStartFirstFrame(); + } + } + })); } public void removeOnVoIPCallListener(OnCallStatusListener statusListener) { @@ -193,37 +224,6 @@ public class CallClientManager { } public void acceptCall(String callId) { - RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() { - @Override - public void onCallWait(SurfaceView localVideo) { - for (OnCallStatusListener listener : listeners) { - listener.onCallWait(localVideo); - } - } - - @Override - public void onCallStart(String userId, SurfaceView remoteVideo) { - for (OnCallStatusListener listener : listeners) { - listener.onCallStart(userId, remoteVideo); - } - startTimer(null); - } - - @Override - public void onCallEnd() { - for (OnCallStatusListener listener : listeners) { - listener.onCallEnd(); - } - endTimer(); - } - - @Override - public void onStartFirstFrame() { - for (OnCallStatusListener listener : listeners) { - listener.onStartFirstFrame(); - } - } - })); RongCallClient.getInstance().acceptCall(callId); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java index 5fe0daad6..ac8ecdd31 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java @@ -88,7 +88,7 @@ public class OTONetManager { @Override public void accept(ResponseModel imLoginModelResponseModel) throws Exception { if (callback != null) { - if(imLoginModelResponseModel.isError()){ + if (imLoginModelResponseModel.isError()) { JSONObject jsonSrc = imLoginModelResponseModel.getSrcJSONOBject(); callback.onError(jsonSrc.getJSONObject("data").getString("msg")); return; @@ -1370,7 +1370,7 @@ public class OTONetManager { } - public void getMenu( HttpCallback> callback) { + public void getMenu(HttpCallback> callback) { API.get().otoApi(mContext). getMenu() .subscribeOn(Schedulers.io()) @@ -1394,5 +1394,27 @@ public class OTONetManager { }).isDisposed(); } + public void messageReadAll(HttpCallback callback) { + API.get().otoApi(mContext). + messageReadAll() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(listResponseModel -> { + if (listResponseModel.getData().getCode() == 0) { + if(callback!=null) { + callback.onSuccess(new HttpCallbackModel(listResponseModel.getData().getCode(), listResponseModel.getData().getMsg())); + } + } else { + if(callback!=null) { + callback.onError(listResponseModel.getData().getMsg()); + } + } + }, throwable -> { + if (callback != null) { + callback.onError(mContext.getString(com.yunbao.common.R.string.net_error)); + } + }).isDisposed(); + } + } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java index e5eab7155..16aab8995 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java @@ -363,6 +363,8 @@ public interface OneToOneApi { */ @GET("/api/public/?service=Friendappinfos.getMenu") Observable>> getMenu(); + @GET("/api/public/?service=Message.setMessageReadAll") + Observable>> messageReadAll(); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/utils/ChatPluginExtensionConfig.java b/OneToOne/src/main/java/com/shayu/onetoone/utils/ChatPluginExtensionConfig.java new file mode 100644 index 000000000..9625d77a8 --- /dev/null +++ b/OneToOne/src/main/java/com/shayu/onetoone/utils/ChatPluginExtensionConfig.java @@ -0,0 +1,15 @@ +package com.shayu.onetoone.utils; + +import java.util.ArrayList; +import java.util.List; + +import io.rong.imkit.conversation.extension.DefaultExtensionConfig; +import io.rong.imkit.conversation.extension.component.plugin.IPluginModule; +import io.rong.imlib.model.Conversation; + +public class ChatPluginExtensionConfig extends DefaultExtensionConfig { + @Override + public List getPluginModules(Conversation.ConversationType conversationType, String targetId) { + return new ArrayList<>(); + } +} diff --git a/OneToOne/src/main/java/com/shayu/onetoone/view/AbsInputPanel.java b/OneToOne/src/main/java/com/shayu/onetoone/view/AbsInputPanel.java index aeb253cba..37e1ce25b 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/view/AbsInputPanel.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/view/AbsInputPanel.java @@ -10,6 +10,7 @@ import com.yunbao.common.utils.ToastUtil; import java.lang.reflect.Field; import androidx.fragment.app.FragmentActivity; + import io.rong.imkit.conversation.extension.RongExtension; public abstract class AbsInputPanel { @@ -19,6 +20,7 @@ public abstract class AbsInputPanel { String targetId; ViewGroup rootLayout; View rootView; + boolean isShow = false; public AbsInputPanel(String targetId, FragmentActivity mContext, RongExtension mRongExtension, int layout) { this.mContext = mContext; @@ -38,16 +40,23 @@ public abstract class AbsInputPanel { } public int show() { - if (rootLayout.getVisibility() == View.VISIBLE) { + rootLayout.removeAllViews(); + if (isShow) { rootLayout.setVisibility(View.GONE); + isShow = false; return View.GONE; } - rootLayout.removeAllViews(); + isShow = true; rootLayout.addView(rootView); rootLayout.setVisibility(View.VISIBLE); return View.VISIBLE; } + public void hide() { + rootLayout.removeAllViews(); + rootLayout.setVisibility(View.GONE); + } + public abstract void init(View viewGroup); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java index 8873912c8..5130e9f73 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java @@ -1,5 +1,6 @@ package com.shayu.onetoone.view; +import android.app.Dialog; import android.view.View; import android.widget.Button; import android.widget.TextView; @@ -16,6 +17,7 @@ import com.shayu.onetoone.bean.PurseBean; import com.shayu.onetoone.bean.SendConsumeBean; import com.shayu.onetoone.dialog.TipsDialog; import com.shayu.onetoone.event.MoneyUpdateEvent; +import com.shayu.onetoone.listener.OnDialogClickListener; import com.shayu.onetoone.listener.OnSendMessageListener; import com.shayu.onetoone.manager.OTONetManager; import com.shayu.onetoone.manager.SendMessageManager; @@ -96,8 +98,15 @@ public class MsgInputPanelForGift extends AbsInputPanel { public void onError(int status, String msg) { super.onError(status, msg); new TipsDialog(mContext) - .setTitle(WordUtil.getNewString(R.string.not_money)) - .setApplyText(WordUtil.getNewString(R.string.dialog_apply)) + .setTitle(WordUtil.getNewString(R.string.gift_not_money)) + .setApplyText(WordUtil.getNewString(R.string.money_apply)) + .setOnDialogClickListener(new OnDialogClickListener() { + @Override + public void onApply(Dialog dialog) { + super.onApply(dialog); + ToastUtil.showDebug("沒有H5頁面!"); + } + }) .showDialog(); } }); diff --git a/OneToOne/src/main/res/drawable/rc_ext_toggle_voice.png b/OneToOne/src/main/res/drawable/rc_ext_toggle_voice1.png similarity index 100% rename from OneToOne/src/main/res/drawable/rc_ext_toggle_voice.png rename to OneToOne/src/main/res/drawable/rc_ext_toggle_voice1.png diff --git a/OneToOne/src/main/res/layout/fragment_home_ranking.xml b/OneToOne/src/main/res/layout/fragment_home_ranking.xml index 5f60b2ab3..1576f01fb 100644 --- a/OneToOne/src/main/res/layout/fragment_home_ranking.xml +++ b/OneToOne/src/main/res/layout/fragment_home_ranking.xml @@ -132,7 +132,7 @@ android:layout_width="18dp" android:layout_height="15dp" android:src="@mipmap/diamond" - android:visibility="invisible" + android:visibility="gone" tools:visibility="visible" /> - + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/fragment_notice.xml b/OneToOne/src/main/res/layout/fragment_notice.xml index a0b4db6d0..890b17b89 100644 --- a/OneToOne/src/main/res/layout/fragment_notice.xml +++ b/OneToOne/src/main/res/layout/fragment_notice.xml @@ -112,5 +112,14 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/item_home_recommend.xml b/OneToOne/src/main/res/layout/item_home_recommend.xml index bc2b7a325..ffa7bcfb1 100644 --- a/OneToOne/src/main/res/layout/item_home_recommend.xml +++ b/OneToOne/src/main/res/layout/item_home_recommend.xml @@ -55,12 +55,14 @@ + android:orientation="horizontal"> 0 + app:srcCompat="@drawable/rc_ext_toggle_voice1" /> + android:background="@color/yellow" + android:src="@mipmap/ic_msg_add" + android:visibility="gone" /> + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/view_inter_empty.xml b/OneToOne/src/main/res/layout/view_inter_empty.xml new file mode 100644 index 000000000..4f04076b0 --- /dev/null +++ b/OneToOne/src/main/res/layout/view_inter_empty.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/view_notice_empty.xml b/OneToOne/src/main/res/layout/view_notice_empty.xml new file mode 100644 index 000000000..48c1d808a --- /dev/null +++ b/OneToOne/src/main/res/layout/view_notice_empty.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/view_system_empty.xml b/OneToOne/src/main/res/layout/view_system_empty.xml new file mode 100644 index 000000000..b523dde5a --- /dev/null +++ b/OneToOne/src/main/res/layout/view_system_empty.xml @@ -0,0 +1,28 @@ + + + + + + + \ No newline at end of file diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/diamond.png b/OneToOne/src/main/res/mipmap-xxhdpi/diamond.png new file mode 100644 index 000000000..30b877d98 Binary files /dev/null and b/OneToOne/src/main/res/mipmap-xxhdpi/diamond.png differ diff --git a/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_gift.png b/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_gift.png index 43f41bb72..deb5e90a5 100644 Binary files a/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_gift.png and b/OneToOne/src/main/res/mipmap-xxhdpi/ic_msg_gift.png differ diff --git a/OneToOne/src/main/res/values-zh-rHK/strings.xml b/OneToOne/src/main/res/values-zh-rHK/strings.xml index 3032b24eb..6fbeeb10e 100644 --- a/OneToOne/src/main/res/values-zh-rHK/strings.xml +++ b/OneToOne/src/main/res/values-zh-rHK/strings.xml @@ -35,11 +35,11 @@ 最多選 %1$s 張圖片哦 暫無好友消息~ 餘額不足 - 文字聊天每條續消耗%s鑽,您可通過充值獲取更多鑽石,以便繼續聊天 + 文字聊天每條續消耗%s鑽,您可通過充值獲取更多星幣以便繼續聊天 - 與TA視頻聊天每分鐘續消耗%s鑽石,您可通過充值獲取更多鑽石,以便繼續聊天 - 與TA語音聊天每分鐘續消耗%s鑽石,您可通過充值獲取更多鑽石,以便繼續聊天 - 聊天每條續消耗%s鑽,您可通過充值獲取更多鑽石,以便繼續聊天 + 與TA視頻聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天 + 與TA語音聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天 + 聊天每條續消耗%s鑽,您可通過充值獲取更多星幣以便繼續聊天 離開 去充值 發起視頻通話\n%s鑽/分鐘 @@ -263,4 +263,5 @@ 收下獎勵 發送任意禮物后即可解鎖 + 余额不足,请充值后再进行尝试吧~ \ No newline at end of file diff --git a/OneToOne/src/main/res/values-zh-rTW/strings.xml b/OneToOne/src/main/res/values-zh-rTW/strings.xml index 3032b24eb..6fbeeb10e 100644 --- a/OneToOne/src/main/res/values-zh-rTW/strings.xml +++ b/OneToOne/src/main/res/values-zh-rTW/strings.xml @@ -35,11 +35,11 @@ 最多選 %1$s 張圖片哦 暫無好友消息~ 餘額不足 - 文字聊天每條續消耗%s鑽,您可通過充值獲取更多鑽石,以便繼續聊天 + 文字聊天每條續消耗%s鑽,您可通過充值獲取更多星幣以便繼續聊天 - 與TA視頻聊天每分鐘續消耗%s鑽石,您可通過充值獲取更多鑽石,以便繼續聊天 - 與TA語音聊天每分鐘續消耗%s鑽石,您可通過充值獲取更多鑽石,以便繼續聊天 - 聊天每條續消耗%s鑽,您可通過充值獲取更多鑽石,以便繼續聊天 + 與TA視頻聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天 + 與TA語音聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天 + 聊天每條續消耗%s鑽,您可通過充值獲取更多星幣以便繼續聊天 離開 去充值 發起視頻通話\n%s鑽/分鐘 @@ -263,4 +263,5 @@ 收下獎勵 發送任意禮物后即可解鎖 + 余额不足,请充值后再进行尝试吧~ \ No newline at end of file diff --git a/OneToOne/src/main/res/values/strings.xml b/OneToOne/src/main/res/values/strings.xml index 3d6c38e22..fb13bf9eb 100644 --- a/OneToOne/src/main/res/values/strings.xml +++ b/OneToOne/src/main/res/values/strings.xml @@ -36,12 +36,12 @@ friend empty 餘額不足 - "文字聊天每條續消耗%s鑽,您可通過充值獲取更多鑽石,以便繼續聊天" + "文字聊天每條續消耗%s鑽,您可通過充值獲取更多星幣以便繼續聊天" - 與TA視頻聊天每分鐘續消耗%s鑽石,您可通過充值獲取更多鑽石,以便繼續聊天 - 與TA语音聊天每分鐘續消耗%s鑽石,您可通過充值獲取更多鑽石,以便繼續聊天 - 聊天每條續消耗%s鑽,您可通過充值獲取更多鑽石,以便繼續聊天 + 與TA視頻聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天 + 與TA语音聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天 + 聊天每條續消耗%s鑽,您可通過充值獲取更多星幣以便繼續聊天 離開 去充值 发起视频通话\n%s钻/分钟 @@ -265,4 +265,5 @@ 收下獎勵 發送任意禮物后即可解鎖 + 余额不足,请充值后再进行尝试吧~ \ No newline at end of file diff --git a/live/src/main/res/layout/rc_extension_input_panel.xml b/live/src/main/res/layout/rc_extension_input_panel.xml index f884747f1..b80d6456e 100644 --- a/live/src/main/res/layout/rc_extension_input_panel.xml +++ b/live/src/main/res/layout/rc_extension_input_panel.xml @@ -3,8 +3,9 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + android:layout_height="wrap_content" android:visibility="gone" - android:layout_height="wrap_content"> + tools:visibility="visible"> @@ -32,7 +33,8 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/input_panel_emoji_btn" app:layout_constraintStart_toEndOf="@+id/input_panel_voice_toggle" - app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" + tools:visibility="visible" /> + app:layout_constraintEnd_toStartOf="@+id/input_panel_add_or_send" + app:layout_constraintTop_toTopOf="parent" />