This commit is contained in:
zlzw 2023-10-22 23:15:54 +08:00
parent ebeb276bb1
commit be02488180
17 changed files with 413 additions and 40 deletions

View File

@ -163,6 +163,9 @@
<activity <activity
android:name=".activity.MatchingActivity" android:name=".activity.MatchingActivity"
android:windowSoftInputMode="stateHidden|adjustResize"/> android:windowSoftInputMode="stateHidden|adjustResize"/>
<activity
android:name=".activity.EndCallActivity"
android:windowSoftInputMode="stateHidden|adjustResize"/>
<activity <activity

View File

@ -0,0 +1,94 @@
package com.shayu.onetoone.activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSONObject;
import com.makeramen.roundedimageview.RoundedImageView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.AbsOTOActivity;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.UserBean;
import com.shayu.onetoone.listener.OnDialogClickListener;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
@Route(path = RouteManager.ACTIVITY_END_CALL)
public class EndCallActivity extends AbsOTOActivity {
private RoundedImageView avatar;
private TextView titleView;
private TextView usernameView;
private Button followButton;
private Button callTimerButton;
private Button cancelButton;
private Button applyButton;
private UserBean user;
private String timer;
@Override
protected int getLayoutId() {
return R.layout.dialog_end_call;
}
@Override
protected void main(Bundle savedInstanceState) {
titleView = findViewById(R.id.title);
usernameView = findViewById(R.id.username);
followButton = findViewById(R.id.follow);
callTimerButton = findViewById(R.id.call_timer);
cancelButton = findViewById(R.id.cancel);
applyButton = findViewById(R.id.apply);
avatar = findViewById(R.id.avatar);
Bundle extras = getIntent().getExtras();
user = JSONObject.parseObject(extras.getString("user"), UserBean.class);
timer = extras.getString("time");
if (user == null || timer == null) {
finish();
return;
}
ImgLoader.display(mContext, user.getUser().getAvatar(), avatar);
ImgLoader.displayBlur(mContext, user.getUser().getAvatar(), findViewById(R.id.bg), 45);
usernameView.setText(user.getUser().getUserNicename());
callTimerButton.setText(timer);
if (user.getUser().isFollow()) {
followButton.setVisibility(View.INVISIBLE);
}
followButton.setOnClickListener(view -> {
follow();
});
cancelButton.setOnClickListener(v -> {
RouteManager.forwardActivity(extras.getString("path"), extras);
});
applyButton.setOnClickListener(v -> {
});
findViewById(R.id.close).setOnClickListener(v -> finish());
}
private void follow() {
OTONetManager.getInstance(mContext)
.follow(user.getUser().getId() + "", new HttpCallback<FollowBean>() {
@Override
public void onSuccess(FollowBean data) {
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
followButton.setVisibility(View.GONE);
}
@Override
public void onError(String error) {
}
});
}
}

View File

@ -76,7 +76,7 @@ public class HomeSearchActivity extends AbsOTOActivity {
searchBtn.setOnClickListener(v -> search(edit.getText().toString())); searchBtn.setOnClickListener(v -> search(edit.getText().toString()));
edit.setText(getIntent().getBundleExtra("bundle").getString("search")); edit.setText(getIntent().getExtras().getString("search"));
search(edit.getText().toString()); search(edit.getText().toString());
refresh(); refresh();
} }

View File

