修复测试反馈问题
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 {
|
defaultConfig {
|
||||||
applicationId "com.shayu.onetoonenew"
|
applicationId "com.shayu.onetoonenew"
|
||||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||||
versionCode rootProject.ext.android.versionCode
|
versionCode rootProject.ext.android.otoversionCode
|
||||||
versionName rootProject.ext.android.versionName
|
versionName rootProject.ext.android.otoversionName
|
||||||
manifestPlaceholders = rootProject.ext.manifestPlaceholders
|
manifestPlaceholders = rootProject.ext.manifestPlaceholders
|
||||||
ndk {
|
ndk {
|
||||||
abiFilters "armeabi-v7a", "arm64-v8a"
|
abiFilters "armeabi-v7a", "arm64-v8a"
|
||||||
@ -111,6 +117,12 @@ android {
|
|||||||
storeFile file('../hdl.jks')
|
storeFile file('../hdl.jks')
|
||||||
storePassword 'phonelive'
|
storePassword 'phonelive'
|
||||||
}
|
}
|
||||||
|
debug {
|
||||||
|
keyAlias 'phonelive'
|
||||||
|
keyPassword 'phonelive'
|
||||||
|
storeFile file('../hdl.jks')
|
||||||
|
storePassword 'phonelive'
|
||||||
|
}
|
||||||
//陌陌本地配置需要
|
//陌陌本地配置需要
|
||||||
config {//TODO BEAUTYSDK 这里需要配置keystore相关信息
|
config {//TODO BEAUTYSDK 这里需要配置keystore相关信息
|
||||||
keyAlias 'phonelive'
|
keyAlias 'phonelive'
|
||||||
|
@ -119,12 +119,15 @@
|
|||||||
android:exported="true" />
|
android:exported="true" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.MainActivity"
|
android:name=".activity.MainActivity"
|
||||||
|
android:screenOrientation="portrait"
|
||||||
|
android:launchMode="singleTask"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.message.MsgMoreGreetConfigActivity"
|
android:name=".activity.message.MsgMoreGreetConfigActivity"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.message.ChatActivity"
|
android:name=".activity.message.ChatActivity"
|
||||||
|
android:launchMode="singleTask"
|
||||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.login.LoginActivity"
|
android:name=".activity.login.LoginActivity"
|
||||||
@ -171,7 +174,7 @@
|
|||||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.EndCallActivity"
|
android:name=".activity.EndCallActivity"
|
||||||
android:launchMode="singleInstance"
|
android:launchMode="singleTask"
|
||||||
android:windowSoftInputMode="stateHidden|adjustResize" />
|
android:windowSoftInputMode="stateHidden|adjustResize" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".activity.MyFriendListActivity"
|
android:name=".activity.MyFriendListActivity"
|
||||||
|
@ -47,7 +47,7 @@ public class HomeScreenActivity extends AbsOTOActivity {
|
|||||||
apply.setOnClickListener(v -> {
|
apply.setOnClickListener(v -> {
|
||||||
String age = getRadioButtonValue(ageRadioGroup);
|
String age = getRadioButtonValue(ageRadioGroup);
|
||||||
String sex = getRadioButton(sexRadioGroup).getTag().toString();
|
String sex = getRadioButton(sexRadioGroup).getTag().toString();
|
||||||
String auth = getRadioButtonValue(authRadioGroup);
|
String auth = getRadioButtonTag(authRadioGroup);
|
||||||
if (isRadioButtonEmpty(ageRadioGroup)) {
|
if (isRadioButtonEmpty(ageRadioGroup)) {
|
||||||
age = "";
|
age = "";
|
||||||
}
|
}
|
||||||
@ -57,6 +57,9 @@ public class HomeScreenActivity extends AbsOTOActivity {
|
|||||||
if (sex.equals("all")) {
|
if (sex.equals("all")) {
|
||||||
sex = "";
|
sex = "";
|
||||||
}
|
}
|
||||||
|
if(auth.equals("all")){
|
||||||
|
auth="0";
|
||||||
|
}
|
||||||
if (StringUtil.isEmptyAll(age, auth, sex)) {
|
if (StringUtil.isEmptyAll(age, auth, sex)) {
|
||||||
RouteManager.forwardMainActivity();
|
RouteManager.forwardMainActivity();
|
||||||
} else {
|
} else {
|
||||||
@ -77,11 +80,23 @@ public class HomeScreenActivity extends AbsOTOActivity {
|
|||||||
bundle.putString("search",search);
|
bundle.putString("search",search);
|
||||||
RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_SEARCH,bundle);
|
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) {
|
String getRadioButtonValue(FlexBoxRadioGroup group) {
|
||||||
return ((RadioButton) findViewById(group.getCheckedRadioButtonId())).getText().toString();
|
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) {
|
boolean isRadioButtonEmpty(FlexBoxRadioGroup group) {
|
||||||
RadioButton button = (RadioButton) findViewById(group.getCheckedRadioButtonId());
|
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.bean.HomeItemBean;
|
||||||
import com.shayu.onetoone.manager.OTONetManager;
|
import com.shayu.onetoone.manager.OTONetManager;
|
||||||
import com.shayu.onetoone.manager.RouteManager;
|
import com.shayu.onetoone.manager.RouteManager;
|
||||||
|
import com.yunbao.common.adapter.SpaceGridItemDecoration;
|
||||||
import com.yunbao.common.http.base.HttpCallback;
|
import com.yunbao.common.http.base.HttpCallback;
|
||||||
import com.yunbao.common.utils.StringUtil;
|
import com.yunbao.common.utils.StringUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
@ -70,7 +71,7 @@ public class HomeSearchActivity extends AbsOTOActivity {
|
|||||||
|
|
||||||
searchList.setAdapter(searchListAdapter);
|
searchList.setAdapter(searchListAdapter);
|
||||||
recommendList.setAdapter(recommendListAdapter);
|
recommendList.setAdapter(recommendListAdapter);
|
||||||
|
recommendList.addItemDecoration(new SpaceGridItemDecoration(10));
|
||||||
|
|
||||||
refresh.setOnClickListener(v -> refresh());
|
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.IMLoginManager;
|
||||||
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
|
import com.yunbao.common.utils.SpUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
@ -137,6 +138,7 @@ public class MainActivity extends AbsOTOActivity {
|
|||||||
if (!isHome && data.getChat() != 0) {
|
if (!isHome && data.getChat() != 0) {
|
||||||
isShow = false;
|
isShow = false;
|
||||||
}
|
}
|
||||||
|
SpUtil.setStringValue("match_data",JSONObject.toJSONString(data));
|
||||||
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_UPDATE_MATCHING, data.getNum()));
|
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_UPDATE_MATCHING, data.getNum()));
|
||||||
if (isShow) {
|
if (isShow) {
|
||||||
new FirstTipsDialog(mContext)
|
new FirstTipsDialog(mContext)
|
||||||
@ -186,7 +188,6 @@ public class MainActivity extends AbsOTOActivity {
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
checkUserInfoIsSet();
|
checkUserInfoIsSet();
|
||||||
initFirstLoginTips();
|
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));
|
Bus.get().post(new MessageMsgBusEvent(MessageMsgBusEvent.TYPE_UPDATE_POINT, MsgMessageFragment.systemPoint + count));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
RongIMClient.getInstance().getTotalUnreadCount(new RongIMClient.ResultCallback<Integer>() {
|
|
||||||
|
RongIMClient.getInstance().getUnreadCount(new Conversation.ConversationType[]{Conversation.ConversationType.PRIVATE}
|
||||||
|
,false
|
||||||
|
,new RongIMClient.ResultCallback<Integer>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Integer integer) {
|
public void onSuccess(Integer integer) {
|
||||||
updateUnreadCount(MsgMessageFragment.systemPoint + integer);
|
updateUnreadCount(MsgMessageFragment.systemPoint + integer);
|
||||||
|
@ -92,7 +92,7 @@ public class MatchingActivity extends AbsOTOActivity {
|
|||||||
bean = JSONObject.parseObject(data, SendConsumeBean.class);
|
bean = JSONObject.parseObject(data, SendConsumeBean.class);
|
||||||
if (bean != null) {
|
if (bean != null) {
|
||||||
MatchingActivity.this.bundle=bundle;
|
MatchingActivity.this.bundle=bundle;
|
||||||
new Handler(Looper.getMainLooper()).postDelayed(toCallRunnable, 5000);
|
new Handler(Looper.getMainLooper()).postDelayed(toCallRunnable, 1000);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -164,7 +164,7 @@ public class MatchingActivity extends AbsOTOActivity {
|
|||||||
bundle.putInt("type", ChatActivity.CALL_CHAT_TYPE_MATCH);
|
bundle.putInt("type", ChatActivity.CALL_CHAT_TYPE_MATCH);
|
||||||
bundle.putString("data", JSONObject.toJSONString(bean));
|
bundle.putString("data", JSONObject.toJSONString(bean));
|
||||||
MatchingActivity.this.bundle = bundle;
|
MatchingActivity.this.bundle = bundle;
|
||||||
handler.postDelayed(toCallRunnable, 5000);
|
handler.postDelayed(toCallRunnable, 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -43,17 +43,18 @@ public class DynamicFragment extends BaseFragment {
|
|||||||
settings.setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
|
settings.setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
|
||||||
settings.setDomStorageEnabled(true);
|
settings.setDomStorageEnabled(true);
|
||||||
webView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext(getActivity(), webView)
|
webView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext(getActivity(), webView)
|
||||||
|
.setPermitSetHigh(false)
|
||||||
.setPageClose(true)
|
.setPageClose(true)
|
||||||
.setLiveZhuangBana(false), "androidObject");
|
.setLiveZhuangBana(false), "androidObject");
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
||||||
}
|
}
|
||||||
AndroidBug5497Workaround.assistActivity(getActivity());
|
// AndroidBug5497Workaround.assistActivity(getActivity());
|
||||||
|
|
||||||
webView.setWebViewClient(new WebViewClient() {
|
webView.setWebViewClient(new WebViewClient() {
|
||||||
@Override
|
@Override
|
||||||
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
public boolean shouldOverrideUrlLoading(WebView view, String url) {
|
||||||
Log.e("H5-------->" , url);
|
Log.e("H5-------->", url);
|
||||||
if (url.startsWith(Constants.COPY_PREFIX)) {
|
if (url.startsWith(Constants.COPY_PREFIX)) {
|
||||||
String content = url.substring(Constants.COPY_PREFIX.length());
|
String content = url.substring(Constants.COPY_PREFIX.length());
|
||||||
if (!TextUtils.isEmpty(content)) {
|
if (!TextUtils.isEmpty(content)) {
|
||||||
@ -77,11 +78,12 @@ public class DynamicFragment extends BaseFragment {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
|
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");
|
+ userInfo.getId() + "&token=" + userInfo.getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
|
||||||
Log.i("Web",url);
|
Log.i("Web", url);
|
||||||
webView.loadUrl(url);
|
webView.loadUrl(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复制到剪贴板
|
* 复制到剪贴板
|
||||||
*/
|
*/
|
||||||
@ -91,6 +93,7 @@ public class DynamicFragment extends BaseFragment {
|
|||||||
cm.setPrimaryClip(clipData);
|
cm.setPrimaryClip(clipData);
|
||||||
ToastUtil.show(getString(R.string.copy_success));
|
ToastUtil.show(getString(R.string.copy_success));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
return inflater.inflate(R.layout.fragment_dynamic, container, false);
|
return inflater.inflate(R.layout.fragment_dynamic, container, false);
|
||||||
|
@ -5,18 +5,38 @@ import android.os.Bundle;
|
|||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.ImageView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
import androidx.viewpager2.adapter.FragmentStateAdapter;
|
||||||
import androidx.viewpager2.widget.ViewPager2;
|
import androidx.viewpager2.widget.ViewPager2;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.angcyo.tablayout.DslTabLayout;
|
import com.angcyo.tablayout.DslTabLayout;
|
||||||
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
|
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
|
||||||
import com.shayu.onetoone.R;
|
import com.shayu.onetoone.R;
|
||||||
import com.shayu.onetoone.activity.fragments.home.HotFragment;
|
import com.shayu.onetoone.activity.fragments.home.HotFragment;
|
||||||
import com.shayu.onetoone.activity.fragments.home.RecommendFragment;
|
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.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.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -26,37 +46,141 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class FriendsFragment extends BaseFragment {
|
public class FriendsFragment extends BaseFragment {
|
||||||
List<BaseFragment> fragments = new ArrayList<>();
|
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) {
|
public void initView(View itemView) {
|
||||||
ViewPager2 viewPager2 = itemView.findViewById(R.id.viewPager);
|
Bus.getOn(this);
|
||||||
DslTabLayout tabLayout = itemView.findViewById(R.id.dslTabLayout);
|
viewPager2 = itemView.findViewById(R.id.viewPager);
|
||||||
ViewPager2Delegate.Companion.install(viewPager2, tabLayout, false);
|
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 RecommendFragment());//消息 - 消息
|
||||||
fragments.add(new HotFragment()); //消息 - 好友
|
fragments.add(new HotFragment()); //消息 - 好友
|
||||||
viewPager2.setAdapter(new FragmentStateAdapter(this) {
|
viewPager2.setAdapter(new FragmentStateAdapter(this) {
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Fragment createFragment(int position) {
|
public Fragment createFragment(int position) {
|
||||||
return fragments.get(position);
|
return fragments.get(position);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
return fragments.size();
|
return fragments.size();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
findViewById(R.id.btn_top).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_RANK));
|
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));
|
findViewById(R.id.btn_filter).setOnClickListener(v -> RouteManager.forwardActivity(RouteManager.ACTIVITY_HOME_SCREEN));
|
||||||
|
|
||||||
Bundle screen = getActivity().getIntent().getBundleExtra("screen");
|
Bundle screen = getActivity().getIntent().getBundleExtra("screen");
|
||||||
if(screen!=null){
|
if (screen != null) {
|
||||||
viewPager2.setCurrentItem(0);
|
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
|
@Override
|
||||||
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
return inflater.inflate(R.layout.fragment_friends, container, false);
|
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.activity.fragments.BaseFragment;
|
||||||
import com.shayu.onetoone.adapter.HomeHotListAdapter;
|
import com.shayu.onetoone.adapter.HomeHotListAdapter;
|
||||||
import com.shayu.onetoone.bean.HomeItemBean;
|
import com.shayu.onetoone.bean.HomeItemBean;
|
||||||
|
import com.shayu.onetoone.event.HomeBusEvent;
|
||||||
import com.shayu.onetoone.manager.OTONetManager;
|
import com.shayu.onetoone.manager.OTONetManager;
|
||||||
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
|
import com.yanzhenjie.recyclerview.SwipeRecyclerView;
|
||||||
|
import com.yunbao.common.adapter.SpaceGridItemDecoration;
|
||||||
import com.yunbao.common.http.base.HttpCallback;
|
import com.yunbao.common.http.base.HttpCallback;
|
||||||
|
import com.yunbao.common.utils.Bus;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -35,6 +38,8 @@ public class HotFragment extends BaseFragment {
|
|||||||
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
|
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
|
||||||
adapter = new HomeHotListAdapter(getContext());
|
adapter = new HomeHotListAdapter(getContext());
|
||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
|
recyclerView.addItemDecoration(new SpaceGridItemDecoration(10));
|
||||||
|
recyclerView.setEmptyView(findViewById(R.id.view_empty));
|
||||||
mRefreshLayout.setNestedScrollingEnabled(false);
|
mRefreshLayout.setNestedScrollingEnabled(false);
|
||||||
mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext()));
|
mRefreshLayout.setRefreshHeader(new RongRefreshHeader(this.getContext()));
|
||||||
mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext()));
|
mRefreshLayout.setRefreshFooter(new RongRefreshHeader(this.getContext()));
|
||||||
@ -79,6 +84,11 @@ public class HotFragment extends BaseFragment {
|
|||||||
} else {
|
} else {
|
||||||
adapter.setList(data);
|
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
|
@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
|
@Override
|
||||||
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||||
return inflater.inflate(R.layout.fragment_hot, container, false);
|
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.http.base.HttpCallback;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -43,21 +41,19 @@ public class RecommendFragment extends BaseFragment {
|
|||||||
private int page = 1;
|
private int page = 1;
|
||||||
private boolean isScreen;
|
private boolean isScreen;
|
||||||
Bundle screen;
|
Bundle screen;
|
||||||
ImageView matching;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
Bus.getOff(this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initView(View itemView) {
|
public void initView(View itemView) {
|
||||||
Bus.getOn(this);
|
|
||||||
recyclerView = itemView.findViewById(R.id.recyclerView);
|
recyclerView = itemView.findViewById(R.id.recyclerView);
|
||||||
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
|
mRefreshLayout = itemView.findViewById(R.id.swipeRefreshLayout);
|
||||||
top = itemView.findViewById(R.id.btn_top_list);
|
top = itemView.findViewById(R.id.btn_top_list);
|
||||||
matching = itemView.findViewById(R.id.matching);
|
|
||||||
adapter = new HomeRecommendListAdapter(getContext());
|
adapter = new HomeRecommendListAdapter(getContext());
|
||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
mRefreshLayout.setNestedScrollingEnabled(false);
|
mRefreshLayout.setNestedScrollingEnabled(false);
|
||||||
@ -79,25 +75,7 @@ public class RecommendFragment extends BaseFragment {
|
|||||||
top.setOnClickListener(view -> {
|
top.setOnClickListener(view -> {
|
||||||
recyclerView.scrollToPosition(0);
|
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");
|
screen = getActivity().getIntent().getBundleExtra("screen");
|
||||||
if (screen != null) {
|
if (screen != null) {
|
||||||
if (!isScreen) {
|
if (!isScreen) {
|
||||||
@ -115,7 +93,7 @@ public class RecommendFragment extends BaseFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void screen(Bundle screen) {
|
public void screen(Bundle screen) {
|
||||||
OTONetManager.getInstance(mContext)
|
OTONetManager.getInstance(mContext)
|
||||||
.search("",
|
.search("",
|
||||||
screen.getString("age", ""),
|
screen.getString("age", ""),
|
||||||
@ -176,6 +154,11 @@ public class RecommendFragment extends BaseFragment {
|
|||||||
} else {
|
} else {
|
||||||
adapter.setList(data);
|
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();
|
mRefreshLayout.finishRefresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,15 +174,13 @@ public class RecommendFragment extends BaseFragment {
|
|||||||
return inflater.inflate(R.layout.fragment_recommend, container, false);
|
return inflater.inflate(R.layout.fragment_recommend, container, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Override
|
||||||
public void event(HomeBusEvent event) {
|
public void onResume() {
|
||||||
if (event.getType() == HomeBusEvent.TYPE_UPDATE_MATCHING) {
|
super.onResume();
|
||||||
int num = event.getMatching();
|
if(adapter.getItemCount()==0){
|
||||||
if (num > 0) {
|
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,0));
|
||||||
matching.setImageResource(R.mipmap.ic_matching_free);
|
}else{
|
||||||
} else {
|
Bus.get().post(new HomeBusEvent(HomeBusEvent.TYPE_SHOW_MATCHING,1));
|
||||||
matching.setImageResource(R.mipmap.ic_matching);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package com.shayu.onetoone.activity.fragments.message;
|
|||||||
|
|
||||||
import static android.content.Context.CLIPBOARD_SERVICE;
|
import static android.content.Context.CLIPBOARD_SERVICE;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.content.ClipboardManager;
|
import android.content.ClipboardManager;
|
||||||
@ -22,7 +23,9 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.core.content.FileProvider;
|
import androidx.core.content.FileProvider;
|
||||||
|
|
||||||
|
import com.blankj.utilcode.util.PermissionUtils;
|
||||||
import com.lxj.xpopup.XPopup;
|
import com.lxj.xpopup.XPopup;
|
||||||
|
import com.lzf.easyfloat.EasyFloat;
|
||||||
import com.makeramen.roundedimageview.RoundedImageView;
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
import com.shayu.onetoone.R;
|
import com.shayu.onetoone.R;
|
||||||
import com.shayu.onetoone.adapter.MsgChatMessageListAdapter;
|
import com.shayu.onetoone.adapter.MsgChatMessageListAdapter;
|
||||||
@ -67,6 +70,7 @@ import java.util.Collections;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import io.rong.calllib.RongCallClient;
|
||||||
import io.rong.imkit.IMCenter;
|
import io.rong.imkit.IMCenter;
|
||||||
import io.rong.imkit.config.RongConfigCenter;
|
import io.rong.imkit.config.RongConfigCenter;
|
||||||
import io.rong.imkit.conversation.MessageListAdapter;
|
import io.rong.imkit.conversation.MessageListAdapter;
|
||||||
@ -264,6 +268,10 @@ public class ChatMessageFragment extends AbsConversationFragment {
|
|||||||
ToastUtil.show(R.string.toast_call_not_unlock);
|
ToastUtil.show(R.string.toast_call_not_unlock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(CallClientManager.getManager().isCalling()){
|
||||||
|
ToastUtil.show(R.string.now_call_tips);
|
||||||
|
return;
|
||||||
|
}
|
||||||
checkAuth(new OnSendMessageListener() {
|
checkAuth(new OnSendMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String token, SendConsumeBean bean) {
|
public void onSuccess(String token, SendConsumeBean bean) {
|
||||||
@ -316,6 +324,11 @@ public class ChatMessageFragment extends AbsConversationFragment {
|
|||||||
ToastUtil.show(R.string.toast_call_not_unlock);
|
ToastUtil.show(R.string.toast_call_not_unlock);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(CallClientManager.getManager().isCalling() || isFloatWindows()){
|
||||||
|
ToastUtil.show(R.string.now_call_tips);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
checkAuth(new OnSendMessageListener() {
|
checkAuth(new OnSendMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String token, SendConsumeBean bean) {
|
public void onSuccess(String token, SendConsumeBean bean) {
|
||||||
@ -394,6 +407,17 @@ public class ChatMessageFragment extends AbsConversationFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void onError(int status, String msg) {
|
public void onError(int status, String msg) {
|
||||||
super.onError(status, 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) {
|
private void checkAuth(OnSendMessageListener listener) {
|
||||||
OTONetManager.getInstance(mContext)
|
OTONetManager.getInstance(mContext)
|
||||||
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
|
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
|
||||||
@ -759,7 +787,9 @@ public class ChatMessageFragment extends AbsConversationFragment {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void showRedPoint() {
|
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
|
@Override
|
||||||
public void onSuccess(Integer integer) {
|
public void onSuccess(Integer integer) {
|
||||||
Integer tmp = integer + MsgMessageFragment.systemPoint;
|
Integer tmp = integer + MsgMessageFragment.systemPoint;
|
||||||
|
@ -18,10 +18,15 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import io.rong.imkit.conversation.MessageListAdapter;
|
import io.rong.imkit.conversation.MessageListAdapter;
|
||||||
import io.rong.imkit.model.UiMessage;
|
import io.rong.imkit.model.UiMessage;
|
||||||
import io.rong.imlib.model.Message;
|
import io.rong.imlib.model.Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 互動消息
|
||||||
|
*/
|
||||||
public class MessageInteractiveFragment extends AbsConversationFragment {
|
public class MessageInteractiveFragment extends AbsConversationFragment {
|
||||||
private OfficialNoticeBean noticeBean;
|
private OfficialNoticeBean noticeBean;
|
||||||
|
|
||||||
@ -38,7 +43,7 @@ public class MessageInteractiveFragment extends AbsConversationFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void main() {
|
public void main() {
|
||||||
setTitle(noticeBean.getTitle());
|
setTitle(noticeBean.getTitle());
|
||||||
|
mList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, true));
|
||||||
initData();
|
initData();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,10 +18,15 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import io.rong.imkit.conversation.MessageListAdapter;
|
import io.rong.imkit.conversation.MessageListAdapter;
|
||||||
import io.rong.imkit.model.UiMessage;
|
import io.rong.imkit.model.UiMessage;
|
||||||
import io.rong.imlib.model.Message;
|
import io.rong.imlib.model.Message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 官方通知
|
||||||
|
*/
|
||||||
public class MessageNoticeFragment extends AbsConversationFragment {
|
public class MessageNoticeFragment extends AbsConversationFragment {
|
||||||
private OfficialNoticeBean noticeBean;
|
private OfficialNoticeBean noticeBean;
|
||||||
|
|
||||||
@ -38,6 +43,7 @@ public class MessageNoticeFragment extends AbsConversationFragment {
|
|||||||
@Override
|
@Override
|
||||||
public void main() {
|
public void main() {
|
||||||
setTitle(noticeBean.getTitle());
|
setTitle(noticeBean.getTitle());
|
||||||
|
mList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, true));
|
||||||
initData();
|
initData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +161,6 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
initSystemNotice();
|
|
||||||
initRongConfig();
|
initRongConfig();
|
||||||
updateUserInfo();
|
updateUserInfo();
|
||||||
}
|
}
|
||||||
@ -178,11 +177,11 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
|
|||||||
|
|
||||||
|
|
||||||
private void initSystemNotice() {
|
private void initSystemNotice() {
|
||||||
systemPoint = 0;
|
|
||||||
OTONetManager.getInstance(mContext)
|
OTONetManager.getInstance(mContext)
|
||||||
.getMessageSystemLists(new HttpCallback<List<OfficialNoticeBean>>() {
|
.getMessageSystemLists(new HttpCallback<List<OfficialNoticeBean>>() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(List<OfficialNoticeBean> data) {
|
public void onSuccess(List<OfficialNoticeBean> data) {
|
||||||
|
systemPoint = 0;
|
||||||
for (OfficialNoticeBean datum : data) {
|
for (OfficialNoticeBean datum : data) {
|
||||||
systemPoint += datum.getNum();
|
systemPoint += datum.getNum();
|
||||||
if (datum.getType() == 3) {
|
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.setRefreshFooter(new RongRefreshHeader(this.getContext()));
|
||||||
this.mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
|
this.mRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
|
||||||
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
||||||
|
initSystemNotice();
|
||||||
MsgMessageFragment.this.onConversationListRefresh(refreshLayout);
|
MsgMessageFragment.this.onConversationListRefresh(refreshLayout);
|
||||||
updateUserInfo();
|
updateUserInfo();
|
||||||
}
|
}
|
||||||
@ -513,12 +513,12 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
|
|||||||
private SwipeMenuCreator initSwipeMenuCreator() {
|
private SwipeMenuCreator initSwipeMenuCreator() {
|
||||||
SwipeMenuCreator creator = (leftMenu, rightMenu, position) -> {
|
SwipeMenuCreator creator = (leftMenu, rightMenu, position) -> {
|
||||||
SwipeMenuItem top = new SwipeMenuItem(getContext());
|
SwipeMenuItem top = new SwipeMenuItem(getContext());
|
||||||
SwipeMenuItem del = new SwipeMenuItem(getContext());
|
SwipeMenuItem del = new SwipeMenuItem(getContext());
|
||||||
top.setBackgroundColor(Color.parseColor("#D9D9D9"));
|
top.setBackgroundColor(Color.parseColor("#D9D9D9"));
|
||||||
del.setBackgroundColor(Color.parseColor("#FE5268"));
|
del.setBackgroundColor(Color.parseColor("#FE5268"));
|
||||||
if(mAdapter.getItem(position).mCore.isTop()) {
|
if (mAdapter.getItem(position).mCore.isTop()) {
|
||||||
top.setText(R.string.untop);
|
top.setText(R.string.untop);
|
||||||
}else{
|
} else {
|
||||||
top.setText(R.string.top);
|
top.setText(R.string.top);
|
||||||
}
|
}
|
||||||
del.setText(R.string.delete);
|
del.setText(R.string.delete);
|
||||||
@ -568,7 +568,8 @@ public class MsgMessageFragment extends BaseFragment implements BaseAdapter.OnIt
|
|||||||
public void busEvent(MessageMsgBusEvent event) {
|
public void busEvent(MessageMsgBusEvent event) {
|
||||||
if (event.getType() == MessageMsgBusEvent.TYPE_ALL_READ) {
|
if (event.getType() == MessageMsgBusEvent.TYPE_ALL_READ) {
|
||||||
allRead();
|
allRead();
|
||||||
} else if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_SYSTEM) {
|
}
|
||||||
|
if (event.getType() == MessageMsgBusEvent.TYPE_UPDATE_SYSTEM) {
|
||||||
initSystemNotice();
|
initSystemNotice();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,8 @@ import java.util.List;
|
|||||||
|
|
||||||
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentManager;
|
||||||
import androidx.fragment.app.FragmentTransaction;
|
import androidx.fragment.app.FragmentTransaction;
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
|
|
||||||
import io.rong.imkit.IMCenter;
|
import io.rong.imkit.IMCenter;
|
||||||
import io.rong.imkit.config.RongConfigCenter;
|
import io.rong.imkit.config.RongConfigCenter;
|
||||||
import io.rong.imkit.conversation.ConversationFragment;
|
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.imlib.model.UserInfo;
|
||||||
import io.rong.message.TextMessage;
|
import io.rong.message.TextMessage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 系統消息
|
||||||
|
*/
|
||||||
public class SystemMessageFragment extends AbsConversationFragment {
|
public class SystemMessageFragment extends AbsConversationFragment {
|
||||||
View mInputPanel;
|
View mInputPanel;
|
||||||
|
|
||||||
@ -57,6 +62,7 @@ public class SystemMessageFragment extends AbsConversationFragment {
|
|||||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
init();
|
init();
|
||||||
|
mList.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, true));
|
||||||
initData();
|
initData();
|
||||||
initSystemMessage();
|
initSystemMessage();
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.shayu.onetoone.activity.message;
|
package com.shayu.onetoone.activity.message;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.MotionEvent;
|
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.http.base.HttpCallback;
|
||||||
import com.yunbao.common.interfaces.OnItemClickListener;
|
import com.yunbao.common.interfaces.OnItemClickListener;
|
||||||
import com.yunbao.common.utils.DpUtil;
|
import com.yunbao.common.utils.DpUtil;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.common.utils.WordUtil;
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
@ -56,6 +58,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
private ImageView callStop;
|
private ImageView callStop;
|
||||||
private ImageView callMsg;
|
private ImageView callMsg;
|
||||||
private TextView callTime;
|
private TextView callTime;
|
||||||
|
private TextView tips;
|
||||||
|
|
||||||
private String targetId;
|
private String targetId;
|
||||||
private String callId;
|
private String callId;
|
||||||
@ -82,7 +85,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
model = bundle.getString("model");
|
model = bundle.getString("model");
|
||||||
initView();
|
initView();
|
||||||
onCallStatusListener = new CallStatusListener();
|
onCallStatusListener = new CallStatusListener();
|
||||||
CallClientManager.getManager().addOnVoIPCallListener(onCallStatusListener);
|
CallClientManager.getManager().addOnVoIPCallListener(CallAudioActivity.class,onCallStatusListener);
|
||||||
initTargetData();
|
initTargetData();
|
||||||
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
|
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
|
||||||
EasyFloat.dismiss("call");
|
EasyFloat.dismiss("call");
|
||||||
@ -91,6 +94,24 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
gift.setVisibility(View.VISIBLE);
|
gift.setVisibility(View.VISIBLE);
|
||||||
money.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)) {
|
if (model.equals(CallClientManager.AUDIO_CALL)) {
|
||||||
CallClientManager.getManager().callAudio(targetId);
|
CallClientManager.getManager().callAudio(targetId);
|
||||||
callMsg.setTag(true);
|
callMsg.setTag(true);
|
||||||
@ -101,7 +122,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
@Override
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
CallClientManager.getManager().removeOnVoIPCallListener(onCallStatusListener);
|
CallClientManager.getManager().removeOnVoIPCallListener(CallAudioActivity.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -121,6 +142,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
callStop = findViewById(R.id.call_stop);
|
callStop = findViewById(R.id.call_stop);
|
||||||
callMsg = findViewById(R.id.call_msg);
|
callMsg = findViewById(R.id.call_msg);
|
||||||
callTime = findViewById(R.id.call_time);
|
callTime = findViewById(R.id.call_time);
|
||||||
|
tips = findViewById(R.id.tips);
|
||||||
|
|
||||||
callMsg.setImageResource(io.rong.callkit.R.drawable.rc_voip_audio_answer_selector_new);
|
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);
|
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_AUDIO, bundle);
|
||||||
});
|
});
|
||||||
windowListener = new WindowCallStatusListener();
|
windowListener = new WindowCallStatusListener();
|
||||||
CallClientManager.getManager().addOnVoIPCallListener(windowListener);
|
CallClientManager.getManager().addOnVoIPCallListener(EasyFloat.class,windowListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -258,7 +280,7 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dismiss() {
|
public void dismiss() {
|
||||||
CallClientManager.getManager().removeOnVoIPCallListener(windowListener);
|
CallClientManager.getManager().removeOnVoIPCallListener(EasyFloat.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -284,7 +306,8 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
private class CallStatusListener extends OnCallStatusListener {
|
private class CallStatusListener extends OnCallStatusListener {
|
||||||
@Override
|
@Override
|
||||||
public void onCallWait(SurfaceView surfaceView) {
|
public void onCallWait(SurfaceView surfaceView) {
|
||||||
|
tips.setVisibility(View.VISIBLE);
|
||||||
|
tips.setText(R.string.call_tips1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -296,6 +319,10 @@ public class CallAudioActivity extends AbsOTOActivity implements View.OnClickLis
|
|||||||
gift.setVisibility(View.VISIBLE);
|
gift.setVisibility(View.VISIBLE);
|
||||||
money.setVisibility(View.VISIBLE);
|
money.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
tips.setText(R.string.call_tips2);
|
||||||
|
tips.postDelayed(()->{
|
||||||
|
tips.setVisibility(View.GONE);
|
||||||
|
},1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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)) {
|
if (model.equals(CallClientManager.AUDIO_RECEIVED_CALL)||model.equals(CallClientManager.VIDEO_RECEIVED_CALL)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(msg<=0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
tipsDialog = new TipsTextDialog(mContext)
|
tipsDialog = new TipsTextDialog(mContext)
|
||||||
.setTips(String.format(WordUtil.getNewString(R.string.call_tips), msg))
|
.setTips(String.format(WordUtil.getNewString(R.string.call_tips), msg))
|
||||||
.setOnItemClickListener(new OnItemClickListener<String>() {
|
.setOnItemClickListener(new OnItemClickListener<String>() {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.shayu.onetoone.activity.message;
|
package com.shayu.onetoone.activity.message;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
@ -11,6 +12,7 @@ import android.view.MotionEvent;
|
|||||||
import android.view.SurfaceView;
|
import android.view.SurfaceView;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.view.ViewParent;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
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.ToastUtil;
|
||||||
import com.yunbao.common.utils.WordUtil;
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
import io.rong.calllib.RongCallClient;
|
import io.rong.calllib.RongCallClient;
|
||||||
import io.rong.calllib.StartIncomingPreviewCallback;
|
import io.rong.calllib.StartIncomingPreviewCallback;
|
||||||
|
|
||||||
@ -73,13 +77,15 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
private ImageView follow;
|
private ImageView follow;
|
||||||
private TextView followText;
|
private TextView followText;
|
||||||
private TextView callTime;
|
private TextView callTime;
|
||||||
|
private TextView tips;
|
||||||
|
private ImageView closeWait;
|
||||||
|
|
||||||
private OnCallStatusListener onCallStatusListener;
|
private OnCallStatusListener onCallStatusListener;
|
||||||
|
|
||||||
private String targetId;
|
private String targetId;
|
||||||
|
private String sessionId;
|
||||||
private String callId;
|
private String callId;
|
||||||
private String model;
|
private String model;
|
||||||
private SurfaceView localVideo, remoteVideo;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getLayoutId() {
|
protected int getLayoutId() {
|
||||||
@ -105,7 +111,7 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
model = bundle.getString("model");
|
model = bundle.getString("model");
|
||||||
|
|
||||||
onCallStatusListener = new CallStatusListener();
|
onCallStatusListener = new CallStatusListener();
|
||||||
CallClientManager.getManager().addOnVoIPCallListener(onCallStatusListener);
|
CallClientManager.getManager().addOnVoIPCallListener(CallVideoActivity.class,onCallStatusListener);
|
||||||
|
|
||||||
if (!model.equals(CallClientManager.VIDEO_FLOAT)) {
|
if (!model.equals(CallClientManager.VIDEO_FLOAT)) {
|
||||||
RongCallClient.getInstance()
|
RongCallClient.getInstance()
|
||||||
@ -124,6 +130,23 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
initButton(buttonView);
|
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)) {
|
if (!StringUtil.isEmpty(targetId)) {
|
||||||
CallClientManager.getManager().callVideo(targetId);
|
CallClientManager.getManager().callVideo(targetId);
|
||||||
initWaitView();
|
initWaitView();
|
||||||
@ -136,20 +159,51 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
|
if (model.equals(CallClientManager.VIDEO_FLOAT)) {
|
||||||
callLayout.setVisibility(View.GONE);
|
callLayout.setVisibility(View.GONE);
|
||||||
EasyFloat.getFloatView("call").setOnClickListener(null);
|
EasyFloat.getFloatView("call").setOnClickListener(null);
|
||||||
((ViewGroup) EasyFloat.getFloatView("call").getParent()).removeAllViews();
|
//((ViewGroup) EasyFloat.getFloatView("call").getParent()).removeAllViews();
|
||||||
EasyFloat.dismiss("call");
|
EasyFloat.dismiss("call");
|
||||||
myView.removeAllViews();
|
myView.removeAllViews();
|
||||||
|
|
||||||
new Handler(Looper.getMainLooper())
|
new Handler(Looper.getMainLooper())
|
||||||
.postDelayed(() -> {
|
.postDelayed(() -> {
|
||||||
|
SurfaceView localVideo = CallClientManager.getManager().getLocalVideo();
|
||||||
SurfaceView surfaceView = CallClientManager.getManager().getRemoteVideo();
|
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();
|
initView();
|
||||||
initButton(buttonView);
|
initButton(buttonView);
|
||||||
myView.addView(surfaceView);
|
if (surfaceView == null) {
|
||||||
myView.addView(buttonView);
|
localVideo.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
|
||||||
targetView.addView(CallClientManager.getManager().getLocalVideo());
|
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();
|
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);
|
}, 300);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -162,6 +216,8 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
buttonView = LayoutInflater.from(mContext).inflate(R.layout.view_call_video_item, rootView, false);
|
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);
|
callWaitLayout = LayoutInflater.from(mContext).inflate(R.layout.view_call_video_wait, rootView, false);
|
||||||
targetView = buttonView.findViewById(R.id.target_view);
|
targetView = buttonView.findViewById(R.id.target_view);
|
||||||
|
tips = findViewById(R.id.tips);
|
||||||
|
closeWait = findViewById(R.id.close1);
|
||||||
targetView.setBackgroundColor(Color.YELLOW);
|
targetView.setBackgroundColor(Color.YELLOW);
|
||||||
targetView.setOnClickListener(new VideoViewClick());
|
targetView.setOnClickListener(new VideoViewClick());
|
||||||
}
|
}
|
||||||
@ -172,33 +228,43 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View view) {
|
public void onClick(View view) {
|
||||||
myView.removeAllViews();
|
/* myView.removeAllViews();
|
||||||
targetView.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) {
|
if (isSwitchView) {
|
||||||
targetView.addView(localVideo);
|
targetView.addView(CallClientManager.getManager().getLocalVideo());
|
||||||
localVideo.setZOrderOnTop(true);
|
CallClientManager.getManager().getLocalVideo().setZOrderOnTop(true);
|
||||||
localVideo.setZOrderMediaOverlay(true);
|
CallClientManager.getManager().getLocalVideo().setZOrderMediaOverlay(true);
|
||||||
myView.addView(remoteVideo);
|
CallClientManager.getManager().getRemoteVideo().setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
|
||||||
remoteVideo.setZOrderOnTop(false);
|
myView.addView(CallClientManager.getManager().getRemoteVideo());
|
||||||
remoteVideo.setZOrderMediaOverlay(false);
|
CallClientManager.getManager().getRemoteVideo().setZOrderOnTop(false);
|
||||||
|
CallClientManager.getManager().getRemoteVideo().setZOrderMediaOverlay(false);
|
||||||
myView.addView(buttonView);
|
myView.addView(buttonView);
|
||||||
isSwitchView = false;
|
isSwitchView = false;
|
||||||
localVideo.setOnClickListener(new VideoViewClick());
|
CallClientManager.getManager().getLocalVideo().setOnClickListener(new VideoViewClick());
|
||||||
remoteVideo.setOnClickListener(null);
|
CallClientManager.getManager().getRemoteVideo().setOnClickListener(null);
|
||||||
} else {
|
} else {
|
||||||
ImageView imageView = new ImageView(mContext);
|
ImageView imageView = new ImageView(mContext);
|
||||||
imageView.setImageResource(R.mipmap.bg_message_msg_title_heartbeat);
|
imageView.setImageResource(R.mipmap.bg_message_msg_title_heartbeat);
|
||||||
myView.addView(localVideo);
|
CallClientManager.getManager().getLocalVideo().setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
|
||||||
localVideo.setZOrderOnTop(false);
|
myView.addView(CallClientManager.getManager().getLocalVideo());
|
||||||
localVideo.setZOrderMediaOverlay(false);
|
CallClientManager.getManager().getLocalVideo().setZOrderOnTop(false);
|
||||||
|
CallClientManager.getManager().getLocalVideo().setZOrderMediaOverlay(false);
|
||||||
myView.addView(buttonView);
|
myView.addView(buttonView);
|
||||||
targetView.addView(imageView);
|
targetView.addView(imageView);
|
||||||
targetView.addView(remoteVideo);
|
targetView.addView(CallClientManager.getManager().getRemoteVideo());
|
||||||
remoteVideo.setZOrderOnTop(true);
|
CallClientManager.getManager().getRemoteVideo().setZOrderOnTop(true);
|
||||||
remoteVideo.setZOrderMediaOverlay(true);
|
CallClientManager.getManager().getRemoteVideo().setZOrderMediaOverlay(true);
|
||||||
isSwitchView = true;
|
isSwitchView = true;
|
||||||
remoteVideo.setOnClickListener(new VideoViewClick());
|
CallClientManager.getManager().getRemoteVideo().setOnClickListener(new VideoViewClick());
|
||||||
localVideo.setOnClickListener(null);
|
CallClientManager.getManager().getLocalVideo().setOnClickListener(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -252,6 +318,7 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
// 为其他View设置点击事件监听器
|
// 为其他View设置点击事件监听器
|
||||||
avatar.setOnClickListener(onClickListener);
|
avatar.setOnClickListener(onClickListener);
|
||||||
close.setOnClickListener(onClickListener);
|
close.setOnClickListener(onClickListener);
|
||||||
|
closeWait.setOnClickListener(onClickListener);
|
||||||
follow.setOnClickListener(onClickListener);
|
follow.setOnClickListener(onClickListener);
|
||||||
findViewById(R.id.rc_voip_call_answer_btn).setOnClickListener(onClickListener);
|
findViewById(R.id.rc_voip_call_answer_btn).setOnClickListener(onClickListener);
|
||||||
findViewById(R.id.rc_voip_call_hang_up).setOnClickListener(onClickListener);
|
findViewById(R.id.rc_voip_call_hang_up).setOnClickListener(onClickListener);
|
||||||
@ -306,13 +373,22 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
.showDialog();
|
.showDialog();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
CallClientManager.getManager().getRemoteVideo().setTag(getIntent().getExtras());
|
|
||||||
myView.removeAllViews();
|
myView.removeAllViews();
|
||||||
targetView.removeAllViews();
|
targetView.removeAllViews();
|
||||||
finish();
|
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)
|
EasyFloat.with(this)
|
||||||
.setLayout(CallClientManager.getManager().getRemoteVideo())
|
.setLayout(floatWindows)
|
||||||
.setShowPattern(ShowPattern.FOREGROUND)
|
.setShowPattern(ShowPattern.FOREGROUND)
|
||||||
.setTag("call")
|
.setTag("call")
|
||||||
.setDragEnable(true)
|
.setDragEnable(true)
|
||||||
@ -332,8 +408,8 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
bundle.putString("model", CallClientManager.VIDEO_FLOAT);
|
bundle.putString("model", CallClientManager.VIDEO_FLOAT);
|
||||||
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
|
RouteManager.forwardActivity(RouteManager.ACTIVITY_CALL_VIDEO, bundle);
|
||||||
});
|
});
|
||||||
windowListener = new WindowCallStatusListener();
|
windowListener = new WindowCallStatusListener(view);
|
||||||
CallClientManager.getManager().addOnVoIPCallListener(windowListener);
|
CallClientManager.getManager().addOnVoIPCallListener(EasyFloat.class,windowListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -343,7 +419,8 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dismiss() {
|
public void dismiss() {
|
||||||
CallClientManager.getManager().removeOnVoIPCallListener(windowListener);
|
ToastUtil.showDebug("浮窗移除监听");
|
||||||
|
CallClientManager.getManager().removeOnVoIPCallListener(EasyFloat.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -423,7 +500,7 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
switchCamera();
|
switchCamera();
|
||||||
} else if (id == R.id.mic_switch) {
|
} else if (id == R.id.mic_switch) {
|
||||||
switchAudio();
|
switchAudio();
|
||||||
} else if (id == R.id.close) {
|
} else if (id == R.id.close || id == R.id.close1) {
|
||||||
showWindow(false);
|
showWindow(false);
|
||||||
} else if (id == R.id.message) {
|
} else if (id == R.id.message) {
|
||||||
showWindow(true);
|
showWindow(true);
|
||||||
@ -437,37 +514,51 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
@Override
|
@Override
|
||||||
public void onCallWait(SurfaceView surfaceView) {
|
public void onCallWait(SurfaceView surfaceView) {
|
||||||
myView.removeAllViews();
|
myView.removeAllViews();
|
||||||
localVideo = surfaceView;
|
myView.addView(CallClientManager.getManager().getLocalVideo());
|
||||||
myView.addView(localVideo);
|
|
||||||
if (model.equals(CallClientManager.VIDEO_CALL)) {
|
if (model.equals(CallClientManager.VIDEO_CALL)) {
|
||||||
myView.addView(callWaitLayout);
|
myView.addView(callWaitLayout);
|
||||||
}
|
}
|
||||||
|
tips.setVisibility(View.VISIBLE);
|
||||||
|
tips.setText(R.string.call_tips1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallStart(String userId, SurfaceView surfaceView) {
|
public void onCallStart(String userId, SurfaceView surfaceView) {
|
||||||
|
closeWait.setVisibility(View.GONE);
|
||||||
initView();
|
initView();
|
||||||
initButton(buttonView);
|
initButton(buttonView);
|
||||||
initTargetData();
|
initTargetData();
|
||||||
surfaceView.setZOrderOnTop(false);
|
surfaceView.setZOrderOnTop(false);
|
||||||
surfaceView.setZOrderMediaOverlay(false);
|
surfaceView.setZOrderMediaOverlay(false);
|
||||||
surfaceView.invalidate();
|
surfaceView.invalidate();
|
||||||
|
surfaceView.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
|
||||||
surfaceView.setOnClickListener(v -> {
|
surfaceView.setOnClickListener(v -> {
|
||||||
surfaceView.setZOrderOnTop(false);
|
surfaceView.setZOrderOnTop(false);
|
||||||
surfaceView.setZOrderMediaOverlay(false);
|
surfaceView.setZOrderMediaOverlay(false);
|
||||||
surfaceView.invalidate();
|
surfaceView.invalidate();
|
||||||
});
|
});
|
||||||
remoteVideo = surfaceView;
|
if(surfaceView.getParent()!=null){
|
||||||
myView.removeAllViews();
|
((ViewGroup)surfaceView.getParent()).removeAllViews();
|
||||||
myView.addView(remoteVideo);
|
}
|
||||||
|
if(CallClientManager.getManager().getLocalVideo().getParent()!=null){
|
||||||
|
((ViewGroup)CallClientManager.getManager().getLocalVideo().getParent()).removeAllViews();
|
||||||
|
}
|
||||||
|
myView.addView(surfaceView);
|
||||||
targetView.removeAllViews();
|
targetView.removeAllViews();
|
||||||
targetView.addView(CallClientManager.getManager().getLocalVideo());
|
targetView.addView(CallClientManager.getManager().getLocalVideo());
|
||||||
|
CallClientManager.getManager().getLocalVideo().setOnClickListener(new VideoViewClick());
|
||||||
myView.addView(buttonView);
|
myView.addView(buttonView);
|
||||||
|
tips.setText(R.string.call_tips2);
|
||||||
|
tips.postDelayed(() -> {
|
||||||
|
tips.setVisibility(View.GONE);
|
||||||
|
}, 1000);
|
||||||
|
sessionId = CallClientManager.getManager().getSessionId();
|
||||||
}
|
}
|
||||||
//
|
|
||||||
|
//
|
||||||
@Override
|
@Override
|
||||||
public void onCallEnd() {
|
public void onCallEnd() {
|
||||||
if(model.equals(CallClientManager.AUDIO_CALL) ||model.equals(CallClientManager.VIDEO_CALL)) {
|
if (!sessionId.equals(targetId)){
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString("model", CallClientManager.VIDEO_CALL);
|
bundle.putString("model", CallClientManager.VIDEO_CALL);
|
||||||
bundle.putString("targetId", targetId);
|
bundle.putString("targetId", targetId);
|
||||||
@ -511,6 +602,9 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
if (model.equals(CallClientManager.VIDEO_RECEIVED_CALL)) {
|
if (model.equals(CallClientManager.VIDEO_RECEIVED_CALL)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(msg<=0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
tipsDialog = new TipsTextDialog(mContext)
|
tipsDialog = new TipsTextDialog(mContext)
|
||||||
.setTips(String.format(WordUtil.getNewString(R.string.call_tips), msg))
|
.setTips(String.format(WordUtil.getNewString(R.string.call_tips), msg))
|
||||||
.setOnItemClickListener(new OnItemClickListener<String>() {
|
.setOnItemClickListener(new OnItemClickListener<String>() {
|
||||||
@ -533,6 +627,12 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static class WindowCallStatusListener extends OnCallStatusListener {
|
private static class WindowCallStatusListener extends OnCallStatusListener {
|
||||||
|
View rootView;
|
||||||
|
|
||||||
|
public WindowCallStatusListener(View view) {
|
||||||
|
this.rootView = view;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallWait(SurfaceView surfaceView) {
|
public void onCallWait(SurfaceView surfaceView) {
|
||||||
|
|
||||||
@ -540,6 +640,20 @@ public class CallVideoActivity extends AbsOTOActivity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallStart(String userId, SurfaceView surfaceView) {
|
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
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
super.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) {
|
public void onSuccess(FollowBean data) {
|
||||||
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
|
ToastUtil.show(WordUtil.getNewString(R.string.system_tip_success));
|
||||||
follow.setEnabled(false);
|
follow.setEnabled(false);
|
||||||
follow.setText(R.string.activity_my_friend_list_item_2);
|
follow.setText(R.string.activity_my_friend_list_item_3);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -9,6 +9,8 @@ public class MessageConsumeConfigBean extends BaseModel {
|
|||||||
private int mp3Price;//音频扣费金额
|
private int mp3Price;//音频扣费金额
|
||||||
private int price;//消息扣费金额
|
private int price;//消息扣费金额
|
||||||
private int pingTime;//心跳时间,单位秒
|
private int pingTime;//心跳时间,单位秒
|
||||||
|
private int matePrice;//匹配金額
|
||||||
|
private int mateTime;//匹配時間
|
||||||
|
|
||||||
public MessageConsumeConfigBean() {
|
public MessageConsumeConfigBean() {
|
||||||
}
|
}
|
||||||
@ -44,4 +46,20 @@ public class MessageConsumeConfigBean extends BaseModel {
|
|||||||
public void setPingTime(int pingTime) {
|
public void setPingTime(int pingTime) {
|
||||||
this.pingTime = 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 sex;
|
||||||
private int b_y;
|
private int b_y;
|
||||||
private int b_ym;
|
private int b_ym;
|
||||||
private int b_ymd;
|
private String b_ymd;
|
||||||
private int name_auth;//1 未提交 2 已认证 3已提交
|
private int name_auth;//1 未提交 2 已认证 3已提交
|
||||||
private long name_auth_time;
|
private long name_auth_time;
|
||||||
private String auth_front;
|
private String auth_front;
|
||||||
@ -167,11 +167,11 @@ public class UserBean extends BaseModel {
|
|||||||
this.b_ym = b_ym;
|
this.b_ym = b_ym;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getB_ymd() {
|
public String getB_ymd() {
|
||||||
return b_ymd;
|
return b_ymd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setB_ymd(int b_ymd) {
|
public void setB_ymd(String b_ymd) {
|
||||||
this.b_ymd = b_ymd;
|
this.b_ymd = b_ymd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@ package com.shayu.onetoone.event;
|
|||||||
|
|
||||||
public class HomeBusEvent extends AbsBusEvent {
|
public class HomeBusEvent extends AbsBusEvent {
|
||||||
public static final int TYPE_UPDATE_MATCHING = 0;
|
public static final int TYPE_UPDATE_MATCHING = 0;
|
||||||
|
public static final int TYPE_SHOW_MATCHING = 1;
|
||||||
private int matching;
|
private int matching;
|
||||||
|
|
||||||
public HomeBusEvent(int type) {
|
public HomeBusEvent(int type) {
|
||||||
|
@ -23,6 +23,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
@ -49,7 +50,7 @@ public class CallClientManager {
|
|||||||
public static final String AUDIO_FLOAT = "audioFloatWindow";//浮窗
|
public static final String AUDIO_FLOAT = "audioFloatWindow";//浮窗
|
||||||
private static CallClientManager manager;
|
private static CallClientManager manager;
|
||||||
private SurfaceView localVideo, remoteVideo;
|
private SurfaceView localVideo, remoteVideo;
|
||||||
private List<OnCallStatusListener> listeners;
|
private Map<Class,OnCallStatusListener> listeners;
|
||||||
private CallTimeTask timeTask = null;
|
private CallTimeTask timeTask = null;
|
||||||
|
|
||||||
public static CallClientManager getManager() {
|
public static CallClientManager getManager() {
|
||||||
@ -60,7 +61,7 @@ public class CallClientManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private CallClientManager() {
|
private CallClientManager() {
|
||||||
listeners = new ArrayList<>();
|
listeners = new HashMap<>();
|
||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,19 +84,19 @@ public class CallClientManager {
|
|||||||
RongCallClient.setReceivedCallListener(new CallMeListener());
|
RongCallClient.setReceivedCallListener(new CallMeListener());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addOnVoIPCallListener(OnCallStatusListener statusListener) {
|
public void addOnVoIPCallListener(Class zlass,OnCallStatusListener statusListener) {
|
||||||
listeners.add(statusListener);
|
listeners.put(zlass,statusListener);
|
||||||
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
|
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onCallWait(SurfaceView localVideo) {
|
public void onCallWait(SurfaceView localVideo) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallWait(localVideo);
|
listener.onCallWait(localVideo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallStart(String userId, SurfaceView remoteVideo) {
|
public void onCallStart(String userId, SurfaceView remoteVideo) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallStart(userId, remoteVideo);
|
listener.onCallStart(userId, remoteVideo);
|
||||||
}
|
}
|
||||||
startTimer(null);
|
startTimer(null);
|
||||||
@ -103,7 +104,7 @@ public class CallClientManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallEnd() {
|
public void onCallEnd() {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallEnd();
|
listener.onCallEnd();
|
||||||
}
|
}
|
||||||
endTimer();
|
endTimer();
|
||||||
@ -111,15 +112,15 @@ public class CallClientManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStartFirstFrame() {
|
public void onStartFirstFrame() {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onStartFirstFrame();
|
listener.onStartFirstFrame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeOnVoIPCallListener(OnCallStatusListener statusListener) {
|
public void removeOnVoIPCallListener(Class zlass) {
|
||||||
listeners.remove(statusListener);
|
listeners.remove(zlass);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void checkMoney(String targetId, boolean video, OnSendMessageListener listener) {
|
public void checkMoney(String targetId, boolean video, OnSendMessageListener listener) {
|
||||||
@ -149,24 +150,22 @@ public class CallClientManager {
|
|||||||
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
|
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onCallWait(SurfaceView localVideo) {
|
public void onCallWait(SurfaceView localVideo) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallWait(localVideo);
|
listener.onCallWait(localVideo);
|
||||||
}
|
}
|
||||||
ToastUtil.show(R.string.call_tips1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallStart(String userId, SurfaceView remoteVideo) {
|
public void onCallStart(String userId, SurfaceView remoteVideo) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallStart(userId, remoteVideo);
|
listener.onCallStart(userId, remoteVideo);
|
||||||
}
|
}
|
||||||
ToastUtil.show(R.string.call_tips2);
|
|
||||||
startTimer(targetId);
|
startTimer(targetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallEnd() {
|
public void onCallEnd() {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallEnd();
|
listener.onCallEnd();
|
||||||
}
|
}
|
||||||
endTimer();
|
endTimer();
|
||||||
@ -174,7 +173,7 @@ public class CallClientManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStartFirstFrame() {
|
public void onStartFirstFrame() {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onStartFirstFrame();
|
listener.onStartFirstFrame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -188,24 +187,22 @@ public class CallClientManager {
|
|||||||
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
|
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onCallWait(SurfaceView localVideo) {
|
public void onCallWait(SurfaceView localVideo) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallWait(localVideo);
|
listener.onCallWait(localVideo);
|
||||||
}
|
}
|
||||||
ToastUtil.show(R.string.call_tips1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallStart(String userId, SurfaceView remoteVideo) {
|
public void onCallStart(String userId, SurfaceView remoteVideo) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallStart(userId, remoteVideo);
|
listener.onCallStart(userId, remoteVideo);
|
||||||
}
|
}
|
||||||
ToastUtil.show(R.string.call_tips2);
|
|
||||||
startTimer(targetId);
|
startTimer(targetId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCallEnd() {
|
public void onCallEnd() {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onCallEnd();
|
listener.onCallEnd();
|
||||||
}
|
}
|
||||||
endTimer();
|
endTimer();
|
||||||
@ -213,7 +210,7 @@ public class CallClientManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStartFirstFrame() {
|
public void onStartFirstFrame() {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onStartFirstFrame();
|
listener.onStartFirstFrame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -245,6 +242,14 @@ public class CallClientManager {
|
|||||||
return activeTime == 0 ? 0 : (System.currentTimeMillis() - activeTime) / 1000;
|
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 {
|
private class CallTimeTask extends TimerTask {
|
||||||
Handler handler = new Handler(Looper.getMainLooper());
|
Handler handler = new Handler(Looper.getMainLooper());
|
||||||
|
|
||||||
@ -260,7 +265,7 @@ public class CallClientManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean cancel() {
|
public boolean cancel() {
|
||||||
if(sessionId.equals(targetId)){
|
if (sessionId.equals(targetId)) {
|
||||||
System.err.println("接听方不计费 结束");
|
System.err.println("接听方不计费 结束");
|
||||||
return super.cancel();
|
return super.cancel();
|
||||||
}
|
}
|
||||||
@ -287,7 +292,7 @@ public class CallClientManager {
|
|||||||
}
|
}
|
||||||
isCallVideo = callSession.getMediaType() == RongCallCommon.CallMediaType.VIDEO;
|
isCallVideo = callSession.getMediaType() == RongCallCommon.CallMediaType.VIDEO;
|
||||||
activeTime = callSession.getActiveTime();
|
activeTime = callSession.getActiveTime();
|
||||||
sessionId=callSession.getCallerUserId();
|
sessionId = callSession.getCallerUserId();
|
||||||
long time = getTime(activeTime);
|
long time = getTime(activeTime);
|
||||||
checkTime(time);
|
checkTime(time);
|
||||||
String extra;
|
String extra;
|
||||||
@ -304,7 +309,7 @@ public class CallClientManager {
|
|||||||
extra = String.format(Locale.ROOT, "%02d:%02d", (time % 3600) / 60, (time % 60));
|
extra = String.format(Locale.ROOT, "%02d:%02d", (time % 3600) / 60, (time % 60));
|
||||||
}
|
}
|
||||||
handler.post(() -> {
|
handler.post(() -> {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onTime(extra);
|
listener.onTime(extra);
|
||||||
if (warningTime <= 60) {
|
if (warningTime <= 60) {
|
||||||
listener.onTimeWarning(warningTime--);
|
listener.onTimeWarning(warningTime--);
|
||||||
@ -319,11 +324,11 @@ public class CallClientManager {
|
|||||||
if (StringUtil.isEmpty(targetId)) {
|
if (StringUtil.isEmpty(targetId)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(sessionId.equals(targetId)){
|
if (sessionId.equals(targetId)) {
|
||||||
System.err.println("接听方不计费");
|
System.err.println("接听方不计费");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(time==0){
|
if (time == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
time = time % 10;
|
time = time % 10;
|
||||||
@ -350,7 +355,7 @@ public class CallClientManager {
|
|||||||
warningTime = bean.getMp3Time();
|
warningTime = bean.getMp3Time();
|
||||||
}
|
}
|
||||||
if (warningTime <= 60) {
|
if (warningTime <= 60) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onTimeWarning(warningTime);
|
listener.onTimeWarning(warningTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -360,7 +365,7 @@ public class CallClientManager {
|
|||||||
public void onError(int status, String msg) {
|
public void onError(int status, String msg) {
|
||||||
super.onError(status, msg);
|
super.onError(status, msg);
|
||||||
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
|
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
|
||||||
for (OnCallStatusListener listener : listeners) {
|
for (OnCallStatusListener listener : listeners.values()) {
|
||||||
listener.onErrorNotPrice(msg);
|
listener.onErrorNotPrice(msg);
|
||||||
}
|
}
|
||||||
endCall();
|
endCall();
|
||||||
@ -548,12 +553,12 @@ public class CallClientManager {
|
|||||||
* 如果对端调用{@link RongCallClient#startCall(int, boolean, Conversation.ConversationType, String, List, List, RongCallCommon.CallMediaType, String, StartCameraCallback)} 或
|
* 如果对端调用{@link RongCallClient#startCall(int, boolean, Conversation.ConversationType, String, List, List, RongCallCommon.CallMediaType, String, StartCameraCallback)} 或
|
||||||
* {@link RongCallClient#acceptCall(String, int, boolean, StartCameraCallback)}开始的音视频通话,则可以使用如下设置改变对端视频流的镜像显示:<br />
|
* {@link RongCallClient#acceptCall(String, int, boolean, StartCameraCallback)}开始的音视频通话,则可以使用如下设置改变对端视频流的镜像显示:<br />
|
||||||
* <pre class="prettyprint">
|
* <pre class="prettyprint">
|
||||||
* public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
|
* public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
|
||||||
* if (null != remoteVideo) {
|
* if (null != remoteVideo) {
|
||||||
* ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
|
* ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
|
public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
|
||||||
|
@ -227,6 +227,10 @@ public class SendMessageManager {
|
|||||||
cache.remove(token);
|
cache.remove(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean checkToken(String token) {
|
||||||
|
return cache.containsKey(token);
|
||||||
|
}
|
||||||
|
|
||||||
public static class SendData {
|
public static class SendData {
|
||||||
public boolean needToken = true;
|
public boolean needToken = true;
|
||||||
private String toUid;
|
private String toUid;
|
||||||
|
@ -65,7 +65,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isAudio;
|
private boolean isAudio;
|
||||||
private boolean isDownload=false;
|
private boolean isDownload = false;
|
||||||
|
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
@Override
|
@Override
|
||||||
@ -85,7 +85,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
|
|||||||
System.out.println("点击事件 没权限掉了");
|
System.out.println("点击事件 没权限掉了");
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
isDownload=true;
|
isDownload = true;
|
||||||
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
if (event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||||
System.out.println("点击事件:点下 isAudio = " + isAudio);
|
System.out.println("点击事件:点下 isAudio = " + isAudio);
|
||||||
if (isAudio) {
|
if (isAudio) {
|
||||||
@ -103,7 +103,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
|
} else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
|
||||||
isDownload=false;
|
isDownload = false;
|
||||||
if (isAudio) {
|
if (isAudio) {
|
||||||
onUp(v, event);
|
onUp(v, event);
|
||||||
}
|
}
|
||||||
@ -122,18 +122,17 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
|
|||||||
|
|
||||||
private void toToken(View v, float mLastTouchY) {
|
private void toToken(View v, float mLastTouchY) {
|
||||||
System.out.println("点击事件:调用token");
|
System.out.println("点击事件:调用token");
|
||||||
if(!isDownload){
|
isAudio = true;
|
||||||
ToastUtil.show("过短,结束");
|
|
||||||
AudioRecordManager.getInstance().stopRecord();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
SendMessageManager.sendMessageForAudio(targetId, new OnSendMessageListener() {
|
SendMessageManager.sendMessageForAudio(targetId, new OnSendMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String token, SendConsumeBean bean) {
|
public void onSuccess(String token, SendConsumeBean bean) {
|
||||||
super.onSuccess(token, bean);
|
super.onSuccess(token, bean);
|
||||||
MsgInputPanelForAudio.this.token = token;
|
MsgInputPanelForAudio.this.token = token;
|
||||||
ToastUtil.showDebug(token);
|
if (!isDownload) {
|
||||||
isAudio = true;
|
AudioRecordManager.getInstance().stopRecord();
|
||||||
|
SendMessageManager.cancel(token);
|
||||||
|
return;
|
||||||
|
}
|
||||||
onDown(v, mLastTouchY);
|
onDown(v, mLastTouchY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,6 +141,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
|
|||||||
super.onError(status, msg);
|
super.onError(status, msg);
|
||||||
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
|
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
|
||||||
AudioRecordManager.getInstance().stopRecord();
|
AudioRecordManager.getInstance().stopRecord();
|
||||||
|
isAudio = false;
|
||||||
mUpDirection = false;
|
mUpDirection = false;
|
||||||
new TipsDialog(mContext)
|
new TipsDialog(mContext)
|
||||||
.setTitle(WordUtil.getNewString(R.string.not_money))
|
.setTitle(WordUtil.getNewString(R.string.not_money))
|
||||||
@ -197,6 +197,9 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
|
|||||||
SendMessageManager.cancel(token);
|
SendMessageManager.cancel(token);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if(!SendMessageManager.checkToken(token)){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
SendMessageManager.onCallSuccess(token, new OnSendMessageListener() {
|
SendMessageManager.onCallSuccess(token, new OnSendMessageListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onError(int status, String msg) {
|
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_constraintBottom_toTopOf="@+id/call_stop"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/call_msg"
|
app:layout_constraintEnd_toStartOf="@+id/call_msg"
|
||||||
app:layout_constraintStart_toEndOf="@+id/call_stop" />
|
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>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -16,9 +16,24 @@
|
|||||||
app:layout_constraintHorizontal_bias="0.0"
|
app:layout_constraintHorizontal_bias="0.0"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="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
|
<RelativeLayout
|
||||||
android:id="@+id/rc_voip_two_btn"
|
android:id="@+id/rc_voip_two_btn"
|
||||||
@ -80,4 +95,13 @@
|
|||||||
|
|
||||||
</RelativeLayout>
|
</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>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -269,6 +269,7 @@
|
|||||||
android:background="@drawable/bg_home_search_checked"
|
android:background="@drawable/bg_home_search_checked"
|
||||||
android:button="@null"
|
android:button="@null"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:tag="2"
|
||||||
android:text="@string/layout_screen_tip8"
|
android:text="@string/layout_screen_tip8"
|
||||||
android:textColor="@drawable/bg_home_search_text"
|
android:textColor="@drawable/bg_home_search_text"
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
@ -280,6 +281,7 @@
|
|||||||
android:layout_marginStart="10dp"
|
android:layout_marginStart="10dp"
|
||||||
android:background="@drawable/bg_home_search_checked"
|
android:background="@drawable/bg_home_search_checked"
|
||||||
android:button="@null"
|
android:button="@null"
|
||||||
|
android:tag="1"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="@string/layout_screen_tip9"
|
android:text="@string/layout_screen_tip9"
|
||||||
android:textColor="@drawable/bg_home_search_text"
|
android:textColor="@drawable/bg_home_search_text"
|
||||||
@ -290,18 +292,36 @@
|
|||||||
|
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
<LinearLayout
|
||||||
<Button
|
android:id="@+id/button_layout"
|
||||||
android:id="@+id/apply"
|
android:orientation="horizontal"
|
||||||
android:layout_width="151dp"
|
android:gravity="center"
|
||||||
android:layout_height="45dp"
|
|
||||||
android:background="@drawable/bg_home_search_btn"
|
|
||||||
android:text="@string/layout_screen_tip10"
|
|
||||||
android:textColor="#FFFFFF"
|
|
||||||
android:textSize="14sp"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="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>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -7,8 +7,8 @@
|
|||||||
<WebView
|
<WebView
|
||||||
android:id="@+id/webView"
|
android:id="@+id/webView"
|
||||||
android:layout_marginTop="@dimen/activity_top"
|
android:layout_marginTop="@dimen/activity_top"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
@ -77,6 +77,14 @@
|
|||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
app:srcCompat="@mipmap/ic_tab_dynamic_top" />
|
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>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -24,4 +24,14 @@
|
|||||||
app:spanCount="2"
|
app:spanCount="2"
|
||||||
tools:listitem="@layout/item_home_hot" />
|
tools:listitem="@layout/item_home_hot" />
|
||||||
</io.rong.imkit.widget.refresh.SmartRefreshLayout>
|
</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>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -127,7 +127,9 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:maxLength="8"
|
android:maxEms="5"
|
||||||
|
android:singleLine="true"
|
||||||
|
tools:text="啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
|
||||||
android:text="@string/layout_f_my_tips1"
|
android:text="@string/layout_f_my_tips1"
|
||||||
android:textColor="#D56FF0"
|
android:textColor="#D56FF0"
|
||||||
android:textSize="19sp"
|
android:textSize="19sp"
|
||||||
|
@ -34,15 +34,6 @@
|
|||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="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
|
<include
|
||||||
android:id="@+id/view_empty"
|
android:id="@+id/view_empty"
|
||||||
|
@ -2,14 +2,16 @@
|
|||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="167dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="167dp"
|
android:layout_height="wrap_content"
|
||||||
|
android:maxWidth="167dp"
|
||||||
|
android:maxHeight="167dp"
|
||||||
android:layout_marginTop="16dp">
|
android:layout_marginTop="16dp">
|
||||||
|
|
||||||
<com.makeramen.roundedimageview.RoundedImageView
|
<com.makeramen.roundedimageview.RoundedImageView
|
||||||
android:id="@+id/avatar"
|
android:id="@+id/avatar"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="167dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="167dp"
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
android:src="@drawable/m_chu_xia"
|
android:src="@drawable/m_chu_xia"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
@ -80,7 +82,7 @@
|
|||||||
android:layout_width="10dp"
|
android:layout_width="10dp"
|
||||||
android:layout_height="12dp"
|
android:layout_height="12dp"
|
||||||
android:layout_marginStart="5dp"
|
android:layout_marginStart="5dp"
|
||||||
app:srcCompat="@mipmap/ic_home_hot_woman" />
|
app:srcCompat="@mipmap/icon_level" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/level"
|
android:id="@+id/level"
|
||||||
|
@ -73,12 +73,13 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/user_name"
|
android:id="@+id/user_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
tools:text="TextView"
|
tools:text="微信红红火火恍恍惚惚哈哈哈"
|
||||||
android:textColor="#333333"
|
android:textColor="#333333"
|
||||||
android:maxLength="5"
|
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
|
android:layout_weight="0.8"
|
||||||
|
android:singleLine="true"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
|
@ -187,6 +187,7 @@
|
|||||||
<string name="layout_screen_tip8">已完成</string>
|
<string name="layout_screen_tip8">已完成</string>
|
||||||
<string name="layout_screen_tip9">未完成</string>
|
<string name="layout_screen_tip9">未完成</string>
|
||||||
<string name="layout_screen_tip10">確定</string>
|
<string name="layout_screen_tip10">確定</string>
|
||||||
|
<string name="layout_screen_tip11">重置</string>
|
||||||
|
|
||||||
<string name="layout_search_tip1">猜你喜歡</string>
|
<string name="layout_search_tip1">猜你喜歡</string>
|
||||||
|
|
||||||
@ -269,4 +270,5 @@
|
|||||||
<string name="gift_not_money">余额不足,请充值后再进行尝试吧~</string>
|
<string name="gift_not_money">余额不足,请充值后再进行尝试吧~</string>
|
||||||
<string name="end_of_the_call">通话结束</string>
|
<string name="end_of_the_call">通话结束</string>
|
||||||
<string name="end_resume_call_not_auth">对方未完成真人认证,暂时无法向对方发起通话</string>
|
<string name="end_resume_call_not_auth">对方未完成真人认证,暂时无法向对方发起通话</string>
|
||||||
|
<string name="now_call_tips">您當前正在通話中,請掛斷後再試</string>
|
||||||
</resources>
|
</resources>
|
@ -187,6 +187,7 @@
|
|||||||
<string name="layout_screen_tip8">已完成</string>
|
<string name="layout_screen_tip8">已完成</string>
|
||||||
<string name="layout_screen_tip9">未完成</string>
|
<string name="layout_screen_tip9">未完成</string>
|
||||||
<string name="layout_screen_tip10">確定</string>
|
<string name="layout_screen_tip10">確定</string>
|
||||||
|
<string name="layout_screen_tip11">重置</string>
|
||||||
|
|
||||||
<string name="layout_search_tip1">猜你喜歡</string>
|
<string name="layout_search_tip1">猜你喜歡</string>
|
||||||
|
|
||||||
@ -269,4 +270,5 @@
|
|||||||
<string name="gift_not_money">余额不足,请充值后再进行尝试吧~</string>
|
<string name="gift_not_money">余额不足,请充值后再进行尝试吧~</string>
|
||||||
<string name="end_of_the_call">通话结束</string>
|
<string name="end_of_the_call">通话结束</string>
|
||||||
<string name="end_resume_call_not_auth">对方未完成真人认证,暂时无法向对方发起通话</string>
|
<string name="end_resume_call_not_auth">对方未完成真人认证,暂时无法向对方发起通话</string>
|
||||||
|
<string name="now_call_tips">您當前正在通話中,請掛斷後再試</string>
|
||||||
</resources>
|
</resources>
|
@ -189,6 +189,7 @@
|
|||||||
<string name="layout_screen_tip8">已完成</string>
|
<string name="layout_screen_tip8">已完成</string>
|
||||||
<string name="layout_screen_tip9">未完成</string>
|
<string name="layout_screen_tip9">未完成</string>
|
||||||
<string name="layout_screen_tip10">確定</string>
|
<string name="layout_screen_tip10">確定</string>
|
||||||
|
<string name="layout_screen_tip11">重置</string>
|
||||||
|
|
||||||
<string name="layout_search_tip1">猜你喜歡</string>
|
<string name="layout_search_tip1">猜你喜歡</string>
|
||||||
|
|
||||||
@ -271,4 +272,5 @@
|
|||||||
<string name="gift_not_money">余额不足,请充值后再进行尝试吧~</string>
|
<string name="gift_not_money">余额不足,请充值后再进行尝试吧~</string>
|
||||||
<string name="end_of_the_call">通话结束</string>
|
<string name="end_of_the_call">通话结束</string>
|
||||||
<string name="end_resume_call_not_auth">对方未完成真人认证,暂时无法向对方发起通话</string>
|
<string name="end_resume_call_not_auth">对方未完成真人认证,暂时无法向对方发起通话</string>
|
||||||
|
<string name="now_call_tips">您當前正在通話中,請掛斷後再試</string>
|
||||||
</resources>
|
</resources>
|
@ -40,6 +40,7 @@ public class JavascriptInterfaceUtils {
|
|||||||
//判断是页面关闭还是网页回退
|
//判断是页面关闭还是网页回退
|
||||||
private boolean pageClose = false;
|
private boolean pageClose = false;
|
||||||
private boolean dialogClose = false;
|
private boolean dialogClose = false;
|
||||||
|
private boolean permitSetHigh =true;
|
||||||
//同名activity跳转问题
|
//同名activity跳转问题
|
||||||
private boolean LiveZhuangBana = true;
|
private boolean LiveZhuangBana = true;
|
||||||
private static JavascriptInterfaceUtils sInstance;
|
private static JavascriptInterfaceUtils sInstance;
|
||||||
@ -59,6 +60,14 @@ public class JavascriptInterfaceUtils {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 允许js修改webview高度
|
||||||
|
*/
|
||||||
|
public JavascriptInterfaceUtils setPermitSetHigh(boolean isPermit){
|
||||||
|
this.permitSetHigh=isPermit;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public JavascriptInterfaceUtils setmContext(Activity mContext, WebView mWebView) {
|
public JavascriptInterfaceUtils setmContext(Activity mContext, WebView mWebView) {
|
||||||
this.mContext = mContext;
|
this.mContext = mContext;
|
||||||
this.mWebView = mWebView;
|
this.mWebView = mWebView;
|
||||||
@ -503,6 +512,9 @@ public class JavascriptInterfaceUtils {
|
|||||||
if ("0".equals(height)) {
|
if ("0".equals(height)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(!permitSetHigh){
|
||||||
|
return;
|
||||||
|
}
|
||||||
Handler handler = new Handler(Looper.getMainLooper());
|
Handler handler = new Handler(Looper.getMainLooper());
|
||||||
handler.post(() -> {
|
handler.post(() -> {
|
||||||
ViewGroup.LayoutParams params = mWebView.getLayoutParams();
|
ViewGroup.LayoutParams params = mWebView.getLayoutParams();
|
||||||
|
@ -5,7 +5,9 @@ ext {
|
|||||||
minSdkVersion : 21,
|
minSdkVersion : 21,
|
||||||
targetSdkVersion : 33,
|
targetSdkVersion : 33,
|
||||||
versionCode : 445,
|
versionCode : 445,
|
||||||
versionName : "6.5.4"
|
versionName : "6.5.4",
|
||||||
|
otoversionCode : 100,
|
||||||
|
otoversionName : "1.0"
|
||||||
]
|
]
|
||||||
manifestPlaceholders = [
|
manifestPlaceholders = [
|
||||||
//正式、
|
//正式、
|
||||||
|
Loading…
x
Reference in New Issue
Block a user