Px%;Ymb6R7gv;mP@FPVHAa*MI@I(n7SqdhC*Q=%7DoII8w@GgmTJd#DpT{HgPE>
za=%T`aV?=_B7^}EheC*Qr>*sSzvJ_r|2uvI@8lo6-@De{Yp=ccFIqVf(Fd3cj0FY*
zz0&6|f!n}&;Hac0WiYCC5fQzC4GFw0@DaEV7}&=|gMf~}58w!}T+-7bUJHVVmbnX-MDz!40$+e(l1%c?Cn5#_*8$gU
zu%xDp;3O~!m?G&!BJB>i9y=s`D=~wC79}TD3=k1^oul6`sa_E=5V!|ilQb%q@uPDQ?G0?(gyz%)rNV&x=o4=#gN
zz$H0)-+9nwB#pLm!KO2SL%<3Xcy>If(r62Sowiy6sDS4J$dfFQw5`x+!-4+UsBkoH
z@%*Up%%279$|5hiEM?-3KQ8Hc%5Dl^B@Rle%Lu%=Zl%RCwA$h*vv46RFRB}Wv->^l
z5_3JUFOBPQk{;Cpnv=y+yH@?u?5ZrD;=);(3jPLIEa^ZkBoQ$uZN6^6GD(}WcV#Qn
zQ`A OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE), 400);
}
@Override
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
index d450c23af..10c41e025 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
@@ -689,13 +689,13 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
}
});
} else if ("inviteMic".equals(str)) {
- String content="邀請您進行語音連麥";
- String confirm="接受";
- String cancel="拒絕";
- if(!WordUtil.isNewZh()){
- content="You are invited to join the voice connection";
- confirm="accept";
- cancel="cancel";
+ String content = "邀請您進行語音連麥";
+ String confirm = "接受";
+ String cancel = "拒絕";
+ if (!WordUtil.isNewZh()) {
+ content = "You are invited to join the voice connection";
+ confirm = "accept";
+ cancel = "cancel";
}
DialogUitl.Builder builder = new DialogUitl.Builder(mContext)
.setContent(content)
@@ -708,12 +708,12 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
public void onConfirmClick(Dialog dialog, String content) {
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
- permissions=new String[]{
+ permissions = new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.RECORD_AUDIO
};
- }else{
- permissions=new String[]{
+ } else {
+ permissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO
@@ -780,9 +780,9 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
onPrepared();
rcrtcRoom = null;
MicStatusManager.getInstance().clear();
- if(WordUtil.isNewZh()) {
+ if (WordUtil.isNewZh()) {
ToastUtil.show("已成功退出語音連麥");
- }else{
+ } else {
ToastUtil.show("You have successfully exited the voice connection");
}
resumePlay();
@@ -867,10 +867,10 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
}
private void showToast() {
- if(WordUtil.isNewZh()) {
+ if (WordUtil.isNewZh()) {
DialogUitl.showToast(mContext, "設置成功\n" +
"正在為你轉換中", 3000);
- }else{
+ } else {
DialogUitl.showToast(mContext, "successful\n" +
"It's being converted for you", 3000);
}
diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
index 0df33d47d..2d6b485f2 100644
--- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
+++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
@@ -59,6 +59,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
@@ -262,6 +263,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
public void run() {
loading.setVisibility(View.GONE);
enterRoomLeaveHandler.post(enterRoomLeaveRunnable);
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE);
}
};
final Runnable loadTimeoutRunnableGone = new Runnable() {
@@ -293,7 +295,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRyLinkMicPkPresenter.release();
mLiveRyLinkMicPkPresenter = null;
}
-
+ OpenAdManager.getInstance().dismiss();
mLiveBean = data;
mLiveSDK = liveSdk;
mLiveType = liveType;
diff --git a/main/src/main/java/com/yunbao/main/activity/MainActivity.java b/main/src/main/java/com/yunbao/main/activity/MainActivity.java
index b53cdb8c4..7e31a51b7 100644
--- a/main/src/main/java/com/yunbao/main/activity/MainActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/MainActivity.java
@@ -88,6 +88,7 @@ import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.APKManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.NoviceInstructorManager;
+import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
@@ -210,13 +211,14 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
@Override
protected void onPause() {
super.onPause();
-
+ OpenAdManager.getInstance().dismiss();
}
@Override
protected void main() {
ActivityCompat.postponeEnterTransition(this);
ConversationIMListManager.get(this);
+ OpenAdManager.getInstance();
//在请求一下这个接口给我后台版本号
CommonHttpUtil.getConfig(mContext, new CommonCallback() {
@Override
@@ -526,7 +528,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
//获取指导员账号
ConversationIMListManager.get(this).getUserInstructor(this);
checkVersion();
-
}
@Override
@@ -875,7 +876,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
NoviceInstructorManager.get(mContext).getNoviceInstructor();
NoviceInstructorManager.get(mContext).checktHomeZdyPop();
initAnchorRecommendBanner();
-
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_HOME);
}
/**
@@ -1074,6 +1075,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
if (EasyFloat.isShow("LiveFloatView")) {
EasyFloat.dismiss("LiveFloatView", true);
}
+ OpenAdManager.getInstance().reset();
super.onBackPressed();
}
}
From 54258c3f13a5e2701af4621c01235ef09824b9af Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 15 Sep 2023 14:54:45 +0800
Subject: [PATCH 02/19] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E3=80=90=E5=BC=B9?=
=?UTF-8?q?=E6=A1=86=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96=E3=80=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/yunbao/common/bean/OpenAdModel.java | 25 ++++++++++++++++---
.../yunbao/common/manager/OpenAdManager.java | 12 +++++----
.../live/activity/LiveAudienceActivity.java | 4 ++-
.../com/yunbao/live/bean/LiveGuardInfo.java | 5 ++++
.../live/views/PortraitLiveManager.java | 2 +-
.../yunbao/main/activity/MainActivity.java | 2 +-
6 files changed, 39 insertions(+), 11 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java b/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java
index d284d5c8b..0189513be 100644
--- a/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java
+++ b/common/src/main/java/com/yunbao/common/bean/OpenAdModel.java
@@ -2,6 +2,7 @@ package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.StringUtil;
import java.text.ParseException;
@@ -34,6 +35,8 @@ public class OpenAdModel extends BaseModel {
private String startTime;//活动开始时间
@SerializedName("end_show_time")
private String endTime;//活动结束时间
+ @SerializedName("popup_permission")
+ private int permission;
public OpenAdModel() {
@@ -48,10 +51,10 @@ public class OpenAdModel extends BaseModel {
}
public String getUrl() {
- if (url.startsWith("http://") || url.startsWith("https://")) {
- return CommonAppConfig.HOST + "/" + url;
+ if (!url.startsWith("http://") || !url.startsWith("https://")) {
+ url = CommonAppConfig.HOST + url;
}
- return url;
+ return url + "?t=" + System.currentTimeMillis() / 1000;
}
public void setUrl(String url) {
@@ -114,6 +117,14 @@ public class OpenAdModel extends BaseModel {
this.id = id;
}
+ public int getPermission() {
+ return permission;
+ }
+
+ public void setPermission(int permission) {
+ this.permission = permission;
+ }
+
public boolean isInTime() {
if (StringUtil.isEmpty(startTime, endTime)) {
return true;
@@ -133,6 +144,13 @@ public class OpenAdModel extends BaseModel {
return startTime.getTime() <= time && time <= endTime.getTime();
}
+ public boolean userIsPermission(boolean isGuard) {
+ if (permission == 4 && !isGuard) {//守护不可见
+ return false;
+ }
+ return true;
+ }
+
@Override
public String toString() {
return "OpenAdModel{" +
@@ -145,6 +163,7 @@ public class OpenAdModel extends BaseModel {
", model=" + model +
", startTime='" + startTime + '\'' +
", endTime='" + endTime + '\'' +
+ ", permission='" + permission + '\'' +
'}';
}
}
diff --git a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
index 29d416018..060c72714 100644
--- a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
@@ -34,9 +34,7 @@ public class OpenAdManager {
}
public void reset() {
- for (Integer integer : runnableMap.keySet()) {
- handler.removeCallbacks(Objects.requireNonNull(runnableMap.get(integer)));
- }
+ dismiss();
runnableMap.clear();
showMap.clear();
list.clear();
@@ -57,7 +55,7 @@ public class OpenAdManager {
public void onSuccess(List data) {
list = data;
if (isShow) {
- show(TYPE_HOME);
+ show(TYPE_HOME,false);
}
}
@@ -69,7 +67,7 @@ public class OpenAdManager {
}
- public synchronized void show(int type) {
+ public synchronized void show(int type,boolean isGuard) {
if (list.isEmpty()) {
init(true);
return;
@@ -77,6 +75,9 @@ public class OpenAdManager {
showType=type;
for (OpenAdModel model : list) {
if (model.getType() == type) {
+ if(type==OpenAdModel.TYPE_LIVE && !model.userIsPermission(isGuard)){
+ continue;
+ }
if (runnableMap.containsKey(model.getId())) {
AdRunnable runnable = runnableMap.get(model.getId());
if (runnable != null) {
@@ -85,6 +86,7 @@ public class OpenAdManager {
runnableMap.remove(model.getId());
}
}
+
if (!isShow(model)) {
Log.i(TAG, "show: "+model);
handler.postDelayed(new AdRunnable(model), model.getDelayShowTime());
diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
index 6584ac982..432ff0e9b 100644
--- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
+++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
@@ -96,6 +96,7 @@ import com.yunbao.live.R;
import com.yunbao.live.adapter.VerticalPagerAdapter;
import com.yunbao.live.bean.ImUserBean;
import com.yunbao.live.bean.LiveChatBean;
+import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.live.dialog.LiveFansFragment;
import com.yunbao.live.dialog.LiveGameDialogFragment;
import com.yunbao.live.dialog.LiveGiftPopup;
@@ -778,7 +779,8 @@ public class LiveAudienceActivity extends LiveActivity {
}
}
GiftCacheUtil.getInstance().restart();
- new Handler(Looper.getMainLooper()).postDelayed(() -> OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE), 400);
+ new Handler(Looper.getMainLooper()).postDelayed(() -> OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE,
+ LiveGuardInfo.isGuard(mLiveGuardInfo)), 400);
}
@Override
diff --git a/live/src/main/java/com/yunbao/live/bean/LiveGuardInfo.java b/live/src/main/java/com/yunbao/live/bean/LiveGuardInfo.java
index 0e07e4734..1015a6de7 100644
--- a/live/src/main/java/com/yunbao/live/bean/LiveGuardInfo.java
+++ b/live/src/main/java/com/yunbao/live/bean/LiveGuardInfo.java
@@ -3,6 +3,8 @@ package com.yunbao.live.bean;
import android.os.Parcel;
import android.os.Parcelable;
+import com.yunbao.common.Constants;
+
/**
* Created by cxf on 2018/11/14.
*/
@@ -72,5 +74,8 @@ public class LiveGuardInfo implements Parcelable {
}
};
+ public static boolean isGuard(LiveGuardInfo info){
+ return info != null && info.getMyGuardType() != Constants.GUARD_TYPE_NONE;
+ }
}
diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
index 2d6b485f2..919693d9f 100644
--- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
+++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
@@ -263,7 +263,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
public void run() {
loading.setVisibility(View.GONE);
enterRoomLeaveHandler.post(enterRoomLeaveRunnable);
- OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE);
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE,LiveGuardInfo.isGuard(mLiveGuardInfo));
}
};
final Runnable loadTimeoutRunnableGone = new Runnable() {
diff --git a/main/src/main/java/com/yunbao/main/activity/MainActivity.java b/main/src/main/java/com/yunbao/main/activity/MainActivity.java
index 7e31a51b7..1693facbf 100644
--- a/main/src/main/java/com/yunbao/main/activity/MainActivity.java
+++ b/main/src/main/java/com/yunbao/main/activity/MainActivity.java
@@ -876,7 +876,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
NoviceInstructorManager.get(mContext).getNoviceInstructor();
NoviceInstructorManager.get(mContext).checktHomeZdyPop();
initAnchorRecommendBanner();
- OpenAdManager.getInstance().show(OpenAdManager.TYPE_HOME);
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_HOME, false);
}
/**
From a475e5dc2fbde61a7110fd49786c019203b864f6 Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 15 Sep 2023 16:15:51 +0800
Subject: [PATCH 03/19] =?UTF-8?q?update=20=E4=B8=AD=E8=8B=B1=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/src/main/res/values-en-rUS/string.xml | 47 ++++++++++---------
common/src/main/res/values-zh-rHK/strings.xml | 2 +
common/src/main/res/values-zh-rTW/strings.xml | 2 +
common/src/main/res/values-zh/strings.xml | 1 +
common/src/main/res/values/strings.xml | 47 ++++++++++---------
.../presenter/LiveRyLinkMicPkPresenter.java | 6 +++
.../live/views/LivePlayRyViewHolder.java | 4 +-
.../live/views/LivePushRyViewHolder.java | 1 +
live/src/main/res/values-en/strings.xml | 2 +-
9 files changed, 64 insertions(+), 48 deletions(-)
diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml
index fc726adaf..dddb57c8a 100644
--- a/common/src/main/res/values-en-rUS/string.xml
+++ b/common/src/main/res/values-en-rUS/string.xml
@@ -56,14 +56,14 @@
No QQ installed
Replication link
Replication success
- Editing materials
- Head portrait
- Nickname
+ Edit
+ Photo
+ Name
ModifyName
Modify remarks
Please enter comments~
Signature
- autograph
+ Bio
Binding phone
TASK1
TASK2
@@ -242,8 +242,8 @@
Service and privacy terms
Other login methods
More exciting experience after registering!
- Please enter your mobile number
- Please input a password
+ Phone Number
+ Password
Login immediately
Logon
Immediate registration
@@ -254,9 +254,9 @@
privilege grant failed
Authorization cancelled
Live broadcast
- Login
+ Log in
shopmall
- Recomm
+ Recommend
CSD
anchor
Live broadcast
@@ -289,7 +289,7 @@
Trickster
MultiplayerPK
Voice Link
- Start
+ billboard
LeaveTemporarily
ResumeLive
Flash lamp
@@ -491,11 +491,11 @@
register
Please enter your mobile number
Please enter the verification code
- Please fill in the password
- Please confirm the password
- Fill in the invitation code (optional)
+ Password
+ Password Again
+ Invite Code(Optional)
Register and log in
- Get verification code
+ Get Code
Regain
Passwords are inconsistent
In registration
@@ -659,7 +659,7 @@
Preservation
Register
No one is currently in the voice link
- Welcome to PDLIVE
+ Welcome to PDLive
Newcomer Bonus
EXP
Complete newcomer tasks for more rewards
@@ -888,7 +888,7 @@ Limited ride And limited avatar frame
Online Service
Hot Ticket
Register and log in
- Sign up for PD LIVE
+ Sign in PDlive
Tell the world!
Tell the world! %s recommends anchor %s to everyone!
Tell the world! %s recommends the anchor %s to everyone, and the splendid glance is amazing!
@@ -1018,7 +1018,7 @@ Limited ride And limited avatar frame
There is no choice, the anchor is not turned on FHD live.
There is no choice, the anchor is not turned on HD live.
Sorry, this feature is on hold.
- phone
+ Phone Number
Broadcast
Click To View
Anchor Task
@@ -1047,10 +1047,10 @@ Limited ride And limited avatar frame
Go to the sign-in center
Confirm pick up
Unable to login? Click here to contact customer service
- By logging in, you agree to the Terms of
- Service
- and
- Privacy
+ By continuing, you are agree to our Terms of
+ use
+ &
+ Privacy Policy
Terms and policies
For details, please read the following message to install the application:
Welcome to PD LIVE. For your personal information and privacy, we will adopt the highest standards of treatment and protection.
@@ -1126,7 +1126,7 @@ Limited ride And limited avatar frame
unfollow
Where is the host doing badly~\nBrother, are you sure you want to unfollow?
follow
- Heat Add
+ Heating
LOW
DEFAULT
HIGH
@@ -1150,7 +1150,7 @@ Limited ride And limited avatar frame
Do you want to delete the account
After clicking delete, it will take effect immediately and cannot be restored. Are you sure you want to continue?
Confirm deletion
- Fill And gift
+ Fill for Gift
Fill in the \'*\' option to complete
True love powder\nPhoto Frame(7 days)
128 Golden Beans
@@ -1211,7 +1211,7 @@ Limited ride And limited avatar frame
None
Return to account
Popularity Red packet
- Red packets
+ Earn Cash
Popular red packets
amount
Diamonds
@@ -1318,5 +1318,6 @@ Limited ride And limited avatar frame
Whether to use trial coupons
Use diamonds
Join a fans club
+ Sorry, your network failed to pull the other party.
diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml
index f3721d6bd..5f0e8673c 100644
--- a/common/src/main/res/values-zh-rHK/strings.xml
+++ b/common/src/main/res/values-zh-rHK/strings.xml
@@ -1314,4 +1314,6 @@
是否使用試用劵
使用鑽石
加入粉絲團
+
+ 抱歉,您的網絡不佳拉取對方畫面失敗
diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml
index d3839869a..1bf4efe05 100644
--- a/common/src/main/res/values-zh-rTW/strings.xml
+++ b/common/src/main/res/values-zh-rTW/strings.xml
@@ -1313,4 +1313,6 @@
主播:
是否使用試用劵
使用鑽石
+
+ 抱歉,您的網絡不佳拉取對方畫面失敗
diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml
index 7808238ad..32ba03fde 100644
--- a/common/src/main/res/values-zh/strings.xml
+++ b/common/src/main/res/values-zh/strings.xml
@@ -1314,5 +1314,6 @@
主播:
加入粉絲團
+ 抱歉,您的網絡不佳拉取對方畫面失敗
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index a610a1f49..3b2d1df10 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -56,14 +56,14 @@
No QQ installed
Replication link
Replication success
- Editing materials
- Head portrait
- Nickname
+ Edit
+ Photo
+ Name
ModifyName
Modify remarks
Please enter comments~
Signature
- autograph
+ Bio
Binding phone
TASK1
TASK2
@@ -242,8 +242,8 @@
Service and privacy terms
Other login methods
More exciting experience after registering!
- Please enter your mobile number
- Please input a password
+ Phone Number
+ Password
Login immediately
Logon
Immediate registration
@@ -254,9 +254,9 @@
privilege grant failed
Authorization cancelled
Live broadcast
- Login
+ Log in
shopmall
- Recomm
+ Recommend
CSD
anchor
Live broadcast
@@ -289,7 +289,7 @@
Trickster
MultiplayerPK
Voice Link
- Start
+ billboard
LeaveTemporarily
ResumeLive
Flash lamp
@@ -491,11 +491,11 @@
register
Please enter your mobile number
Please enter the verification code
- Please fill in the password
- Please confirm the password
- Fill in the invitation code (optional)
+ Password
+ Password Again
+ Invite Code(Optional)
Register and log in
- Get verification code
+ Get Code
Regain
Passwords are inconsistent
In registration
@@ -659,7 +659,7 @@
Preservation
Register
No one is currently in the voice link
- Welcome to PDLIVE
+ Welcome to PDLive
Newcomer Bonus
EXP
Complete newcomer tasks for more rewards
@@ -888,7 +888,7 @@ Limited ride And limited avatar frame
Online Service
Hot Ticket
Register and log in
- Sign up for PD LIVE
+ Sign in PDlive
Tell the world!
Tell the world! %s recommends anchor %s to everyone!
Tell the world! %s recommends the anchor %s to everyone, and the splendid glance is amazing!
@@ -1018,7 +1018,7 @@ Limited ride And limited avatar frame
There is no choice, the anchor is not turned on FHD live.
There is no choice, the anchor is not turned on HD live.
Sorry, this feature is on hold.
- phone
+ Phone Number
Broadcast
Click To View
Anchor Task
@@ -1047,10 +1047,10 @@ Limited ride And limited avatar frame
Go to the sign-in center
Confirm pick up
Unable to login? Click here to contact customer service
- By logging in, you agree to the Terms of
- Service
- and
- Privacy
+ By continuing, you are agree to our Terms of
+ use
+ &
+ Privacy Policy
Terms and policies
For details, please read the following message to install the application:
Welcome to PD LIVE. For your personal information and privacy, we will adopt the highest standards of treatment and protection.
@@ -1126,7 +1126,7 @@ Limited ride And limited avatar frame
unfollow
Where is the host doing badly~\nBrother, are you sure you want to unfollow?
follow
- Heat Add
+ Heating
LOW
DEFAULT
HIGH
@@ -1168,7 +1168,7 @@ Limited ride And limited avatar frame
VOTE
%s
box disappears after %s seconds
Please complete the form.
- Fill And gift
+ Fill for Gift
Fill in the \'*\' option to complete
True love powder\nPhoto Frame(7 days)
128 Golden Beans
@@ -1212,7 +1212,7 @@ Limited ride And limited avatar frame
None
Return to account
Popularity Red packet
- Red packets
+ Earn Cash
Popular red packets
amount
Diamonds
@@ -1320,4 +1320,5 @@ Limited ride And limited avatar frame
Anchor:
Join a fans club
+ Sorry, your network failed to pull the other party.
diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
index 8fa494aef..071ac25ba 100644
--- a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
+++ b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
@@ -642,6 +642,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -768,6 +769,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -924,6 +926,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode);
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1000,6 +1003,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "订阅资源失败: " + rtcErrorCode);
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1773,6 +1777,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
//2. 合流画布设置
@@ -1963,6 +1968,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
index d450c23af..dd25ac6dd 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
@@ -1007,7 +1007,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", userinputStreamList.size() + LiveActivity.mLiveUid + "订阅失败" + errorCode.toString());
-
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
@Override
@@ -1045,6 +1045,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "远端失败" + list.size());
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1197,6 +1198,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "订阅资源失败: " + rtcErrorCode.getReason());
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
diff --git a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
index daa33924a..d8eb63a61 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
@@ -176,6 +176,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "远端失败" + list.size());
+ ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
diff --git a/live/src/main/res/values-en/strings.xml b/live/src/main/res/values-en/strings.xml
index f7a06979e..00b2440af 100644
--- a/live/src/main/res/values-en/strings.xml
+++ b/live/src/main/res/values-en/strings.xml
@@ -45,7 +45,7 @@
Release cancel send
No recording has been recognized in over 10 seconds
Identity privilege
- Nobleman\'s seat
+ VIP seats
%s applies for connected wheat. Check whether
The wheat has been kicked off
An invitation has been sent and is waiting for the user to accept
From ea397af1230d5cdfcf3a3bb4f826c1ef08f34a2d Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 15 Sep 2023 16:55:36 +0800
Subject: [PATCH 04/19] =?UTF-8?q?update=20=E5=BC=B9=E7=AA=97=E6=8E=A5?=
=?UTF-8?q?=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/com/yunbao/common/manager/OpenAdManager.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
index 060c72714..d5a24c3a7 100644
--- a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
@@ -23,7 +23,7 @@ public class OpenAdManager {
public static final int TYPE_LIVE = 2;
private static final String TAG = "-----弹窗-----";
private Map showMap;
- private List list = new ArrayList<>();
+ private List list = null;
private Handler handler = new Handler(Looper.getMainLooper());
private Map runnableMap = new HashMap<>();
private int showType;
@@ -68,7 +68,7 @@ public class OpenAdManager {
public synchronized void show(int type,boolean isGuard) {
- if (list.isEmpty()) {
+ if (list==null) {
init(true);
return;
}
From a876018b0ae4b0215e445d710f00c39897cb21f2 Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 15 Sep 2023 18:12:40 +0800
Subject: [PATCH 05/19] =?UTF-8?q?update=20=E5=BC=B9=E7=AA=97=E5=B8=83?=
=?UTF-8?q?=E5=B1=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/src/main/res/layout/dialog_open_bottom_ad.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/common/src/main/res/layout/dialog_open_bottom_ad.xml b/common/src/main/res/layout/dialog_open_bottom_ad.xml
index 5137df634..192f2d295 100644
--- a/common/src/main/res/layout/dialog_open_bottom_ad.xml
+++ b/common/src/main/res/layout/dialog_open_bottom_ad.xml
@@ -12,6 +12,7 @@
android:scaleType="fitXY"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
+ android:adjustViewBounds="true"
app:layout_constraintStart_toStartOf="parent"
app:srcCompat="@mipmap/background_gift_wall" />
From 9ec241f2a37bbd63c3dc41378f37b3b3563e63ef Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 15 Sep 2023 18:28:46 +0800
Subject: [PATCH 06/19] =?UTF-8?q?update=20=E5=BC=B9=E7=AA=97?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/yunbao/live/activity/LiveAudienceActivity.java | 6 ++++--
.../java/com/yunbao/live/views/PortraitLiveManager.java | 6 +++++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
index 432ff0e9b..02e55bd3a 100644
--- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
+++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
@@ -779,8 +779,10 @@ public class LiveAudienceActivity extends LiveActivity {
}
}
GiftCacheUtil.getInstance().restart();
- new Handler(Looper.getMainLooper()).postDelayed(() -> OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE,
- LiveGuardInfo.isGuard(mLiveGuardInfo)), 400);
+ if (manager.isEnterRoom()) {
+ new Handler(Looper.getMainLooper()).postDelayed(() -> OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE,
+ LiveGuardInfo.isGuard(mLiveGuardInfo)), 400);
+ }
}
@Override
diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
index 919693d9f..a122ba9ea 100644
--- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
+++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
@@ -263,7 +263,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
public void run() {
loading.setVisibility(View.GONE);
enterRoomLeaveHandler.post(enterRoomLeaveRunnable);
- OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE,LiveGuardInfo.isGuard(mLiveGuardInfo));
+ OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE, LiveGuardInfo.isGuard(mLiveGuardInfo));
}
};
final Runnable loadTimeoutRunnableGone = new Runnable() {
@@ -2100,4 +2100,8 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
mLiveRoomViewHolder.setGiftWall(giftWallLightenNumber, giftWallLightenTotal);
}
}
+
+ public boolean isEnterRoom() {
+ return isEnterRoom;
+ }
}
From 7b5cd9b79720ed49f2c254e3781067153ba5986c Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Sat, 16 Sep 2023 10:53:08 +0800
Subject: [PATCH 07/19] =?UTF-8?q?update=20=E4=B8=AD=E8=8B=B1=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/src/main/res/values-en-rUS/string.xml | 6 +++---
common/src/main/res/values-zh-rHK/strings.xml | 1 +
common/src/main/res/values-zh-rTW/strings.xml | 1 +
common/src/main/res/values-zh/strings.xml | 2 +-
common/src/main/res/values/strings.xml | 8 +++++---
live/src/main/res/layout/dialog_new_live_user.xml | 2 +-
live/src/main/res/layout/view_noble_seat.xml | 5 ++---
7 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml
index dddb57c8a..d2c6e9562 100644
--- a/common/src/main/res/values-en-rUS/string.xml
+++ b/common/src/main/res/values-en-rUS/string.xml
@@ -829,8 +829,8 @@
You can only speak after completing the previous task
- Heat addition
- Hot & Time
+ HEATING
+ Heat & Time
The popularity can increase the exposure to the anchor\'s room. The higher the live broadcast room, the more popular on the homepage, which will bring more users in the house and help the anchor to quickly increase the room heat in a period of time. Immediately after the delivery Effective.
How to get the heat card?
@@ -1319,5 +1319,5 @@ Limited ride And limited avatar frame
Use diamonds
Join a fans club
Sorry, your network failed to pull the other party.
-
+ say something
diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml
index 5f0e8673c..6667a300c 100644
--- a/common/src/main/res/values-zh-rHK/strings.xml
+++ b/common/src/main/res/values-zh-rHK/strings.xml
@@ -1316,4 +1316,5 @@
加入粉絲團
抱歉,您的網絡不佳拉取對方畫面失敗
+ 這家夥很懶,什麽都沒留下
diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml
index 1bf4efe05..b38df1870 100644
--- a/common/src/main/res/values-zh-rTW/strings.xml
+++ b/common/src/main/res/values-zh-rTW/strings.xml
@@ -1315,4 +1315,5 @@
使用鑽石
抱歉,您的網絡不佳拉取對方畫面失敗
+ 這家夥很懶,什麽都沒留下
diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml
index 32ba03fde..e1c3c7772 100644
--- a/common/src/main/res/values-zh/strings.xml
+++ b/common/src/main/res/values-zh/strings.xml
@@ -1315,5 +1315,5 @@
加入粉絲團
抱歉,您的網絡不佳拉取對方畫面失敗
-
+ 這家夥很懶,什麽都沒留下
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index 3b2d1df10..db6cee635 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -829,8 +829,8 @@
You can only speak after completing the previous task
- Heat addition
- Hot & Time
+ HEATING
+ Heat & Time
The popularity can increase the exposure to the anchor\'s room. The higher the live broadcast room, the more popular on the homepage, which will bring more users in the house and help the anchor to quickly increase the room heat in a period of time. Immediately after the delivery Effective.
How to get the heat card?
@@ -956,7 +956,7 @@ Limited ride And limited avatar frame
Chat
Congratulations %s have won %s in the Lucky Angel! The next lucky angel will be you!
Congratulations on %s winning %s in Luck 100 %%! Go pass on the good luck!
- Guardian %s
+ guard %s
receive
To finish
Already collected
@@ -1321,4 +1321,6 @@ Limited ride And limited avatar frame
Join a fans club
Sorry, your network failed to pull the other party.
+
+ say something
diff --git a/live/src/main/res/layout/dialog_new_live_user.xml b/live/src/main/res/layout/dialog_new_live_user.xml
index 62162d177..0a674ad44 100644
--- a/live/src/main/res/layout/dialog_new_live_user.xml
+++ b/live/src/main/res/layout/dialog_new_live_user.xml
@@ -327,7 +327,7 @@
android:id="@+id/sign"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="這家夥很懶,什麽都沒留下"
+ android:text="@string/live_user_dialog_tips"
android:textColor="#B1B1B1"
android:textSize="14sp" />
diff --git a/live/src/main/res/layout/view_noble_seat.xml b/live/src/main/res/layout/view_noble_seat.xml
index 0bafa7619..738e26e86 100644
--- a/live/src/main/res/layout/view_noble_seat.xml
+++ b/live/src/main/res/layout/view_noble_seat.xml
@@ -8,7 +8,7 @@
@@ -28,14 +28,13 @@
From 6e8842d30d09e3eb764118f500fe0acfd429ec10 Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Sat, 16 Sep 2023 14:23:43 +0800
Subject: [PATCH 08/19] =?UTF-8?q?update=20config=E5=8A=A0=E5=85=A5?=
=?UTF-8?q?=E7=BD=91=E7=BB=9C=E5=A4=B1=E8=B4=A5=E6=8F=90=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/shayu/phonelive/activity/LauncherActivity.java | 3 +++
.../src/main/java/com/yunbao/common/http/CommonHttpUtil.java | 3 +++
2 files changed, 6 insertions(+)
diff --git a/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java b/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java
index 5251deee9..0415e00e9 100644
--- a/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java
+++ b/app/src/main/java/com/shayu/phonelive/activity/LauncherActivity.java
@@ -229,8 +229,11 @@ public class LauncherActivity extends AppCompatActivity implements View.OnClickL
} else {
checkUidAndToken();
}
+ }else{
+ ToastUtil.show(getString(R.string.net_error));
}
}
+
});
}
diff --git a/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java b/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java
index 7431a5d51..66ac11f22 100644
--- a/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java
+++ b/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java
@@ -13,6 +13,7 @@ import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response;
import com.lzy.okgo.request.PostRequest;
import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.CommonAppContext;
import com.yunbao.common.R;
import com.yunbao.common.activity.ErrorActivity;
import com.yunbao.common.bean.ConfigBean;
@@ -260,6 +261,8 @@ public class CommonHttpUtil {
AppManager.getInstance().AppExit();
}
}).build().show();
+ } else {
+ ToastUtil.show(CommonAppContext.getTopActivity().getString(R.string.net_error) + "code:" + code + " msg:" + msg);
}
}
From 3595b896724aa986bdbe100e4e93aa7421b727df Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Sat, 16 Sep 2023 14:24:06 +0800
Subject: [PATCH 09/19] =?UTF-8?q?fix=20=E8=B0=83=E6=95=B4=E8=8B=B1?=
=?UTF-8?q?=E6=96=87PK=E6=83=A9=E7=BD=9A=E5=80=92=E8=AE=A1=E6=97=B6?=
=?UTF-8?q?=E8=BF=87=E9=95=BF=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
live/src/main/res/layout/view_link_mic_pk.xml | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/live/src/main/res/layout/view_link_mic_pk.xml b/live/src/main/res/layout/view_link_mic_pk.xml
index bf94be235..1708a0dc5 100644
--- a/live/src/main/res/layout/view_link_mic_pk.xml
+++ b/live/src/main/res/layout/view_link_mic_pk.xml
@@ -1,6 +1,7 @@
@@ -159,17 +160,19 @@
+ android:visibility="invisible"
+ tools:visibility="visible" />
Date: Sat, 16 Sep 2023 18:22:51 +0800
Subject: [PATCH 10/19] =?UTF-8?q?update=20=E6=8E=92=E4=BD=8D=E8=B5=9B?=
=?UTF-8?q?=E4=B8=AD=E8=8B=B1=E6=96=87IM=E6=B6=88=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/yunbao/common/bean/PkRankBean.java | 11 +++++++++++
.../com/yunbao/live/socket/SocketRyClient.java | 1 +
.../com/yunbao/live/views/LiveRoomViewHolder.java | 15 ++++++++++-----
3 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/bean/PkRankBean.java b/common/src/main/java/com/yunbao/common/bean/PkRankBean.java
index dcff7de27..bd70bb03c 100644
--- a/common/src/main/java/com/yunbao/common/bean/PkRankBean.java
+++ b/common/src/main/java/com/yunbao/common/bean/PkRankBean.java
@@ -23,6 +23,8 @@ public class PkRankBean extends BaseModel {
public String clickUrl;
@SerializedName("vs_img")
public String vsImgUrl;
+ @SerializedName("new_rank_name_en")
+ public String newRankNameEn;
public int getId() {
return id;
@@ -94,6 +96,14 @@ public class PkRankBean extends BaseModel {
this.vsImgUrl = vsImgUrl;
}
+ public String getNewRankNameEn() {
+ return newRankNameEn;
+ }
+
+ public void setNewRankNameEn(String newRankNameEn) {
+ this.newRankNameEn = newRankNameEn;
+ }
+
@Override
public String toString() {
return "PkRankBean{" +
@@ -105,6 +115,7 @@ public class PkRankBean extends BaseModel {
", pkTopImgUrl='" + pkTopImgUrl + '\'' +
", clickUrl='" + clickUrl + '\'' +
", vsImgUrl='" + vsImgUrl + '\'' +
+ ", newRankNameEn='" + newRankNameEn + '\'' +
'}';
}
}
diff --git a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
index 063d23e0d..5adf63ddc 100644
--- a/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
+++ b/live/src/main/java/com/yunbao/live/socket/SocketRyClient.java
@@ -650,6 +650,7 @@ public class SocketRyClient {
pkRankBean.setId(Integer.parseInt(item.getString("new_rank_id")));
pkRankBean.setName(item.getString("new_rank_name"));
pkRankBean.setImg(item.getString("new_rank_img"));
+ pkRankBean.setNewRankNameEn(item.getString("new_rank_name_en"));
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.PK_RANK_UPDATE)
.setObject(pkRankBean));
diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
index 4664a66aa..eb35482d8 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
@@ -124,6 +124,7 @@ import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.TimeUtils;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.formatBigNum;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.common.views.weight.ClipPathCircleImage;
@@ -461,7 +462,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
} else if ("checkNewLetter".equals(str)) {
checkNewLetter();
- }else if("exitFansGroup".equals(str)){
+ } else if ("exitFansGroup".equals(str)) {
setFansGroup("0");
}
}
@@ -1817,7 +1818,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
.append("&isZh=")
.append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
}
- if (htmlUrl.toString().contains("StarChallenge")){
+ if (htmlUrl.toString().contains("StarChallenge")) {
Map map_ekv = new HashMap();
map_ekv.put("link", htmlUrl.toString());
MobclickAgent.onEvent(mContext, "live_room_star", map_ekv);
@@ -1889,7 +1890,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
.append("&isZh=")
.append(((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
}
- if (htmlUrl.toString().contains("StarChallenge")){
+ if (htmlUrl.toString().contains("StarChallenge")) {
Map map_ekv = new HashMap();
map_ekv.put("link", htmlUrl.toString());
MobclickAgent.onEvent(mContext, "live_room_star", map_ekv);
@@ -2391,7 +2392,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
private void updatePkRank(PkRankBean bean) {
- mPkRankText.setText(bean.getName());
+ if (WordUtil.isNewZh()) {
+ mPkRankText.setText(bean.getName());
+ } else {
+ mPkRankText.setText(bean.getNewRankNameEn());
+ }
ImgLoader.display(mContext, bean.getImg(), mPkRankIcon);
}
@@ -4159,7 +4164,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override
public void onBannerClick(List datas, int p) {
- if (TextUtils.equals("特惠首冲", mBannerList4.get(p).getName())){
+ if (TextUtils.equals("特惠首冲", mBannerList4.get(p).getName())) {
Map map_ekv = new HashMap();
map_ekv.put("link", mBannerList4.get(p).getLink());
From 3150489384058ef1313e1cf5341d6bbb833a9dcb Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Wed, 20 Sep 2023 18:26:59 +0800
Subject: [PATCH 11/19] =?UTF-8?q?update=20=E4=B8=AD=E8=8B=B1=E6=96=87=20fi?=
=?UTF-8?q?x=20=E6=92=AD=E6=94=BE=E5=99=A8=E7=9B=91=E6=B5=8B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../fragment/LiveNewWishListFragment.java | 7 +-
.../yunbao/common/manager/IMRTCManager.java | 13 +-
.../com/yunbao/common/utils/NobleUtil.java | 18 +--
.../com/yunbao/common/utils/ToastUtil.java | 2 +-
.../yunbao/common/views/InputCustomPopup.java | 3 +-
.../common/views/LiveNewWishListPopup.java | 3 +-
common/src/main/res/values-en-rUS/string.xml | 4 +-
common/src/main/res/values-zh-rHK/strings.xml | 2 +
common/src/main/res/values-zh-rTW/strings.xml | 2 +
common/src/main/res/values-zh/strings.xml | 2 +
common/src/main/res/values/strings.xml | 4 +-
.../live/activity/LiveRyAnchorActivity.java | 13 +-
.../adapter/AnchorUserMicInfoAdapter.java | 6 +
.../live/dialog/FreePkDialogFragment.java | 4 +-
.../dialog/LiveNewWishListDialogFragment.java | 3 +-
.../dialog/LiveWishListDialogFragment.java | 3 +-
.../presenter/LiveRyLinkMicPkPresenter.java | 7 +-
.../live/utils/LiveExoPlayerManager.java | 138 ++++++++++++++++++
.../live/views/LiveLinkMicPkViewHolder.java | 2 +-
.../live/views/LivePlayRyViewHolder.java | 1 +
.../live/views/LivePushRyViewHolder.java | 2 +-
.../live/views/LivePushTxViewHolder.java | 3 +-
.../live/views/PortraitLiveManager.java | 2 +-
.../main/res/layout/dialog_fans_group_buy.xml | 8 +-
.../layout/dialog_live_select_gift_wrap.xml | 2 +-
.../main/res/layout/dialog_new_live_user.xml | 4 +-
.../src/main/res/layout/view_live_push_ry.xml | 2 +-
.../src/main/res/layout/view_live_push_tx.xml | 2 +-
.../layout/view_live_search_list_empty.xml | 2 +-
.../main/dialog/MainStartDialogFragment.java | 2 +-
30 files changed, 225 insertions(+), 41 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java b/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java
index bb7a963c1..590a95912 100644
--- a/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java
+++ b/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java
@@ -21,6 +21,7 @@ import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.HintCustomPopup;
import com.yunbao.common.views.LiveNewWishGiftPopup;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -149,7 +150,7 @@ public class LiveNewWishListFragment extends BaseFragment {
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() {
@Override
public void onSuccess(String data) {
- ToastUtil.show("修改成功");
+ ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
}
@Override
@@ -181,7 +182,7 @@ public class LiveNewWishListFragment extends BaseFragment {
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() {
@Override
public void onSuccess(String data) {
- ToastUtil.show("修改成功");
+ ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
}
@Override
@@ -200,7 +201,7 @@ public class LiveNewWishListFragment extends BaseFragment {
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() {
@Override
public void onSuccess(String data) {
- ToastUtil.show("修改成功");
+ ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
}
@Override
diff --git a/common/src/main/java/com/yunbao/common/manager/IMRTCManager.java b/common/src/main/java/com/yunbao/common/manager/IMRTCManager.java
index 4c3fc88ef..c1b85d3ab 100644
--- a/common/src/main/java/com/yunbao/common/manager/IMRTCManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/IMRTCManager.java
@@ -6,6 +6,7 @@ import android.os.Handler;
import android.os.Looper;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import java.util.ArrayList;
import java.util.List;
@@ -100,7 +101,11 @@ public class IMRTCManager {
public void onSuccess() {
callback.onSuccess();
if (!RandomPkManager.getInstance().isRandomModel()) {
- ToastUtil.show("发起邀请成功");
+ if(WordUtil.isNewZh()) {
+ ToastUtil.show("发起邀请成功");
+ }else{
+ ToastUtil.show("successful");
+ }
}
requestUid.add(liveUid);
startRequestTimeoutTask(liveUid);
@@ -109,7 +114,11 @@ public class IMRTCManager {
@Override
public void onFailed(RTCErrorCode errorCode) {
if (!RandomPkManager.getInstance().isRandomModel()) {
- ToastUtil.show("邀请失败 " + errorCode.getValue());
+ if(WordUtil.isNewZh()) {
+ ToastUtil.show("邀请失败 " + errorCode.getValue());
+ }else{
+ ToastUtil.show("invite failed:" +errorCode.getValue());
+ }
}
if (RandomPkManager.getInstance().isRequestPk()) {
RandomPkManager.getInstance().setPkStatus(RandomPkManager.PK_STATUS_REFUSE);
diff --git a/common/src/main/java/com/yunbao/common/utils/NobleUtil.java b/common/src/main/java/com/yunbao/common/utils/NobleUtil.java
index afe0208c3..a1ec0f2c7 100644
--- a/common/src/main/java/com/yunbao/common/utils/NobleUtil.java
+++ b/common/src/main/java/com/yunbao/common/utils/NobleUtil.java
@@ -30,7 +30,7 @@ public class NobleUtil {
case 1:return "男爵";
case 2:return "子爵";
case 3:return "侯爵";
- case 4:return "公爵";
+ case 4:return "公爵";
case 5:return "国王";
case 6:return "皇帝";
case 7:return "超皇";
@@ -39,15 +39,15 @@ public class NobleUtil {
}
public static String nobleIdToStringNameForEn(int id){
switch (id){
- case 1:return "baron";
- case 2:return "viscount";
- case 3:return "marquis";
- case 4:return "duke";
- case 5:return "king";
- case 6:return "emperor";
- case 7:return "SuperEmperor";
+ case 1:return "Baron";
+ case 2:return "Viscount";
+ case 3:return "Marquis";
+ case 4:return "Duke";
+ case 5:return "King";
+ case 6:return "Emperor";
+ case 7:return "SuperKing";
}
- return "Not Opened";
+ return "Not opened";
}
public static int getNobleBackgroundId(int id){
switch (id){
diff --git a/common/src/main/java/com/yunbao/common/utils/ToastUtil.java b/common/src/main/java/com/yunbao/common/utils/ToastUtil.java
index 3aa789611..764297b5a 100644
--- a/common/src/main/java/com/yunbao/common/utils/ToastUtil.java
+++ b/common/src/main/java/com/yunbao/common/utils/ToastUtil.java
@@ -43,7 +43,7 @@ public class ToastUtil {
public static void show(int res) {
- show(WordUtil.getString(res));
+ show(WordUtil.getNewString(res));
}
/**
diff --git a/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java b/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java
index 80b31e916..4aa99edb4 100644
--- a/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java
+++ b/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java
@@ -14,6 +14,7 @@ import com.lxj.xpopup.animator.PopupAnimator;
import com.lxj.xpopup.core.CenterPopupView;
import com.yunbao.common.R;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
/**
@@ -85,7 +86,7 @@ public class InputCustomPopup extends CenterPopupView {
public void onViewClicks() {
String textContent = content.getText().toString();
if (TextUtils.isEmpty(textContent)) {
- ToastUtil.show("输入内容不可为空");
+ ToastUtil.show(WordUtil.isNewZh()?"输入内容不可为空":"The input cannot be empty");
return;
}
if (listener != null) {
diff --git a/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java b/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java
index 4ca74750f..a4af32be8 100644
--- a/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java
+++ b/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java
@@ -32,6 +32,7 @@ import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import org.greenrobot.eventbus.Subscribe;
@@ -332,7 +333,7 @@ public class LiveNewWishListPopup extends BottomPopupView {
setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() {
@Override
public void onSuccess(String data) {
- ToastUtil.show("修改成功");
+ ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
}
@Override
diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml
index d2c6e9562..a0b0d26c1 100644
--- a/common/src/main/res/values-en-rUS/string.xml
+++ b/common/src/main/res/values-en-rUS/string.xml
@@ -1084,7 +1084,7 @@ Limited ride And limited avatar frame
One-time gift ≥2000 diamonds), can obtain fan privilege yo
Top up
User level
- aristocracy
+ Noble\nLevel
Fan club
Voice connection is not enabled
Wall of honor
@@ -1320,4 +1320,6 @@ Limited ride And limited avatar frame
Join a fans club
Sorry, your network failed to pull the other party.
say something
+ No match was found
+ Add
diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml
index 6667a300c..af444497c 100644
--- a/common/src/main/res/values-zh-rHK/strings.xml
+++ b/common/src/main/res/values-zh-rHK/strings.xml
@@ -1317,4 +1317,6 @@
抱歉,您的網絡不佳拉取對方畫面失敗
這家夥很懶,什麽都沒留下
+ 沒有找到匹配結果~
+ 確定添加
diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml
index b38df1870..352fdec89 100644
--- a/common/src/main/res/values-zh-rTW/strings.xml
+++ b/common/src/main/res/values-zh-rTW/strings.xml
@@ -1316,4 +1316,6 @@
抱歉,您的網絡不佳拉取對方畫面失敗
這家夥很懶,什麽都沒留下
+ 沒有找到匹配結果~
+ 確定添加
diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml
index e1c3c7772..fd5574955 100644
--- a/common/src/main/res/values-zh/strings.xml
+++ b/common/src/main/res/values-zh/strings.xml
@@ -1316,4 +1316,6 @@
加入粉絲團
抱歉,您的網絡不佳拉取對方畫面失敗
這家夥很懶,什麽都沒留下
+ 沒有找到匹配結果~
+ 確定添加
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index db6cee635..480f62744 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -1084,7 +1084,7 @@ Limited ride And limited avatar frame
One-time gift ≥2000 diamonds), can obtain fan privilege yo
Top up
User level
- aristocracy
+ Noble\nLevel
Fan club
Voice connection is not enabled
Wall of honor
@@ -1323,4 +1323,6 @@ Limited ride And limited avatar frame
Sorry, your network failed to pull the other party.
say something
+ No match was found
+ Add
diff --git a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java
index 72f87232f..4bf42650e 100644
--- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java
+++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java
@@ -70,6 +70,7 @@ import com.yunbao.common.utils.LogUtil;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.LiveNewWishListPopup;
import com.yunbao.common.views.LiveRobotSettingCustomPopup;
import com.yunbao.faceunity.FaceManager;
@@ -1244,7 +1245,11 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
});
//todo 安卓端状态码说明文档:https://docs.rongcloud.cn/v4/views/rtc/call/code/android.html
Log.e("ry", rtcErrorCode + "aaaaaa" + CommonAppConfig.getInstance().getUid() + "VDSSSS" + pkUid);
- ToastUtil.show("邀请 " + pkUid + " 发送失败 :" + rtcErrorCode);
+ if(WordUtil.isNewZh()) {
+ ToastUtil.show("邀请 " + pkUid + " 发送失败 :" + rtcErrorCode);
+ }else{
+ ToastUtil.show("invite " + pkUid + " failed:"+rtcErrorCode);
+ }
}
});
@@ -1293,7 +1298,11 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
@Override
public void onSuccess() {
if (!extra.equals(SOCKET_LIVE_DRPK_RANDOM)) {
- ToastUtil.show("邀请 " + pkUid + " 发送成功");
+ if(WordUtil.isNewZh()) {
+ ToastUtil.show("邀请 " + pkUid + " 发送成功");
+ }else{
+ ToastUtil.show("invite " + pkUid + " successful");
+ }
}
runOnUiThread(new Runnable() {
@Override
diff --git a/live/src/main/java/com/yunbao/live/adapter/AnchorUserMicInfoAdapter.java b/live/src/main/java/com/yunbao/live/adapter/AnchorUserMicInfoAdapter.java
index c45181bbb..7202da106 100644
--- a/live/src/main/java/com/yunbao/live/adapter/AnchorUserMicInfoAdapter.java
+++ b/live/src/main/java/com/yunbao/live/adapter/AnchorUserMicInfoAdapter.java
@@ -221,9 +221,15 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter {
}
if (bean.getType() == TYPE_MIC_REQUEST) {
mBtn.setText("同意");
+ if(!WordUtil.isNewZh()){
+ mBtn.setText("agree");
+ }
mBtn.setBackgroundResource(R.drawable.bg_anchor_mic_info_btn_ok);
} else if (bean.getType() == TYPE_MIC_INVITE) {
mBtn.setText("邀请");
+ if (!WordUtil.isNewZh()) {
+ mBtn.setText("invite");
+ }
mBtn.setBackgroundResource(R.drawable.bg_anchor_mic_info_btn_invite);
}
ImgLoader.display(mContext, bean.getAvatar(), mAvatar);
diff --git a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java
index b1395ffc9..ef52c9a21 100644
--- a/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java
+++ b/live/src/main/java/com/yunbao/live/dialog/FreePkDialogFragment.java
@@ -130,13 +130,13 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
}
});
if(!WordUtil.isNewZh()){
- mPkNumText.setText("Free PK remaining number");
+ mPkNumText.setText("Free PK number");
((TextView)findViewById(R.id.tmp_text2)).setText("Updated daily at 6am");
}
if (mDrPkNum != -1) {
mPkNumText.setText("多人PK剩余次數");
if(!WordUtil.isNewZh()){
- mPkNumText.setText("multi-user PK remaining number");
+ mPkNumText.setText("multi-user PK number");
}
}
initRecycler();
diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveNewWishListDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveNewWishListDialogFragment.java
index f30c46085..b1a7905d0 100644
--- a/live/src/main/java/com/yunbao/live/dialog/LiveNewWishListDialogFragment.java
+++ b/live/src/main/java/com/yunbao/live/dialog/LiveNewWishListDialogFragment.java
@@ -22,6 +22,7 @@ import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -118,7 +119,7 @@ public class LiveNewWishListDialogFragment extends AbsDialogFragment implements
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
- ToastUtil.show("修改成功");
+ ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
dismiss();
} else {
ToastUtil.show("修改失败" + (msg.isEmpty() ? "" : msg));
diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveWishListDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveWishListDialogFragment.java
index ca7bd3ae8..12eb62dd7 100644
--- a/live/src/main/java/com/yunbao/live/dialog/LiveWishListDialogFragment.java
+++ b/live/src/main/java/com/yunbao/live/dialog/LiveWishListDialogFragment.java
@@ -18,6 +18,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -117,7 +118,7 @@ public class LiveWishListDialogFragment extends AbsDialogFragment implements OnI
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
- ToastUtil.show("修改成功");
+ ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
dismiss();
} else {
ToastUtil.show("修改失败" + (msg.isEmpty() ? "" : msg));
diff --git a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
index 071ac25ba..223419aa9 100644
--- a/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
+++ b/live/src/main/java/com/yunbao/live/presenter/LiveRyLinkMicPkPresenter.java
@@ -57,6 +57,7 @@ import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -857,7 +858,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onSuccess(RCRTCOtherRoom rcrtcOtherRoom) {
rcrtcOtherRoom.registerOtherRoomEventsListener(otherRoomEventsListener);
- ToastUtil.show("接受成功");
+ ToastUtil.show(WordUtil.isNewZh()?"接受成功":"Success");
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
for (int i = 0; i < rcrtcOtherRoom.getRemoteUsers().size(); i++) {
@@ -976,7 +977,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onSuccess(RCRTCOtherRoom rcrtcOtherRoom) {
rcrtcOtherRoom.registerOtherRoomEventsListener(otherRoomEventsListener);
- ToastUtil.show("接受成功");
+ ToastUtil.show(WordUtil.isNewZh()?"接受成功":"Success");
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
Log.e("ry", liveid + "来了!!!!" + rcrtcOtherRoom.getRemoteUsers().size());
@@ -1659,7 +1660,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
}
Log.e("ry", "多人接受成功" + mApplyUid);
- ToastUtil.show("接受成功");
+ ToastUtil.show(WordUtil.isNewZh()?"接受成功":"Success");
//遍历远端用户列表
for (int i = 0; i < rcrtcOtherRoom.getRemoteUsers().size(); i++) {
Log.e("ry", rcrtcOtherRoom.getRemoteUsers().get(i).getUserId() + "收到rcrtcOtherRoom" + rcrtcOtherRoom.getRemoteUsers().size());
diff --git a/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java b/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
index b497b30d3..e3236c88a 100644
--- a/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
+++ b/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
@@ -1,10 +1,12 @@
package com.yunbao.live.utils;
import android.content.Context;
+import android.graphics.Color;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.widget.RelativeLayout;
+import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -18,9 +20,13 @@ import com.google.android.exoplayer2.analytics.AnalyticsListener;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.exoplayer2.video.VideoSize;
+import com.lzf.easyfloat.EasyFloat;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
+import java.util.Timer;
+import java.util.TimerTask;
+
/**
* 直播间播放器管理器
* 通过预加载子播放器来实现无缝切换分辨率功能
@@ -40,6 +46,9 @@ public class LiveExoPlayerManager {
private static double log_buffer_time = 0, log_buffer_max_time;
private String url = "";
private Context mContext;
+ private TimerTask task;
+
+ TextView debugText;
public LiveExoPlayerManager(Context mContext) {
this.mContext = mContext;
@@ -59,6 +68,109 @@ public class LiveExoPlayerManager {
handler = new Handler(Looper.getMainLooper());
setListener();
setAnalyticsListener();
+ //createDeBugDialog();
+
+ }
+
+ int index = 0;
+
+ private void createTask() {
+ if (task != null) {
+ return;
+ }
+ task = new TimerTask() {
+
+
+ @Override
+ public void run() {
+ handler.post(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ if (index > 5 && !player1.isPlaying() && !player2.isPlaying()) {
+ index = 0;
+ Log.i(TAG, "5秒内播放器没有播放,重新播放");
+ ToastUtil.showDebug("强制重播");
+ handler.removeCallbacks(buffRunnable);
+ replay();
+ cancel();
+ } else if (player1.isPlaying() || player2.isPlaying()) {
+ index = 0;
+ } else {
+ index++;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ cancel();
+ task = null;
+ }
+
+ }
+ });
+
+ }
+ };
+ new Timer().schedule(task, 0, 1000);
+ }
+
+ private TimerTask debugTask;
+
+ private void createDeBugDialog() {
+ debugText = new TextView(mContext);
+ debugText.setText(getDebugText());
+ debugText.setBackgroundColor(Color.WHITE);
+ debugText.setTextColor(Color.BLACK);
+ EasyFloat.with(mContext)
+ .setTag("debug")
+ .setLayout(debugText)
+ .show();
+ debugTask = new TimerTask() {
+ @Override
+ public void run() {
+ updateDebug();
+ }
+ };
+ new Timer().schedule(debugTask, 0, 500);
+ }
+
+ private String getDebugText() {
+ StringBuilder sb = new StringBuilder();
+ try {
+ sb.append("player1: ").append(getPlayStateText(player1)).append("|").append(player1.isPlaying()).append("\n");
+ sb.append("player2: ").append(getPlayStateText(player2)).append("|").append(player2.isPlaying()).append("\n");
+ sb.append("卡顿计数器:").append(playBufferIndex).append("\n");
+ sb.append("强制播放计时器:").append(index).append("\n");
+ } catch (Exception e) {
+ e.printStackTrace();
+ EasyFloat.dismiss("debug");
+ debugTask.cancel();
+ }
+
+ return sb.toString();
+ }
+
+ private void updateDebug() {
+ handler.post(new Runnable() {
+ @Override
+ public void run() {
+ debugText.setText(getDebugText());
+ }
+ });
+ }
+
+ private String getPlayStateText(ExoPlayer player) {
+ switch (player.getPlaybackState()) {
+ case Player.STATE_READY:
+ return "STATE_READY";
+ case Player.STATE_BUFFERING:
+ return "STATE_BUFFERING";
+ case Player.STATE_ENDED:
+ return "STATE_ENDED";
+ case Player.STATE_IDLE:
+ return "STATE_IDLE";
+ default:
+ return player.getPlaybackState() + "";
+ }
}
@@ -171,6 +283,7 @@ public class LiveExoPlayerManager {
if (listener != null) {
listener.onIsPlayingChanged(true);
}
+ createTask();
}
}
@@ -245,6 +358,7 @@ public class LiveExoPlayerManager {
if (listener != null) {
listener.onIsPlayingChanged(true);
}
+ createTask();
}
}
@@ -280,6 +394,11 @@ public class LiveExoPlayerManager {
*/
public void startUrl(String url) {
if (url != null && url.equals(this.url)) return;
+ if (task != null) {
+ task.cancel();
+ task = null;
+ }
+
Log.i(TAG, "startUrl: " + url + " > " + mainView.getResizeMode());
handler.removeCallbacks(buffRunnable);
this.url = url;
@@ -303,6 +422,10 @@ public class LiveExoPlayerManager {
*/
public void switchUrl(String url) {
if (url != null && url.equals(this.url)) return;
+ if (task != null) {
+ task.cancel();
+ task = null;
+ }
Log.i(TAG, "switchUrl: " + url + " src : " + this.url);
this.url = url;
playBufferIndex = 0;
@@ -369,6 +492,14 @@ public class LiveExoPlayerManager {
if (getNextPlayer() != null) {
getNextPlayer().stop();
}
+ if (listener != null) {
+ listener.onPlaybackStateChanged(Player.STATE_IDLE);
+ }
+ handler.removeCallbacks(buffRunnable);
+ if (task != null) {
+ task.cancel();
+ task = null;
+ }
String tmp = url;
url = null;
startUrl(tmp);
@@ -394,6 +525,13 @@ public class LiveExoPlayerManager {
player2.clearVideoSurface();
player2.release();
}
+ if (task != null) {
+ task.cancel();
+ task = null;
+ }
+ if (debugTask != null) {
+ debugTask.cancel();
+ }
player1 = null;
player2 = null;
mainView.setKeepContentOnPlayerReset(false);
diff --git a/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java
index 94487fe74..4be20f372 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java
@@ -218,7 +218,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
if (mTime != null) {
Log.i("vvvs", content);
if (content.trim().equals("00:00")) {
- mTime.setText("結算中");
+ mTime.setText(WordUtil.isNewZh()?"結算中":"waiting");
} else {
mTime.setText(content);
}
diff --git a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
index dd25ac6dd..0fab5e098 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePlayRyViewHolder.java
@@ -1287,6 +1287,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
Player.Listener.super.onIsPlayingChanged(isPlaying);
if (isPlaying) {
hideCover();
+ mLoading.setVisibility(View.INVISIBLE);
Log.i(TAG, "onIsPlayingChanged: 开始播放 | waitNextUrl = " + waitNextUrl);
OkDownload.getInstance().startAll();
if (loadingListener != null) {
diff --git a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
index d8eb63a61..0551f721f 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
@@ -495,7 +495,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- DialogUitl.showSimpleDialog(mContext, "是否要斷開連麥?", new DialogUitl.SimpleCallback() {
+ DialogUitl.showSimpleDialog(mContext,WordUtil.isNewZh()? "是否要斷開連麥?":"Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
aheadOfScheduleEndPK(mPkUid, CommonAppConfig.getInstance().getUserBean().getUserNiceName(), (String) tv_avatarOther_name.getTag());
diff --git a/live/src/main/java/com/yunbao/live/views/LivePushTxViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushTxViewHolder.java
index 8cd662aef..e4213577c 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePushTxViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePushTxViewHolder.java
@@ -36,6 +36,7 @@ import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.common.http.LiveHttpConsts;
@@ -103,7 +104,7 @@ public class LivePushTxViewHolder extends AbsLivePushViewHolder implements ITXLi
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- DialogUitl.showSimpleDialog(mContext, "是否要斷開連麥?", new DialogUitl.SimpleCallback() {
+ DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh()?"是否要斷開連麥?":"Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
//断开连麦
diff --git a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
index 0df33d47d..46b3479d5 100644
--- a/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
+++ b/live/src/main/java/com/yunbao/live/views/PortraitLiveManager.java
@@ -681,7 +681,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
}
}
AppManager.runDebugCode(() -> {
- liveHandler.postDelayed(loadTimeoutRunnableGone, 1_000);
+ // liveHandler.postDelayed(loadTimeoutRunnableGone, 1_000);
});
liveHandler.postDelayed(loadTimeoutRunnableGone, 15_000);
if (TextUtils.equals(data.getEnterRoomInfo().getIsconnection(), "1")) {
diff --git a/live/src/main/res/layout/dialog_fans_group_buy.xml b/live/src/main/res/layout/dialog_fans_group_buy.xml
index 88dde5508..6c933439d 100644
--- a/live/src/main/res/layout/dialog_fans_group_buy.xml
+++ b/live/src/main/res/layout/dialog_fans_group_buy.xml
@@ -48,15 +48,17 @@
+ app:layout_constraintTop_toBottomOf="@+id/giftName" />
diff --git a/live/src/main/res/layout/view_live_push_tx.xml b/live/src/main/res/layout/view_live_push_tx.xml
index 7d844dd5b..c4cf37ed2 100644
--- a/live/src/main/res/layout/view_live_push_tx.xml
+++ b/live/src/main/res/layout/view_live_push_tx.xml
@@ -135,7 +135,7 @@
android:paddingTop="5dp"
android:paddingRight="8dp"
android:paddingBottom="5dp"
- android:text="結束連麥"
+ android:text="@string/live_link_mic_3"
android:textColor="@color/color_white"
android:textSize="13sp"
android:visibility="gone" />
diff --git a/live/src/main/res/layout/view_live_search_list_empty.xml b/live/src/main/res/layout/view_live_search_list_empty.xml
index 6c4319be8..f0119cbb7 100644
--- a/live/src/main/res/layout/view_live_search_list_empty.xml
+++ b/live/src/main/res/layout/view_live_search_list_empty.xml
@@ -19,7 +19,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="25dp"
- android:text="沒有找到匹配結果~"
+ android:text="@string/live_free_pk_empty_tips"
android:textColor="#C4C4C4"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java b/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java
index a1d00bb64..be982713c 100644
--- a/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java
+++ b/main/src/main/java/com/yunbao/main/dialog/MainStartDialogFragment.java
@@ -244,7 +244,7 @@ public class MainStartDialogFragment extends AbsDialogFragment implements View.O
LiveHttpUtil.getLiveSdk(mGetLiveSdkCallback);
});
} else {
- String tips="需要下载开播插件,是否下载";
+ String tips="需要下載開播插件,是否下載";
if(!WordUtil.isNewZh()){
tips="You need to download the plug-in, whether to download";
}
From 4e4b5f90bbc0630f9f9998677494e9eab05bc88b Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Thu, 21 Sep 2023 11:14:01 +0800
Subject: [PATCH 12/19] =?UTF-8?q?fix=20=E9=87=8D=E5=A4=8D=E8=B0=83?=
=?UTF-8?q?=E7=94=A8=E5=BC=B9=E7=AA=97=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../yunbao/common/manager/OpenAdManager.java | 39 ++++++++++++-------
1 file changed, 24 insertions(+), 15 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
index d5a24c3a7..4003b6a17 100644
--- a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
@@ -49,13 +49,21 @@ public class OpenAdManager {
}
private void init(boolean isShow) {
+ if (list != null && list.isEmpty()) {
+ return;
+ }
LiveNetManager.get(CommonAppContext.getTopActivity())
.activityPopup(new HttpCallback>() {
@Override
public void onSuccess(List data) {
+ if (data == null || data.isEmpty()) {
+ Log.i(TAG, "onSuccess: 没有数据");
+ list = new ArrayList<>();
+ return;
+ }
list = data;
if (isShow) {
- show(TYPE_HOME,false);
+ show(TYPE_HOME, false);
}
}
@@ -67,31 +75,31 @@ public class OpenAdManager {
}
- public synchronized void show(int type,boolean isGuard) {
- if (list==null) {
+ public synchronized void show(int type, boolean isGuard) {
+ if (list == null) {
init(true);
return;
}
- showType=type;
+ showType = type;
for (OpenAdModel model : list) {
if (model.getType() == type) {
- if(type==OpenAdModel.TYPE_LIVE && !model.userIsPermission(isGuard)){
+ if (type == OpenAdModel.TYPE_LIVE && !model.userIsPermission(isGuard)) {
continue;
}
if (runnableMap.containsKey(model.getId())) {
AdRunnable runnable = runnableMap.get(model.getId());
if (runnable != null) {
- Log.d(TAG, "reset: "+model);
+ Log.d(TAG, "reset: " + model);
handler.removeCallbacks(runnable);
runnableMap.remove(model.getId());
}
}
if (!isShow(model)) {
- Log.i(TAG, "show: "+model);
+ Log.i(TAG, "show: " + model);
handler.postDelayed(new AdRunnable(model), model.getDelayShowTime());
- }else{
- Log.i(TAG, "notshow: "+model);
+ } else {
+ Log.i(TAG, "notshow: " + model);
}
}
@@ -101,10 +109,10 @@ public class OpenAdManager {
}
public synchronized void dismiss() {
- Log.d(TAG, "准备dismiss:"+runnableMap.size() );
+ Log.d(TAG, "准备dismiss:" + runnableMap.size());
for (Integer model : runnableMap.keySet()) {
AdRunnable runnable = runnableMap.get(model);
- Log.d(TAG, "dismiss:"+runnable);
+ Log.d(TAG, "dismiss:" + runnable);
if (runnable != null) {
runnable.dismiss();
handler.removeCallbacks(runnable);
@@ -127,13 +135,14 @@ public class OpenAdManager {
this.model = model;
runnableMap.put(model.getId(), this);
}
- public void dismiss(){
- Log.e(TAG, "dismiss: "+model );
+
+ public void dismiss() {
+ Log.e(TAG, "dismiss: " + model);
}
@Override
public synchronized void run() {
- Log.i(TAG, "run: "+model);
+ Log.i(TAG, "run: " + model);
if (model == null) {
ToastUtil.showDebug("model为空");
return;
@@ -146,7 +155,7 @@ public class OpenAdManager {
ToastUtil.showDebug(model.getId() + "|model展示过了");
return;
}
- if(model.getType()!=showType){
+ if (model.getType() != showType) {
return;
}
showMap.put(model.getId(), true);
From 00db8a00c77ecff6b3f8328616efa69353f9dbf7 Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 22 Sep 2023 11:05:02 +0800
Subject: [PATCH 13/19] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8D=E4=B8=80?=
=?UTF-8?q?=E4=BA=9B=E5=8F=8D=E9=A6=88=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../main/java/com/yunbao/common/manager/OpenAdManager.java | 3 +++
.../main/java/com/yunbao/common/utils/PluginManager.java | 1 +
config.gradle | 3 ++-
.../java/com/yunbao/live/utils/LiveExoPlayerManager.java | 6 +++++-
.../java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java | 2 +-
.../java/com/yunbao/live/views/LivePushRyViewHolder.java | 2 ++
6 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
index 4003b6a17..b9e967df9 100644
--- a/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/OpenAdManager.java
@@ -52,6 +52,9 @@ public class OpenAdManager {
if (list != null && list.isEmpty()) {
return;
}
+ if(CommonAppContext.getTopActivity()==null){
+ return;
+ }
LiveNetManager.get(CommonAppContext.getTopActivity())
.activityPopup(new HttpCallback>() {
@Override
diff --git a/common/src/main/java/com/yunbao/common/utils/PluginManager.java b/common/src/main/java/com/yunbao/common/utils/PluginManager.java
index 395dbee7c..fc0ef13cf 100644
--- a/common/src/main/java/com/yunbao/common/utils/PluginManager.java
+++ b/common/src/main/java/com/yunbao/common/utils/PluginManager.java
@@ -143,6 +143,7 @@ public class PluginManager {
private void loadSo(File dir, String file) {
file += ".so";
if (new File(dir.getAbsolutePath() + File.separator + file).exists()) {
+ Log.d(TAG, "加载 " + dir.getAbsolutePath() + File.separator + file);
System.load(dir + File.separator + file);
Log.d(TAG, "加载成功 " + dir + File.separator + file);
} else {
diff --git a/config.gradle b/config.gradle
index 3e1349d45..3de4f1582 100644
--- a/config.gradle
+++ b/config.gradle
@@ -26,5 +26,6 @@ ext {
//是否上报异常日志
isUploadLog : true,
//是否打包成插件包模式
- isPluginModel : true, ]
+ isPluginModel : false,
+ ]
}
diff --git a/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java b/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
index e3236c88a..e68e8434b 100644
--- a/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
+++ b/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
@@ -68,7 +68,7 @@ public class LiveExoPlayerManager {
handler = new Handler(Looper.getMainLooper());
setListener();
setAnalyticsListener();
- //createDeBugDialog();
+ // createDeBugDialog();
}
@@ -474,6 +474,10 @@ public class LiveExoPlayerManager {
if (getNextPlayer() != null && getNextPlayer().isPlaying()) {
getNextPlayer().stop();
}
+ if (task != null) {
+ task.cancel();
+ task = null;
+ }
clearUrl();
}
diff --git a/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java
index 4be20f372..2d523138a 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveLinkMicPkViewHolder.java
@@ -157,7 +157,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.i("女神说", "倒计时状态:" + s);
- if (mTime.getVisibility() == View.VISIBLE) {
+ if (mTime.getVisibility() == View.VISIBLE && !s.toString().contains(mContext.getString(R.string.live_pk_time_2))) {
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING));
}
diff --git a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
index 0551f721f..37aca3580 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
@@ -498,6 +498,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
DialogUitl.showSimpleDialog(mContext,WordUtil.isNewZh()? "是否要斷開連麥?":"Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
+ Log.i("PK----->", "updateSub: "+isPk+"|");
aheadOfScheduleEndPK(mPkUid, CommonAppConfig.getInstance().getUserBean().getUserNiceName(), (String) tv_avatarOther_name.getTag());
//断开连麦
LiveRyAnchorActivity.isDRPK = 0;
@@ -1056,5 +1057,6 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
} else if (event.getType() == LIVE_PK_ING) {
isPk = true;
}
+ Log.i("PK----->", "updateSub: "+isPk+"|"+event.getType());
}
}
From 18970c22cf76e444f71acd550f8364addc4d2c9d Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 22 Sep 2023 13:38:34 +0800
Subject: [PATCH 14/19] =?UTF-8?q?update=20=E9=A4=98=E9=A1=8D=E4=B8=8D?=
=?UTF-8?q?=E8=B6=B3=E6=99=82=E5=BD=88=E6=A1=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../utils/JavascriptInterfaceUtils.java | 16 ++++++++++
.../yunbao/live/activity/LiveActivity.java | 31 ++++++++++++++-----
.../dialog/LiveNewGuardBuyDialogFragment.java | 20 +++++++++++-
3 files changed, 59 insertions(+), 8 deletions(-)
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 fe911bd3b..ddb52f8c9 100644
--- a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java
+++ b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java
@@ -4,6 +4,7 @@ import static com.yunbao.common.CommonAppConfig.isGetNewWrap;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.app.Activity;
+import android.app.Dialog;
import android.os.Handler;
import android.os.Looper;
import android.view.View;
@@ -643,4 +644,19 @@ public class JavascriptInterfaceUtils {
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidCancelAnchorAttention"));
}
+ @JavascriptInterface
+ public void androidLnsufficientBalanceClick(String msg){
+ DialogUitl.showSimpleDialog(mContext, msg, new DialogUitl.SimpleCallback2() {
+ @Override
+ public void onCancelClick() {
+
+ }
+
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ dialog.dismiss();
+ ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
+ }
+ });
+ }
}
diff --git a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java
index 64ece985f..2fd05cf34 100644
--- a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java
+++ b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java
@@ -1,5 +1,7 @@
package com.yunbao.live.activity;
+import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
+
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
@@ -15,6 +17,7 @@ import android.widget.TextView;
import androidx.fragment.app.DialogFragment;
+import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.GsonUtils;
@@ -36,6 +39,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.KeyBoardHeightChangeListener;
import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.KeyBoardHeightUtil2;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ProcessImageUtil;
@@ -898,7 +902,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
public void onClick(View v) {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&tabIndex=1";
- WebViewActivity.forward(mContext, url,true);
+ WebViewActivity.forward(mContext, url, true);
dialog.dismiss();
}
});
@@ -924,7 +928,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (!mIsAnchor) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null && u.getLevel() < mDanMuLevel) {
- ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel+""));
+ ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel + ""));
return;
}
}
@@ -945,7 +949,20 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
onCoinChanged(coin);
}
String[] data = new String[]{obj.getString("barragetoken")};
- SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents,obj.getIntValue("level_fans"));
+ SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents, obj.getIntValue("level_fans"));
+ } else if (code==1001) {
+ DialogUitl.showSimpleDialog(mContext, msg, new DialogUitl.SimpleCallback2() {
+ @Override
+ public void onCancelClick() {
+
+ }
+
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ dialog.dismiss();
+ ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
+ }
+ });
} else {
ToastUtil.show(msg);
}
@@ -961,7 +978,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (!mIsAnchor) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null && u.getLevel() < mChatLevel) {
- ToastUtil.show(String.format(mContext.getString(R.string.live_level_chat_limit), mChatLevel+""));
+ ToastUtil.show(String.format(mContext.getString(R.string.live_level_chat_limit), mChatLevel + ""));
return;
}
}
@@ -1275,9 +1292,9 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
} else {
bundle.putString(Constants.URL, CommonAppConfig.HOST + "/h5/live/fansClub.html" + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + uid);
}
- bundle.putString("liveUid",mLiveUid);
- bundle.putString("anchorName",mAncherName);
- bundle.putString("mStream",mStream);
+ bundle.putString("liveUid", mLiveUid);
+ bundle.putString("anchorName", mAncherName);
+ bundle.putString("mStream", mStream);
fragment.setArguments(bundle);
fragment.show(getSupportFragmentManager(), "LiveGuardDialogFragment");
}
diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java b/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java
index 33da1cc69..6c9e9a5aa 100644
--- a/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java
+++ b/live/src/main/java/com/yunbao/live/dialog/LiveNewGuardBuyDialogFragment.java
@@ -1,5 +1,7 @@
package com.yunbao.live.dialog;
+import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
+
import android.app.Dialog;
import android.os.Bundle;
import android.text.Html;
@@ -19,6 +21,7 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.makeramen.roundedimageview.RoundedImageView;
@@ -34,6 +37,7 @@ import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -462,7 +466,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
private void buy() {
DialogUitl.showSimpleDialog(mContext,
- String.format(mContext.getString(R.string.guard_buy_tip_3), mTargetBuyBean.getCoin(), mCoinName, mTargetBuyBean.getShopName(getContext())),
+ String.format(mContext.getString(R.string.guard_buy_tip_3), mTargetBuyBean.getCoin()+"", mCoinName, mTargetBuyBean.getShopName(getContext())),
new DialogUitl.SimpleCallback() {
@Override
@@ -499,6 +503,20 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
}
((LiveActivity) mContext).sendBuyGuardMessage2(votes, guardNum, guardType, ancherName, liveuid);
dismiss();
+ }else if(code==1002){
+ DialogUitl.showSimpleDialog(mContext, msg, new DialogUitl.SimpleCallback2() {
+ @Override
+ public void onCancelClick() {
+
+ }
+
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ dialog.dismiss();
+ ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
+ }
+ });
+ return;
}
ToastUtil.show(msg);
}
From 326ced4646178c9fe4f402f70a5744c64fafffdd Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 22 Sep 2023 14:25:54 +0800
Subject: [PATCH 15/19] =?UTF-8?q?update=20=E9=A4=98=E9=A1=8D=E4=B8=8D?=
=?UTF-8?q?=E8=B6=B3=E6=99=82=E5=BD=88=E6=A1=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../yunbao/main/dialog/EncourageDialog.java | 24 ++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/main/src/main/java/com/yunbao/main/dialog/EncourageDialog.java b/main/src/main/java/com/yunbao/main/dialog/EncourageDialog.java
index f4d5a6cd7..3ba19ec60 100644
--- a/main/src/main/java/com/yunbao/main/dialog/EncourageDialog.java
+++ b/main/src/main/java/com/yunbao/main/dialog/EncourageDialog.java
@@ -1,11 +1,16 @@
package com.yunbao.main.dialog;
+import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
+
import android.annotation.SuppressLint;
+import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
+
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
+
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
@@ -16,12 +21,14 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
+import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.Constants;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.main.R;
@@ -265,8 +272,23 @@ public class EncourageDialog extends AbsDialogFragment implements View.OnClickLi
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
dismiss();
+ } else if (code == 1001) {
+ DialogUitl.showSimpleDialog(mContext, msg, new DialogUitl.SimpleCallback2() {
+ @Override
+ public void onCancelClick() {
+
+ }
+
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ dialog.dismiss();
+ ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
+ }
+ });
+ } else {
+ ToastUtil.show(msg);
}
- ToastUtil.show(msg);
+
}
});
From c015459cf1c94a6622b27172136833e93e1003ee Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 22 Sep 2023 14:27:23 +0800
Subject: [PATCH 16/19] =?UTF-8?q?fix=20=E6=92=AD=E6=94=BE=E5=99=A8url?=
=?UTF-8?q?=E7=82=BA=E7=A9=BA=E6=99=82=E4=B8=8D=E6=92=AD=E6=94=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/yunbao/live/utils/LiveExoPlayerManager.java | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java b/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
index e68e8434b..839be869d 100644
--- a/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
+++ b/live/src/main/java/com/yunbao/live/utils/LiveExoPlayerManager.java
@@ -21,6 +21,7 @@ import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.exoplayer2.video.VideoSize;
import com.lzf.easyfloat.EasyFloat;
+import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
@@ -393,7 +394,7 @@ public class LiveExoPlayerManager {
* @param url 地址
*/
public void startUrl(String url) {
- if (url != null && url.equals(this.url)) return;
+ if (!StringUtil.isEmpty(url) && url.equals(this.url)) return;
if (task != null) {
task.cancel();
task = null;
@@ -421,7 +422,7 @@ public class LiveExoPlayerManager {
* @param url 地址
*/
public void switchUrl(String url) {
- if (url != null && url.equals(this.url)) return;
+ if (!StringUtil.isEmpty(url) && url.equals(this.url)) return;
if (task != null) {
task.cancel();
task = null;
From 4b3b47b65fd182056d72c47f2020a7d007d3827f Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Sat, 23 Sep 2023 10:31:06 +0800
Subject: [PATCH 17/19] =?UTF-8?q?update=20=E5=B8=83=E5=B1=80&=E4=B8=AD?=
=?UTF-8?q?=E8=8B=B1=E6=96=87?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/yunbao/common/utils/ToastUtil.java | 1 +
common/src/main/res/values-en-rUS/string.xml | 4 ++--
common/src/main/res/values/strings.xml | 2 +-
.../layout/view_funs_live_anchor_start_notify.xml | 13 +++++++++----
4 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/utils/ToastUtil.java b/common/src/main/java/com/yunbao/common/utils/ToastUtil.java
index d2240037d..35ada5438 100644
--- a/common/src/main/java/com/yunbao/common/utils/ToastUtil.java
+++ b/common/src/main/java/com/yunbao/common/utils/ToastUtil.java
@@ -92,6 +92,7 @@ public class ToastUtil {
if (TextUtils.isEmpty(s)) {
return;
}
+ Log.i("Toast", "Toast show: "+s);
Log.i("ts","ll");
Toast.makeText(CommonAppContext.sInstance,s,Toast.LENGTH_SHORT).show();
Log.i("ts","22");
diff --git a/common/src/main/res/values-en-rUS/string.xml b/common/src/main/res/values-en-rUS/string.xml
index a0b0d26c1..d5b40f03a 100644
--- a/common/src/main/res/values-en-rUS/string.xml
+++ b/common/src/main/res/values-en-rUS/string.xml
@@ -683,7 +683,7 @@
Banned users
List of forbidden users
Live room of
- Lifting of the ban
+ Remove
Blacklist of users
No banned users
No blacklisted users
@@ -956,7 +956,7 @@ Limited ride And limited avatar frame
Chat
Congratulations %s have won %s in the Lucky Angel! The next lucky angel will be you!
Congratulations on %s winning %s in Luck 100 %%! Go pass on the good luck!
- Guardian %s
+ guard %s
receive
To finish
Already collected
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index 480f62744..8719d9e54 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -683,7 +683,7 @@
Banned users
List of forbidden users
Live room of
- Lifting of the ban
+ Remove
Blacklist of users
No banned users
No blacklisted users
diff --git a/live/src/main/res/layout/view_funs_live_anchor_start_notify.xml b/live/src/main/res/layout/view_funs_live_anchor_start_notify.xml
index 43c6443be..fd24fc00a 100644
--- a/live/src/main/res/layout/view_funs_live_anchor_start_notify.xml
+++ b/live/src/main/res/layout/view_funs_live_anchor_start_notify.xml
@@ -1,7 +1,8 @@
@@ -9,7 +10,7 @@
From b40abb9bc098e02b5243c460770822cb8b43c289 Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Mon, 25 Sep 2023 09:54:39 +0800
Subject: [PATCH 18/19] =?UTF-8?q?fix=20=E4=BF=AE=E5=A4=8DPK=E8=BF=87?=
=?UTF-8?q?=E7=A8=8B=E4=B8=AD=E6=8C=82=E5=90=8E=E5=8F=B0=E5=AF=BC=E8=87=B4?=
=?UTF-8?q?=E6=91=84=E5=83=8F=E5=A4=B4=E5=85=B3=E9=97=AD=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/yunbao/common/utils/LogUtil.java | 4 +-
.../yunbao/common/utils/PluginManager.java | 39 ++++++++-----
.../res/mipmap-mdpi/icon_rank_top_box.png | Bin 7155 -> 22091 bytes
.../live/views/LivePushRyViewHolder.java | 53 ++++++++++++++++--
.../yunbao/live/views/LiveRoomViewHolder.java | 4 +-
5 files changed, 79 insertions(+), 21 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/utils/LogUtil.java b/common/src/main/java/com/yunbao/common/utils/LogUtil.java
index b5deb1c93..d3503a34d 100644
--- a/common/src/main/java/com/yunbao/common/utils/LogUtil.java
+++ b/common/src/main/java/com/yunbao/common/utils/LogUtil.java
@@ -158,7 +158,7 @@ public class LogUtil {
public static void shareFile(Context context) {
- try {
+ /* try {
IMLoginModel bean = IMLoginManager.get(context).getUserInfo();
boolean isAnchor=false;
if(bean!=null){
@@ -170,7 +170,7 @@ public class LogUtil {
}
} catch (Exception e) {
return;
- }
+ }*/
/* if (PermissionChecker.checkCallingOrSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
return;
diff --git a/common/src/main/java/com/yunbao/common/utils/PluginManager.java b/common/src/main/java/com/yunbao/common/utils/PluginManager.java
index fc0ef13cf..17e723687 100644
--- a/common/src/main/java/com/yunbao/common/utils/PluginManager.java
+++ b/common/src/main/java/com/yunbao/common/utils/PluginManager.java
@@ -49,17 +49,17 @@ public class PluginManager {
}
public boolean isDownloadApk() {
- if(!CommonAppConfig.IS_PLUGIN_MODEL){
+ if (!CommonAppConfig.IS_PLUGIN_MODEL) {
return true;
}
- return new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin_download" + File.separator + "anchorPlugin.apk").exists();
+ return new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin_download" + File.separator + "anchorPlugin.apk.lock").exists();
}
/**
* 加载主播插件
*/
public void loadAnchorPlugin(DialogInterface.OnDismissListener dismissListener) {
- if(!CommonAppConfig.IS_PLUGIN_MODEL){
+ if (!CommonAppConfig.IS_PLUGIN_MODEL) {
dismissListener.onDismiss(null);
return;
}
@@ -73,7 +73,8 @@ public class PluginManager {
e.printStackTrace();
}
File sdk = new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin_download" + File.separator + "anchorPlugin.apk");
- if (!sdk.exists()) {
+ if (!new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin_download" + File.separator + "anchorPlugin.apk.lock").exists() || !sdk.exists()) {
+ Log.i(TAG, "loadAnchorPlugin: 插件未下载");
if (StringUtil.isEmpty(anchorPluginDownloadUrl)) {
Log.e(TAG, "主播下载地址为空");
return;
@@ -97,8 +98,12 @@ public class PluginManager {
* @param outDir 解压路径
*/
private void loadFaceSo(File plugin, String outDir) {
- if(!new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin"+File.separator+"lib").exists()) {
- unzip(plugin.getAbsolutePath(), outDir, ".so");
+ if (!new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin" + File.separator + "lib.lock").exists()) {
+ Log.i(TAG, "loadFaceSo: lib插件未解压");
+ if (unzip(plugin.getAbsolutePath(), outDir, ".so")) {
+ new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin" + File.separator + "lib.lock").mkdirs();
+ Log.i(TAG, "loadFaceSo: lib插件解压");
+ }
}
String[] abis = Build.SUPPORTED_ABIS;
String abi = Arrays.asList(abis).contains("arm64-v8a") ? "arm64-v8a" : "armeabi-v7a";
@@ -108,8 +113,8 @@ public class PluginManager {
try {
Field field = Class.forName("com.faceunity.wrapper.faceunity$LoadConfig").getDeclaredField("sLoadedLibrary");
field.setAccessible(true);
- field.set(null,true);
- }catch (Exception e){
+ field.set(null, true);
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -121,8 +126,12 @@ public class PluginManager {
* @param outDir 解压路径
*/
private void loadFaceBundle(File plugin, String outDir) {
- if(!new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin"+File.separator+"assets").exists()) {
- unzip(plugin.getAbsolutePath(), outDir, ".bundle");
+ if (!new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin" + File.separator + "assets.lock").exists()) {
+ Log.i(TAG, "loadFaceBundle: bundle未解压");
+ if (unzip(plugin.getAbsolutePath(), outDir, ".bundle")) {
+ Log.i(TAG, "loadFaceBundle: bundle解压");
+ new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin" + File.separator + "assets.lock").mkdirs();
+ }
}
try {
Object BUNDLE_AI_FACE = Class.forName("com.yunbao.faceunity.utils.FURenderer").getField("BUNDLE_AI_FACE").get(null);
@@ -131,6 +140,7 @@ public class PluginManager {
Class.forName("com.yunbao.faceunity.utils.FaceUnityConfig").getField("BUNDLE_FACE_BEAUTIFICATION").set(null, outDir + File.separator + "assets" + File.separator + BUNDLE_FACE_BEAUTIFICATION);
} catch (Exception e) {
e.printStackTrace();
+ new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin" + File.separator + "assets.lock").delete();
}
}
@@ -148,6 +158,7 @@ public class PluginManager {
Log.d(TAG, "加载成功 " + dir + File.separator + file);
} else {
Log.e(TAG, "不存在 " + dir + File.separator + file);
+ new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin" + File.separator + "lib.lock").delete();
}
}
@@ -160,6 +171,7 @@ public class PluginManager {
@Override
public void onSuccess(File file) {
Log.d(TAG, "下载成功 " + file);
+ new File(CommonAppContext.sInstance.getFilesDir().getAbsolutePath() + File.separator + "plugin_download" + File.separator + "anchorPlugin.apk.lock").mkdirs();
loadAnchorPlugin(dismissListener);
}
@@ -170,7 +182,7 @@ public class PluginManager {
@Override
public void onError(Throwable e) {
-
+ downloadAnchorSdk(dismissListener);
}
});
}
@@ -187,13 +199,14 @@ public class PluginManager {
FileOutputStream out;
byte buffer[] = new byte[1024];
try {
+ Log.i(TAG, "unzip: " + outDir);
ZipInputStream zis = new ZipInputStream(new FileInputStream(zip));
ZipEntry entry = zis.getNextEntry();
while (entry != null) {
String name = entry.getName();
if (entry.isDirectory()) {
File newDir = new File(outDir + entry.getName());
- newDir.mkdir();
+ newDir.mkdirs();
} else if (name.endsWith(suffix)) {
File outputFile = new File(outDir + File.separator + name);
String outputPath = outputFile.getCanonicalPath();
@@ -206,7 +219,7 @@ public class PluginManager {
outputFile = new File(outputPath, name);
outputFile.createNewFile();
out = new FileOutputStream(outputFile);
-
+ Log.i(TAG, "unzip: >>" + outputFile.getAbsolutePath());
int tmp = 0;
while ((tmp = zis.read(buffer)) > 0) {
out.write(buffer, 0, tmp);
diff --git a/common/src/main/res/mipmap-mdpi/icon_rank_top_box.png b/common/src/main/res/mipmap-mdpi/icon_rank_top_box.png
index 572bdb1b2b0299be4ab1462e5f03a6c9028d7b43..6241af8859d3aa1484bb9a8905eb14b8a9b7c0ce 100644
GIT binary patch
literal 22091
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
FV1hP(!72a%
literal 7155
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
diff --git a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
index 37aca3580..36b819374 100644
--- a/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LivePushRyViewHolder.java
@@ -76,6 +76,7 @@ import cn.rongcloud.rtc.api.RCRTCMixConfig;
import cn.rongcloud.rtc.api.RCRTCRemoteUser;
import cn.rongcloud.rtc.api.RCRTCRoom;
import cn.rongcloud.rtc.api.RCRTCRoomConfig;
+import cn.rongcloud.rtc.api.callback.IRCRTCEngineEventListener;
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
import cn.rongcloud.rtc.api.callback.IRCRTCResultDataCallback;
import cn.rongcloud.rtc.api.callback.IRCRTCRoomEventsListener;
@@ -85,6 +86,7 @@ import cn.rongcloud.rtc.api.stream.RCRTCVideoStreamConfig;
import cn.rongcloud.rtc.api.stream.RCRTCVideoView;
import cn.rongcloud.rtc.base.RCRTCParamsType;
import cn.rongcloud.rtc.base.RCRTCRoomType;
+import cn.rongcloud.rtc.base.RCRTCVideoEventCode;
import cn.rongcloud.rtc.base.RTCErrorCode;
import cn.rongcloud.rtc.core.CameraVideoCapturer;
import cn.rongcloud.rtc.core.RendererCommon;
@@ -123,6 +125,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
private ImageView avatarOther;
private LinearLayout goto_room_view;
private boolean isPk = false;
+ private boolean isNeedOpenCamera = false;
//修改上面主播的头像
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -175,7 +178,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
- Log.e("ry", "远端失败" + list.size());
+ Log.e("ry", "远端失败" + list.size() + "|errorCode:" + rtcErrorCode.toString());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
@@ -495,10 +498,10 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
- DialogUitl.showSimpleDialog(mContext,WordUtil.isNewZh()? "是否要斷開連麥?":"Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
+ DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh() ? "是否要斷開連麥?" : "Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
- Log.i("PK----->", "updateSub: "+isPk+"|");
+ Log.i("PK----->", "updateSub: " + isPk + "|");
aheadOfScheduleEndPK(mPkUid, CommonAppConfig.getInstance().getUserBean().getUserNiceName(), (String) tv_avatarOther_name.getTag());
//断开连麦
LiveRyAnchorActivity.isDRPK = 0;
@@ -695,10 +698,34 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
//设置摄像头最大缩放比例
boolean zoom = RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(1.0f);
// ToastUtil.show("设置比例="+zoom);
+ Log.i("摄像头", "onSuccess: 打开摄像头");
+ isNeedOpenCamera = false;
}
@Override
public void onFailed(RTCErrorCode errorCode) {
+ Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
+ }
+ });
+ RCRTCEngine.getInstance().registerEventListener(new IRCRTCEngineEventListener() {
+ @Override
+ public void onKicked(String roomId, RCRTCParamsType.RCRTCKickedReason kickedReason) {
+
+ }
+
+ @Override
+ public void onError(RTCErrorCode errorCode) {
+ super.onError(errorCode);
+ Log.i("摄像头", "onError: 错误码" + errorCode);
+ }
+
+ @Override
+ public void onLocalVideoEventNotify(RCRTCVideoEventCode event) {
+ super.onLocalVideoEventNotify(event);
+ Log.i("摄像头", "onLocalVideoEventNotify: 本地视频事件" + event.code);
+ if (event == RCRTCVideoEventCode.END_CAMERA_ERROR_UNKNOWN) {
+ isNeedOpenCamera = true;
+ }
}
});
//设置摄像头最大缩放比例
@@ -918,6 +945,24 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onResume() {
mPaused = false;
+ Log.i("摄像头", "onResume: " + isNeedOpenCamera);
+ if(isNeedOpenCamera){
+ RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback() {
+ @Override
+ public void onSuccess(Boolean data) {
+ //设置摄像头最大缩放比例
+ boolean zoom = RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(1.0f);
+ // ToastUtil.show("设置比例="+zoom);
+ Log.i("摄像头", "onSuccess: 打开摄像头");
+ isNeedOpenCamera = false;
+ }
+
+ @Override
+ public void onFailed(RTCErrorCode errorCode) {
+ Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
+ }
+ });
+ }
}
@Override
@@ -1057,6 +1102,6 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
} else if (event.getType() == LIVE_PK_ING) {
isPk = true;
}
- Log.i("PK----->", "updateSub: "+isPk+"|"+event.getType());
+ Log.i("PK----->", "updateSub: " + isPk + "|" + event.getType());
}
}
diff --git a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
index eb35482d8..e1320c7e6 100644
--- a/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
+++ b/live/src/main/java/com/yunbao/live/views/LiveRoomViewHolder.java
@@ -2341,11 +2341,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
if (Integer.parseInt(bean.getRedVal()) > 2) {
mRedVal.setVisibility(View.VISIBLE);
- mRedVal.setText(bean.getRedVal() + "連勝");
+ mRedVal.setText(bean.getRedVal() + (WordUtil.isNewZh()?"連勝":"Win"));
}
if (Integer.parseInt(bean.getBlueVal()) > 2) {
mBlueVal.setVisibility(View.VISIBLE);
- mBlueVal.setText(bean.getBlueVal() + "連勝");
+ mBlueVal.setText(bean.getBlueVal() + (WordUtil.isNewZh()?"連勝":"Win"));
}
mPkRankTopIcon.setVisibility(View.VISIBLE);
ImgLoader.display(mContext, bean.getPkTopImgUrl(), mPkRankTopIcon);
From 20ccb37ccfadc25e519ffe0a3b1a496d3500a020 Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Wed, 27 Sep 2023 09:34:07 +0800
Subject: [PATCH 19/19] udpate
---
common/src/main/java/com/yunbao/common/utils/LogUtil.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/src/main/java/com/yunbao/common/utils/LogUtil.java b/common/src/main/java/com/yunbao/common/utils/LogUtil.java
index d3503a34d..b5deb1c93 100644
--- a/common/src/main/java/com/yunbao/common/utils/LogUtil.java
+++ b/common/src/main/java/com/yunbao/common/utils/LogUtil.java
@@ -158,7 +158,7 @@ public class LogUtil {
public static void shareFile(Context context) {
- /* try {
+ try {
IMLoginModel bean = IMLoginManager.get(context).getUserInfo();
boolean isAnchor=false;
if(bean!=null){
@@ -170,7 +170,7 @@ public class LogUtil {
}
} catch (Exception e) {
return;
- }*/
+ }
/* if (PermissionChecker.checkCallingOrSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
return;