修复测试反馈问题

This commit is contained in:
zlzw 2023-10-31 18:30:19 +08:00
parent 389f33db1f
commit c2755cda8a
39 changed files with 502 additions and 231 deletions

View File

@ -96,18 +96,16 @@
tools:replace="theme,label,icon,allowBackup">
<activity
android:name=".activity.login.TagselectionActivity"
android:exported="false" />
<activity
android:name=".activity.login.TagSelection_Activity"
android:exported="false"
android:label="@string/title_activity_tag_selection"
android:theme="@style/AppTheme" />
android:screenOrientation="portrait" />
<activity
android:name=".activity.login.CompleteActivity"
android:exported="false" />
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".activity.LauncherActivity"
android:exported="true">
android:exported="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
@ -116,127 +114,149 @@
</activity>
<activity
android:name=".activity.login.EntryActivity"
android:exported="true" />
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name=".activity.MainActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:exported="false" />
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".activity.message.MsgMoreGreetConfigActivity"
android:exported="false" />
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".activity.message.ChatActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.login.LoginActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.login.FindPwdActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.login.RegisterActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.WebViewActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.HomepageRankingActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.MyArnActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.DiamondExchangeActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.setting.OneMsgSettActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.ExchangeRecordActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.HomeScreenActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.HomeSearchActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.message.CallVideoActivity"
android:hardwareAccelerated="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.message.CallAudioActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.MatchingActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.EndCallActivity"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.MyFriendListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.login.ChooseLabelActivity"
android:label="选择标签"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.setting.SettingActivity"
android:label="設定"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.user.EditProfileActivity"
android:label="编辑资料"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.user.EditNameActivity"
android:label="编辑名称"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.user.EditSignActivity"
android:label="编辑签名"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.user.AuthActivity"
android:label="实名认证"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.user.AuthBloggerActivity"
android:label="达人认证"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.user.AuthBloggerInletActivity"
android:label="达人认证入口"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.setting.FollowActivity"
android:label="达人认证入口"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.setting.ModifyPwdActivity"
android:label="修改密码"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.setting.WebViewActivity"
android:label="WebView"
android:windowSoftInputMode="stateHidden|adjustResize" />
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileprovider"

View File

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html>
<head>
<title>本地HTML页面</title>
</head>
<body>
<h1>獎勵說明</h1>
<p>在您使用平台服務取得和提取收益(包括:互動收益、通話收益)前,您應閱讀並遵守本說明及將來公示的新增的單項說明或規則、操作時的提示以及規則。 我們在此特別提醒您認真閱讀並充分理解本說明,特別是免除或限制我們責任、限制您的權利、規定爭議解決方式的相關條款。 除非您接受本說明,否則您無權使用相關功能。 您一經使用獎勵獲取、收益兌換和提現等相關功能,即視為您已理解並接受本說明。 我們保留根據相關法律規定、主管機關要求、業務開展情況等,對獎勵的領取、兌換、提現規則進行變更、調整、中止或終止的權利,同時也會將變更、調整予以公示並自公示之日起生效。</p>
<h1>1、如何獲得獎勵</h1>
<h1>A.付費消息:</h1>
<p>用戶在以下情況將有機會獲得付費方付費訊息星幣價值的固定比例作為獎勵:</p>
<p>1系統匹配的會話不同等級時低等級用戶為付費方同等級時男用戶為付費方目前等級由低到高分別為未認證用戶真人認證用戶達人認證用戶  系統匹配的會話包括系統匹配的搭訕/訊息(如紅娘牽線)等; </p>
<p>2除系統匹配的會話及平台另有規定外首發訊息的一方為雙方會話關係中的付費方。 首發訊息包含一鍵搭訕/搭訕/私訊,以及視訊和語音通話;</p>
<p>3若一方在會話關係中已經被認定為付費方則系統配對到同一會話關係時該方仍為付費方 當用戶收到其他用戶的付費訊息時達人認證用戶會獲得該部分付費訊息星幣價值的33%作為獎勵具體獎勵以平台顯示為準真人認證用戶可以獲得的獎勵為22% 未認證用戶僅可獲得11%。 我們鼓勵您進行真人認證交友。</p>
<h1>B.禮物:</h1>
<p>1、當用戶收到收益禮物時達人認證用戶將會獲得該禮物星幣價值的34%作為獎勵真人認證用戶可以獲得的獎勵為22%未認證用戶僅可獲得11%。 用戶背包中尚未送出的禮物不能用於提取收益。</p>
<p>2、獎勵如何領取 領取獎勵前,需先進行真人認證,通過認證後,綁定收款方式方可提領。</p>
<p>3.最小提現金額? 10美元起提。</p>
<p>4.什麼情況下會領取失敗? 用戶的帳號存在異常; 收款方式異常; 平台技術故障; 用戶被其他用戶舉報、受到平台調查或監管部門有特定要求等存在未解決爭議事項;</p>
<p>5.領取失敗後,該筆獎勵會到哪裡? 領取失敗會導致該筆獎勵退回,如有疑問,請聯絡客服。</p>
<p>6、其他費用 用戶對其收益應依法納稅,其平台收益相關的報稅、稅費及相關責任義務等由用戶與其合作方(公會、靈活用工平台等)約定,與平台方無關。</p>
<p>7、其他聲明 用戶瞭解並同意,獎勵規則具體以平台顯示為準。若因平台系統突發故障、第三方軟體服務商故障、駭客攻擊等導致平台顯示及功能故障,平台將在發現後儘快修復,平台無須因此承擔賠償責任。</p>
<p>8.無效獎勵 若經平台核查認定您全部或部分獎勵無效時,平台為履行法定義務、配合相關執法部門或履行社會責任等原因,有權自行決策將與上述無效獎勵對應的用戶側消費款項予以退還;您同意支援平台的相應決策,並配合平台要求退還您的相關獎勵或等價金額。 此時,平台有權從您帳號的收益餘額中自行扣除相應金額,若不足以扣除時,您應在平台作出通知後指定週期內按照本公司告知的方式補足。</p>
<h1> 無效獎勵包括但不限於您基於以下情形而獲得的對應獎勵:</h1>
<p>1無民事行為能力人或限制民事行為能力人的使用者打賞或進行其他消費而產生的您的獎勵收益</p>
<p>2因您透過違法、違規、違反平台規則或違反公序良俗、誠實信用原則的行為而獲取的獎勵收益</p>
<p>3因司法/行政機關要求退還/劃撥的收益(及司法/行政機關要求退還/劃撥用戶消費金額時該等消費金額中對應的您的獎勵收益); </p>
<p>4使用者使用非法收入、作弊收入或非平台指定方式儲值或消費而產生的您的獎勵收益</p>
<p>5用戶依法依規撤銷其消費行為包括但不限於支付通路退款等時其相應消費所對應的您的獎勵收益</p>
<p>6本公司有權基於平台風控判斷、用戶投訴、行政或司法機關的要求等情形確認您的部分或全部獎勵收益無效。 在您使用平台服務取得和提取收益(包括:互動收益、通話收益)前,您應閱讀並遵守本說明及將來公示的新增的單項說明或規則、操作時的提示以及規則。 我們在此特別提醒您認真閱讀並充分理解本說明,特別是免除或限制我們責任、限制您的權利、規定爭議解決方式的相關條款。 除非您接受本說明,否則您無權使用相關功能。 您一經使用獎勵獲取、收益兌換和提現等相關功能,即視為您已理解並接受本說明。 我們保留根據相關法律規定、主管機關要求、業務開展情況等,對獎勵的領取、兌換、提現規則進行變更、調整、中止或終止的權利,同時也會將變更、調整予以公示並自公示之日起生效。</p>
</body>
</html>

View File

@ -1,11 +1,16 @@
package com.shayu.onetoone;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Process;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
import com.facebook.FacebookSdk;
import com.shayu.onetoone.activity.fragments.message.ChatMessageFragment;
@ -24,6 +29,7 @@ import com.shayu.onetoone.utils.ChatPluginExtensionConfig;
import com.shayu.onetoone.utils.NeverCrashUtils;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
@ -34,7 +40,9 @@ import com.yunbao.common.utils.L;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
import io.rong.callkit.CallEndMessageItemProvider;
import io.rong.imkit.RongIM;
@ -53,11 +61,29 @@ import io.rong.message.CommandMessage;
import io.rong.message.TextMessage;
public class AppContext extends CommonAppContext {
private final static List<WeakReference<Activity>> activities = new ArrayList<>();
public static void exit() {
for (WeakReference<Activity> activity : activities) {
try {
if (activity.get() != null) {
activity.get().finish();
}
} catch (Exception e) {
e.printStackTrace();
}
}
System.exit(0);
}
@Override
public void onCreate() {
super.onCreate();
L.setDeBug(true);
SpUtil.getInstance();
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
NeverCrashUtils.getInstance()
.setDebugMode(BuildConfig.DEBUG)
.setMainCrashHandler((t, e) -> {
@ -109,7 +135,6 @@ public class AppContext extends CommonAppContext {
});
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
@Override
public boolean onReceived(Message message, int left, boolean hasPackage, boolean offline) {
@ -126,9 +151,52 @@ public class AppContext extends CommonAppContext {
IMLoginManager.get(this).setLanguage(false);
RongConfigCenter.conversationConfig().replaceMessageProvider(CallEndMessageItemProvider.class,new OTOCallEndMessageItemProvider());
RongConfigCenter.conversationConfig().replaceMessageProvider(CallEndMessageItemProvider.class, new OTOCallEndMessageItemProvider());
RongExtensionManager.getInstance().setExtensionConfig(new ChatPluginExtensionConfig());
}
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(@NonNull Activity activity) {
}
@Override
public void onActivitySaveInstanceState(@NonNull Activity activity, @NonNull Bundle outState) {
}
@Override
public void onActivityDestroyed(@NonNull Activity activity) {
for (WeakReference<Activity> reference : activities) {
if (reference.get() == activity) {
activities.remove(reference);
return;
}
}
AppManager.getInstance().removeActivity(activity);
}
@Override
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
activities.add(new WeakReference<>(activity));
CrashSaveBean.getInstance().setActivitySize(activities);
AppManager.getInstance().addActivity(activity);
}
@Override
public void onActivityStarted(@NonNull Activity activity) {
}
}
}

View File

@ -173,8 +173,8 @@ public class DiamondExchangeActivity extends AbsOTOActivity {
private void initData() {
if (getIntent() != null && getIntent().getBundleExtra("bundle") != null) {
type = getIntent().getBundleExtra("bundle").getString("type");
if (getIntent() != null && getIntent().getExtras() != null) {
type = getIntent().getExtras().getString("type");
if (TextUtils.equals(type, "yuanbao")) {
title.setText(getString(R.string.my_arnings_exchange_star));
} else {

View File

@ -13,6 +13,7 @@ import com.alibaba.fastjson.JSONObject;
import com.angcyo.tablayout.DslTabLayout;
import com.angcyo.tablayout.DslTabLayoutConfig;
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
import com.shayu.onetoone.AppContext;
import com.lxj.xpopup.XPopup;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.BaseFragment;
@ -32,6 +33,7 @@ import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.manager.SendMessageManager;
import com.shayu.onetoone.utils.UserManager;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.http.base.HttpCallback;
@ -232,9 +234,10 @@ public class MainActivity extends AbsOTOActivity {
* 检测用户是否设置个人信息
*/
private void checkUserInfoIsSet() {
OTONetManager.getInstance(mContext).getBaseInfos(true, new com.yunbao.common.http.base.HttpCallback<com.shayu.onetoone.bean.UserBean>() {
OTONetManager.getInstance(mContext).getBaseInfos(false, new com.yunbao.common.http.base.HttpCallback<com.shayu.onetoone.bean.UserBean>() {
@Override
public void onSuccess(com.shayu.onetoone.bean.UserBean data) {
UserManager.saveUserBean(data);
if (data.getStatus() == 0) {
RouteManager.forwardCompleteActivity();
}
@ -289,7 +292,8 @@ public class MainActivity extends AbsOTOActivity {
ToastUtil.show(R.string.main_click_next_exit);
return;
}
super.onBackPressed();
//super.onBackPressed();
AppContext.exit();
}
@Subscribe(threadMode = ThreadMode.MAIN)

View File

@ -17,6 +17,7 @@ import com.shayu.onetoone.manager.RouteManager;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.List;
@ -87,7 +88,14 @@ public class MyArnActivity extends AbsOTOActivity {
RouteManager.forwardActivity(RouteManager.ACTIVITY_DIAMOND_EXCHANGE, bundle);
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.info), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
RouteManager.forwardWebViewActivity(WordUtil.getNewString(R.string.my_arnings_reward_description),
"file:android_asset/Reward_instructions.html"
);
}
});
}
private void refreshMyArn() {

View File

@ -68,7 +68,7 @@ public class WebViewActivity extends AbsOTOActivity {
finish();
return;
}
if (!url.contains("token")) {
if (!url.contains("token")&&url.startsWith("http")) {
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
url += "&uid=" + userInfo.getId() + "&token=" + userInfo.getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
}

View File

@ -106,13 +106,16 @@ public class FriendsFragment extends BaseFragment {
@Override
public void onError(int status, String msg, SendConsumeBean bean) {
super.onError(status, msg, bean);
if(status==503){
RouteManager.forwardActivity(RouteManager.ACTIVITY_MATCHING);
return;
}
int money = 100;
if (configBean != null) {
money = configBean.getMatePrice();
}
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_video_tips), money))
.setTitle(WordUtil.getNewString(R.string.gift_not_money))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.showDialog();

View File

@ -320,9 +320,12 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
private void initAuth(AuthBean data) {
if (data.getName_auth() == 2) {
authStatus.setVisibility(View.VISIBLE);
mName.setMaxEms(4);
} else {
authStatus.setVisibility(View.GONE);
mName.setMaxEms(6);
}
mName.invalidate();
}
/**
@ -345,6 +348,7 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
if (mAdapter == null) {
mAdapter = new MainMeAdapter(mContext, list);
mAdapter.setOnItemClickListener(this);
mAdapter.setList(list);
mRecyclerView.setAdapter(mAdapter);
} else {
mAdapter.setList(list);
@ -512,6 +516,9 @@ public class MyFragment extends BaseFragment implements OnItemClickListener<User
case 13:
forwardSetting();
break;
case 14:
RouteManager.forwardActivity(RouteManager.ACTIVITY_MY_ARN);
break;
}
}

View File

@ -46,6 +46,7 @@ import com.shayu.onetoone.manager.CallClientManager;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.manager.SendMessageManager;
import com.shayu.onetoone.utils.MsgCheckUtils;
import com.shayu.onetoone.view.MsgInputPanelForAudio;
import com.shayu.onetoone.view.MsgInputPanelForGift;
import com.yunbao.common.CommonAppConfig;
@ -114,7 +115,6 @@ public class ChatMessageFragment extends AbsConversationFragment {
private String token;
private static final String TAG = "聊天界面";
private MessageConsumeConfigBean configBean;
@Override
public void onDestroy() {
@ -132,7 +132,6 @@ public class ChatMessageFragment extends AbsConversationFragment {
numLayout.setVisibility(View.INVISIBLE);
initBtn();
initChat();
initPriceBean();
cameraUtil = new ProcessImageUtil(getActivity(), mContext.getPackageName() + ".fileprovider");
mRongExtension.setVisibility(View.VISIBLE);
@ -156,17 +155,23 @@ public class ChatMessageFragment extends AbsConversationFragment {
public void onError(int status, String msg) {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), msg))
.setApplyText(WordUtil.getNewString(R.string.dialog_apply))
.setOnDialogClickListener(new OnDialogClickListener() {
MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean bean, int position) {
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))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
}
});
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
} else {
ToastUtil.show(msg);
}
@ -268,43 +273,47 @@ public class ChatMessageFragment extends AbsConversationFragment {
ToastUtil.show(R.string.toast_call_not_unlock);
return;
}
if(CallClientManager.getManager().isCalling()){
if (CallClientManager.getManager().isCalling()) {
ToastUtil.show(R.string.now_call_tips);
return;
}
checkAuth(new OnSendMessageListener() {
MsgCheckUtils.checkAuth(mContext,targetId,new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
new BottomListDialog(mContext).setSelect(new OnItemClickListener<String>() {
@Override
public void onItemClick(String bean, int position) {
CallClientManager.getManager().checkMoney(targetId, true, new OnSendMessageListener() {
MsgCheckUtils.checkPrice(mContext,targetId,new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean configBean, int position) {
new BottomListDialog(mContext).setSelect(new OnItemClickListener<String>() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.VIDEO_CALL);
bundle.putString("targetId", targetId);
bundle.putString("callId", targetId);
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
}
public void onItemClick(String bean, int position) {
CallClientManager.getManager().checkMoney(targetId, true, new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.VIDEO_CALL);
bundle.putString("targetId", targetId);
bundle.putString("callId", targetId);
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
}
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_video_tips), configBean.getVideoPrice()))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.showDialog();
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_video_tips), configBean.getVideoPrice()))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.showDialog();
}
});
}
});
}
}).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_video_tips), configBean.getVideoPrice())))
.showDialog();
}).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_video_tips), configBean.getVideoPrice())))
.showDialog();
}
});
}
@ -324,44 +333,50 @@ public class ChatMessageFragment extends AbsConversationFragment {
ToastUtil.show(R.string.toast_call_not_unlock);
return;
}
if(CallClientManager.getManager().isCalling() || isFloatWindows()){
if (CallClientManager.getManager().isCalling() || isFloatWindows()) {
ToastUtil.show(R.string.now_call_tips);
return;
}
checkAuth(new OnSendMessageListener() {
MsgCheckUtils.checkAuth(mContext,targetId,new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
new BottomListDialog(mContext).setSelect(new OnItemClickListener<String>() {
@Override
public void onItemClick(String bean, int position) {
CallClientManager.getManager().checkMoney(targetId, false, new OnSendMessageListener() {
MsgCheckUtils.checkPrice(mContext,targetId,new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean configBean, int position) {
new BottomListDialog(mContext).setSelect(new OnItemClickListener<String>() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.AUDIO_CALL);
bundle.putString("targetId", targetId);
bundle.putString("callId", targetId);
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_AUDIO, bundle);
}
public void onItemClick(String bean, int position) {
CallClientManager.getManager().checkMoney(targetId, false, new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.AUDIO_CALL);
bundle.putString("targetId", targetId);
bundle.putString("callId", targetId);
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_AUDIO, bundle);
}
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_audio_tips), configBean.getMp3Price()))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.showDialog();
}
});
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_audio_tips), configBean.getMp3Price()))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.showDialog();
}
});
}
}).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_audio_tips), configBean.getMp3Price())))
.showDialog();
}
});
}
}).setStrings(Collections.singletonList(String.format(WordUtil.getNewString(R.string.chat_audio_tips), configBean.getMp3Price())))
.showDialog();
}
@Override
@ -407,17 +422,23 @@ public class ChatMessageFragment extends AbsConversationFragment {
@Override
public void onError(int status, String msg) {
super.onError(status, msg);
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_tips), msg))
.setApplyText(WordUtil.getNewString(R.string.dialog_apply))
.setOnDialogClickListener(new OnDialogClickListener() {
MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean bean, int position) {
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))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
}
});
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
}
});
}
@ -433,27 +454,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
return EasyFloat.isShow("call");
}
private void checkAuth(OnSendMessageListener listener) {
OTONetManager.getInstance(mContext)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@Override
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() {
MessageChatAuthContent content = MessageChatAuthContent.obtain("");
@ -632,7 +633,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
video.setImageResource(R.mipmap.ic_msg_video_lock);
call.setTag("true");
}
AppManager.runDebugCode(()->{
AppManager.runDebugCode(() -> {
call.setTag(null);
call.setImageResource(R.mipmap.ic_msg_call);
video.setImageResource(R.mipmap.ic_msg_video);
@ -771,43 +772,28 @@ public class ChatMessageFragment extends AbsConversationFragment {
}
}
private void initPriceBean() {
OTONetManager.getInstance(mContext)
.getMessageConsumeConfig(targetId, new HttpCallback<MessageConsumeConfigBean>() {
private void showRedPoint() {
RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE}
, false
, new RongIMClient.ResultCallback<Integer>() {
@Override
public void onSuccess(MessageConsumeConfigBean data) {
configBean = data;
public void onSuccess(Integer integer) {
Integer tmp = integer + MsgMessageFragment.systemPoint;
if (tmp <= 0) {
numLayout.setVisibility(View.INVISIBLE);
return;
}
numLayout.setVisibility(View.VISIBLE);
num.setText(tmp + "");
}
@Override
public void onError(String error) {
public void onError(RongIMClient.ErrorCode e) {
}
});
}
private void showRedPoint() {
RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE}
,false
,new RongIMClient.ResultCallback<Integer>() {
@Override
public void onSuccess(Integer integer) {
Integer tmp = integer + MsgMessageFragment.systemPoint;
if (tmp <= 0) {
numLayout.setVisibility(View.INVISIBLE);
return;
}
numLayout.setVisibility(View.VISIBLE);
num.setText(tmp + "");
}
@Override
public void onError(RongIMClient.ErrorCode e) {
}
});
}
@Subscribe
public void moneyEvent(MoneyUpdateEvent event) {
if (giftPanel != null) {

View File

@ -558,7 +558,7 @@ public class CallVideoActivity extends AbsOTOActivity {
//
@Override
public void onCallEnd() {
if (!sessionId.equals(targetId)){
if (sessionId!=null&&!sessionId.equals(targetId)){
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.VIDEO_CALL);
bundle.putString("targetId", targetId);

View File

@ -114,7 +114,7 @@ public class SettingActivity extends AbsActivity {
@SuppressLint("SetTextI18n")
private void intiData() {
versionCode.setText(VersionUtil.getVersion());
versionCode.setText(VersionUtil.getVersion()+"("+VersionUtil.getVersionCode()+")");
cacheSize.setText(GlideCatchUtil.getInstance().getCacheSize());
}

View File

@ -87,12 +87,7 @@ public class HomeRankListAdapter extends RecyclerView.Adapter<HomeRankListAdapte
private void setData(HomeRankBean bean, int position) {
rank.setText(position + 4 + "");
if (bean.getUserNicename().length() > 5) {
user_name.setText(bean.getUserNicename().substring(0, 4) + "...");
} else {
user_name.setText(bean.getUserNicename());
}
user_name.setText(bean.getUserNicename());
level.setText("Lv." + bean.getLevel());
money.setText(bean.getMoney());
@ -102,7 +97,7 @@ public class HomeRankListAdapter extends RecyclerView.Adapter<HomeRankListAdapte
sex.setImageResource(R.mipmap.ic_message_tab_woman);
}
if (bean.isFollow()) {
follow.setVisibility(View.GONE);
follow.setVisibility(View.INVISIBLE);
} else {
follow.setVisibility(View.VISIBLE);
}

View File

@ -44,7 +44,7 @@ public class MessageInteractionConversationListAdapter extends MessageListAdapte
holder.setText(R.id.text, bean.getUser_nicename());
holder.setText(R.id.time, new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault()).format(new Date(bean.getAddtime() * 1000)));
ImgLoader.display(holder.getContext(), bean.getAvatar(), holder.getView(R.id.ico));
ImgLoader.display(holder.getContext(), bean.getAvatar(), holder.getView(R.id.img_item_interaction));
//ImgLoader.display(holder.getContext(), bean.getAvatar(), holder.getView(R.id.img_item_interaction));//右侧头像
}
}

View File

@ -37,6 +37,10 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
}
public void setList(List<GreetBean> mList) {
if(mList.isEmpty()){
GreetBean bean=new GreetBean();
mList.add(bean);
}
this.mList = mList;
notifyDataSetChanged();
}
@ -83,6 +87,7 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
public void clear() {
mList.clear();
mList.add(new GreetBean());
notifyDataSetChanged();
}
@ -118,6 +123,7 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
if (bean.getContent() == null) {
editText.setEnabled(true);
editText.setText("");
editText.requestFocus();
} else {
editText.setText(bean.getContent());
editText.setEnabled(false);
@ -126,7 +132,7 @@ public class MsgGreetConfigAdapter extends RecyclerView.Adapter<MsgGreetConfigAd
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus && editText.getText().toString().length() > 0) {
if (!hasFocus && editText.getText().toString().length() > 0 && mList.size() > position) {
mList.get(position).setContent(editText.getText().toString());
editText.setEnabled(false);
}

View File

@ -69,12 +69,12 @@ public class UserBean extends BaseModel {
private int b_y;
private int b_ym;
private String b_ymd;
private int name_auth;//1 未提交 2 已认证 3已提交
private int name_auth;//1 未提交 2 已认证 3已提交 4被驳回
private long name_auth_time;
private String auth_front;
private String auth_back;
private String auth_remark;
private int sage_auth;
private int sage_auth;//1 未提交 2 已认证 3已提交 4被驳回
private long sage_auth_time;
private int is_hot;
private String vodie_price;

View File

@ -7,8 +7,12 @@ import androidx.annotation.NonNull;
import com.lxj.xpopup.core.AttachPopupView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.UserBean;
import com.shayu.onetoone.event.MessageMsgBusEvent;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.utils.UserManager;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
/**
@ -33,6 +37,10 @@ public class MsgMoreDialog extends AttachPopupView implements View.OnClickListen
read = findViewById(R.id.ll_read);
config.setOnClickListener(this);
read.setOnClickListener(this);
UserBean bean = UserManager.getUserBean();
if (bean.getInfo().getSage_auth()!=2) {
config.setVisibility(GONE);
}
}
@Override

View File

@ -50,7 +50,7 @@ public class CallClientManager {
public static final String AUDIO_FLOAT = "audioFloatWindow";//浮窗
private static CallClientManager manager;
private SurfaceView localVideo, remoteVideo;
private Map<Class,OnCallStatusListener> listeners;
private Map<Class, OnCallStatusListener> listeners;
private CallTimeTask timeTask = null;
public static CallClientManager getManager() {
@ -84,8 +84,8 @@ public class CallClientManager {
RongCallClient.setReceivedCallListener(new CallMeListener());
}
public void addOnVoIPCallListener(Class zlass,OnCallStatusListener statusListener) {
listeners.put(zlass,statusListener);
public void addOnVoIPCallListener(Class zlass, OnCallStatusListener statusListener) {
listeners.put(zlass, statusListener);
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
@ -96,7 +96,7 @@ public class CallClientManager {
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(null);
@ -104,7 +104,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@ -112,7 +112,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@ -150,14 +150,14 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(targetId);
@ -165,7 +165,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@ -173,7 +173,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@ -187,14 +187,14 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(targetId);
@ -202,7 +202,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@ -210,7 +210,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@ -244,7 +244,7 @@ public class CallClientManager {
public String getSessionId() {
RongCallSession callSession = RongCallClient.getInstance().getCallSession();
if(callSession==null){
if (callSession == null) {
return "";
}
return callSession.getCallerUserId();
@ -265,7 +265,8 @@ public class CallClientManager {
@Override
public boolean cancel() {
if (sessionId.equals(targetId)) {
long id = IMLoginManager.get(CommonAppContext.sInstance).getUserInfo().getId();
if (sessionId.equals(targetId) || !sessionId.equals(id + "")) {
System.err.println("接听方不计费 结束");
return super.cancel();
}
@ -309,7 +310,7 @@ public class CallClientManager {
extra = String.format(Locale.ROOT, "%02d:%02d", (time % 3600) / 60, (time % 60));
}
handler.post(() -> {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTime(extra);
if (warningTime <= 60) {
listener.onTimeWarning(warningTime--);
@ -355,7 +356,7 @@ public class CallClientManager {
warningTime = bean.getMp3Time();
}
if (warningTime <= 60) {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTimeWarning(warningTime);
}
}
@ -365,7 +366,7 @@ public class CallClientManager {
public void onError(int status, String msg) {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
for (OnCallStatusListener listener : listeners.values()) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onErrorNotPrice(msg);
}
endCall();
@ -553,12 +554,12 @@ public class CallClientManager {
* 如果对端调用{@link RongCallClient#startCall(int, boolean, Conversation.ConversationType, String, List, List, RongCallCommon.CallMediaType, String, StartCameraCallback)}
* {@link RongCallClient#acceptCall(String, int, boolean, StartCameraCallback)}开始的音视频通话则可以使用如下设置改变对端视频流的镜像显示<br />
* <pre class="prettyprint">
* public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
* if (null != remoteVideo) {
* ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
* }
* }
* </pre>
* public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
* if (null != remoteVideo) {
* ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
* }
* }
* </pre>
*/
@Override
public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {

View File

@ -72,6 +72,10 @@ public class SendMessageManager {
}
public static void pingVideoMessage(String toUid, String time, OnSendMessageListener listener) {
if ("0".equals(time)) {
listener.onError(504,"时间错误");
return;
}
SendData sendData = new SendData(toUid,
2,
"not",
@ -135,7 +139,7 @@ public class SendMessageManager {
@Override
public void onSuccess(SendConsumeBean consumeBean) {
if (consumeBean.getCode() != 0) {
if (consumeBean.getCode() == 500) {
if (consumeBean.getCode() == 503 || consumeBean.getCode()==500) {
messageListener.onError(OnSendMessageListener.STATUS_NOT_PRICE, consumeBean.getMsg(), consumeBean);
} else {
messageListener.onError(OnSendMessageListener.STATUS_ERROR, consumeBean.getMsg(), consumeBean);

View File

@ -22,6 +22,7 @@ import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.ToastUtil;
import java.util.Collections;
@ -133,13 +134,15 @@ public class OTOCallEndMessageItemProvider extends CallEndMessageItemProvider {
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 {
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

View File

@ -0,0 +1,52 @@
package com.shayu.onetoone.utils;
import android.content.Context;
import android.util.Log;
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
import com.shayu.onetoone.bean.UserBean;
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.AppManager;
public class MsgCheckUtils {
public static void checkPrice(Context mContext,String targetId,OnItemClickListener<MessageConsumeConfigBean> listener) {
OTONetManager.getInstance(mContext)
.getMessageConsumeConfig(targetId, new HttpCallback<MessageConsumeConfigBean>() {
@Override
public void onSuccess(MessageConsumeConfigBean data) {
listener.onItemClick(data, 0);
}
@Override
public void onError(String error) {
}
});
}
public static void checkAuth(Context mContext,String targetId,OnSendMessageListener listener) {
OTONetManager.getInstance(mContext)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@Override
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(), "當前正在審核中,請耐心等待");
}else {
listener.onError(data.getInfo().getName_auth(), "");
}
AppManager.runDebugCode(() -> {
//listener.onSuccess("", null);
});
}
@Override
public void onError(String error) {
Log.e("ChatAuth", "onError: " + error);
}
});
}
}

View File

@ -0,0 +1,19 @@
package com.shayu.onetoone.utils;
import com.alibaba.fastjson.JSONObject;
import com.shayu.onetoone.bean.UserBean;
import com.yunbao.common.utils.SpUtil;
public class UserManager {
public static UserBean userBean;
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;
SpUtil.setStringValue("oto_user_info", JSONObject.toJSONString(bean));
}
}

View File

@ -13,11 +13,14 @@ import android.widget.Toast;
import com.blankj.utilcode.util.PermissionUtils;
import com.shayu.onetoone.R;
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
import com.shayu.onetoone.bean.SendConsumeBean;
import com.shayu.onetoone.dialog.TipsDialog;
import com.shayu.onetoone.listener.OnDialogClickListener;
import com.shayu.onetoone.listener.OnSendMessageListener;
import com.shayu.onetoone.manager.SendMessageManager;
import com.shayu.onetoone.utils.MsgCheckUtils;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
@ -143,16 +146,22 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
AudioRecordManager.getInstance().stopRecord();
isAudio = false;
mUpDirection = false;
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_text_tips), msg))
.setOnDialogClickListener(new OnDialogClickListener() {
MsgCheckUtils.checkPrice(mContext, targetId, new OnItemClickListener<MessageConsumeConfigBean>() {
@Override
public void onItemClick(MessageConsumeConfigBean bean, int position) {
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
.setContent(String.format(WordUtil.getNewString(R.string.not_money_text_tips), bean.getPrice()))
.setOnDialogClickListener(new OnDialogClickListener() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
}
});
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
} else {
ToastUtil.show(msg);
}

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#fff1f1f1" />
<corners android:radius="23dp" />
</shape>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_my_arn_exchange2" android:state_enabled="true"/>
<item android:drawable="@drawable/button_my_arn_exchange3" android:state_enabled="false"/>
</selector>

View File

@ -277,7 +277,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="@string/next_step_is_consent"
android:textColor="#ffb1b1b1"
android:textColor="#FFFFFF"
android:textSize="10sp" />
@ -295,7 +295,7 @@
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:text="@string/and"
android:textColor="#ffb1b1b1"
android:textColor="#FFFFFF"
android:textSize="10sp" />
<TextView

View File

@ -30,6 +30,7 @@
android:textSize="18sp" />
<TextView
android:id="@+id/info"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
@ -249,10 +250,17 @@
android:textColor="#A279E4"
android:textSize="14sp" />
<Button
android:background="@drawable/button_my_arn_exchange_btn"
android:enabled="false"
android:text="@string/my_arnings_wait"
android:layout_gravity="end"
android:layout_width="151dp"
android:layout_height="42dp"/>
<LinearLayout
android:layout_width="151dp"
android:layout_height="42dp"
android:visibility="gone"
android:layout_gravity="end"
android:background="@drawable/button_my_arn_exchange2"
android:gravity="center"
@ -277,6 +285,7 @@
android:gravity="center"
android:paddingStart="15dp"
android:paddingEnd="15dp"
android:visibility="gone"
android:singleLine="true"
android:text="@string/my_arnings_incentive_withdrawal_minimum"
android:textColor="@color/white"

View File

@ -160,6 +160,7 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingTop="10dp"
android:visibility="gone"
android:paddingBottom="10dp">
<TextView

View File

@ -127,7 +127,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxEms="5"
android:maxEms="4"
android:singleLine="true"
tools:text="啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
android:text="@string/layout_f_my_tips1"

View File

@ -50,7 +50,7 @@
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_gravity="center"
app:srcCompat="@mipmap/ic_drill" />
app:srcCompat="@mipmap/diamond" />
<TextView
android:id="@+id/money"

View File

@ -102,7 +102,7 @@
android:layout_width="10dp"
android:layout_height="12dp"
android:layout_marginStart="5dp"
app:srcCompat="@mipmap/ic_home_hot_woman" />
app:srcCompat="@mipmap/icon_level" />
<TextView
android:id="@+id/level"
@ -131,7 +131,7 @@
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="center"
app:srcCompat="@mipmap/ic_drill" />
app:srcCompat="@mipmap/diamond" />
<TextView
android:id="@+id/money"

View File

@ -88,6 +88,7 @@
<ImageView
android:id="@+id/img_item_interaction"
android:visibility="gone"
android:layout_width="60dp"
android:layout_height="60dp"
android:scaleType="centerCrop" />

View File

@ -44,7 +44,7 @@
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="center"
app:srcCompat="@mipmap/ic_drill" />
app:srcCompat="@mipmap/diamond" />
<TextView
android:id="@+id/money"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

@ -28,6 +28,7 @@
<string name="my_arnings_total_convertibility">可兌換總額</string>
<string name="my_arnings_gold_coin">金幣</string>
<string name="my_arnings_toggle">切換</string>
<string name="my_arnings_wait">敬請期待</string>
<string name="diamond_exchange_input_hint">請輸入需兌換的星幣金額</string>
<string name="diamond_exchange_immediate_exchange">立即兌換</string>
<string name="diamond_exchange_full_conversion">全額兌換</string>
@ -35,11 +36,11 @@
<string name="choose_img_max">最多選&#160;%1$s&#160;張圖片哦</string>
<string name="view_friend_empty_text">暫無好友消息~</string>
<string name="not_money">餘額不足</string>
<string name="not_money_tips">文字聊天每條續消耗%s,您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_tips">文字聊天每條續消耗%s星幣,您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_video_tips">與TA視頻聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_audio_tips">與TA語音聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_text_tips">聊天每條續消耗%s,您可通過充值獲取更多星幣以便繼續聊天</string>
<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>

View File

@ -28,6 +28,7 @@
<string name="my_arnings_total_convertibility">可兌換總額</string>
<string name="my_arnings_gold_coin">金幣</string>
<string name="my_arnings_toggle">切換</string>
<string name="my_arnings_wait">敬請期待</string>
<string name="diamond_exchange_input_hint">請輸入需兌換的星幣金額</string>
<string name="diamond_exchange_immediate_exchange">立即兌換</string>
<string name="diamond_exchange_full_conversion">全額兌換</string>
@ -35,11 +36,11 @@
<string name="choose_img_max">最多選&#160;%1$s&#160;張圖片哦</string>
<string name="view_friend_empty_text">暫無好友消息~</string>
<string name="not_money">餘額不足</string>
<string name="not_money_tips">文字聊天每條續消耗%s,您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_tips">文字聊天每條續消耗%s星幣,您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_video_tips">與TA視頻聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_audio_tips">與TA語音聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_text_tips">聊天每條續消耗%s,您可通過充值獲取更多星幣以便繼續聊天</string>
<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>

View File

@ -28,6 +28,7 @@
<string name="my_arnings_total_convertibility">可兌換總額</string>
<string name="my_arnings_gold_coin">金幣</string>
<string name="my_arnings_toggle">切換</string>
<string name="my_arnings_wait">敬請期待</string>
<string name="diamond_exchange_input_hint">請輸入需兌換的星幣金額</string>
<string name="diamond_exchange_immediate_exchange">立即兌換</string>
<string name="diamond_exchange_full_conversion">全額兌換</string>
@ -36,12 +37,12 @@
<string name="view_friend_empty_text">friend empty</string>
<string name="not_money">餘額不足</string>
<string name="not_money_tips">"文字聊天每條續消耗%s,您可通過充值獲取更多星幣以便繼續聊天"</string>
<string name="not_money_tips">"文字聊天每條續消耗%s星幣,您可通過充值獲取更多星幣以便繼續聊天"</string>
<string name="not_money_video_tips">與TA視頻聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_audio_tips">與TA語音聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天</string>
<string name="not_money_text_tips">聊天每條續消耗%s,您可通過充值獲取更多星幣以便繼續聊天</string>
<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>
@ -73,7 +74,7 @@
<string name="dialog_normal_title">首次匹配成功獎勵</string>
<string name="dialog_normal_content">恭喜獲得</string>
<string name="title_greet_config">打招呼設置</string>
<string name="title_audit_config">審核中,請耐心等待审核通过</string>
<string name="title_audit_config">審核中,請耐心等待審核通過</string>
<string name="title_audit_config2">已發起審核,請耐心等待審核結果</string>
<string name="title_audit_config3">審核失敗,去提交</string>
<string name="title_audit_config4">審核中</string>
@ -114,8 +115,8 @@
<string name="layout_auth_tips4">身份證背面</string>
<string name="layout_auth_tips5">發起審核</string>
<string name="layout_auth_blogger_tips1">带*为必填项,為保障您的利益,請如實填寫</string>
<string name="layout_auth_blogger_tips2"></string>
<string name="layout_auth_blogger_tips1">帶*為必填項,為保障您的利益,請如實填寫</string>
<string name="layout_auth_blogger_tips2"></string>
<string name="layout_auth_blogger_tips3"></string>
<string name="layout_auth_blogger_tips4"></string>
<string name="layout_auth_blogger_tips5">真實姓名</string>
@ -132,7 +133,7 @@
<string name="layout_auth_blogger_inlet_tips1">真人說明</string>
<string name="layout_auth_blogger_inlet_tips2">請上傳您的身份證正反面完成真人認證,完成認證可獲得跟多消息推送並提高聊天,收禮的收益比例</string>
<string name="layout_auth_blogger_inlet_tips3">條件一:完真人認證 </string>
<string name="layout_auth_blogger_inlet_tips3">條件一:完真人認證 </string>
<string name="layout_auth_blogger_inlet_tips4">已完成</string>
<string name="layout_auth_blogger_inlet_tips5">條件二:上傳入駐資料 </string>
<string name="layout_auth_blogger_inlet_tips6">已完成</string>
@ -253,12 +254,12 @@
<string name="layout_v_greet_config_add_tips1">添加更多</string>
<string name="layout_v_custom_tips1">保存</string>
<string name="activity_my_friend_list_fans">被關</string>
<string name="activity_my_friend_list_fans">被關</string>
<string name="activity_my_friend_list_follow">關注</string>
<string name="activity_my_friend_list_friend">互動關</string>
<string name="activity_my_friend_list_friend">互動關</string>
<string name="activity_my_friend_list_people"></string>
<string name="activity_my_friend_list_item_0">未關</string>
<string name="activity_my_friend_list_item_0">未關</string>
<string name="activity_my_friend_list_item_1">回關</string>
<string name="activity_my_friend_list_item_2">已關注</string>
<string name="activity_my_friend_list_item_3">相互關注</string>
@ -269,8 +270,8 @@
<string name="dialog_call_prop_apply">收下獎勵</string>
<string name="toast_call_not_unlock">發送任意禮物后即可解鎖</string>
<string name="gift_not_money">余额不足,请充值后再进行尝试吧~</string>
<string name="end_of_the_call">话结</string>
<string name="end_resume_call_not_auth">对方未完成真人认证,暂时无法向对方发起通话</string>
<string name="gift_not_money">餘額不足,請充值后再進行嘗試吧~</string>
<string name="end_of_the_call">話結</string>
<string name="end_resume_call_not_auth">對方未完成真人認證,暫時無法向對方發起通話</string>
<string name="now_call_tips">您當前正在通話中,請掛斷後再試</string>
</resources>

View File

@ -64,6 +64,15 @@ public class ProcessImageUtil extends ProcessResultUtil {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
mCameraPermissions = new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.CAMERA
};
mAlumbPermissions = new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
};
}
mCameraPermissionCallback = new Runnable() {
@Override
public void run() {

View File

@ -172,4 +172,14 @@ public class VersionUtil {
return sVersion;
}
public static String getVersionCode() {
try {
PackageManager manager = CommonAppContext.sInstance.getPackageManager();
PackageInfo info = manager.getPackageInfo(CommonAppContext.sInstance.getPackageName(), 0);
return info.versionCode+"";
} catch (Exception e) {
e.printStackTrace();
}
return "NUL";
}
}