From 430c24db055beefe2fa1f3fb68de443006bf2a6b Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Thu, 26 Oct 2023 18:06:46 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B5=8B=E8=AF=95=E5=8F=8D?= =?UTF-8?q?=E9=A6=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../onetoone/activity/MatchingActivity.java | 84 ++++++++++++------- .../onetoone/activity/WebViewActivity.java | 14 +++- .../activity/fragments/DynamicFragment.java | 77 ++++++++++++++++- .../message/ChatMessageFragment.java | 1 + .../activity/login/FindPwdActivity.java | 4 + .../activity/login/LoginActivity.java | 36 ++------ .../activity/setting/ModifyPwdActivity.java | 2 +- .../com/shayu/onetoone/bean/PropBean.java | 5 ++ .../onetoone/manager/CallClientManager.java | 1 + .../src/main/res/layout/fragment_dynamic.xml | 15 ++-- .../main/res/layout/fragment_home_ranking.xml | 3 - .../main/res/layout/item_home_recommend.xml | 2 + .../com/yunbao/common/utils/WordUtil.java | 2 +- 13 files changed, 173 insertions(+), 73 deletions(-) diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/MatchingActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/MatchingActivity.java index 4df201b02..b46d76ef8 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/MatchingActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/MatchingActivity.java @@ -32,6 +32,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Timer; import java.util.TimerTask; +import java.util.UUID; @Route(path = RouteManager.ACTIVITY_MATCHING) public class MatchingActivity extends AbsOTOActivity { @@ -81,31 +82,17 @@ public class MatchingActivity extends AbsOTOActivity { imageViewList.add(user4); imageViewList.add(user5); back.setOnClickListener(v -> { - new TipsDialog(mContext) - .setTitle(WordUtil.getNewString(R.string.matching_quit_title)) - .setApplyText(WordUtil.getNewString(R.string.matching_quit_cancel)) - .setCancelText(WordUtil.getNewString(R.string.matching_quit_apply)) - .setOnDialogClickListener(new OnDialogClickListener() { - @Override - public void onCancel(Dialog dialog) { - super.onCancel(dialog); - task.cancel(); - task = null; - MatchingActivity.this.finish(); - } - }).showDialog(); + onBack(); }); Bundle bundle = getIntent().getExtras(); if (bundle != null) { String data = bundle.getString("data"); - bundle.putInt("type",ChatActivity.CALL_CHAT_TYPE_MATCH); + bundle.putInt("type", ChatActivity.CALL_CHAT_TYPE_MATCH); if (data != null) { - SendConsumeBean bean = JSONObject.parseObject(data, SendConsumeBean.class); + bean = JSONObject.parseObject(data, SendConsumeBean.class); if (bean != null) { - new Handler(Looper.getMainLooper()).postDelayed(() -> { - ConversationUtils.startConversation(mContext, bean.getMateUser().getUser().getId() + "", bundle); - MatchingActivity.this.finish(); - }, 5000); + MatchingActivity.this.bundle=bundle; + new Handler(Looper.getMainLooper()).postDelayed(toCallRunnable, 5000); return false; } } @@ -113,6 +100,26 @@ public class MatchingActivity extends AbsOTOActivity { return true; } + private void onBack() { + new TipsDialog(mContext) + .setTitle(WordUtil.getNewString(R.string.matching_quit_title)) + .setApplyText(WordUtil.getNewString(R.string.matching_quit_cancel)) + .setCancelText(WordUtil.getNewString(R.string.matching_quit_apply)) + .setOnDialogClickListener(new OnDialogClickListener() { + @Override + public void onCancel(Dialog dialog) { + super.onCancel(dialog); + bean = null; + handler.removeCallbacks(toCallRunnable); + if (task != null) { + task.cancel(); + task = null; + } + MatchingActivity.this.finish(); + } + }).showDialog(); + } + private void initData() { OTONetManager.getInstance(mContext) .getMatchingInfo(new HttpCallback() { @@ -132,20 +139,32 @@ public class MatchingActivity extends AbsOTOActivity { }); } + private Bundle bundle; + private Runnable toCallRunnable = new Runnable() { + @Override + public void run() { + if (bean == null) { + return; + } + ConversationUtils.startConversation(mContext, bean.getMateUser().getUser().getId() + "", bundle); + MatchingActivity.this.finish(); + } + }; + SendConsumeBean bean; + private void call() { handler.post(() -> ToastUtil.showDebug("匹配")); SendMessageManager.matching(new OnSendMessageListener() { @Override - public void onSuccess(String token, SendConsumeBean bean) { - super.onSuccess(token, bean); + public void onSuccess(String token, SendConsumeBean b) { + super.onSuccess(token, b); + bean = b; task.cancel(); - new Handler(Looper.getMainLooper()).postDelayed(() -> { - Bundle bundle = new Bundle(); - bundle.putInt("type",ChatActivity.CALL_CHAT_TYPE_MATCH); - bundle.putString("data", JSONObject.toJSONString(bean)); - ConversationUtils.startConversation(mContext, bean.getMateUser().getUser().getId() + "", bundle); - MatchingActivity.this.finish(); - }, 5000); + Bundle bundle = new Bundle(); + bundle.putInt("type", ChatActivity.CALL_CHAT_TYPE_MATCH); + bundle.putString("data", JSONObject.toJSONString(bean)); + MatchingActivity.this.bundle = bundle; + handler.postDelayed(toCallRunnable, 5000); } @Override @@ -153,7 +172,7 @@ public class MatchingActivity extends AbsOTOActivity { super.onError(status, msg, bean); if (bean.getCode() == 503) { handler.post(() -> ToastUtil.showDebug("没人,继续")); - }else if(status==OnSendMessageListener.STATUS_NOT_PRICE){ + } else if (status == OnSendMessageListener.STATUS_NOT_PRICE) { task.cancel(); handler.post(() -> ToastUtil.showDebug("价格不足")); MatchingActivity.this.finish(); @@ -186,6 +205,8 @@ public class MatchingActivity extends AbsOTOActivity { @Override public void onApply(Dialog dialog) { super.onApply(dialog); + bean = null; + handler.removeCallbacks(toCallRunnable); task.cancel(); task = null; MatchingActivity.this.finish(); @@ -203,4 +224,9 @@ public class MatchingActivity extends AbsOTOActivity { return super.cancel(); } } + + @Override + public void onBackPressed() { + onBack(); + } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java index 54f081ef6..81c6888ee 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/WebViewActivity.java @@ -21,11 +21,14 @@ import com.alibaba.android.arouter.facade.annotation.Route; 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.manager.IMLoginManager; import com.yunbao.common.utils.AndroidBug5497Workaround; 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 androidx.annotation.RequiresApi; @@ -60,7 +63,16 @@ public class WebViewActivity extends AbsOTOActivity { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } - webView.loadUrl(getIntent().getStringExtra("url")); + String url = getIntent().getStringExtra("url"); + if(StringUtil.isEmpty(url)){ + finish(); + return; + } + if (!url.contains("token")) { + IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); + url += "&uid=" + userInfo.getId() + "&token=" + userInfo.getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"); + } + webView.loadUrl(url); AndroidBug5497Workaround.assistActivity(this); webView.setWebViewClient(new WebViewClient() { diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/DynamicFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/DynamicFragment.java index d44964874..6dc32dab8 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/DynamicFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/DynamicFragment.java @@ -1,25 +1,98 @@ package com.shayu.onetoone.activity.fragments; +import static android.content.Context.CLIPBOARD_SERVICE; + +import android.content.ClipData; +import android.content.ClipboardManager; +import android.os.Build; import android.os.Bundle; +import android.text.TextUtils; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.webkit.WebResourceRequest; +import android.webkit.WebResourceResponse; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; import com.shayu.onetoone.R; +import com.yunbao.common.CommonAppConfig; +import com.yunbao.common.Constants; +import com.yunbao.common.bean.IMLoginModel; +import com.yunbao.common.manager.IMLoginManager; +import com.yunbao.common.utils.AndroidBug5497Workaround; +import com.yunbao.common.utils.JavascriptInterfaceUtils; +import com.yunbao.common.utils.L; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.WordUtil; /** * 动态主页面 */ public class DynamicFragment extends BaseFragment { + private WebView webView; @Override public void initView(View itemView) { + webView = itemView.findViewById(R.id.webView); + WebSettings settings = webView.getSettings(); + settings.setJavaScriptEnabled(true); // 是否开启JS支持 + settings.setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口 + settings.setDomStorageEnabled(true); + webView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext(getActivity(), webView) + .setPageClose(true) + .setLiveZhuangBana(false), "androidObject"); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { + settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); + } + AndroidBug5497Workaround.assistActivity(getActivity()); + webView.setWebViewClient(new WebViewClient() { + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + Log.e("H5-------->" , url); + if (url.startsWith(Constants.COPY_PREFIX)) { + String content = url.substring(Constants.COPY_PREFIX.length()); + if (!TextUtils.isEmpty(content)) { + copy(content); + } + } else { + view.loadUrl(url); + } + return true; + } + + @Override + public void onPageFinished(WebView view, String url) { + int height = view.getMeasuredHeight(); + Log.e("网页高度", height + ""); + } + + @Override + public void onReceivedHttpError(WebView view, WebResourceRequest request, WebResourceResponse errorResponse) { + super.onReceivedHttpError(view, request, errorResponse); + } + }); + IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo(); + String url=CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ?stack-key-1=698c5f85%20&uid=" + + userInfo.getId() + "&token=" + userInfo.getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0"); + Log.i("Web",url); + webView.loadUrl(url); + } + /** + * 复制到剪贴板 + */ + private void copy(String content) { + ClipboardManager cm = (ClipboardManager) getActivity().getSystemService(CLIPBOARD_SERVICE); + ClipData clipData = ClipData.newPlainText("text", content); + cm.setPrimaryClip(clipData); + ToastUtil.show(getString(R.string.copy_success)); } - @Override public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - return inflater.inflate(R.layout.fragment_dynamic, container, false); + return inflater.inflate(R.layout.fragment_dynamic, container, false); } } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java index e9a10a7e2..07400bc76 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java @@ -152,6 +152,7 @@ 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), msg)) + .setApplyText(WordUtil.getNewString(R.string.dialog_apply)) .setOnDialogClickListener(new OnDialogClickListener() { @Override diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/FindPwdActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/FindPwdActivity.java index 359195068..b9f807783 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/FindPwdActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/FindPwdActivity.java @@ -24,6 +24,7 @@ import com.sahooz.library.Country; import com.sahooz.library.CountryPicker; import com.sahooz.library.OnPick; import com.shayu.onetoone.R; +import com.shayu.onetoone.manager.RouteManager; import com.shayu.onetoone.utils.MainHttpUtil; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.activity.AbsActivity; @@ -365,6 +366,7 @@ public class FindPwdActivity extends AbsActivity { String uid = obj.getString("id"); String token = obj.getString("token"); IMLoginModel model = GsonUtils.fromJson(info[0], IMLoginModel.class); + IMLoginManager.get(mContext).setupLoginUser(model); CommonAppConfig.getInstance().setLoginInfo(uid, token, true); getBaseUserInfo(); } else { @@ -394,6 +396,8 @@ public class FindPwdActivity extends AbsActivity { mDialog.dismiss(); } if (bean != null) { + RouteManager.forwardMainActivity(); + finish(); // MainActivity.forward(mContext); // EventBus.getDefault().post(new RegSuccessEvent()); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java index ffe2440f1..b843099b1 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/login/LoginActivity.java @@ -1,7 +1,5 @@ package com.shayu.onetoone.activity.login; -import static com.yunbao.common.CommonAppContext.home_zdy_img_cn; -import static com.yunbao.common.CommonAppContext.home_zdy_img_us; import android.animation.ObjectAnimator; import android.app.Activity; @@ -286,33 +284,13 @@ public class LoginActivity extends AbsOTOActivity { @Override public void onSuccess(com.shayu.onetoone.bean.UserBean data) { RongcloudIMManager.connectIM(mContext); - OTONetManager.getInstance(mContext).getRandJoinAnchor(new com.yunbao.common.http.base.HttpCallback() { - @Override - public void onSuccess(JoinAnchorBean data) { - if (mFirstLogin) { - IMLoginManager.get(mContext).setNewUserGif(true); - IMLoginManager.get(mContext).setisNewUserOne(true); -// MainActivity.forward(EntryActivity.this, false); - if (!StringUtil.isEmpty(data.getHome_zdy_img_us())) { - home_zdy_img_us = data.getHome_zdy_img_us(); - home_zdy_img_cn = data.getHome_zdy_img_cn(); - } - if (!StringUtil.isEmpty(data.getHome_zdy_pop())) { - NoviceInstructorManager.get(mContext).setHomeZdyPop(data.getHome_zdy_pop()); - } - IMLoginManager.get(mContext).setisNewUserOne(true); - IMLoginManager.get(mContext).setNewUserGif(true); - } - loadingDialog.dismiss(); - RouteManager.forwardMainActivity(); - finish(); - } - - @Override - public void onError(String error) { - ToastUtil.show(error); - } - }); + if (mFirstLogin) { + IMLoginManager.get(mContext).setNewUserGif(true); + IMLoginManager.get(mContext).setisNewUserOne(true); + } + loadingDialog.dismiss(); + RouteManager.forwardMainActivity(); + finish(); } @Override diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/ModifyPwdActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/ModifyPwdActivity.java index bacfc3b2e..72723a9d8 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/ModifyPwdActivity.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/ModifyPwdActivity.java @@ -79,7 +79,7 @@ public class ModifyPwdActivity extends AbsActivity implements View.OnClickListen @Override public void onError(String error) { - + ToastUtil.show(error); } }); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/PropBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/PropBean.java index c0c64cb6e..3d73ea984 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/bean/PropBean.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/PropBean.java @@ -1,15 +1,20 @@ package com.shayu.onetoone.bean; +import com.google.gson.annotations.SerializedName; import com.yunbao.common.bean.BaseModel; public class PropBean extends BaseModel { int id; + @SerializedName("cn_title") String cnTitle; + @SerializedName("en_title") String enTitle; String icon; int status; int type; + @SerializedName("create_time") long createTime; + @SerializedName("update_time") long updateTime; String callback; long exTime; diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java index 559633d6f..1a122dd9a 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/CallClientManager.java @@ -17,6 +17,7 @@ import com.yunbao.common.CommonAppContext; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.faceunity.FaceManager; import java.util.ArrayList; import java.util.HashMap; diff --git a/OneToOne/src/main/res/layout/fragment_dynamic.xml b/OneToOne/src/main/res/layout/fragment_dynamic.xml index cb41134fd..324c00abd 100644 --- a/OneToOne/src/main/res/layout/fragment_dynamic.xml +++ b/OneToOne/src/main/res/layout/fragment_dynamic.xml @@ -3,13 +3,14 @@ android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> -