修复测试反馈问题
This commit is contained in:
parent
f36c4706e4
commit
9aa8b22d99
@ -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'
|
||||
|
@ -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"
|
||||
|
@ -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());
|
||||
|
@ -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());
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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>() {
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
9
OneToOne/src/main/res/drawable/bg_call_view_tips.xml
Normal file
9
OneToOne/src/main/res/drawable/bg_call_view_tips.xml
Normal 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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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"
|
||||
|
@ -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>
|
@ -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>
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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"
|
||||
|
@ -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" />
|
||||
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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();
|
||||
|
@ -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 = [
|
||||
//正式、
|
||||
|
Loading…
x
Reference in New Issue
Block a user