listeners;
private CallTimeTask timeTask = null;
public static CallClientManager getManager() {
@@ -60,7 +61,7 @@ public class CallClientManager {
}
private CallClientManager() {
- listeners = new ArrayList<>();
+ listeners = new HashMap<>();
init();
}
@@ -83,19 +84,19 @@ public class CallClientManager {
RongCallClient.setReceivedCallListener(new CallMeListener());
}
- public void addOnVoIPCallListener(OnCallStatusListener statusListener) {
- listeners.add(statusListener);
+ public void addOnVoIPCallListener(Class zlass,OnCallStatusListener statusListener) {
+ listeners.put(zlass,statusListener);
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
startTimer(null);
@@ -103,7 +104,7 @@ public class CallClientManager {
@Override
public void onCallEnd() {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -111,15 +112,15 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
}));
}
- public void removeOnVoIPCallListener(OnCallStatusListener statusListener) {
- listeners.remove(statusListener);
+ public void removeOnVoIPCallListener(Class zlass) {
+ listeners.remove(zlass);
}
public void checkMoney(String targetId, boolean video, OnSendMessageListener listener) {
@@ -149,24 +150,22 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
- ToastUtil.show(R.string.call_tips1);
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
- ToastUtil.show(R.string.call_tips2);
startTimer(targetId);
}
@Override
public void onCallEnd() {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -174,7 +173,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@@ -188,24 +187,22 @@ public class CallClientManager {
RongCallClient.getInstance().setVoIPCallListener(new CallStatusListener(new OnCallStatusListener() {
@Override
public void onCallWait(SurfaceView localVideo) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallWait(localVideo);
}
- ToastUtil.show(R.string.call_tips1);
}
@Override
public void onCallStart(String userId, SurfaceView remoteVideo) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallStart(userId, remoteVideo);
}
- ToastUtil.show(R.string.call_tips2);
startTimer(targetId);
}
@Override
public void onCallEnd() {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onCallEnd();
}
endTimer();
@@ -213,7 +210,7 @@ public class CallClientManager {
@Override
public void onStartFirstFrame() {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onStartFirstFrame();
}
}
@@ -245,6 +242,14 @@ public class CallClientManager {
return activeTime == 0 ? 0 : (System.currentTimeMillis() - activeTime) / 1000;
}
+ public String getSessionId() {
+ RongCallSession callSession = RongCallClient.getInstance().getCallSession();
+ if(callSession==null){
+ return "";
+ }
+ return callSession.getCallerUserId();
+ }
+
private class CallTimeTask extends TimerTask {
Handler handler = new Handler(Looper.getMainLooper());
@@ -260,7 +265,7 @@ public class CallClientManager {
@Override
public boolean cancel() {
- if(sessionId.equals(targetId)){
+ if (sessionId.equals(targetId)) {
System.err.println("接听方不计费 结束");
return super.cancel();
}
@@ -287,7 +292,7 @@ public class CallClientManager {
}
isCallVideo = callSession.getMediaType() == RongCallCommon.CallMediaType.VIDEO;
activeTime = callSession.getActiveTime();
- sessionId=callSession.getCallerUserId();
+ sessionId = callSession.getCallerUserId();
long time = getTime(activeTime);
checkTime(time);
String extra;
@@ -304,7 +309,7 @@ public class CallClientManager {
extra = String.format(Locale.ROOT, "%02d:%02d", (time % 3600) / 60, (time % 60));
}
handler.post(() -> {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onTime(extra);
if (warningTime <= 60) {
listener.onTimeWarning(warningTime--);
@@ -319,11 +324,11 @@ public class CallClientManager {
if (StringUtil.isEmpty(targetId)) {
return;
}
- if(sessionId.equals(targetId)){
+ if (sessionId.equals(targetId)) {
System.err.println("接听方不计费");
return;
}
- if(time==0){
+ if (time == 0) {
return;
}
time = time % 10;
@@ -350,7 +355,7 @@ public class CallClientManager {
warningTime = bean.getMp3Time();
}
if (warningTime <= 60) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onTimeWarning(warningTime);
}
}
@@ -360,7 +365,7 @@ public class CallClientManager {
public void onError(int status, String msg) {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
- for (OnCallStatusListener listener : listeners) {
+ for (OnCallStatusListener listener : listeners.values()) {
listener.onErrorNotPrice(msg);
}
endCall();
@@ -548,12 +553,12 @@ public class CallClientManager {
* 如果对端调用{@link RongCallClient#startCall(int, boolean, Conversation.ConversationType, String, List, List, RongCallCommon.CallMediaType, String, StartCameraCallback)} 或
* {@link RongCallClient#acceptCall(String, int, boolean, StartCameraCallback)}开始的音视频通话,则可以使用如下设置改变对端视频流的镜像显示:
*
- * public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
- * if (null != remoteVideo) {
- * ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
- * }
- * }
- *
+ * public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
+ * if (null != remoteVideo) {
+ * ((RongRTCVideoView) remoteVideo).setMirror( boolean);//观看对方视频流是否镜像处理
+ * }
+ * }
+ *
*/
@Override
public void onRemoteUserJoined(String userId, RongCallCommon.CallMediaType mediaType, int userType, SurfaceView remoteVideo) {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java
index 4fe61b846..7655b25c2 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/SendMessageManager.java
@@ -227,6 +227,10 @@ public class SendMessageManager {
cache.remove(token);
}
+ public static boolean checkToken(String token) {
+ return cache.containsKey(token);
+ }
+
public static class SendData {
public boolean needToken = true;
private String toUid;
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java
index 647d0799c..c0d60e400 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForAudio.java
@@ -65,7 +65,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
}
private boolean isAudio;
- private boolean isDownload=false;
+ private boolean isDownload = false;
@SuppressLint("ClickableViewAccessibility")
@Override
@@ -85,7 +85,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
System.out.println("点击事件 没权限掉了");
return true;
} else {
- isDownload=true;
+ isDownload = true;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
System.out.println("点击事件:点下 isAudio = " + isAudio);
if (isAudio) {
@@ -103,7 +103,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
}
} else if (event.getAction() == MotionEvent.ACTION_UP || event.getAction() == MotionEvent.ACTION_CANCEL) {
- isDownload=false;
+ isDownload = false;
if (isAudio) {
onUp(v, event);
}
@@ -122,18 +122,17 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
private void toToken(View v, float mLastTouchY) {
System.out.println("点击事件:调用token");
- if(!isDownload){
- ToastUtil.show("过短,结束");
- AudioRecordManager.getInstance().stopRecord();
- return;
- }
+ isAudio = true;
SendMessageManager.sendMessageForAudio(targetId, new OnSendMessageListener() {
@Override
public void onSuccess(String token, SendConsumeBean bean) {
super.onSuccess(token, bean);
MsgInputPanelForAudio.this.token = token;
- ToastUtil.showDebug(token);
- isAudio = true;
+ if (!isDownload) {
+ AudioRecordManager.getInstance().stopRecord();
+ SendMessageManager.cancel(token);
+ return;
+ }
onDown(v, mLastTouchY);
}
@@ -142,6 +141,7 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
super.onError(status, msg);
if (status == OnSendMessageListener.STATUS_NOT_PRICE) {
AudioRecordManager.getInstance().stopRecord();
+ isAudio = false;
mUpDirection = false;
new TipsDialog(mContext)
.setTitle(WordUtil.getNewString(R.string.not_money))
@@ -197,6 +197,9 @@ public class MsgInputPanelForAudio extends AbsInputPanel {
SendMessageManager.cancel(token);
return false;
}
+ if(!SendMessageManager.checkToken(token)){
+ return false;
+ }
SendMessageManager.onCallSuccess(token, new OnSendMessageListener() {
@Override
public void onError(int status, String msg) {
diff --git a/OneToOne/src/main/res/drawable/bg_call_view_tips.xml b/OneToOne/src/main/res/drawable/bg_call_view_tips.xml
new file mode 100644
index 000000000..7ce84a698
--- /dev/null
+++ b/OneToOne/src/main/res/drawable/bg_call_view_tips.xml
@@ -0,0 +1,9 @@
+
+
+ -
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_call_audio.xml b/OneToOne/src/main/res/layout/activity_call_audio.xml
index f0f3e4b7c..ac65c0845 100644
--- a/OneToOne/src/main/res/layout/activity_call_audio.xml
+++ b/OneToOne/src/main/res/layout/activity_call_audio.xml
@@ -125,4 +125,19 @@
app:layout_constraintBottom_toTopOf="@+id/call_stop"
app:layout_constraintEnd_toStartOf="@+id/call_msg"
app:layout_constraintStart_toEndOf="@+id/call_stop" />
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_call_video.xml b/OneToOne/src/main/res/layout/activity_call_video.xml
index 46b9a2312..945f9620c 100644
--- a/OneToOne/src/main/res/layout/activity_call_video.xml
+++ b/OneToOne/src/main/res/layout/activity_call_video.xml
@@ -16,9 +16,24 @@
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintVertical_bias="0.0" />
+ app:layout_constraintVertical_bias="0.0" >
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/activity_screen.xml b/OneToOne/src/main/res/layout/activity_screen.xml
index 898054cff..3de77bce6 100644
--- a/OneToOne/src/main/res/layout/activity_screen.xml
+++ b/OneToOne/src/main/res/layout/activity_screen.xml
@@ -269,6 +269,7 @@
android:background="@drawable/bg_home_search_checked"
android:button="@null"
android:gravity="center"
+ android:tag="2"
android:text="@string/layout_screen_tip8"
android:textColor="@drawable/bg_home_search_text"
android:textSize="14sp" />
@@ -280,6 +281,7 @@
android:layout_marginStart="10dp"
android:background="@drawable/bg_home_search_checked"
android:button="@null"
+ android:tag="1"
android:gravity="center"
android:text="@string/layout_screen_tip9"
android:textColor="@drawable/bg_home_search_text"
@@ -290,18 +292,36 @@
-
-
+ app:layout_constraintTop_toBottomOf="@+id/auth_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/fragment_dynamic.xml b/OneToOne/src/main/res/layout/fragment_dynamic.xml
index 324c00abd..f427a79e0 100644
--- a/OneToOne/src/main/res/layout/fragment_dynamic.xml
+++ b/OneToOne/src/main/res/layout/fragment_dynamic.xml
@@ -7,8 +7,8 @@
-
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/fragment_hot.xml b/OneToOne/src/main/res/layout/fragment_hot.xml
index 9a94a2fef..a66ac8683 100644
--- a/OneToOne/src/main/res/layout/fragment_hot.xml
+++ b/OneToOne/src/main/res/layout/fragment_hot.xml
@@ -24,4 +24,14 @@
app:spanCount="2"
tools:listitem="@layout/item_home_hot" />
+
\ No newline at end of file
diff --git a/OneToOne/src/main/res/layout/fragment_my.xml b/OneToOne/src/main/res/layout/fragment_my.xml
index d4a4eead3..0f49ff01b 100644
--- a/OneToOne/src/main/res/layout/fragment_my.xml
+++ b/OneToOne/src/main/res/layout/fragment_my.xml
@@ -127,7 +127,9 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
- android:maxLength="8"
+ android:maxEms="5"
+ android:singleLine="true"
+ tools:text="啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊"
android:text="@string/layout_f_my_tips1"
android:textColor="#D56FF0"
android:textSize="19sp"
diff --git a/OneToOne/src/main/res/layout/fragment_recommend.xml b/OneToOne/src/main/res/layout/fragment_recommend.xml
index ab2e8cb9f..cf0fdaa2d 100644
--- a/OneToOne/src/main/res/layout/fragment_recommend.xml
+++ b/OneToOne/src/main/res/layout/fragment_recommend.xml
@@ -34,15 +34,6 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
-
+ app:srcCompat="@mipmap/icon_level" />
diff --git a/OneToOne/src/main/res/values-zh-rHK/strings.xml b/OneToOne/src/main/res/values-zh-rHK/strings.xml
index 713e01c7b..2078c2c8d 100644
--- a/OneToOne/src/main/res/values-zh-rHK/strings.xml
+++ b/OneToOne/src/main/res/values-zh-rHK/strings.xml
@@ -187,6 +187,7 @@
已完成
未完成
確定
+ 重置
猜你喜歡
@@ -269,4 +270,5 @@
余额不足,请充值后再进行尝试吧~
通话结束
对方未完成真人认证,暂时无法向对方发起通话
+ 您當前正在通話中,請掛斷後再試
\ No newline at end of file
diff --git a/OneToOne/src/main/res/values-zh-rTW/strings.xml b/OneToOne/src/main/res/values-zh-rTW/strings.xml
index 713e01c7b..2078c2c8d 100644
--- a/OneToOne/src/main/res/values-zh-rTW/strings.xml
+++ b/OneToOne/src/main/res/values-zh-rTW/strings.xml
@@ -187,6 +187,7 @@
已完成
未完成
確定
+ 重置
猜你喜歡
@@ -269,4 +270,5 @@
余额不足,请充值后再进行尝试吧~
通话结束
对方未完成真人认证,暂时无法向对方发起通话
+ 您當前正在通話中,請掛斷後再試
\ No newline at end of file
diff --git a/OneToOne/src/main/res/values/strings.xml b/OneToOne/src/main/res/values/strings.xml
index 2d56a88fd..5ce231fcb 100644
--- a/OneToOne/src/main/res/values/strings.xml
+++ b/OneToOne/src/main/res/values/strings.xml
@@ -189,6 +189,7 @@
已完成
未完成
確定
+ 重置
猜你喜歡
@@ -271,4 +272,5 @@
余额不足,请充值后再进行尝试吧~
通话结束
对方未完成真人认证,暂时无法向对方发起通话
+ 您當前正在通話中,請掛斷後再試
\ No newline at end of file
diff --git a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java
index 7ee6c3edc..aa9ff2572 100644
--- a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java
+++ b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java
@@ -40,6 +40,7 @@ public class JavascriptInterfaceUtils {
//判断是页面关闭还是网页回退
private boolean pageClose = false;
private boolean dialogClose = false;
+ private boolean permitSetHigh =true;
//同名activity跳转问题
private boolean LiveZhuangBana = true;
private static JavascriptInterfaceUtils sInstance;
@@ -59,6 +60,14 @@ public class JavascriptInterfaceUtils {
return this;
}
+ /**
+ * 允许js修改webview高度
+ */
+ public JavascriptInterfaceUtils setPermitSetHigh(boolean isPermit){
+ this.permitSetHigh=isPermit;
+ return this;
+ }
+
public JavascriptInterfaceUtils setmContext(Activity mContext, WebView mWebView) {
this.mContext = mContext;
this.mWebView = mWebView;
@@ -503,6 +512,9 @@ public class JavascriptInterfaceUtils {
if ("0".equals(height)) {
return;
}
+ if(!permitSetHigh){
+ return;
+ }
Handler handler = new Handler(Looper.getMainLooper());
handler.post(() -> {
ViewGroup.LayoutParams params = mWebView.getLayoutParams();
diff --git a/config.gradle b/config.gradle
index 5f3bc3427..71171aecf 100644
--- a/config.gradle
+++ b/config.gradle
@@ -5,7 +5,9 @@ ext {
minSdkVersion : 21,
targetSdkVersion : 33,
versionCode : 445,
- versionName : "6.5.4"
+ versionName : "6.5.4",
+ otoversionCode : 100,
+ otoversionName : "1.0"
]
manifestPlaceholders = [
//正式、