@ -94,7 +94,7 @@ public class MatchingActivity extends AbsOTOActivity {
} }
}).showDialog(); }).showDialog();
}); });
Bundle bundle = getIntent().getBundleExtra("bundle"); Bundle bundle = getIntent().getExtras();
if (bundle != null) { if (bundle != null) {
String data = bundle.getString("data"); String data = bundle.getString("data");
bundle.putInt("type",ChatActivity.CALL_CHAT_TYPE_MATCH); bundle.putInt("type",ChatActivity.CALL_CHAT_TYPE_MATCH);

View File

@ -25,6 +25,7 @@ import com.makeramen.roundedimageview.RoundedImageView;
import com.shayu.onetoone.R; import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.MsgChatMessageListAdapter; import com.shayu.onetoone.adapter.MsgChatMessageListAdapter;
import com.shayu.onetoone.bean.FollowBean; import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.GiftBean;
import com.shayu.onetoone.bean.MessageChatAuthContent; import com.shayu.onetoone.bean.MessageChatAuthContent;
import com.shayu.onetoone.bean.MessageChatTipsContent; import com.shayu.onetoone.bean.MessageChatTipsContent;
import com.shayu.onetoone.bean.MessageConsumeConfigBean; import com.shayu.onetoone.bean.MessageConsumeConfigBean;
@ -46,6 +47,7 @@ import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.ImageResultCallback; import com.yunbao.common.interfaces.ImageResultCallback;
import com.yunbao.common.interfaces.OnItemClickListener; import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.ProcessImageUtil; import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
@ -197,6 +199,16 @@ public class ChatMessageFragment extends AbsConversationFragment {
assert mVoiceToggleBtn != null; assert mVoiceToggleBtn != null;
audio = new MsgInputPanelForAudio(targetId, getActivity(), mRongExtension); audio = new MsgInputPanelForAudio(targetId, getActivity(), mRongExtension);
giftPanel = new MsgInputPanelForGift(targetId, getActivity(), mRongExtension); giftPanel = new MsgInputPanelForGift(targetId, getActivity(), mRongExtension);
giftPanel.setOnItemClickListener(new OnItemClickListener<GiftBean>() {
@Override
public void onItemClick(GiftBean bean, int position) {
if(call.getTag()!=null){
call.setTag(null);
call.setImageResource(R.mipmap.ic_msg_call);
video.setImageResource(R.mipmap.ic_msg_video);
}
}
});
mVoiceToggleBtn.setOnClickListener(view -> { mVoiceToggleBtn.setOnClickListener(view -> {
audio.show(); audio.show();
}); });
@ -206,6 +218,9 @@ public class ChatMessageFragment extends AbsConversationFragment {
}); });
video.setOnClickListener(v -> { video.setOnClickListener(v -> {
if(call.getTag()!=null){
return;
}
checkAuth(new OnSendMessageListener() { checkAuth(new OnSendMessageListener() {
@Override @Override
public void onSuccess(String token, SendConsumeBean bean) { public void onSuccess(String token, SendConsumeBean bean) {
@ -252,6 +267,9 @@ public class ChatMessageFragment extends AbsConversationFragment {
}); });
}); });
call.setOnClickListener(v -> { call.setOnClickListener(v -> {
if(call.getTag()!=null){
return;
}
checkAuth(new OnSendMessageListener() { checkAuth(new OnSendMessageListener() {
@Override @Override
public void onSuccess(String token,SendConsumeBean bean) { public void onSuccess(String token,SendConsumeBean bean) {
@ -526,7 +544,11 @@ public class ChatMessageFragment extends AbsConversationFragment {
} else { } else {
sex.setImageResource(R.mipmap.ic_message_tab_woman); sex.setImageResource(R.mipmap.ic_message_tab_woman);
} }
System.out.println("同性別:"+data.getUser().getSex()+"|"+IMLoginManager.get(mContext).getUserInfo().getSex());
if(data.getUser().getSex()== IMLoginManager.get(mContext).getUserInfo().getSex()){
call.setVisibility(View.GONE);
video.setVisibility(View.GONE);
}
switch (Integer.parseInt(data.getUser().getOnline())) { switch (Integer.parseInt(data.getUser().getOnline())) {
case 0: case 0:
status.setImageResource(R.mipmap.ic_message_msg_status_online); status.setImageResource(R.mipmap.ic_message_msg_status_online);
@ -540,6 +562,11 @@ public class ChatMessageFragment extends AbsConversationFragment {
if (data.getUser().isFollow()) { if (data.getUser().isFollow()) {
follow.setVisibility(View.GONE); follow.setVisibility(View.GONE);
} }
if(data.getGiftNum()==0){
call.setImageResource(R.mipmap.ic_msg_call_lock);
video.setImageResource(R.mipmap.ic_msg_video_lock);
call.setTag("true");
}
} }
@Override @Override

View File

@ -66,7 +66,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
@Override @Override
protected void main(Bundle savedInstanceState) { protected void main(Bundle savedInstanceState) {
Bundle bundle = getIntent().getBundleExtra("bundle"); Bundle bundle = getIntent().getExtras();
if (bundle == null) { if (bundle == null) {
finish(); finish();
return; return;
@ -132,11 +132,14 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
} }
UserBean userData;
private void initTargetData() { private void initTargetData() {
OTONetManager.getInstance(mContext) OTONetManager.getInstance(mContext)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() { .getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@Override @Override
public void onSuccess(UserBean data) { public void onSuccess(UserBean data) {
userData = data;
userName.setText(data.getUser().getUserNicename()); userName.setText(data.getUser().getUserNicename());
userInfo.setText(data.getUser().getSignature()); userInfo.setText(data.getUser().getSignature());
ImgLoader.display(mContext, data.getUser().getAvatar(), avatar); ImgLoader.display(mContext, data.getUser().getAvatar(), avatar);
@ -167,7 +170,8 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
.setTargetId(targetId) .setTargetId(targetId)
.showDialog(); .showDialog();
} }
private void follow(){
private void follow() {
OTONetManager.getInstance(mContext) OTONetManager.getInstance(mContext)
.follow(targetId, new HttpCallback<FollowBean>() { .follow(targetId, new HttpCallback<FollowBean>() {
@Override @Override
@ -185,7 +189,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
private void showWindow(boolean toChatView) { private void showWindow(boolean toChatView) {
ImageView icon = new ImageView(mContext); ImageView icon = new ImageView(mContext);
icon.setTag(getIntent().getBundleExtra("bundle")); icon.setTag(getIntent().getExtras());
icon.setImageResource(io.rong.callkit.R.drawable.rc_voip_audio_answer_selector_new); icon.setImageResource(io.rong.callkit.R.drawable.rc_voip_audio_answer_selector_new);
icon.setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(40), DpUtil.dp2px(40))); icon.setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(40), DpUtil.dp2px(40)));
finish(); finish();
@ -347,7 +351,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
showGift(); showGift();
} else if (id == R.id.close) { } else if (id == R.id.close) {
showWindow(false); showWindow(false);
}else if(id ==R.id.follow){ } else if (id == R.id.follow) {
follow(); follow();
} }
} }

View File

@ -1,21 +1,13 @@
package com.shayu.onetoone.activity.message; package com.shayu.onetoone.activity.message;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.view.Gravity;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent; import android.view.MotionEvent;
import android.view.SurfaceView; import android.view.SurfaceView;
import android.view.TextureView;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@ -23,6 +15,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BasePopupView; import com.lxj.xpopup.core.BasePopupView;
import com.lzf.easyfloat.EasyFloat; import com.lzf.easyfloat.EasyFloat;
@ -34,7 +27,6 @@ import com.shayu.onetoone.activity.AbsOTOActivity;
import com.shayu.onetoone.bean.FollowBean; import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.UserBean; import com.shayu.onetoone.bean.UserBean;
import com.shayu.onetoone.dialog.GiftDialog; import com.shayu.onetoone.dialog.GiftDialog;
import com.shayu.onetoone.dialog.MsgChatClickDialog;
import com.shayu.onetoone.dialog.TipsTextDialog; import com.shayu.onetoone.dialog.TipsTextDialog;
import com.shayu.onetoone.listener.OnCallStatusListener; import com.shayu.onetoone.listener.OnCallStatusListener;
import com.shayu.onetoone.manager.CallClientManager; import com.shayu.onetoone.manager.CallClientManager;
@ -49,14 +41,7 @@ import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
import java.util.Arrays;
import java.util.HashMap;
import io.rong.calllib.CallUserProfile;
import io.rong.calllib.IRongCallListener;
import io.rong.calllib.RongCallClient; import io.rong.calllib.RongCallClient;
import io.rong.calllib.RongCallCommon;
import io.rong.calllib.RongCallSession;
import io.rong.calllib.StartIncomingPreviewCallback; import io.rong.calllib.StartIncomingPreviewCallback;
@Route(path = RouteManager.ACTIVITY_CALL_VIDEO) @Route(path = RouteManager.ACTIVITY_CALL_VIDEO)
@ -103,7 +88,7 @@ public class CallVideoActivity extends AbsOTOActivity {
protected void main(Bundle savedInstanceState) { protected void main(Bundle savedInstanceState) {
initView(); initView();
Bundle bundle = getIntent().getBundleExtra("bundle"); Bundle bundle = getIntent().getExtras();
if (bundle == null) { if (bundle == null) {
finish(); finish();
return; return;
@ -248,7 +233,7 @@ public class CallVideoActivity extends AbsOTOActivity {
} }
private void showWindow(boolean toChatView) { private void showWindow(boolean toChatView) {
CallClientManager.getManager().getRemoteVideo().setTag(getIntent().getBundleExtra("bundle")); CallClientManager.getManager().getRemoteVideo().setTag(getIntent().getExtras());
myView.removeAllViews(); myView.removeAllViews();
targetView.removeAllViews(); targetView.removeAllViews();
finish(); finish();
@ -308,12 +293,15 @@ public class CallVideoActivity extends AbsOTOActivity {
} }
} }
UserBean userData;
private void initTargetData() { private void initTargetData() {
OTONetManager.getInstance(mContext) OTONetManager.getInstance(mContext)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() { .getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@Override @Override
public void onSuccess(UserBean data) { public void onSuccess(UserBean data) {
ImgLoader.display(mContext, data.getUser().getAvatar(), avatar); ImgLoader.display(mContext, data.getUser().getAvatar(), avatar);
userData = data;
if (data.getUser().isFollow()) { if (data.getUser().isFollow()) {
follow.setVisibility(View.GONE); follow.setVisibility(View.GONE);
} else { } else {
@ -404,6 +392,14 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override @Override
public void onCallEnd() { public void onCallEnd() {
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.VIDEO_CALL);
bundle.putString("targetId", targetId);
bundle.putString("callId", targetId);
bundle.putString("user", JSONObject.toJSONString(userData));
bundle.putString("time", callTime.getText().toString());
bundle.putString("path", RouteManager.ACTIVITY_CALL_VIDEO);
RouteManager.forwardActivity(RouteManager.ACTIVITY_END_CALL, bundle);
finish(); finish();
} }

View File

@ -8,6 +8,7 @@ public class UserBean extends BaseModel {
IMLoginModel user; IMLoginModel user;
UserInfo info; UserInfo info;
UserLevel level; UserLevel level;
int giftNum;
int status; //0 需要跳转到 编辑资料页面 int status; //0 需要跳转到 编辑资料页面
@ -46,6 +47,14 @@ public class UserBean extends BaseModel {
this.level = level; this.level = level;
} }
public int getGiftNum() {
return giftNum;
}
public void setGiftNum(int giftNum) {
this.giftNum = giftNum;
}
public static class UserInfo { public static class UserInfo {
private int id; private int id;
private String label_id; private String label_id;

View File

@ -38,6 +38,7 @@ public class RouteManager {
//达人认证入口 //达人认证入口
public static final String ACTIVITY_AUTH_BLOGGER_INLET = "/activity/AuthBloggerInletActivity"; public static final String ACTIVITY_AUTH_BLOGGER_INLET = "/activity/AuthBloggerInletActivity";
public static final String ACTIVITY_END_CALL="/activity/EndCallActivity";
/** /**
@ -116,7 +117,7 @@ public class RouteManager {
} }
public static void forwardActivity(String path, Bundle bundle) { public static void forwardActivity(String path, Bundle bundle) {
ARouter.getInstance().build(path).withBundle("bundle", bundle).navigation(); ARouter.getInstance().build(path).with( bundle).navigation();
} }
public static void forwardActivity(String path, Serializable serializable) { public static void forwardActivity(String path, Serializable serializable) {
ARouter.getInstance().build(path).withSerializable("data", serializable).navigation(); ARouter.getInstance().build(path).withSerializable("data", serializable).navigation();

View File

@ -155,7 +155,7 @@ public interface OneToOneApi {
@GET("/api/public/?service=Friendappmoney.info") @GET("/api/public/?service=Friendappmoney.info")
Observable<ResponseModel<PurseBean>> getPurseInfo(); Observable<ResponseModel<PurseBean>> getPurseInfo();
@GET("/api/public/?service=User.setAttents") @GET("/api/public/?service=Friendappuser.follow")
Observable<ResponseModel<List<FollowBean>>> follow(@Query("touid") String toUid); Observable<ResponseModel<List<FollowBean>>> follow(@Query("touid") String toUid);
/** /**

View File

@ -7,13 +7,24 @@ import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableString; import android.text.SpannableString;
import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import com.shayu.onetoone.R; import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.MessageChatAuthContent;
import com.shayu.onetoone.bean.SendConsumeBean;
import com.shayu.onetoone.bean.UserBean;
import com.shayu.onetoone.dialog.BottomListDialog;
import com.shayu.onetoone.dialog.TipsDialog;
import com.shayu.onetoone.listener.OnSendMessageListener;
import com.shayu.onetoone.manager.CallClientManager; import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager; import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import java.util.Collections;
import java.util.List; import java.util.List;
import io.rong.callkit.CallEndMessageItemProvider; import io.rong.callkit.CallEndMessageItemProvider;
@ -22,9 +33,14 @@ import io.rong.calllib.RongCallClient;
import io.rong.calllib.RongCallCommon; import io.rong.calllib.RongCallCommon;
import io.rong.calllib.RongCallSession; import io.rong.calllib.RongCallSession;
import io.rong.calllib.message.CallSTerminateMessage; import io.rong.calllib.message.CallSTerminateMessage;
import io.rong.imkit.IMCenter;
import io.rong.imkit.model.UiMessage; import io.rong.imkit.model.UiMessage;
import io.rong.imkit.widget.adapter.IViewProviderListener; import io.rong.imkit.widget.adapter.IViewProviderListener;
import io.rong.imkit.widget.adapter.ViewHolder; import io.rong.imkit.widget.adapter.ViewHolder;
import io.rong.imlib.IRongCallback;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.Message;
import io.rong.imlib.model.MessageContent; import io.rong.imlib.model.MessageContent;
public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider { public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider {
@ -66,19 +82,35 @@ public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider {
.show(); .show();
return true; return true;
} }
RongCallCommon.CallMediaType mediaType = callSTerminateMessage.getMediaType();
String action = null;
Bundle bundle = new Bundle(); checkAuth(uiMessage.getMessage().getTargetId(), new OnSendMessageListener() {
if (mediaType.equals(RongCallCommon.CallMediaType.VIDEO)) { @Override
action = RouteManager.ACTIVITY_CALL_VIDEO; public void onSuccess(String token, SendConsumeBean bean) {
bundle.putString("model", CallClientManager.VIDEO_CALL); super.onSuccess(token, bean);
} else { RongCallCommon.CallMediaType mediaType = callSTerminateMessage.getMediaType();
action = RouteManager.ACTIVITY_CALL_AUDIO; String action = null;
bundle.putString("model", CallClientManager.AUDIO_CALL); Bundle bundle = new Bundle();
} if (mediaType.equals(RongCallCommon.CallMediaType.VIDEO)) {
bundle.putString("targetId", uiMessage.getMessage().getTargetId()); action = RouteManager.ACTIVITY_CALL_VIDEO;
bundle.putString("callId", uiMessage.getMessage().getTargetId()); bundle.putString("model", CallClientManager.VIDEO_CALL);
RouteManager.forwardActivity(action, bundle); } else {
action = RouteManager.ACTIVITY_CALL_AUDIO;
bundle.putString("model", CallClientManager.AUDIO_CALL);
}
bundle.putString("targetId", uiMessage.getMessage().getTargetId());
bundle.putString("callId", uiMessage.getMessage().getTargetId());
RouteManager.forwardActivity(action, bundle);
}
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
sendAuthRequest(uiMessage.getMessage().getTargetId());
}
});
return true; return true;
} }
@ -97,4 +129,43 @@ public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider {
return new SpannableString(context.getString(R.string.rc_voip_message_video)); return new SpannableString(context.getString(R.string.rc_voip_message_video));
} }
} }
private void checkAuth(String targetId, OnSendMessageListener listener) {
OTONetManager.getInstance(null)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@Override
public void onSuccess(UserBean data) {
if (data.getInfo().getName_auth() == 1) {
listener.onError(0, "");
} else {
listener.onSuccess("", null);
}
}
@Override
public void onError(String error) {
Log.e(TAG, "onError: " + error);
}
});
}
private void sendAuthRequest(String targetId) {
MessageChatAuthContent content = MessageChatAuthContent.obtain("");
IMCenter.getInstance().sendMessage(Message.obtain(targetId, Conversation.ConversationType.PRIVATE, content), null, null, new IRongCallback.ISendMessageCallback() {
@Override
public void onAttached(Message message) {
}
@Override
public void onSuccess(Message message) {
}
@Override
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
}
});
}
} }

View File

@ -22,6 +22,7 @@ import com.shayu.onetoone.widget.PagerConfig;
import com.shayu.onetoone.widget.PagerGridLayoutManager; import com.shayu.onetoone.widget.PagerGridLayoutManager;
import com.shayu.onetoone.widget.PagerGridSnapHelper; import com.shayu.onetoone.widget.PagerGridSnapHelper;
import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
@ -42,6 +43,7 @@ public class MsgInputPanelForGift extends AbsInputPanel {
Button topUpBtn; Button topUpBtn;
Button sendBtn; Button sendBtn;
String token; String token;
private OnItemClickListener<GiftBean> onItemClickListener;
public MsgInputPanelForGift(String targetId, FragmentActivity fragmentActivity, RongExtension mRongExtension) { public MsgInputPanelForGift(String targetId, FragmentActivity fragmentActivity, RongExtension mRongExtension) {
super(targetId, fragmentActivity, mRongExtension, R.layout.view_message_input_gift); super(targetId, fragmentActivity, mRongExtension, R.layout.view_message_input_gift);
@ -52,6 +54,10 @@ public class MsgInputPanelForGift extends AbsInputPanel {
return super.show(); return super.show();
} }
public void setOnItemClickListener(OnItemClickListener<GiftBean> onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
@Override @Override
public void init(View viewGroup) { public void init(View viewGroup) {
gifList = viewGroup.findViewById(R.id.gift_list); gifList = viewGroup.findViewById(R.id.gift_list);
@ -103,6 +109,9 @@ public class MsgInputPanelForGift extends AbsInputPanel {
@Override @Override
public void onSuccess(Message message) { public void onSuccess(Message message) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(item,1);
}
iniPurse(); iniPurse();
SendMessageManager.onCallSuccess(token, new OnSendMessageListener() { SendMessageManager.onCallSuccess(token, new OnSendMessageListener() {
@Override @Override

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="90dp" android:height="42dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#ff7bd5f9" android:endColor="#ff5eb9fc" android:angle="172" />
<corners android:topLeftRadius="24dp" android:topRightRadius="24dp" android:bottomLeftRadius="24dp" android:bottomRightRadius="24dp" />
</shape>
</item>
</selector>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="125dp" android:height="26dp">
<shape android:shape="rectangle">
<solid android:color="#66b6b6b6" />
<corners android:topLeftRadius="30dp" android:topRightRadius="30dp" android:bottomLeftRadius="30dp" android:bottomRightRadius="30dp" />
</shape>
</item>
</selector>

View File

@ -0,0 +1,141 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/bg"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="46dp"
android:layout_marginEnd="17dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_call_close" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_dialog_tip"
android:minWidth="256dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginStart="36dp"
android:layout_marginTop="21dp"
android:layout_marginEnd="36dp">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="4dp"
android:layout_marginTop="8dp"
android:scaleType="centerCrop"
android:src="@drawable/m_chu_xia"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:riv_oval="true" />
<TextView
android:id="@+id/username"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="7dp"
android:text="小柒"
android:textColor="#333333"
android:textSize="18sp"
app:layout_constraintBottom_toBottomOf="@+id/avatar"
app:layout_constraintStart_toEndOf="@+id/avatar"
app:layout_constraintTop_toTopOf="@+id/avatar" />
<Button
android:id="@+id/follow"
android:layout_width="54dp"
android:layout_height="23dp"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_message_msg_bar_follow"
android:text="关注"
android:textColor="#FFFFFF"
android:textSize="10dp"
app:layout_constraintBottom_toBottomOf="@+id/avatar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/avatar"
app:layout_constraintVertical_bias="0.529" />
<Button
android:id="@+id/call_timer"
android:layout_width="125dp"
android:layout_height="26dp"
android:background="@drawable/bg_dialog_end_call_timer"
android:text="通话时长:01:06"
android:textColor="#4A4A4A"
android:textSize="14dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:layout_marginTop="2dp"
android:layout_marginEnd="14dp"
android:gravity="center"
android:text="此次通话结束了快开启\n下一次通话吧"
android:textColor="#000000"
android:visibility="visible" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginTop="16dp"
android:layout_marginBottom="20dp"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/cancel"
android:layout_width="70dp"
android:layout_height="38dp"
android:layout_marginEnd="36dp"
android:background="@drawable/bg_dialog_end_call_cancel"
android:text="再次通话"
android:textColor="#FFF"
android:textSize="12sp" />
<Button
android:id="@+id/apply"
android:layout_width="70dp"
android:layout_height="38dp"
android:background="@drawable/bg_dialog_tip_apply"
android:text="去充值"
android:textColor="#FFFFFF"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB