修复测试反馈问题

This commit is contained in:
2023-11-01 18:29:23 +08:00
parent c2755cda8a
commit db8296543e
33 changed files with 398 additions and 148 deletions

View File

@@ -129,7 +129,7 @@ public class MainActivity extends AbsOTOActivity {
}
});
CallClientManager.getManager();
checkVersion();
//checkVersion();
}
/**

View File

@@ -22,16 +22,22 @@ import com.shayu.onetoone.R;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.AndroidBug5497Workaround;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.share.ui.InvitePopDialog;
import androidx.annotation.RequiresApi;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@Route(path = RouteManager.ACTIVITY_WEB_VIEW)
public class WebViewActivity extends AbsOTOActivity {
WebView webView;
@@ -44,6 +50,7 @@ public class WebViewActivity extends AbsOTOActivity {
@Override
protected void main(Bundle savedInstanceState) {
Bus.getOn(this);
webView = findViewById(R.id.webView);
titleString = getIntent().getStringExtra("title");
if (!StringUtil.isEmpty(titleString)) {
@@ -52,6 +59,12 @@ public class WebViewActivity extends AbsOTOActivity {
initWebView();
}
@Override
protected void onDestroy() {
super.onDestroy();
Bus.getOff(this);
}
private void initWebView() {
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true); // 是否开启JS支持
@@ -72,6 +85,7 @@ public class WebViewActivity extends AbsOTOActivity {
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
url += "&uid=" + userInfo.getId() + "&token=" + userInfo.getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
}
Log.i("WebView",url);
webView.loadUrl(url);
AndroidBug5497Workaround.assistActivity(this);
@@ -117,4 +131,13 @@ public class WebViewActivity extends AbsOTOActivity {
cm.setPrimaryClip(clipData);
ToastUtil.show(getString(R.string.copy_success));
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void event(JavascriptInterfaceEvent event){
if(event.getMethod().equals("androidInviteShare")){
new InvitePopDialog(mContext)
.setTitle("快來認識更多有趣的朋友吧!")
.setUrl(event.getData())
.showDialog();
}
}
}

View File

@@ -40,6 +40,7 @@ import com.shayu.onetoone.bean.SlideBean;
import com.shayu.onetoone.bean.UserItemBean;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.HtmlUrlUtils;
import com.shayu.onetoone.utils.MainHttpConsts;
import com.shayu.onetoone.utils.MainHttpUtil;
import com.shayu.onetoone.view.CustomMyViewHolder;
@@ -198,6 +199,9 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), 10);
}
});
mAdapter = new MainMeAdapter(mContext, new ArrayList<>());
mAdapter.setOnItemClickListener(this);
mRecyclerView.setAdapter(mAdapter);
redPoint.setVisibility(APKManager.get().getApkVerNew() ? View.GONE : View.VISIBLE);
ViewClicksAntiShake.clicksAntiShake(itemView.findViewById(R.id.complete_information), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
@@ -334,26 +338,7 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
* @param list
*/
private void initMenu(List<UserItemBean> list) {
if (list != null && list.size() > 0) {
/* List<UserItemBean> listNow = new ArrayList<>();
for (UserItemBean userItemBean : list) {
if (userItemBean.getId() != 21 && userItemBean.getId() != 13) {
listNow.add(userItemBean);
} else if (userItemBean.getId() == 21) {
beanKefu = userItemBean;
} else if (userItemBean.getId() == 13) {
beanStetting = userItemBean;
}
}*/
if (mAdapter == null) {
mAdapter = new MainMeAdapter(mContext, list);
mAdapter.setOnItemClickListener(this);
mAdapter.setList(list);
mRecyclerView.setAdapter(mAdapter);
} else {
mAdapter.setList(list);
}
}
mAdapter.setList(list);
}
@@ -513,6 +498,9 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
RouteManager.forwardWebViewActivity(bean.getName(), bean.getHref());
} else {
switch (bean.getId()) {
case 2:
RouteManager.forwardWebViewActivity(null, HtmlUrlUtils.getPayUrl(mContext,false,HtmlUrlUtils.URL_PAY_COIN));
break;
case 13:
forwardSetting();
break;
@@ -584,12 +572,15 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
// mContext.startActivity(new Intent(mContext, EditProfileActivity.class));
} else if (i == R.id.lt_star_coin) {
// mContext.startActivity(new Intent(mContext, MyWalletActivity.class).putExtra("p", 1));
Bundle bundle = new Bundle();
bundle.putString("type", "yuanbao");
RouteManager.forwardActivity(RouteManager.ACTIVITY_DIAMOND_EXCHANGE, bundle);
} else if (i == R.id.btn_coin) {
// mContext.startActivity(new Intent(mContext, MyWalletActivity.class).putExtra("p", 0));
RouteManager.forwardWebViewActivity(null, HtmlUrlUtils.getPayUrl(mContext,false,HtmlUrlUtils.URL_PAY_COIN));
} else if (i == R.id.btn_gold) {
// mContext.startActivity(new Intent(mContext, MyWalletActivity.class).putExtra("p", 2));
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index";
// RewardActivity.forward(mContext, url);
Bundle bundle = new Bundle();
bundle.putString("type", "coin");
RouteManager.forwardActivity(RouteManager.ACTIVITY_DIAMOND_EXCHANGE, bundle);
} else if (i == R.id.rt_kefu) {
//WebViewActivity.forward(mContext, beanKefu.getHref(), false);
RouteManager.forwardWebViewActivity(beanKefu.getName(), beanKefu.getHref());
@@ -706,7 +697,7 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
if (!bean.getSlide_url().equals("")) {
Constants.isTitle = true;
String url = bean.getSlide_url() + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
RouteUtil.forwardCustomerService(url);
RouteManager.forwardWebViewActivity("", url);
/*if(bean.getSlide_id().equals("95")){
RouteUtil.forwardCustomerService(url);
}else {

View File

@@ -15,12 +15,15 @@ import com.opensource.svgaplayer.SVGAImageView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.BaseFragment;
import com.shayu.onetoone.adapter.HomeRankListAdapter;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.HomeRankBean;
import com.shayu.onetoone.listener.OnAppbarListener;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.utils.UserManager;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.ToastUtil;
import java.util.ArrayList;
@@ -189,8 +192,8 @@ 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, 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()) {
@@ -215,6 +218,16 @@ public class HomeRankFragment extends BaseFragment {
break;
}
ImgLoader.display(mContext, user.getAvatar(), getItem(position, mAvatar1, mAvatar2, mAvatar3));
getItem(position, mBtnFollow1, mBtnFollow2, mBtnFollow3).setOnClickListener(v -> {
UserManager.follow(mContext, user.getUid(), new OnItemClickListener<FollowBean>() {
@Override
public void onItemClick(FollowBean bean, int status) {
if (status == 0) {
getItem(position, mBtnFollow1, mBtnFollow2, mBtnFollow3).setVisibility(View.INVISIBLE);
}
}
});
});
}
private <T> T getItem(int position, T... views) {
@@ -232,7 +245,7 @@ public class HomeRankFragment extends BaseFragment {
}
public void clear() {
setVisibility(View.INVISIBLE,-1,mItem1,mItem2,mItem3);
setVisibility(View.INVISIBLE, -1, mItem1, mItem2, mItem3);
}
}
}

View File

@@ -111,6 +111,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
TextView num;
Button follow;
RongExtensionViewModel mExtensionViewModel;
UserBean targetUser;
private String token;
@@ -161,7 +162,8 @@ public class ChatMessageFragment extends AbsConversationFragment {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), bean.getPrice()))
.setApplyText(WordUtil.getNewString(R.string.dialog_apply))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
@@ -277,11 +279,12 @@ public class ChatMessageFragment extends AbsConversationFragment {
ToastUtil.show(R.string.now_call_tips);
return;
}
MsgCheckUtils.checkAuth(mContext,targetId,new OnSendMessageListener() {
MsgCheckUtils.checkAuth(mContext, targetId, new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
MsgCheckUtils.checkPrice(mContext,targetId,new OnItemClickListener<MessageConsumeConfigBean>() {
MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean configBean, int position) {
new BottomListDialog(mContext).setSelect(new OnItemClickListener<String>() {
@@ -338,11 +341,11 @@ public class ChatMessageFragment extends AbsConversationFragment {
return;
}
MsgCheckUtils.checkAuth(mContext,targetId,new OnSendMessageListener() {
MsgCheckUtils.checkAuth(mContext, targetId, new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
MsgCheckUtils.checkPrice(mContext,targetId,new OnItemClickListener<MessageConsumeConfigBean>() {
MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean configBean, int position) {
new BottomListDialog(mContext).setSelect(new OnItemClickListener<String>() {
@@ -428,7 +431,8 @@ public class ChatMessageFragment extends AbsConversationFragment {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), bean.getPrice()))
.setApplyText(WordUtil.getNewString(R.string.dialog_apply))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
@@ -455,7 +459,6 @@ public class ChatMessageFragment extends AbsConversationFragment {
}
private void sendAuthRequest() {
MessageChatAuthContent content = MessageChatAuthContent.obtain("");
IMCenter.getInstance().sendMessage(Message.obtain(targetId, Conversation.ConversationType.PRIVATE, content), null, null, new IRongCallback.ISendMessageCallback() {
@@ -602,6 +605,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@Override
public void onSuccess(UserBean data) {
targetUser = data;
ImgLoader.display(mContext, data.getUser().getAvatar(), avatar);
uname.setText(data.getUser().getUserNicename());
sign.setText(data.getUser().getSignature());

View File

@@ -3,6 +3,7 @@ package com.shayu.onetoone.activity.message;
import android.Manifest;
import android.app.Dialog;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.SurfaceView;
import android.view.View;
@@ -36,6 +37,7 @@ import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.ConversationUtils;
import com.shayu.onetoone.utils.HtmlUrlUtils;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
@@ -47,6 +49,7 @@ import com.yunbao.common.utils.WordUtil;
@Route(path = RouteManager.ACTIVITY_CALL_AUDIO)
public class CallAudioActivity extends AbsOTOActivity implements View.OnClickListener {
private static final String TAG = "语音通话";
private ImageView vague;
private ImageView close;
private ImageView avatar;
@@ -219,7 +222,34 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
});
}
private void showWindow(boolean toChatView) {
@Override
protected void onResume() {
super.onResume();
if (model.equals(CallClientManager.AUDIO_FLOAT)) {
EasyFloat.getFloatView("call").setOnClickListener(null);
//((ViewGroup) EasyFloat.getFloatView("call").getParent()).removeAllViews();
EasyFloat.dismiss("call");
String sessionId = CallClientManager.getManager().getSessionId();
if(StringUtil.isEmpty(sessionId)){
model=CallClientManager.AUDIO_CALL;
gift.setVisibility(View.INVISIBLE);
money.setVisibility(View.INVISIBLE);
return;
}
if (sessionId.equals(targetId)) {
gift.setVisibility(View.INVISIBLE);
money.setVisibility(View.INVISIBLE);
model=CallClientManager.AUDIO_RECEIVED_CALL;
} else {
gift.setVisibility(View.VISIBLE);
money.setVisibility(View.VISIBLE);
model=CallClientManager.AUDIO_CALL;
}
callMsg.setImageResource(R.mipmap.ic_call_audio_msg);
}
}
private void showWindow(boolean toChatView, boolean toPay) {
if (!PermissionUtils.checkPermission(this)) {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.permission_hint))
@@ -233,7 +263,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
@Override
public void permissionResult(boolean b) {
if (b) {
showWindow(toChatView);
showWindow(toChatView,toPay);
}
}
});
@@ -298,6 +328,11 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
}
}).show();
if(toPay){
Log.e(TAG,"调起支付界面");
RouteManager.forwardWebViewActivity(null, "https://www.baidu.com");
// RouteManager.forwardWebViewActivity(null, HtmlUrlUtils.getPayUrl(mContext,false,HtmlUrlUtils.URL_PAY_COIN));
}
if (toChatView) {
ConversationUtils.startConversation(mContext, targetId);
}
@@ -356,9 +391,15 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
@Override
public void onTimeWarning(long msg) {
super.onTimeWarning(msg);
Log.i(TAG, "通话时间:" + msg);
if (tipsView == null) {
createShow(msg);
} else {
if (msg <= 0) {
Log.i(TAG, "时间不够,挂断");
CallClientManager.getManager().endCall();
return;
}
tipsDialog.updateTips(String.format(WordUtil.getNewString(R.string.call_tips), msg));
}
@@ -368,7 +409,10 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
if (model.equals(CallClientManager.AUDIO_RECEIVED_CALL)||model.equals(CallClientManager.VIDEO_RECEIVED_CALL)) {
return;
}
if(msg<=0){
if (msg <= 0) {
Log.i(TAG, "时间不够,挂断");
CallClientManager.getManager().endCall();
return;
}
tipsDialog = new TipsTextDialog(mContext)
@@ -422,16 +466,18 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
v.setTag(true);
callMsg.setImageResource(R.mipmap.ic_call_audio_msg);
} else {
showWindow(true);
showWindow(true,false);
}
} else if (id == R.id.call_stop) {
stop();
} else if (id == R.id.gift) {
showGift();
} else if (id == R.id.close) {
showWindow(false);
showWindow(false,false);
} else if (id == R.id.follow) {
follow();
} else if(id ==R.id.money){
showWindow(false,true);
}
}
}

View File

@@ -7,6 +7,7 @@ import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.SurfaceView;
@@ -42,6 +43,7 @@ import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.ConversationUtils;
import com.shayu.onetoone.utils.HtmlUrlUtils;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
@@ -57,7 +59,7 @@ import io.rong.calllib.StartIncomingPreviewCallback;
@Route(path = RouteManager.ACTIVITY_CALL_VIDEO)
public class CallVideoActivity extends AbsOTOActivity {
private static final String TAG = "视频通话";
private ViewGroup myView;
private ViewGroup targetView;
@@ -111,7 +113,7 @@ public class CallVideoActivity extends AbsOTOActivity {
model = bundle.getString("model");
onCallStatusListener = new CallStatusListener();
CallClientManager.getManager().addOnVoIPCallListener(CallVideoActivity.class,onCallStatusListener);
CallClientManager.getManager().addOnVoIPCallListener(CallVideoActivity.class, onCallStatusListener);
if (!model.equals(CallClientManager.VIDEO_FLOAT)) {
RongCallClient.getInstance()
@@ -130,7 +132,7 @@ public class CallVideoActivity extends AbsOTOActivity {
});
}
initButton(buttonView);
if(!com.blankj.utilcode.util.PermissionUtils.isGranted(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO)) {
if (!com.blankj.utilcode.util.PermissionUtils.isGranted(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO)) {
com.blankj.utilcode.util.PermissionUtils.permission(Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO).callback(new com.blankj.utilcode.util.PermissionUtils.SimpleCallback() {
@Override
public void onGranted() {
@@ -145,7 +147,7 @@ public class CallVideoActivity extends AbsOTOActivity {
finish();
}
}).request();
return;
return;
}
if (!StringUtil.isEmpty(targetId)) {
CallClientManager.getManager().callVideo(targetId);
@@ -167,7 +169,7 @@ public class CallVideoActivity extends AbsOTOActivity {
.postDelayed(() -> {
SurfaceView localVideo = CallClientManager.getManager().getLocalVideo();
SurfaceView surfaceView = CallClientManager.getManager().getRemoteVideo();
if(localVideo.getParent()!=null){
if (localVideo.getParent() != null) {
((ViewGroup) localVideo.getParent()).removeAllViews();
}
if (surfaceView != null) {
@@ -349,7 +351,7 @@ public class CallVideoActivity extends AbsOTOActivity {
micSwitch.setImageResource(!enabled ? R.mipmap.ic_call_audio_select : R.mipmap.ic_call_audio);
}
private void showWindow(boolean toChatView) {
private void showWindow(boolean toChatView, boolean toPay) {
if (!PermissionUtils.checkPermission(this)) {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.permission_hint))
@@ -363,7 +365,7 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override
public void permissionResult(boolean b) {
if (b) {
showWindow(toChatView);
showWindow(toChatView, toPay);
}
}
});
@@ -409,7 +411,10 @@ public class CallVideoActivity extends AbsOTOActivity {
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
});
windowListener = new WindowCallStatusListener(view);
CallClientManager.getManager().addOnVoIPCallListener(EasyFloat.class,windowListener);
CallClientManager.getManager().addOnVoIPCallListener(EasyFloat.class, windowListener);
if (toPay) {
RouteManager.forwardWebViewActivity(null, HtmlUrlUtils.getPayUrl(mContext, false, HtmlUrlUtils.URL_PAY_COIN));
}
}
@Override
@@ -501,11 +506,13 @@ public class CallVideoActivity extends AbsOTOActivity {
} else if (id == R.id.mic_switch) {
switchAudio();
} else if (id == R.id.close || id == R.id.close1) {
showWindow(false);
showWindow(false, false);
} else if (id == R.id.message) {
showWindow(true);
showWindow(true, false);
} else if (id == R.id.follow) {
follow();
} else if (id == R.id.money) {
showWindow(true, false);
}
}
};
@@ -537,11 +544,11 @@ public class CallVideoActivity extends AbsOTOActivity {
surfaceView.setZOrderMediaOverlay(false);
surfaceView.invalidate();
});
if(surfaceView.getParent()!=null){
((ViewGroup)surfaceView.getParent()).removeAllViews();
if (surfaceView.getParent() != null) {
((ViewGroup) surfaceView.getParent()).removeAllViews();
}
if(CallClientManager.getManager().getLocalVideo().getParent()!=null){
((ViewGroup)CallClientManager.getManager().getLocalVideo().getParent()).removeAllViews();
if (CallClientManager.getManager().getLocalVideo().getParent() != null) {
((ViewGroup) CallClientManager.getManager().getLocalVideo().getParent()).removeAllViews();
}
myView.addView(surfaceView);
targetView.removeAllViews();
@@ -558,7 +565,7 @@ public class CallVideoActivity extends AbsOTOActivity {
//
@Override
public void onCallEnd() {
if (sessionId!=null&&!sessionId.equals(targetId)){
if (sessionId != null && !sessionId.equals(targetId)) {
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.VIDEO_CALL);
bundle.putString("targetId", targetId);
@@ -590,9 +597,15 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override
public void onTimeWarning(long msg) {
super.onTimeWarning(msg);
Log.i(TAG, "通话时间:" + msg);
if (tipsView == null) {
createShow(msg);
} else {
if (msg <= 0) {
Log.i(TAG, "时间不够,挂断");
CallClientManager.getManager().endCall();
return;
}
tipsDialog.updateTips(String.format(WordUtil.getNewString(R.string.call_tips), msg));
}
@@ -602,7 +615,9 @@ public class CallVideoActivity extends AbsOTOActivity {
if (model.equals(CallClientManager.VIDEO_RECEIVED_CALL)) {
return;
}
if(msg<=0){
if (msg <= 0) {
Log.i(TAG, "时间不够,挂断");
CallClientManager.getManager().endCall();
return;
}
tipsDialog = new TipsTextDialog(mContext)
@@ -643,8 +658,8 @@ public class CallVideoActivity extends AbsOTOActivity {
Object tag = rootView.getTag();
ViewGroup parent = (ViewGroup) rootView.getParent();
parent.removeView(rootView);
if(surfaceView.getParent()!=null){
((ViewGroup)surfaceView.getParent()).removeAllViews();
if (surfaceView.getParent() != null) {
((ViewGroup) surfaceView.getParent()).removeAllViews();
}
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
surfaceView.setTag(tag);
@@ -672,4 +687,8 @@ public class CallVideoActivity extends AbsOTOActivity {
super.onDestroy();
CallClientManager.getManager().removeOnVoIPCallListener(CallVideoActivity.class);
}
@Override
public void onBackPressed() {
}
}

View File

@@ -1,5 +1,6 @@
package com.shayu.onetoone.activity.message;
import android.app.Dialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -23,6 +24,7 @@ import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.ImageResultCallback;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
@@ -46,7 +48,7 @@ public class MsgMoreGreetConfigActivity extends AbsOTOActivity {
Button cancel, apply;
ProcessImageUtil imageUtil;
Dialog uploadImgDialog;
@Override
protected int getLayoutId() {
return R.layout.activity_msg_config;
@@ -55,6 +57,7 @@ public class MsgMoreGreetConfigActivity extends AbsOTOActivity {
@Override
protected void main(Bundle savedInstanceState) {
setTitle(WordUtil.getNewString(R.string.title_greet_config));
uploadImgDialog=DialogUitl.loadingDialog(mContext);
imageUtil = new ProcessImageUtil(this);
recyclerView = findViewById(R.id.msg_recyclerView);
msgSwitch = findViewById(R.id.msg_switch);
@@ -105,13 +108,14 @@ public class MsgMoreGreetConfigActivity extends AbsOTOActivity {
@Override
public void onSuccess(File file) {
uploadImgDialog.show();
System.out.println("file = " + file.getAbsolutePath());
System.out.println("file.exists() = " + file.exists());
OTONetManager.getInstance(mContext)
.updateFile(file, new HttpCallback<AvatarBean>() {
@Override
public void onSuccess(AvatarBean data) {
System.out.println("头像地址:" + data);
System.out.println("头像地址:" + data.getAvatar());
OTONetManager.getInstance(mContext)
.addMessageMoreGreetConfig(data.getAvatar(), "2", new HttpCallback<HttpCallbackModel>() {
@Override
@@ -119,18 +123,21 @@ public class MsgMoreGreetConfigActivity extends AbsOTOActivity {
if (upload.getCode() == 0) {
ImgLoader.display(mContext, data.getAvatar(), (ImageView) findViewById(R.id.imageView5));
}
uploadImgDialog.dismiss();
}
@Override
public void onError(String error) {
uploadImgDialog.dismiss();
ToastUtil.showDebug(error);
}
});
}
@Override
public void onError(String error) {
uploadImgDialog.dismiss();
ToastUtil.showDebug(error);
}
});
}

View File

@@ -10,6 +10,7 @@ import com.alibaba.android.arouter.facade.annotation.Route;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.login.EntryActivity;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.HtmlUrlUtils;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
@@ -109,6 +110,24 @@ public class SettingActivity extends AbsActivity {
startActivity(new Intent(SettingActivity.this, OneMsgSettActivity.class));
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.qa), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
RouteManager.forwardWebViewActivity(null, HtmlUrlUtils.getQAUrl());
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.user_agreement), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
RouteManager.forwardWebViewActivity(null,HtmlUrlUtils.getUserAgreement());
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.server_agreement), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
RouteManager.forwardWebViewActivity(null,HtmlUrlUtils.getServerAgreement());
}
});
intiData();
}

View File

@@ -58,24 +58,8 @@ public class MainMeAdapter extends RecyclerView.Adapter<MainMeAdapter.Vh> {
public void setList(List<UserItemBean> list) {
if (list == null) {
return;
}
boolean changed = false;
if (mList.size() != list.size()) {
changed = true;
} else {
for (int i = 0, size = mList.size(); i < size; i++) {
if (!mList.get(i).equals(list.get(i))) {
changed = true;
break;
}
}
}
if (changed) {
mList = list;
notifyDataSetChanged();
}
mList = list;
notifyDataSetChanged();
}
@NonNull

View File

@@ -1,6 +1,8 @@
package com.shayu.onetoone.adapter;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.text.Editable;
import android.text.InputFilter;
import android.text.TextWatcher;
@@ -19,6 +21,7 @@ import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.GreetBean;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import java.util.ArrayList;
import java.util.List;
@@ -30,15 +33,18 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
List<GreetBean> mList;
Context mContext;
OnItemClickListener<GreetBean> deleteListener;
Handler handler;
public static final String TAG="打招呼列表";
public MsgGreetConfigAdapter(Context mContext) {
this.mContext = mContext;
this.mList = new ArrayList<>();
handler = new Handler(Looper.getMainLooper());
}
public void setList(List<GreetBean> mList) {
if(mList.isEmpty()){
GreetBean bean=new GreetBean();
if (mList.isEmpty()) {
GreetBean bean = new GreetBean();
mList.add(bean);
}
this.mList = mList;
@@ -87,8 +93,11 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
public void clear() {
mList.clear();
mList.add(new GreetBean());
notifyDataSetChanged();
new Handler(Looper.getMainLooper()).postDelayed(() -> {
mList.add(new GreetBean());
notifyDataSetChanged();
}, 300);
}
public class ViewHolder extends RecyclerView.ViewHolder {
@@ -106,15 +115,21 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
}
public void setData(GreetBean bean, int position) {
editText.clearFocus();
del.setOnClickListener(v -> {
mList.get(position).setContent(editText.getText().toString());
editText.setEnabled(false);
mList.remove(position);
if (deleteListener != null) {
deleteListener.onItemClick(bean, mList.size());
}
notifyDataSetChanged();
handler.postDelayed(() -> {
editText.setEnabled(false);
mList.remove(position);
if (deleteListener != null) {
deleteListener.onItemClick(bean, mList.size());
}
notifyDataSetChanged();
}, 50);
});
Log.i(TAG, position+"|"+bean.getContent()+"||"+mList.size());
edit.setOnClickListener(v -> {
mList.get(position).setEdit(true);
editText.setEnabled(true);
@@ -135,6 +150,7 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
if (!hasFocus && editText.getText().toString().length() > 0 && mList.size() > position) {
mList.get(position).setContent(editText.getText().toString());
editText.setEnabled(false);
Log.d(TAG, "设置文本:"+position+""+editText.getText().toString());
}
}
});

View File

@@ -10,6 +10,7 @@ public class SendConsumeBean extends BaseModel {
private UserBean mateUser;
@SerializedName("vodie_time")
private long videoTime;
@SerializedName("mp3_time")
private long mp3Time;
private int code;
private String msg;

View File

@@ -39,7 +39,7 @@ public class MsgMoreDialog extends AttachPopupView implements View.OnClickListen
read.setOnClickListener(this);
UserBean bean = UserManager.getUserBean();
if (bean.getInfo().getSage_auth()!=2) {
config.setVisibility(GONE);
// config.setVisibility(GONE);
}
}

View File

@@ -11,8 +11,11 @@ import androidx.annotation.NonNull;
import com.lxj.xpopup.XPopup;
import com.shayu.onetoone.R;
import com.shayu.onetoone.listener.OnDialogClickListener;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.HtmlUrlUtils;
import com.yunbao.common.dialog.AbsDialogCenterPopupWindow;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
public class TipsDialog extends AbsDialogCenterPopupWindow {
private String title, content;
@@ -107,6 +110,11 @@ public class TipsDialog extends AbsDialogCenterPopupWindow {
dismiss();
});
mApply.setOnClickListener(v -> {
if (!StringUtil.isEmpty(applyText)&&(
applyText.equals(WordUtil.getNewString(R.string.money_apply))
|| applyText.equals(WordUtil.getNewString(R.string.dialog_to_money_tip)))) {
RouteManager.forwardWebViewActivity(null, HtmlUrlUtils.getPayUrl(mContext, false, HtmlUrlUtils.URL_PAY_COIN));
}
if (onDialogClickListener != null) {
onDialogClickListener.onApply(dialog);
}

View File

@@ -5,6 +5,7 @@ import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
import android.util.Log;
import android.view.SurfaceView;
import com.blankj.utilcode.util.PermissionUtils;
@@ -42,6 +43,7 @@ import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
public class CallClientManager {
public static final String TAG="拨打控制器";
public static final String VIDEO_RECEIVED_CALL = "receivedVideoCall";//接听
public static final String VIDEO_CALL = "callVideo";//拨打
public static final String VIDEO_FLOAT = "videoFloatWindow";//浮窗
@@ -256,7 +258,7 @@ public class CallClientManager {
private String targetId;
private String sessionId;
private boolean isCallVideo = false;
long warningTime;
long warningTime=-999;
long activeTime;
public CallTimeTask(String targetId) {
@@ -312,7 +314,7 @@ public class CallClientManager {
handler.post(() -> {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTime(extra);
if (warningTime <= 60) {
if (warningTime!=-999 && warningTime <= 60) {
listener.onTimeWarning(warningTime--);
}
}
@@ -355,7 +357,7 @@ public class CallClientManager {
} else {
warningTime = bean.getMp3Time();
}
if (warningTime <= 60) {
if (warningTime!=-999 && warningTime <= 60) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTimeWarning(warningTime);
}
@@ -605,7 +607,7 @@ public class CallClientManager {
@Override
public void onError(RongCallCommon.CallErrorCode errorCode) {
System.out.println("CallStatusListener.onError");
Log.e(TAG,"CallStatusListener.onError "+errorCode);
if (statusListener != null) {
statusListener.onCallEnd();
}

View File

@@ -126,5 +126,4 @@ public class RouteManager {
ARouter.getInstance().build(path).withSerializable("data", serializable).navigation();
}
}

View File

@@ -20,6 +20,7 @@ import com.shayu.onetoone.listener.OnSendMessageListener;
import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.MsgCheckUtils;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.AppManager;
@@ -85,7 +86,7 @@ public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider {
}
checkAuth(uiMessage.getMessage().getTargetId(), new OnSendMessageListener() {
MsgCheckUtils.checkAuth(context,uiMessage.getMessage().getTargetId(), new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
@@ -131,26 +132,6 @@ public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider {
}
}
private void checkAuth(String targetId, OnSendMessageListener listener) {
OTONetManager.getInstance(null)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
public void onSuccess(UserBean data) {
if (data.getInfo().getName_auth() == 2) {
listener.onSuccess("", null);
} else if (data.getInfo().getName_auth() == 3) {
listener.onError(data.getInfo().getName_auth(), "當前正在審核中,請耐心等待");
}
AppManager.runDebugCode(() -> {
//listener.onSuccess("", null);
});
}
@Override
public void onError(String error) {
Log.e(TAG, "onError: " + error);
}
});
}
private void sendAuthRequest(String targetId) {
MessageChatAuthContent content = MessageChatAuthContent.obtain("");

View File

@@ -0,0 +1,91 @@
package com.shayu.onetoone.utils;
import android.content.Context;
import android.util.Log;
import android.view.View;
import androidx.fragment.app.Fragment;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.WordUtil;
import java.util.Locale;
public class HtmlUrlUtils {
public static final int URL_PAY_COIN = 0;
public static final int URL_PAY_GOLD = 1;
public static final int URL_PAY_BEAN = 2;
/**
* 获取支付链接
*
* @param isFirst 是否为首充
* @param type 类型 URL_PAY_COIN/URL_PAY_GOLD/URL_PAY_BEAN
*/
public static String getPayUrl(Context mContext, boolean isFirst, int type) {
if (isFirst) {
Log.i("tss", "首充");
if (!CommonAppConfig.IS_GOOGLE_PLAY) {
switch (type) {
case URL_PAY_COIN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&first_page=1&m=Mall&a=walletcoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_GOLD:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&first_page=1&a=walletgold&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_BEAN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&first_page=1&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
}
} else {
switch (type) {
case URL_PAY_COIN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&first_page=1&a=googlepaycoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_GOLD:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&first_page=1&a=googlepaygole&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_BEAN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&first_page=1&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
}
}
} else {
if (!CommonAppConfig.IS_GOOGLE_PLAY) {
Log.i("tss", "不是首充");
//链接版本
switch (type) {
case URL_PAY_COIN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletcoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_GOLD:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletgold&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_BEAN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
}
} else {
switch (type) {
case URL_PAY_COIN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaycoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_GOLD:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaygole&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
case URL_PAY_BEAN:
return CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
}
}
}
return null;
}
public static String getQAUrl() {
return CommonAppConfig.HOST + "/h5/FAQ/index.html?t=1";
}
/**
* 用户协议
*/
public static String getUserAgreement() {
return CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=59";
}
/**
* 服务协议
*/
public static String getServerAgreement() {
return CommonAppConfig.HOST + "/index.php?g=portal&m=page&a=index&id=668";
}
}

View File

@@ -39,7 +39,7 @@ public class MsgCheckUtils {
listener.onError(data.getInfo().getName_auth(), "");
}
AppManager.runDebugCode(() -> {
//listener.onSuccess("", null);
listener.onSuccess("", null);
});
}

View File

@@ -1,19 +1,53 @@
package com.shayu.onetoone.utils;
import android.content.Context;
import android.view.View;
import com.alibaba.fastjson.JSONObject;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.FollowBean;
import com.shayu.onetoone.bean.UserBean;
import com.shayu.onetoone.listener.OnDialogClickListener;
import com.shayu.onetoone.listener.OnSendMessageListener;
import com.shayu.onetoone.manager.OTONetManager;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
public class UserManager {
public static UserBean userBean;
public static UserBean getUserBean(){
if(userBean==null){
userBean=JSONObject.parseObject(SpUtil.getStringValue("oto_user_info"),UserBean.class);
public static UserBean getUserBean() {
if (userBean == null) {
userBean = JSONObject.parseObject(SpUtil.getStringValue("oto_user_info"), UserBean.class);
}
return userBean;
}
public static void saveUserBean(UserBean bean){
userBean=bean;
public static void saveUserBean(UserBean bean) {
userBean = bean;
SpUtil.setStringValue("oto_user_info", JSONObject.toJSONString(bean));
}
public static void follow(Context mContext, String userId, OnItemClickListener<FollowBean> listener) {
OTONetManager.getInstance(mContext)
.follow(userId + "", new HttpCallback<FollowBean>() {
@Override
public void onSuccess(FollowBean data) {
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
if (listener != null) {
listener.onItemClick(data, 0);
}
}
@Override
public void onError(String error) {
if (listener != null) {
listener.onItemClick(null, -1);
}
}
});
}
}

View File

@@ -152,6 +152,8 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_text_tips), bean.getPrice()))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override

View File

@@ -104,7 +104,6 @@ public class MsgInputPanelForGift extends AbsInputPanel {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
ToastUtil.showDebug("沒有H5頁面");
}
})
.showDialog();

View File

@@ -102,6 +102,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:visibility="gone"
android:paddingTop="10dp"
android:paddingBottom="10dp">
@@ -188,6 +189,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:visibility="gone"
android:paddingTop="10dp"
android:paddingBottom="10dp">
@@ -242,6 +244,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/qa"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
@@ -270,6 +273,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/server_agreement"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
@@ -298,6 +302,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/user_agreement"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"

View File

@@ -43,8 +43,8 @@
<string name="not_money_text_tips">聊天每條續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="dialog_cancel_tip">離開</string>
<string name="dialog_to_money_tip">去充值</string>
<string name="chat_video_tips">發起視頻通話\n%s/分鐘</string>
<string name="chat_audio_tips">發起語音通話\n%s/分鐘</string>
<string name="chat_video_tips">發起視頻通話\n%s星幣/分鐘</string>
<string name="chat_audio_tips">發起語音通話\n%s星幣/分鐘</string>
<string name="album">相冊</string>
<string name="camera">拍照</string>
<string name="photo_info">圖片信息</string>

View File

@@ -43,8 +43,8 @@
<string name="not_money_text_tips">聊天每條續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="dialog_cancel_tip">離開</string>
<string name="dialog_to_money_tip">去充值</string>
<string name="chat_video_tips">發起視頻通話\n%s/分鐘</string>
<string name="chat_audio_tips">發起語音通話\n%s/分鐘</string>
<string name="chat_video_tips">發起視頻通話\n%s星幣/分鐘</string>
<string name="chat_audio_tips">發起語音通話\n%s星幣/分鐘</string>
<string name="album">相冊</string>
<string name="camera">拍照</string>
<string name="photo_info">圖片信息</string>

View File

@@ -45,8 +45,8 @@
<string name="not_money_text_tips">聊天每條續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="dialog_cancel_tip">離開</string>
<string name="dialog_to_money_tip">去充值</string>
<string name="chat_video_tips">發起視頻通話\n%s/分鐘</string>
<string name="chat_audio_tips">發起語音通話\n%s/分鐘</string>
<string name="chat_video_tips">發起視頻通話\n%s星幣/分鐘</string>
<string name="chat_audio_tips">發起語音通話\n%s星幣/分鐘</string>
<string name="album">相冊</string>
<string name="camera">拍照</string>
<string name="photo_info">圖片信息</string>