Commit d5efaeac authored by linfeng's avatar linfeng

Merge branch 'dev_im' of http://113.105.137.151:22280/lify/rvapp into master-video

parents 56d55ad5 df925a88
......@@ -28,9 +28,7 @@ import java.util.concurrent.TimeUnit;
import io.reactivex.Flowable;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
public class WelcomeActivity extends BaseActivity<CommonPresenter> {
private Disposable mDisposable = null;
......@@ -70,8 +68,7 @@ public class WelcomeActivity extends BaseActivity<CommonPresenter> {
AppConfig appConfig = (AppConfig) RvCache.getInstance().get(CacheEnum.IM_CONFIG);
if (appConfig == null) {
if (!NetworkUtil.isNetworkAvailable(getApplicationContext())) {
Toast.makeText(getApplicationContext(), "网络异常,im初始化失败,请退出重进", Toast.LENGTH_SHORT).show();
return;
Toast.makeText(getApplicationContext(), "网络异常,im初始化失败,请退出重进", Toast.LENGTH_LONG).show();
}
} else {
isImInitOk = true;
......
......@@ -4,7 +4,6 @@ import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.util.Log;
import android.widget.Toast;
import com.base.utils.tools.android.NetworkUtil;
......
......@@ -368,11 +368,17 @@ public class ChatContentAdapter extends RecyclerView.Adapter<RecyclerView.ViewHo
VoicePlayer.instance().playVoice(holder.chatVoiceAnimView);
ChatMessageServiceImp.getInstance(mContext).setVoicePlay(bean.getPackId());
listener.voicePlay(bean);
holder.imgState.setVisibility(View.GONE);
}
);
if (!TextUtils.isEmpty(bean.getContent())) {
holder.chatVoiceAnimView.fillData(bean);
}
if (bean.getVoiceStatus() == 0) {
holder.imgState.setVisibility(View.VISIBLE);
} else {
holder.imgState.setVisibility(View.GONE);
}
}
private void setToVoiceContentView(ChatMessage bean, MsgToVoiceHolder holder) {
......
package com.rv.im.xmpp; import android.os.Handler;import android.os.Looper;import android.text.TextUtils; import com.rv.im.ImService;import com.rv.im.call.JitsistateMachine;import com.rv.im.call.event.MessageBusyEvent;import com.rv.im.call.event.MessageEventSipEVent;import com.rv.im.call.event.MessageHangUpPhone;import com.rv.im.db.service.ChatMessageServiceImp;import com.rv.im.db.table.ChatMessage;import com.rv.im.enums.CallTypeEnum;import com.rv.im.enums.MessageTypeEnum; import org.greenrobot.eventbus.EventBus;import org.jivesoftware.smack.chat2.Chat;import org.jivesoftware.smack.chat2.IncomingChatMessageListener;import org.jivesoftware.smack.packet.Message;import org.jxmpp.jid.EntityBareJid; /** * Created by Administrator on 2017/11/24. */ public class XChatMessageListener implements IncomingChatMessageListener { private ImService mService; public XChatMessageListener(ImService service) { mService = service; } @Override public void newIncomingMessage(EntityBareJid fromxx, Message message, Chat chat) { String packetID = message.getPacketID(); String body = message.getBody(); ChatMessage chatMessage = ChatMessage.json2Message(body); if (TextUtils.isEmpty(chatMessage.getPackId())) { chatMessage.setPackId(packetID); } int type = chatMessage.getMessageType(); if (type == 0) { // 消息过滤 return; } if (type == MessageTypeEnum.TEXT.getType() || type == MessageTypeEnum.PIC.getType() || type == MessageTypeEnum.FILE.getType() || type == MessageTypeEnum.VOICE.getType()) { ListenerManager.getInstance().notifyNewMesssage(chatMessage); } else if (type == MessageTypeEnum.VOLTE_CALL.getType()) { // 发送语音通话 dealVolteCall(chatMessage); } else if (type == MessageTypeEnum.VIDEO_CALL.getType()) { // 发送视频通话 dealVideoCall(chatMessage); } } /********** * 处理视频通话 * @param chatMessage */ private void dealVideoCall(ChatMessage chatMessage) { int callType = chatMessage.getCallType(); if (callType == CallTypeEnum.CONNECT_VIDEO.getType()) { if (JitsistateMachine.isInCalling) { mService.sendBusyMessage(chatMessage.getMessageType(), chatMessage.getFromUserId()); return; } if ((int) System.currentTimeMillis() / 1000 - chatMessage.getTimeSend() <= 30) { // 跳转到语音待接受界面 EventBus.getDefault().post(new MessageEventSipEVent(callType, chatMessage.getFromUserId(), chatMessage)); } } else if (callType == CallTypeEnum.CONNECTED_VIDEO.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); } else if (callType == CallTypeEnum.NO_CONNECT_VIDEO.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); String content; if (chatMessage.getTimeLen() == 0) { content = "对方取消视频通话"; } else { content = "对方无人接听"; } chatMessage.setContent(content); ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); new Handler(Looper.getMainLooper()).postDelayed(() -> EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)), 1000);// 延迟一秒在发送挂断消息,防止当我们离线时,对方发起 } else if (callType == CallTypeEnum.END_CONNECT_VIDEO.getType()) { ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)); } } /********** * 处理语音通话 * @param chatMessage */ private void dealVolteCall(ChatMessage chatMessage) { int callType = chatMessage.getCallType(); if (callType == CallTypeEnum.CONNECT_VOICE.getType()) { ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); if (JitsistateMachine.isInCalling) { // 对方来电 ,本人 正在通话 mService.sendBusyMessage(chatMessage.getMessageType(), chatMessage.getFromUserId()); return; } if ((int) System.currentTimeMillis() / 1000 - chatMessage.getTimeSend() <= 30) { // 跳转到语音待接受界面 EventBus.getDefault().post(new MessageEventSipEVent(callType, chatMessage.getFromUserId(), chatMessage)); } } else if (callType == CallTypeEnum.CONNECTED_VOICE.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); } else if (callType == CallTypeEnum.NO_CONNECT_VOICE.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); new Handler(Looper.getMainLooper()).postDelayed(() -> EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)), 1000);// 延迟一秒在发送挂断消息,防止当我们离线时,对方发起通话之后又取消了通话,我们30秒内上线,在来点界面拉起时该Event也发送出去了 } else if (callType == CallTypeEnum.END_CONNECT_VOICE.getType()) { // 通知通话界面挂断 ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)); } else if (callType == CallTypeEnum.CALL_BUSY.getType()) { // 忙线 ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); EventBus.getDefault().post(new MessageBusyEvent(chatMessage)); } } }
\ No newline at end of file
package com.rv.im.xmpp; import android.os.Handler;import android.os.Looper;import android.text.TextUtils;import android.util.Log; import com.rv.im.ImService;import com.rv.im.call.JitsistateMachine;import com.rv.im.call.event.MessageBusyEvent;import com.rv.im.call.event.MessageEventSipEVent;import com.rv.im.call.event.MessageHangUpPhone;import com.rv.im.db.service.ChatMessageServiceImp;import com.rv.im.db.table.ChatMessage;import com.rv.im.enums.CallTypeEnum;import com.rv.im.enums.MessageTypeEnum; import org.greenrobot.eventbus.EventBus;import org.jivesoftware.smack.chat2.Chat;import org.jivesoftware.smack.chat2.IncomingChatMessageListener;import org.jivesoftware.smack.packet.Message;import org.jxmpp.jid.EntityBareJid; /** * Created by Administrator on 2017/11/24. */ public class XChatMessageListener implements IncomingChatMessageListener { private ImService mService; public XChatMessageListener(ImService service) { mService = service; } @Override public void newIncomingMessage(EntityBareJid fromxx, Message message, Chat chat) { String packetID = message.getPacketID(); String body = message.getBody(); Log.e("xxxxxx",body) ; ChatMessage chatMessage = ChatMessage.json2Message(body); if (TextUtils.isEmpty(chatMessage.getPackId())) { chatMessage.setPackId(packetID); } int type = chatMessage.getMessageType(); if (type == 0) { // 消息过滤 return; } if (type == MessageTypeEnum.TEXT.getType() || type == MessageTypeEnum.PIC.getType() || type == MessageTypeEnum.FILE.getType() || type == MessageTypeEnum.VOICE.getType()) { ListenerManager.getInstance().notifyNewMesssage(chatMessage); } else if (type == MessageTypeEnum.VOLTE_CALL.getType()) { // 发送语音通话 dealVolteCall(chatMessage); } else if (type == MessageTypeEnum.VIDEO_CALL.getType()) { // 发送视频通话 dealVideoCall(chatMessage); } } /********** * 处理视频通话 * @param chatMessage */ private void dealVideoCall(ChatMessage chatMessage) { int callType = chatMessage.getCallType(); if (callType == CallTypeEnum.CONNECT_VIDEO.getType()) { if (JitsistateMachine.isInCalling) { mService.sendBusyMessage(chatMessage.getMessageType(), chatMessage.getFromUserId()); return; } if ((int) System.currentTimeMillis() / 1000 - chatMessage.getTimeSend() <= 30) { // 跳转到语音待接受界面 EventBus.getDefault().post(new MessageEventSipEVent(callType, chatMessage.getFromUserId(), chatMessage)); } } else if (callType == CallTypeEnum.CONNECTED_VIDEO.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); } else if (callType == CallTypeEnum.NO_CONNECT_VIDEO.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); String content; if (chatMessage.getTimeLen() == 0) { content = "对方取消视频通话"; } else { content = "对方无人接听"; } chatMessage.setContent(content); ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); new Handler(Looper.getMainLooper()).postDelayed(() -> EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)), 1000);// 延迟一秒在发送挂断消息,防止当我们离线时,对方发起 } else if (callType == CallTypeEnum.END_CONNECT_VIDEO.getType()) { ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)); } } /********** * 处理语音通话 * @param chatMessage */ private void dealVolteCall(ChatMessage chatMessage) { int callType = chatMessage.getCallType(); if (callType == CallTypeEnum.CONNECT_VOICE.getType()) { ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); if (JitsistateMachine.isInCalling) { // 对方来电 ,本人 正在通话 mService.sendBusyMessage(chatMessage.getMessageType(), chatMessage.getFromUserId()); return; } if ((int) System.currentTimeMillis() / 1000 - chatMessage.getTimeSend() <= 30) { // 跳转到语音待接受界面 EventBus.getDefault().post(new MessageEventSipEVent(callType, chatMessage.getFromUserId(), chatMessage)); } } else if (callType == CallTypeEnum.CONNECTED_VOICE.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); } else if (callType == CallTypeEnum.NO_CONNECT_VOICE.getType()) { EventBus.getDefault().post(new MessageEventSipEVent(callType, null, chatMessage)); ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); new Handler(Looper.getMainLooper()).postDelayed(() -> EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)), 1000);// 延迟一秒在发送挂断消息,防止当我们离线时,对方发起通话之后又取消了通话,我们30秒内上线,在来点界面拉起时该Event也发送出去了 } else if (callType == CallTypeEnum.END_CONNECT_VOICE.getType()) { // 通知通话界面挂断 ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); EventBus.getDefault().post(new MessageHangUpPhone(chatMessage)); } else if (callType == CallTypeEnum.CALL_BUSY.getType()) { // 忙线 ChatMessageServiceImp.getInstance(mService.getApplicationContext()).addMessage(chatMessage); EventBus.getDefault().post(new MessageBusyEvent(chatMessage)); } } }
\ No newline at end of file
......
......@@ -86,11 +86,18 @@ public class MemberCenterActivity extends BaseStatusActivity<MemberPresenter> {
protected void initView(Bundle savedInstanceState, TitleView titleView, Intent intent) {
api = WXAPIFactory.createWXAPI(this, RvFrameConfig.APP_ID);
titleView.setTitle("会员中心");
UserInfoBean userInfoBean = (UserInfoBean) RvCache.getInstance().get(CacheEnum.USER);
if (userInfoBean != null && userInfoBean.getData() != null) {
memberLevel = userInfoBean.getData().getMemberLevel();
freeUseDay = userInfoBean.getData().getRentFreeDays();
}
MemberListBean listBean = (MemberListBean) RvCache.getInstance().get(CacheEnum.MEMBER);
if (listBean != null && listBean.getData() != null) {
memberTopView.setData(listBean, memberLevel, freeUseDay, payListener);
addMemberList(listBean);
}
memberTopView.setLoginListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
......
......@@ -233,7 +233,8 @@ public class MemberTopView extends LinearLayout {
unlogin_view.setVisibility(View.GONE);
logined_view.setData(infoBean);
logined_view.setVisibility(View.VISIBLE);
freeUseDay = infoBean.getData().getRentFreeDays() ;
tvFreedayTop.setText("免费用车" + freeUseDay + "天");
if (info.getIsMember() == 0) {
memberLevel = 0;
setMemeberTop();
......
......@@ -73,14 +73,14 @@ public class ShareActivity extends BaseStatusActivity<SharePresenter> {
private void setView(PersonShareBean.PersonShareInfo data) {
Resources resource= getBaseContext().getResources();
ColorStateList csl= resource.getColorStateList(R.color.share_number_color);
Resources resource = getBaseContext().getResources();
ColorStateList csl = resource.getColorStateList(R.color.share_number_color);
SpannableStringBuilder spanBuilder = new SpannableStringBuilder(data.getTotalIncome() + "元");
spanBuilder.setSpan(new TextAppearanceSpan(null, Typeface.NORMAL, DisplayUtil.sp2px(this, 24), csl, null), 0, data.getTotalIncome().toString().length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
tvAmount.setText(spanBuilder);
int total = data.getInviteNumber() + data.getActivatedNumber() ;
int total = data.getInviteNumber() + data.getActivatedNumber();
SpannableStringBuilder spanBuilder1 = new SpannableStringBuilder(total + "人");
spanBuilder1.setSpan(new TextAppearanceSpan(null, Typeface.NORMAL, DisplayUtil.sp2px(this, 24), csl, null), 0, String.valueOf(total).length(), Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
tvPersonInval.setText(spanBuilder1);
......@@ -151,7 +151,8 @@ public class ShareActivity extends BaseStatusActivity<SharePresenter> {
} else if (id == R.id.ll_comein) {
startActivity(PopularizeActivity.getIntent(getApplicationContext()));
} else if (id == R.id.tv_ruler) {
startActivity(new Intent(getApplicationContext(), ShareRulerActivity.class));
String url = RvFrameConfig.HOST_H5_DETAIL + "/h5/appHtml/view/promotionAward.html";
startActivity(WebViewActivity.getIntent(this, url, "推广有奖规则"));
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment