修复测试反馈问题

This commit is contained in:
zlzw 2023-10-30 18:25:16 +08:00
parent f36c4706e4
commit 9aa8b22d99
40 changed files with 694 additions and 206 deletions

View File

@ -83,13 +83,19 @@ android {
}
}
applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "[${new Date().format("MM-dd", TimeZone.getTimeZone("GMT+8"))}]1v1社交-${rootProject.ext.android.otoversionName}-${variant.buildType.name}.apk"
}
}
defaultConfig {
applicationId "com.shayu.onetoonenew"
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.versionCode
versionName rootProject.ext.android.versionName
versionCode rootProject.ext.android.otoversionCode
versionName rootProject.ext.android.otoversionName
manifestPlaceholders = rootProject.ext.manifestPlaceholders
ndk {
abiFilters "armeabi-v7a", "arm64-v8a"
@ -111,6 +117,12 @@ android {
storeFile file('../hdl.jks')
storePassword 'phonelive'
}
debug {
keyAlias 'phonelive'
keyPassword 'phonelive'
storeFile file('../hdl.jks')
storePassword 'phonelive'
}
//
config {//TODO BEAUTYSDK keystore相关信息
keyAlias 'phonelive'

View File

@ -119,12 +119,15 @@
android:exported="true" />
<activity
android:name=".activity.MainActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:exported="false" />
<activity
android:name=".activity.message.MsgMoreGreetConfigActivity"
android:exported="false" />
<activity
android:name=".activity.message.ChatActivity"
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.login.LoginActivity"
@ -171,7 +174,7 @@
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.EndCallActivity"
android:launchMode="singleInstance"
android:launchMode="singleTask"
android:windowSoftInputMode="stateHidden|adjustResize" />
<activity
android:name=".activity.MyFriendListActivity"

View File

@ -47,7 +47,7 @@ public class HomeScreenActivity extends AbsOTOActivity {
apply.setOnClickListener(v -> {
String age = getRadioButtonValue(ageRadioGroup);
String sex = getRadioButton(sexRadioGroup).getTag().toString();
String auth = getRadioButtonValue(authRadioGroup);
String auth = getRadioButtonTag(authRadioGroup);
if (isRadioButtonEmpty(ageRadioGroup)) {
age = "";
}
@ -57,6 +57,9 @@ public class HomeScreenActivity extends AbsOTOActivity {
if (sex.equals("all")) {
sex = "";
}
if(auth.equals("all")){
auth="0";
}
if (StringUtil.isEmptyAll(age, auth, sex)) {
RouteManager.forwardMainActivity();
} else {
@ -77,11 +80,23 @@ public class HomeScreenActivity extends AbsOTOActivity {
bundle.putString("search",search);
RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_SEARCH,bundle);
});
findViewById(R.id.reset).setOnClickListener(v ->{
setRadioButtonValue(ageRadioGroup,R.id.age_all);
setRadioButtonValue(sexRadioGroup,R.id.sex_all);
setRadioButtonValue(authRadioGroup,R.id.auth_all);
RouteManager.forwardMainActivity();
});
}
String getRadioButtonValue(FlexBoxRadioGroup group) {
return ((RadioButton) findViewById(group.getCheckedRadioButtonId())).getText().toString();
}
String getRadioButtonTag(FlexBoxRadioGroup group) {
return ((RadioButton) findViewById(group.getCheckedRadioButtonId())).getTag().toString();
}
void setRadioButtonValue(FlexBoxRadioGroup group, int id) {
group.check(id);
}
boolean isRadioButtonEmpty(FlexBoxRadioGroup group) {
RadioButton button = (RadioButton) findViewById(group.getCheckedRadioButtonId());

View File

@ -15,6 +15,7 @@ import com.shayu.onetoone.adapter.HomeRecommendListAdapter;
import com.shayu.onetoone.bean.HomeItemBean;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.yunbao.common.adapter.SpaceGridItemDecoration;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
@ -70,7 +71,7 @@ public class HomeSearchActivity extends AbsOTOActivity {
searchList.setAdapter(searchListAdapter);
recommendList.setAdapter(recommendListAdapter);
recommendList.addItemDecoration(new SpaceGridItemDecoration(10));
refresh.setOnClickListener(v -> refresh());

View File

@ -36,6 +36,7 @@ import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import org.greenrobot.eventbus.Subscribe;
@ -137,6 +138,7 @@ public class MainActivity extends AbsOTOActivity {
if (!isHome && data.getChat() != 0) {
isShow = false;
}
SpUtil.setStringValue("match_data",JSONObject.toJSONString(data));
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_UPDATE_MATCHING, data.getNum()));
if (isShow) {
new FirstTipsDialog(mContext)
@ -186,7 +188,6 @@ public class MainActivity extends AbsOTOActivity {
super.onResume();
checkUserInfoIsSet();
initFirstLoginTips();
ToastUtil.showDebug("2");
}
/**
@ -215,7 +216,10 @@ public class MainActivity extends AbsOTOActivity {
Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, MsgMessageFragment.systemPoint + count));
return;
}
RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback<Integer>() {
RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE}
,false
,new RongIMClient.ResultCallback<Integer>() {
@Override
public void onSuccess(Integer integer) {
updateUnreadCount(MsgMessageFragment.systemPoint + integer);

View File

@ -92,7 +92,7 @@ public class MatchingActivity extends AbsOTOActivity {
bean = JSONObject.parseObject(data, SendConsumeBean.class);
if (bean != null) {
MatchingActivity.this.bundle=bundle;
new Handler(Looper.getMainLooper()).postDelayed(toCallRunnable, 5000);
new Handler(Looper.getMainLooper()).postDelayed(toCallRunnable, 1000);
return false;
}
}
@ -164,7 +164,7 @@ public class MatchingActivity extends AbsOTOActivity {
bundle.putInt("type", ChatActivity.CALL_CHAT_TYPE_MATCH);
bundle.putString("data", JSONObject.toJSONString(bean));
MatchingActivity.this.bundle = bundle;
handler.postDelayed(toCallRunnable, 5000);
handler.postDelayed(toCallRunnable, 1000);
}
@Override

View File

@ -43,17 +43,18 @@ public class DynamicFragment extends BaseFragment {
settings.setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
settings.setDomStorageEnabled(true);
webView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext(getActivity(), webView)
.setPermitSetHigh(false)
.setPageClose(true)
.setLiveZhuangBana(false), "androidObject");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
AndroidBug5497Workaround.assistActivity(getActivity());
// AndroidBug5497Workaround.assistActivity(getActivity());
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.e("H5-------->" , url);
Log.e("H5-------->", url);
if (url.startsWith(Constants.COPY_PREFIX)) {
String content = url.substring(Constants.COPY_PREFIX.length());
if (!TextUtils.isEmpty(content)) {
@ -77,11 +78,12 @@ public class DynamicFragment extends BaseFragment {
}
});
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
String url=CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ?stack-key-1=698c5f85%20&uid="
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);
Log.i("Web", url);
webView.loadUrl(url);
}
/**
* 复制到剪贴板
*/
@ -91,6 +93,7 @@ public class DynamicFragment extends BaseFragment {
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);

View File

@ -5,18 +5,38 @@ import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.fastjson.JSONObject;
import com.angcyo.tablayout.DslTabLayout;
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.home.HotFragment;
import com.shayu.onetoone.activity.fragments.home.RecommendFragment;
import com.shayu.onetoone.activity.message.ChatActivity;
import com.shayu.onetoone.bean.MatchingItemSizeBean;
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
import com.shayu.onetoone.bean.SendConsumeBean;
import com.shayu.onetoone.dialog.TipsDialog;
import com.shayu.onetoone.event.HomeBusEvent;
import com.shayu.onetoone.listener.OnSendMessageListener;
import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.manager.SendMessageManager;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
@ -26,37 +46,141 @@ import java.util.List;
*/
public class FriendsFragment extends BaseFragment {
List<BaseFragment> fragments = new ArrayList<>();
@Override
ImageView matching;
@Override
public void onDestroy() {
super.onDestroy();
Bus.getOff(this);
}
ViewPager2 viewPager2;
@Override
public void initView(View itemView) {
ViewPager2 viewPager2 = itemView.findViewById(R.id.viewPager);
DslTabLayout tabLayout = itemView.findViewById(R.id.dslTabLayout);
ViewPager2Delegate.Companion.install(viewPager2, tabLayout, false);
Bus.getOn(this);
viewPager2 = itemView.findViewById(R.id.viewPager);
DslTabLayout tabLayout = itemView.findViewById(R.id.dslTabLayout);
ViewPager2Delegate.Companion.install(viewPager2, tabLayout, false);
matching = itemView.findViewById(R.id.matching);
fragments.add(new RecommendFragment());//消息 - 消息
fragments.add(new HotFragment()); //消息 - 好友
viewPager2.setAdapter(new FragmentStateAdapter(this) {
@NonNull
@Override
public Fragment createFragment(int position) {
return fragments.get(position);
}
fragments.add(new RecommendFragment());//消息 - 消息
fragments.add(new HotFragment()); //消息 - 好友
viewPager2.setAdapter(new FragmentStateAdapter(this) {
@NonNull
@Override
public Fragment createFragment(int position) {
return fragments.get(position);
}
@Override
public int getItemCount() {
return fragments.size();
}
});
findViewById(R.id.btn_top).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_RANK));
findViewById(R.id.btn_filter).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_SCREEN));
@Override
public int getItemCount() {
return fragments.size();
}
});
findViewById(R.id.btn_top).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_RANK));
findViewById(R.id.btn_filter).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_SCREEN));
Bundle screen = getActivity().getIntent().getBundleExtra("screen");
if(screen!=null){
viewPager2.setCurrentItem(0);
}
Bundle screen = getActivity().getIntent().getBundleExtra("screen");
if (screen != null) {
viewPager2.setCurrentItem(0);
}
matching.setOnClickListener(v -> {
SendMessageManager.matching(new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
Bundle bundle = new Bundle();
bundle.putInt("type", ChatActivity.CALL_CHAT_TYPE_MATCH);
bundle.putString("data", JSONObject.toJSONString(bean));
if (configBean != null) {
bundle.putInt("time", configBean.getMateTime());
} else {
bundle.putInt("time", 5);
}
RouteManager.forwardActivity(RouteManager.ACTIVITY_MATCHING, bundle);
}
@Override
public void onError(int status, String msg, SendConsumeBean bean) {
super.onError(status, msg, bean);
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))
.setCancelText(WordUtil.getNewString(R.string.dialog_cancel_tip))
.setApplyText(WordUtil.getNewString(R.string.dialog_to_money_tip))
.showDialog();
}
});
});
initMateConfig();
}
private MessageConsumeConfigBean configBean;
private void initMateConfig() {
OTONetManager.getInstance(mContext)
.getMessageConsumeConfig(IMLoginManager.get(mContext).getUserInfo().getId() + "", new HttpCallback<MessageConsumeConfigBean>() {
@Override
public void onSuccess(MessageConsumeConfigBean data) {
configBean = data;
}
@Override
public void onError(String error) {
}
});
}
@Override
public void onResume() {
super.onResume();
String value = SpUtil.getStringValue("match_data");
if (!StringUtil.isEmpty(value)) {
MatchingItemSizeBean data = JSONObject.parseObject(value, MatchingItemSizeBean.class);
if (data.getNum() > 0) {
matching.setImageResource(R.mipmap.ic_matching_free);
} else {
matching.setImageResource(R.mipmap.ic_matching);
}
}
Bundle screen = getActivity().getIntent().getBundleExtra("screen");
if (screen != null) {
((RecommendFragment)fragments.get(0)).screen(screen);
viewPager2.setCurrentItem(0);
}
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_friends, container, false);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void event(HomeBusEvent event) {
if (event.getType() == HomeBusEvent.TYPE_UPDATE_MATCHING) {
int num = event.getMatching();
if (num > 0) {
matching.setImageResource(R.mipmap.ic_matching_free);
} else {
matching.setImageResource(R.mipmap.ic_matching);
}
}
if (event.getType() == HomeBusEvent.TYPE_SHOW_MATCHING) {
int show = event.getMatching();
if (show == 0) {
matching.setVisibility(View.GONE);
} else {
matching.setVisibility(View.VISIBLE);
}
}
}
}

View File

@ -11,9 +11,12 @@ import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.BaseFragment;
import com.shayu.onetoone.adapter.HomeHotListAdapter;
import com.shayu.onetoone.bean.HomeItemBean;
import com.shayu.onetoone.event.HomeBusEvent;
import com.shayu.onetoone.manager.OTONetManager;
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yunbao.common.adapter.SpaceGridItemDecoration;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.Bus;
import java.util.List;
@ -35,6 +38,8 @@ public class HotFragment extends BaseFragment {
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
adapter = new HomeHotListAdapter(getContext());
recyclerView.setAdapter(adapter);
recyclerView.addItemDecoration(new SpaceGridItemDecoration(10));
recyclerView.setEmptyView(findViewById(R.id.view_empty));
mRefreshLayout.setNestedScrollingEnabled(false);
mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext()));
mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext()));
@ -79,6 +84,11 @@ public class HotFragment extends BaseFragment {
} else {
adapter.setList(data);
}
if(adapter.getItemCount()==0){
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,0));
}else{
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,1));
}
}
@Override
@ -88,6 +98,16 @@ public class HotFragment extends BaseFragment {
});
}
@Override
public void onResume() {
super.onResume();
if(adapter.getItemCount()==0){
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,0));
}else{
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,1));
}
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_hot, container, false);

View File

@ -24,8 +24,6 @@ import com.yanzhenjie.recyclerview.SwipeRecyclerView;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.utils.Bus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.List;
@ -43,21 +41,19 @@ public class RecommendFragment extends BaseFragment {
private int page = 1;
private boolean isScreen;
Bundle screen;
ImageView matching;
@Override
public void onDestroy() {
super.onDestroy();
Bus.getOff(this);
}
@Override
public void initView(View itemView) {
Bus.getOn(this);
recyclerView = itemView.findViewById(R.id.recyclerView);
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
top = itemView.findViewById(R.id.btn_top_list);
matching = itemView.findViewById(R.id.matching);
adapter = new HomeRecommendListAdapter(getContext());
recyclerView.setAdapter(adapter);
mRefreshLayout.setNestedScrollingEnabled(false);
@ -79,25 +75,7 @@ public class RecommendFragment extends BaseFragment {
top.setOnClickListener(view -> {
recyclerView.scrollToPosition(0);
});
matching.setOnClickListener(v -> {
SendMessageManager.matching(new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
Bundle bundle = new Bundle();
bundle.putInt("type", ChatActivity.CALL_CHAT_TYPE_MATCH);
bundle.putString("data", JSONObject.toJSONString(bean));
RouteManager.forwardActivity(RouteManager.ACTIVITY_MATCHING, bundle);
}
@Override
public void onError(int status, String msg, SendConsumeBean bean) {
super.onError(status, msg, bean);
RouteManager.forwardActivity(RouteManager.ACTIVITY_MATCHING);
}
});
});
screen = getActivity().getIntent().getBundleExtra("screen");
if (screen != null) {
if (!isScreen) {
@ -115,7 +93,7 @@ public class RecommendFragment extends BaseFragment {
}
}
private void screen(Bundle screen) {
public void screen(Bundle screen) {
OTONetManager.getInstance(mContext)
.search("",
screen.getString("age", ""),
@ -176,6 +154,11 @@ public class RecommendFragment extends BaseFragment {
} else {
adapter.setList(data);
}
if(adapter.getItemCount()==0){
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,0));
}else{
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,1));
}
mRefreshLayout.finishRefresh();
}
@ -191,15 +174,13 @@ public class RecommendFragment extends BaseFragment {
return inflater.inflate(R.layout.fragment_recommend, container, false);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void event(HomeBusEvent event) {
if (event.getType() == HomeBusEvent.TYPE_UPDATE_MATCHING) {
int num = event.getMatching();
if (num > 0) {
matching.setImageResource(R.mipmap.ic_matching_free);
} else {
matching.setImageResource(R.mipmap.ic_matching);
}
@Override
public void onResume() {
super.onResume();
if(adapter.getItemCount()==0){
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,0));
}else{
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,1));
}
}
}

View File

@ -2,6 +2,7 @@ package com.shayu.onetoone.activity.fragments.message;
import static android.content.Context.CLIPBOARD_SERVICE;
import android.Manifest;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
@ -22,7 +23,9 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.FileProvider;
import com.blankj.utilcode.util.PermissionUtils;
import com.lxj.xpopup.XPopup;
import com.lzf.easyfloat.EasyFloat;
import com.makeramen.roundedimageview.RoundedImageView;
import com.shayu.onetoone.R;
import com.shayu.onetoone.adapter.MsgChatMessageListAdapter;
@ -67,6 +70,7 @@ import java.util.Collections;
import java.util.Date;
import java.util.List;
import io.rong.calllib.RongCallClient;
import io.rong.imkit.IMCenter;
import io.rong.imkit.config.RongConfigCenter;
import io.rong.imkit.conversation.MessageListAdapter;
@ -264,6 +268,10 @@ public class ChatMessageFragment extends AbsConversationFragment {
ToastUtil.show(R.string.toast_call_not_unlock);
return;
}
if(CallClientManager.getManager().isCalling()){
ToastUtil.show(R.string.now_call_tips);
return;
}
checkAuth(new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
@ -316,6 +324,11 @@ public class ChatMessageFragment extends AbsConversationFragment {
ToastUtil.show(R.string.toast_call_not_unlock);
return;
}
if(CallClientManager.getManager().isCalling() || isFloatWindows()){
ToastUtil.show(R.string.now_call_tips);
return;
}
checkAuth(new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
@ -394,6 +407,17 @@ 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() {
@Override
public void onApply(Dialog dialog) {
super.onApply(dialog);
}
}).showDialog();
}
});
}
@ -405,6 +429,10 @@ public class ChatMessageFragment extends AbsConversationFragment {
}
}
private boolean isFloatWindows() {
return EasyFloat.isShow("call");
}
private void checkAuth(OnSendMessageListener listener) {
OTONetManager.getInstance(mContext)
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
@ -759,7 +787,9 @@ public class ChatMessageFragment extends AbsConversationFragment {
}
private void showRedPoint() {
RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback<Integer>() {
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;

View File

@ -18,10 +18,15 @@ import java.util.ArrayList;
import java.util.List;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import io.rong.imkit.conversation.MessageListAdapter;
import io.rong.imkit.model.UiMessage;
import io.rong.imlib.model.Message;
/**
* 互動消息
*/
public class MessageInteractiveFragment extends AbsConversationFragment {
private OfficialNoticeBean noticeBean;
@ -38,7 +43,7 @@ public class MessageInteractiveFragment extends AbsConversationFragment {
@Override
public void main() {
setTitle(noticeBean.getTitle());
mList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, true));
initData();
}

View File

@ -18,10 +18,15 @@ import java.util.ArrayList;
import java.util.List;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import io.rong.imkit.conversation.MessageListAdapter;
import io.rong.imkit.model.UiMessage;
import io.rong.imlib.model.Message;
/**
* 官方通知
*/
public class MessageNoticeFragment extends AbsConversationFragment {
private OfficialNoticeBean noticeBean;
@ -38,6 +43,7 @@ public class MessageNoticeFragment extends AbsConversationFragment {
@Override
public void main() {
setTitle(noticeBean.getTitle());
mList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, true));
initData();
}

View File

@ -161,7 +161,6 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
}
}
});
initSystemNotice();
initRongConfig();
updateUserInfo();
}
@ -178,11 +177,11 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
private void initSystemNotice() {
systemPoint = 0;
OTONetManager.getInstance(mContext)
.getMessageSystemLists(new HttpCallback<List<OfficialNoticeBean>>() {
@Override
public void onSuccess(List<OfficialNoticeBean> data) {
systemPoint = 0;
for (OfficialNoticeBean datum : data) {
systemPoint += datum.getNum();
if (datum.getType() == 3) {
@ -375,6 +374,7 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
this.mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext()));
this.mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
initSystemNotice();
MsgMessageFragment.this.onConversationListRefresh(refreshLayout);
updateUserInfo();
}
@ -513,12 +513,12 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
private SwipeMenuCreator initSwipeMenuCreator() {
SwipeMenuCreator creator = (leftMenu, rightMenu, position) -> {
SwipeMenuItem top = new SwipeMenuItem(getContext());
SwipeMenuItem del = new SwipeMenuItem(getContext());
SwipeMenuItem del = new SwipeMenuItem(getContext());
top.setBackgroundColor(Color.parseColor("#D9D9D9"));
del.setBackgroundColor(Color.parseColor("#FE5268"));
if(mAdapter.getItem(position).mCore.isTop()) {
if (mAdapter.getItem(position).mCore.isTop()) {
top.setText(R.string.untop);
}else{
} else {
top.setText(R.string.top);
}
del.setText(R.string.delete);
@ -568,7 +568,8 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
public void busEvent(MessageMsgBusEvent event) {
if (event.getType() == MessageMsgBusEvent.TYPE_ALL_READ) {
allRead();
} else if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_SYSTEM) {
}
if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_SYSTEM) {
initSystemNotice();
}
}

View File

@ -27,6 +27,8 @@ import java.util.List;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.LinearLayoutManager;
import io.rong.imkit.IMCenter;
import io.rong.imkit.config.RongConfigCenter;
import io.rong.imkit.conversation.ConversationFragment;
@ -40,6 +42,9 @@ import io.rong.imlib.model.Message;
import io.rong.imlib.model.UserInfo;
import io.rong.message.TextMessage;
/**
* 系統消息
*/
public class SystemMessageFragment extends AbsConversationFragment {
View mInputPanel;
@ -57,6 +62,7 @@ public class SystemMessageFragment extends AbsConversationFragment {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
init();
mList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, true));
initData();
initSystemMessage();
}

View File

@ -1,5 +1,6 @@
package com.shayu.onetoone.activity.message;
import android.Manifest;
import android.app.Dialog;
import android.os.Bundle;
import android.view.MotionEvent;
@ -39,6 +40,7 @@ import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
@ -56,6 +58,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
private ImageView callStop;
private ImageView callMsg;
private TextView callTime;
private TextView tips;
private String targetId;
private String callId;
@ -82,7 +85,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
model = bundle.getString("model");
initView();
onCallStatusListener = new CallStatusListener();
CallClientManager.getManager().addOnVoIPCallListener(onCallStatusListener);
CallClientManager.getManager().addOnVoIPCallListener(CallAudioActivity.class,onCallStatusListener);
initTargetData();
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
EasyFloat.dismiss("call");
@ -91,6 +94,24 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
gift.setVisibility(View.VISIBLE);
money.setVisibility(View.VISIBLE);
}
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() {
if (model.equals(CallClientManager.AUDIO_CALL)) {
CallClientManager.getManager().callAudio(targetId);
callMsg.setTag(true);
callMsg.setImageResource(R.mipmap.ic_call_audio_msg);
}
}
@Override
public void onDenied() {
finish();
}
}).request();
return;
}
if (model.equals(CallClientManager.AUDIO_CALL)) {
CallClientManager.getManager().callAudio(targetId);
callMsg.setTag(true);
@ -101,7 +122,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
@Override
protected void onDestroy() {
super.onDestroy();
CallClientManager.getManager().removeOnVoIPCallListener(onCallStatusListener);
CallClientManager.getManager().removeOnVoIPCallListener(CallAudioActivity.class);
}
@Override
@ -121,6 +142,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
callStop = findViewById(R.id.call_stop);
callMsg = findViewById(R.id.call_msg);
callTime = findViewById(R.id.call_time);
tips = findViewById(R.id.tips);
callMsg.setImageResource(io.rong.callkit.R.drawable.rc_voip_audio_answer_selector_new);
@ -248,7 +270,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_AUDIO, bundle);
});
windowListener = new WindowCallStatusListener();
CallClientManager.getManager().addOnVoIPCallListener(windowListener);
CallClientManager.getManager().addOnVoIPCallListener(EasyFloat.class,windowListener);
}
@Override
@ -258,7 +280,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
@Override
public void dismiss() {
CallClientManager.getManager().removeOnVoIPCallListener(windowListener);
CallClientManager.getManager().removeOnVoIPCallListener(EasyFloat.class);
}
@Override
@ -284,7 +306,8 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
private class CallStatusListener extends OnCallStatusListener {
@Override
public void onCallWait(SurfaceView surfaceView) {
tips.setVisibility(View.VISIBLE);
tips.setText(R.string.call_tips1);
}
@Override
@ -296,6 +319,10 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
gift.setVisibility(View.VISIBLE);
money.setVisibility(View.VISIBLE);
}
tips.setText(R.string.call_tips2);
tips.postDelayed(()->{
tips.setVisibility(View.GONE);
},1000);
}
@Override
@ -341,6 +368,9 @@ 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){
return;
}
tipsDialog = new TipsTextDialog(mContext)
.setTips(String.format(WordUtil.getNewString(R.string.call_tips), msg))
.setOnItemClickListener(new OnItemClickListener<String>() {

View File

@ -1,5 +1,6 @@
package com.shayu.onetoone.activity.message;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.graphics.Color;
@ -11,6 +12,7 @@ import android.view.MotionEvent;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import android.widget.ImageView;
import android.widget.TextView;
@ -48,6 +50,8 @@ import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import java.util.Objects;
import io.rong.calllib.RongCallClient;
import io.rong.calllib.StartIncomingPreviewCallback;
@ -73,13 +77,15 @@ public class CallVideoActivity extends AbsOTOActivity {
private ImageView follow;
private TextView followText;
private TextView callTime;
private TextView tips;
private ImageView closeWait;
private OnCallStatusListener onCallStatusListener;
private String targetId;
private String sessionId;
private String callId;
private String model;
private SurfaceView localVideo, remoteVideo;
@Override
protected int getLayoutId() {
@ -105,7 +111,7 @@ public class CallVideoActivity extends AbsOTOActivity {
model = bundle.getString("model");
onCallStatusListener = new CallStatusListener();
CallClientManager.getManager().addOnVoIPCallListener(onCallStatusListener);
CallClientManager.getManager().addOnVoIPCallListener(CallVideoActivity.class,onCallStatusListener);
if (!model.equals(CallClientManager.VIDEO_FLOAT)) {
RongCallClient.getInstance()
@ -124,6 +130,23 @@ public class CallVideoActivity extends AbsOTOActivity {
});
}
initButton(buttonView);
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() {
if (!StringUtil.isEmpty(targetId)) {
CallClientManager.getManager().callVideo(targetId);
initWaitView();
}
}
@Override
public void onDenied() {
finish();
}
}).request();
return;
}
if (!StringUtil.isEmpty(targetId)) {
CallClientManager.getManager().callVideo(targetId);
initWaitView();
@ -136,20 +159,51 @@ public class CallVideoActivity extends AbsOTOActivity {
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
callLayout.setVisibility(View.GONE);
EasyFloat.getFloatView("call").setOnClickListener(null);
((ViewGroup) EasyFloat.getFloatView("call").getParent()).removeAllViews();
//((ViewGroup) EasyFloat.getFloatView("call").getParent()).removeAllViews();
EasyFloat.dismiss("call");
myView.removeAllViews();
new Handler(Looper.getMainLooper())
.postDelayed(() -> {
SurfaceView localVideo = CallClientManager.getManager().getLocalVideo();
SurfaceView surfaceView = CallClientManager.getManager().getRemoteVideo();
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
if(localVideo.getParent()!=null){
((ViewGroup) localVideo.getParent()).removeAllViews();
}
if (surfaceView != null) {
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
}
localVideo.setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
initView();
initButton(buttonView);
myView.addView(surfaceView);
myView.addView(buttonView);
targetView.addView(CallClientManager.getManager().getLocalVideo());
if (surfaceView == null) {
localVideo.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
localVideo.setZOrderOnTop(false);
localVideo.setZOrderMediaOverlay(false);
myView.addView(localVideo);
initWaitView();
myView.addView(callWaitLayout);
} else {
if (surfaceView.getParent() != null) {
((ViewGroup) surfaceView.getParent()).removeAllViews();
}
myView.addView(surfaceView);
myView.addView(buttonView);
localVideo.setZOrderOnTop(true);
localVideo.setZOrderMediaOverlay(true);
localVideo.setOnClickListener(new VideoViewClick());
targetView.addView(localVideo);
closeWait.setVisibility(View.GONE);
}
initTargetData();
sessionId = CallClientManager.getManager().getSessionId();
if(sessionId.equals(targetId)){
gift.setVisibility(View.INVISIBLE);
money.setVisibility(View.INVISIBLE);
model=CallClientManager.VIDEO_RECEIVED_CALL;
}else{
model=CallClientManager.VIDEO_CALL;
}
}, 300);
}
@ -162,6 +216,8 @@ public class CallVideoActivity extends AbsOTOActivity {
buttonView = LayoutInflater.from(mContext).inflate(R.layout.view_call_video_item, rootView, false);
callWaitLayout = LayoutInflater.from(mContext).inflate(R.layout.view_call_video_wait, rootView, false);
targetView = buttonView.findViewById(R.id.target_view);
tips = findViewById(R.id.tips);
closeWait = findViewById(R.id.close1);
targetView.setBackgroundColor(Color.YELLOW);
targetView.setOnClickListener(new VideoViewClick());
}
@ -172,33 +228,43 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override
public void onClick(View view) {
myView.removeAllViews();
targetView.removeAllViews();
/* myView.removeAllViews();
targetView.removeAllViews();*/
ViewGroup parent1 = (ViewGroup) CallClientManager.getManager().getLocalVideo().getParent();
ViewGroup parent2 = (ViewGroup) CallClientManager.getManager().getRemoteVideo().getParent();
if (parent1 != null) {
parent1.removeAllViews();
}
if (parent2 != null) {
parent2.removeAllViews();
}
if (isSwitchView) {
targetView.addView(localVideo);
localVideo.setZOrderOnTop(true);
localVideo.setZOrderMediaOverlay(true);
myView.addView(remoteVideo);
remoteVideo.setZOrderOnTop(false);
remoteVideo.setZOrderMediaOverlay(false);
targetView.addView(CallClientManager.getManager().getLocalVideo());
CallClientManager.getManager().getLocalVideo().setZOrderOnTop(true);
CallClientManager.getManager().getLocalVideo().setZOrderMediaOverlay(true);
CallClientManager.getManager().getRemoteVideo().setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
myView.addView(CallClientManager.getManager().getRemoteVideo());
CallClientManager.getManager().getRemoteVideo().setZOrderOnTop(false);
CallClientManager.getManager().getRemoteVideo().setZOrderMediaOverlay(false);
myView.addView(buttonView);
isSwitchView = false;
localVideo.setOnClickListener(new VideoViewClick());
remoteVideo.setOnClickListener(null);
CallClientManager.getManager().getLocalVideo().setOnClickListener(new VideoViewClick());
CallClientManager.getManager().getRemoteVideo().setOnClickListener(null);
} else {
ImageView imageView = new ImageView(mContext);
imageView.setImageResource(R.mipmap.bg_message_msg_title_heartbeat);
myView.addView(localVideo);
localVideo.setZOrderOnTop(false);
localVideo.setZOrderMediaOverlay(false);
CallClientManager.getManager().getLocalVideo().setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
myView.addView(CallClientManager.getManager().getLocalVideo());
CallClientManager.getManager().getLocalVideo().setZOrderOnTop(false);
CallClientManager.getManager().getLocalVideo().setZOrderMediaOverlay(false);
myView.addView(buttonView);
targetView.addView(imageView);
targetView.addView(remoteVideo);
remoteVideo.setZOrderOnTop(true);
remoteVideo.setZOrderMediaOverlay(true);
targetView.addView(CallClientManager.getManager().getRemoteVideo());
CallClientManager.getManager().getRemoteVideo().setZOrderOnTop(true);
CallClientManager.getManager().getRemoteVideo().setZOrderMediaOverlay(true);
isSwitchView = true;
remoteVideo.setOnClickListener(new VideoViewClick());
localVideo.setOnClickListener(null);
CallClientManager.getManager().getRemoteVideo().setOnClickListener(new VideoViewClick());
CallClientManager.getManager().getLocalVideo().setOnClickListener(null);
}
}
}
@ -252,6 +318,7 @@ public class CallVideoActivity extends AbsOTOActivity {
// 为其他View设置点击事件监听器
avatar.setOnClickListener(onClickListener);
close.setOnClickListener(onClickListener);
closeWait.setOnClickListener(onClickListener);
follow.setOnClickListener(onClickListener);
findViewById(R.id.rc_voip_call_answer_btn).setOnClickListener(onClickListener);
findViewById(R.id.rc_voip_call_hang_up).setOnClickListener(onClickListener);
@ -306,13 +373,22 @@ public class CallVideoActivity extends AbsOTOActivity {
.showDialog();
return;
}
CallClientManager.getManager().getRemoteVideo().setTag(getIntent().getExtras());
myView.removeAllViews();
targetView.removeAllViews();
finish();
CallClientManager.getManager().getRemoteVideo().setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
SurfaceView floatWindows;
if (CallClientManager.getManager().getRemoteVideo() == null) {
/* floatWindows=new ImageView(mContext);
((ImageView)floatWindows).setImageResource(io.rong.callkit.R.drawable.rc_voip_vedio_answer_selector_new);*/
CallClientManager.getManager().getLocalVideo().setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
floatWindows = CallClientManager.getManager().getLocalVideo();
} else {
CallClientManager.getManager().getRemoteVideo().setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
floatWindows = CallClientManager.getManager().getRemoteVideo();
}
floatWindows.setTag(getIntent().getExtras());
EasyFloat.with(this)
.setLayout(CallClientManager.getManager().getRemoteVideo())
.setLayout(floatWindows)
.setShowPattern(ShowPattern.FOREGROUND)
.setTag("call")
.setDragEnable(true)
@ -332,8 +408,8 @@ public class CallVideoActivity extends AbsOTOActivity {
bundle.putString("model", CallClientManager.VIDEO_FLOAT);
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
});
windowListener = new WindowCallStatusListener();
CallClientManager.getManager().addOnVoIPCallListener(windowListener);
windowListener = new WindowCallStatusListener(view);
CallClientManager.getManager().addOnVoIPCallListener(EasyFloat.class,windowListener);
}
@Override
@ -343,7 +419,8 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override
public void dismiss() {
CallClientManager.getManager().removeOnVoIPCallListener(windowListener);
ToastUtil.showDebug("浮窗移除监听");
CallClientManager.getManager().removeOnVoIPCallListener(EasyFloat.class);
}
@Override
@ -423,7 +500,7 @@ public class CallVideoActivity extends AbsOTOActivity {
switchCamera();
} else if (id == R.id.mic_switch) {
switchAudio();
} else if (id == R.id.close) {
} else if (id == R.id.close || id == R.id.close1) {
showWindow(false);
} else if (id == R.id.message) {
showWindow(true);
@ -437,37 +514,51 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override
public void onCallWait(SurfaceView surfaceView) {
myView.removeAllViews();
localVideo = surfaceView;
myView.addView(localVideo);
myView.addView(CallClientManager.getManager().getLocalVideo());
if (model.equals(CallClientManager.VIDEO_CALL)) {
myView.addView(callWaitLayout);
}
tips.setVisibility(View.VISIBLE);
tips.setText(R.string.call_tips1);
}
@Override
public void onCallStart(String userId, SurfaceView surfaceView) {
closeWait.setVisibility(View.GONE);
initView();
initButton(buttonView);
initTargetData();
surfaceView.setZOrderOnTop(false);
surfaceView.setZOrderMediaOverlay(false);
surfaceView.invalidate();
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
surfaceView.setOnClickListener(v -> {
surfaceView.setZOrderOnTop(false);
surfaceView.setZOrderMediaOverlay(false);
surfaceView.invalidate();
});
remoteVideo = surfaceView;
myView.removeAllViews();
myView.addView(remoteVideo);
if(surfaceView.getParent()!=null){
((ViewGroup)surfaceView.getParent()).removeAllViews();
}
if(CallClientManager.getManager().getLocalVideo().getParent()!=null){
((ViewGroup)CallClientManager.getManager().getLocalVideo().getParent()).removeAllViews();
}
myView.addView(surfaceView);
targetView.removeAllViews();
targetView.addView(CallClientManager.getManager().getLocalVideo());
CallClientManager.getManager().getLocalVideo().setOnClickListener(new VideoViewClick());
myView.addView(buttonView);
tips.setText(R.string.call_tips2);
tips.postDelayed(() -> {
tips.setVisibility(View.GONE);
}, 1000);
sessionId = CallClientManager.getManager().getSessionId();
}
//
//
@Override
public void onCallEnd() {
if(model.equals(CallClientManager.AUDIO_CALL) ||model.equals(CallClientManager.VIDEO_CALL)) {
if (!sessionId.equals(targetId)){
Bundle bundle = new Bundle();
bundle.putString("model", CallClientManager.VIDEO_CALL);
bundle.putString("targetId", targetId);
@ -511,6 +602,9 @@ public class CallVideoActivity extends AbsOTOActivity {
if (model.equals(CallClientManager.VIDEO_RECEIVED_CALL)) {
return;
}
if(msg<=0){
return;
}
tipsDialog = new TipsTextDialog(mContext)
.setTips(String.format(WordUtil.getNewString(R.string.call_tips), msg))
.setOnItemClickListener(new OnItemClickListener<String>() {
@ -533,6 +627,12 @@ public class CallVideoActivity extends AbsOTOActivity {
}
private static class WindowCallStatusListener extends OnCallStatusListener {
View rootView;
public WindowCallStatusListener(View view) {
this.rootView = view;
}
@Override
public void onCallWait(SurfaceView surfaceView) {
@ -540,6 +640,20 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override
public void onCallStart(String userId, SurfaceView surfaceView) {
Object tag = rootView.getTag();
ViewGroup parent = (ViewGroup) rootView.getParent();
parent.removeView(rootView);
if(surfaceView.getParent()!=null){
((ViewGroup)surfaceView.getParent()).removeAllViews();
}
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(DpUtil.dp2px(114), DpUtil.dp2px(164)));
surfaceView.setTag(tag);
surfaceView.setOnClickListener(v -> {
Bundle bundle = (Bundle) v.getTag();
bundle.putString("model", CallClientManager.VIDEO_FLOAT);
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
});
parent.addView(surfaceView);
}
@ -556,6 +670,6 @@ public class CallVideoActivity extends AbsOTOActivity {
@Override
protected void onDestroy() {
super.onDestroy();
CallClientManager.getManager().removeOnVoIPCallListener(onCallStatusListener);
CallClientManager.getManager().removeOnVoIPCallListener(CallVideoActivity.class);
}
}

View File

@ -112,7 +112,7 @@ public class MyFriendListAdapter extends RecyclerView.Adapter<MyFriendListAdapte
public void onSuccess(FollowBean data) {
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
follow.setEnabled(false);
follow.setText(R.string.activity_my_friend_list_item_2);
follow.setText(R.string.activity_my_friend_list_item_3);
}
@Override

View File

@ -9,6 +9,8 @@ public class MessageConsumeConfigBean extends BaseModel {
private int mp3Price;//音频扣费金额
private int price;//消息扣费金额
private int pingTime;//心跳时间单位秒
private int matePrice;//匹配金額
private int mateTime;//匹配時間
public MessageConsumeConfigBean() {
}
@ -44,4 +46,20 @@ public class MessageConsumeConfigBean extends BaseModel {
public void setPingTime(int pingTime) {
this.pingTime = pingTime;
}
public int getMatePrice() {
return matePrice;
}
public void setMatePrice(int matePrice) {
this.matePrice = matePrice;
}
public int getMateTime() {
return mateTime;
}
public void setMateTime(int mateTime) {
this.mateTime = mateTime;
}
}

View File

@ -68,7 +68,7 @@ public class UserBean extends BaseModel {
private int sex;
private int b_y;
private int b_ym;
private int b_ymd;
private String b_ymd;
private int name_auth;//1 未提交 2 已认证 3已提交
private long name_auth_time;
private String auth_front;
@ -167,11 +167,11 @@ public class UserBean extends BaseModel {
this.b_ym = b_ym;
}
public int getB_ymd() {
public String getB_ymd() {
return b_ymd;
}
public void setB_ymd(int b_ymd) {
public void setB_ymd(String b_ymd) {
this.b_ymd = b_ymd;
}

View File

@ -2,6 +2,7 @@ package com.shayu.onetoone.event;
public class HomeBusEvent extends AbsBusEvent {
public static final int TYPE_UPDATE_MATCHING = 0;
public static final int TYPE_SHOW_MATCHING = 1;
private int matching;
public HomeBusEvent(int type) {

View File

@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
@ -49,7 +50,7 @@ public class CallClientManager {
public static final String AUDIO_FLOAT = "audioFloatWindow";//浮窗
private static CallClientManager manager;
private SurfaceView localVideo, remoteVideo;
private List<OnCallStatusListener> listeners;
private Map<Class,OnCallStatusListener> listeners;
private CallTimeTask timeTask = null;
public static CallClientManager getManager() {
@ -60,7 +61,7 @@ public class CallClientManager {
}
private CallClientManager() {
listeners = new ArrayList<>();
listeners = new HashMap<>();
init();
}
@ -83,19 +84,19 @@ public class CallClientManager {
RongCallClient.setReceivedCallListener(new CallMeListener());
}
public void addOnVoIPCallListener(OnCallStatusListener statusListener) {
listeners.add(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) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(null);
@ -103,7 +104,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@ -111,15 +112,15 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
}));
}
public void removeOnVoIPCallListener(OnCallStatusListener statusListener) {
listeners.remove(statusListener);
public void removeOnVoIPCallListener(Class zlass) {
listeners.remove(zlass);
}
public void checkMoney(String targetId, boolean video, OnSendMessageListener listener) {
@ -149,24 +150,22 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
ToastUtil.show(R.string.call_tips1);
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
ToastUtil.show(R.string.call_tips2);
startTimer(targetId);
}
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@ -174,7 +173,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@ -188,24 +187,22 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
ToastUtil.show(R.string.call_tips1);
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
ToastUtil.show(R.string.call_tips2);
startTimer(targetId);
}
@Override
public void onCallEnd() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@ -213,7 +210,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@ -245,6 +242,14 @@ public class CallClientManager {
return activeTime == 0 ? 0 : (System.currentTimeMillis() - activeTime) / 1000;
}
public String getSessionId() {
RongCallSession callSession = RongCallClient.getInstance().getCallSession();
if(callSession==null){
return "";
}
return callSession.getCallerUserId();
}
private class CallTimeTask extends TimerTask {
Handler handler = new Handler(Looper.getMainLooper());
@ -260,7 +265,7 @@ public class CallClientManager {
@Override
public boolean cancel() {
if(sessionId.equals(targetId)){
if (sessionId.equals(targetId)) {
System.err.println("接听方不计费 结束");
return super.cancel();
}
@ -287,7 +292,7 @@ public class CallClientManager {
}
isCallVideo = callSession.getMediaType() == RongCallCommon.CallMediaType.VIDEO;
activeTime = callSession.getActiveTime();
sessionId=callSession.getCallerUserId();
sessionId = callSession.getCallerUserId();
long time = getTime(activeTime);
checkTime(time);
String extra;
@ -304,7 +309,7 @@ public class CallClientManager {
extra = String.format(Locale.ROOT, "%02d:%02d", (time % 3600) / 60, (time % 60));
}
handler.post(() -> {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTime(extra);
if (warningTime <= 60) {
listener.onTimeWarning(warningTime--);
@ -319,11 +324,11 @@ public class CallClientManager {
if (StringUtil.isEmpty(targetId)) {
return;
}
if(sessionId.equals(targetId)){
if (sessionId.equals(targetId)) {
System.err.println("接听方不计费");
return;
}
if(time==0){
if (time == 0) {
return;
}
time = time % 10;
@ -350,7 +355,7 @@ public class CallClientManager {
warningTime = bean.getMp3Time();
}
if (warningTime <= 60) {
for (OnCallStatusListener listener : listeners) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onTimeWarning(warningTime);
}
}
@ -360,7 +365,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) {
for (OnCallStatusListener listener : listeners.values()) {
listener.onErrorNotPrice(msg);
}
endCall();
@ -548,12 +553,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

@ -227,6 +227,10 @@ public class SendMessageManager {
cache.remove(token);
}
public static boolean checkToken(String token) {
return cache.containsKey(token);
}
public static class SendData {
public boolean needToken = true;
private String toUid;

View File

@ -65,7 +65,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
}
private boolean isAudio;
private boolean isDownload=false;
private boolean isDownload = false;
@SuppressLint("ClickableViewAccessibility")
@Override
@ -85,7 +85,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
System.out.println("点击事件 没权限掉了");
return true;
} else {
isDownload=true;
isDownload = true;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
System.out.println("点击事件:点下 isAudio = " + isAudio);
if (isAudio) {
@ -103,7 +103,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
}
} else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
isDownload=false;
isDownload = false;
if (isAudio) {
onUp(v, event);
}
@ -122,18 +122,17 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
private void toToken(View v, float mLastTouchY) {
System.out.println("点击事件调用token");
if(!isDownload){
ToastUtil.show("过短,结束");
AudioRecordManager.getInstance().stopRecord();
return;
}
isAudio = true;
SendMessageManager.sendMessageForAudio(targetId, new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
MsgInputPanelForAudio.this.token = token;
ToastUtil.showDebug(token);
isAudio = true;
if (!isDownload) {
AudioRecordManager.getInstance().stopRecord();
SendMessageManager.cancel(token);
return;
}
onDown(v, mLastTouchY);
}
@ -142,6 +141,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
AudioRecordManager.getInstance().stopRecord();
isAudio = false;
mUpDirection = false;
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
@ -197,6 +197,9 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
SendMessageManager.cancel(token);
return false;
}
if(!SendMessageManager.checkToken(token)){
return false;
}
SendMessageManager.onCallSuccess(token, new OnSendMessageListener() {
@Override
public void onError(int status, String msg) {

View File

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

View File

@ -125,4 +125,19 @@
app:layout_constraintBottom_toTopOf="@+id/call_stop"
app:layout_constraintEnd_toStartOf="@+id/call_msg"
app:layout_constraintStart_toEndOf="@+id/call_stop" />
<Button
android:id="@+id/tips"
android:layout_width="157dp"
android:layout_height="31dp"
android:visibility="gone"
android:textColor="#333333"
android:textSize="12sp"
tools:visibility="visible"
tools:text="等待对方接受邀请..."
android:background="@drawable/bg_call_view_tips"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -16,9 +16,24 @@
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
app:layout_constraintVertical_bias="0.0" >
</FrameLayout>
<Button
android:id="@+id/tips"
android:layout_width="157dp"
android:layout_height="31dp"
android:visibility="gone"
android:textColor="#333333"
android:textSize="12sp"
tools:text="等待对方接受邀请..."
android:background="@drawable/bg_call_view_tips"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<RelativeLayout
android:id="@+id/rc_voip_two_btn"
@ -80,4 +95,13 @@
</RelativeLayout>
<ImageView
android:id="@+id/close1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="46dp"
android:layout_marginEnd="18dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_call_close" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -269,6 +269,7 @@
android:background="@drawable/bg_home_search_checked"
android:button="@null"
android:gravity="center"
android:tag="2"
android:text="@string/layout_screen_tip8"
android:textColor="@drawable/bg_home_search_text"
android:textSize="14sp" />
@ -280,6 +281,7 @@
android:layout_marginStart="10dp"
android:background="@drawable/bg_home_search_checked"
android:button="@null"
android:tag="1"
android:gravity="center"
android:text="@string/layout_screen_tip9"
android:textColor="@drawable/bg_home_search_text"
@ -290,18 +292,36 @@
</LinearLayout>
<Button
android:id="@+id/apply"
android:layout_width="151dp"
android:layout_height="45dp"
android:background="@drawable/bg_home_search_btn"
android:text="@string/layout_screen_tip10"
android:textColor="#FFFFFF"
android:textSize="14sp"
<LinearLayout
android:id="@+id/button_layout"
android:orientation="horizontal"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/auth_layout" />
app:layout_constraintTop_toBottomOf="@+id/auth_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/reset"
android:layout_width="151dp"
android:layout_height="45dp"
android:background="@drawable/bg_home_search_btn"
android:text="@string/layout_screen_tip11"
android:layout_marginEnd="32dp"
android:textColor="#FFFFFF"
android:textSize="14sp" />
<Button
android:id="@+id/apply"
android:layout_width="151dp"
android:layout_height="45dp"
android:background="@drawable/bg_home_search_btn"
android:text="@string/layout_screen_tip10"
android:textColor="#FFFFFF"
android:textSize="14sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -7,8 +7,8 @@
<WebView
android:id="@+id/webView"
android:layout_marginTop="@dimen/activity_top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@ -77,6 +77,14 @@
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/ic_tab_dynamic_top" />
<ImageView
android:id="@+id/matching"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="56dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@mipmap/ic_matching_free" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -24,4 +24,14 @@
app:spanCount="2"
tools:listitem="@layout/item_home_hot" />
</io.rong.imkit.widget.refresh.SmartRefreshLayout>
<include
android:id="@+id/view_empty"
layout="@layout/view_empty_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -127,7 +127,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLength="8"
android:maxEms="5"
android:singleLine="true"
tools:text="啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
android:text="@string/layout_f_my_tips1"
android:textColor="#D56FF0"
android:textSize="19sp"

View File

@ -34,15 +34,6 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/matching"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="56dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@mipmap/ic_matching_free" />
<include
android:id="@+id/view_empty"

View File

@ -2,14 +2,16 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="167dp"
android:layout_height="167dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="167dp"
android:maxHeight="167dp"
android:layout_marginTop="16dp">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_width="167dp"
android:layout_height="167dp"
android:scaleType="centerCrop"
android:src="@drawable/m_chu_xia"
app:layout_constraintBottom_toBottomOf="parent"
@ -80,7 +82,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"

View File

@ -73,12 +73,13 @@
<TextView
android:id="@+id/user_name"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
tools:text="TextView"
tools:text="微信红红火火恍恍惚惚哈哈哈"
android:textColor="#333333"
android:maxLength="5"
android:ellipsize="end"
android:layout_weight="0.8"
android:singleLine="true"
android:layout_gravity="center"
android:textSize="16sp"
android:textStyle="bold" />

View File

@ -187,6 +187,7 @@
<string name="layout_screen_tip8">已完成</string>
<string name="layout_screen_tip9">未完成</string>
<string name="layout_screen_tip10">確定</string>
<string name="layout_screen_tip11">重置</string>
<string name="layout_search_tip1">猜你喜歡</string>
@ -269,4 +270,5 @@
<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

@ -187,6 +187,7 @@
<string name="layout_screen_tip8">已完成</string>
<string name="layout_screen_tip9">未完成</string>
<string name="layout_screen_tip10">確定</string>
<string name="layout_screen_tip11">重置</string>
<string name="layout_search_tip1">猜你喜歡</string>
@ -269,4 +270,5 @@
<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

@ -189,6 +189,7 @@
<string name="layout_screen_tip8">已完成</string>
<string name="layout_screen_tip9">未完成</string>
<string name="layout_screen_tip10">確定</string>
<string name="layout_screen_tip11">重置</string>
<string name="layout_search_tip1">猜你喜歡</string>
@ -271,4 +272,5 @@
<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

@ -40,6 +40,7 @@ public class JavascriptInterfaceUtils {
//判断是页面关闭还是网页回退
private boolean pageClose = false;
private boolean dialogClose = false;
private boolean permitSetHigh =true;
//同名activity跳转问题
private boolean LiveZhuangBana = true;
private static JavascriptInterfaceUtils sInstance;
@ -59,6 +60,14 @@ public class JavascriptInterfaceUtils {
return this;
}
/**
* 允许js修改webview高度
*/
public JavascriptInterfaceUtils setPermitSetHigh(boolean isPermit){
this.permitSetHigh=isPermit;
return this;
}
public JavascriptInterfaceUtils setmContext(Activity mContext, WebView mWebView) {
this.mContext = mContext;
this.mWebView = mWebView;
@ -503,6 +512,9 @@ public class JavascriptInterfaceUtils {
if ("0".equals(height)) {
return;
}
if(!permitSetHigh){
return;
}
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> {
ViewGroup.LayoutParams params = mWebView.getLayoutParams();

View File

@ -5,7 +5,9 @@ ext {
minSdkVersion : 21,
targetSdkVersion : 33,
versionCode : 445,
versionName : "6.5.4"
versionName : "6.5.4",
otoversionCode : 100,
otoversionName : "1.0"
]
manifestPlaceholders = [
//