Compare commits

..

42 Commits

Author SHA1 Message Date
18401019693
8f072a31fc 中英文,资源文件修改 2023-04-03 17:02:31 +08:00
18401019693
420118b652 修改界面的中英文 2023-03-17 15:12:18 +08:00
18401019693
076008ce89 修改界面的中英文 2023-03-17 14:52:55 +08:00
18401019693
8455d1253c 修改界面的中英文 2023-03-17 10:19:35 +08:00
07f8f46f1f 修复:部分用户无法上麦问题
优化:日志上报逻辑
2023-03-17 09:50:26 +08:00
18401019693
8b46c57482 修复推特登录问题 2023-03-15 18:12:01 +08:00
18401019693
db834caf00 Merge branch 'net_error' 2023-03-15 18:11:49 +08:00
5c1eef1419 移除一个toast 2023-03-15 18:11:07 +08:00
fe29d307a9 修复连麦时可能出现50007问题,出现该错误时尝试离开房间后重试加入 2023-03-15 15:49:56 +08:00
18401019693
b8fea6366c 修复推特登录问题 2023-03-14 16:20:23 +08:00
06dddb5273 修复无法唤起推特APP登录 2023-03-14 16:18:40 +08:00
d774296db9 Merge remote-tracking branch 'origin/master' 2023-03-10 16:01:06 +08:00
18401019693
077cc7fd80 修改网络报错提示 2023-03-10 16:00:06 +08:00
18401019693
fdf9d0aea2 多人PK问题修复 2023-03-10 15:48:34 +08:00
92c38dc0dc Merge remote-tracking branch 'origin/master' 2023-03-10 11:24:10 +08:00
18401019693
d8c4b9dd04 多人PK问题修复 2023-03-10 11:06:08 +08:00
18401019693
342b2e9139 多人PK问题修复 2023-03-10 11:05:19 +08:00
88ea48b6ca 新增debug日志控制,方便调出日志用于分析问题 2023-03-09 10:26:10 +08:00
18401019693
0726c5dc1c 多人PK热度加成问题,主播,用户 2023-03-04 16:42:25 +08:00
18401019693
046adc9340 修改多人Pk界面样式 2023-03-04 16:01:27 +08:00
18401019693
46fa2419d3 修改多人Pk界面样式 2023-03-04 15:32:41 +08:00
18401019693
5c5114f808 修改多人Pk界面样式 2023-03-04 15:04:49 +08:00
18401019693
7f2f7ea4d8 修改多人Pk界面样式 2023-03-04 14:31:09 +08:00
a89c441555 修复密码登录界面按物理返回按钮时会回到桌面的问题 2023-03-04 13:56:50 +08:00
a1762bc791 修复密码登录界面点返回按钮时会回到桌面的问题
优化尝试重连im时检测到登录信息失效后返回到登录界面
2023-03-04 13:40:58 +08:00
34432e5ccf 移除闪退提示 2023-03-01 17:17:22 +08:00
18401019693
46f20c9663 修改主播协议的指向 2023-02-28 17:33:25 +08:00
18142669586
e0753ebb29 7.0弹出提示 2023-02-28 16:55:31 +08:00
18142669586
d7d24904bf 單人PK卡0分 優化計算中 2023-02-28 16:54:20 +08:00
18142669586
abbc2fc4ee 單人PK卡0分 優化計算中 2023-02-28 16:46:52 +08:00
07f0f39978 Merge remote-tracking branch 'origin/master' 2023-02-28 15:50:33 +08:00
8d932a09e1 修复与苹果端PK结束后,对方头像依旧存在的问题 2023-02-28 15:50:20 +08:00
18401019693
34c855fc8f di ban ben 2023-02-28 15:19:22 +08:00
18401019693
824d431a63 添加主播消息空页面 2023-02-28 13:06:48 +08:00
af63c4c8ac Merge remote-tracking branch 'origin/master' 2023-02-28 09:37:44 +08:00
18401019693
16ba71493e Android7及7以下默认关闭动画特效 2023-02-27 18:14:44 +08:00
94f8ee7f3b 调整日志格式 2023-02-27 16:33:40 +08:00
e7c97f2b55 移除debug入口 2023-02-27 11:35:22 +08:00
18401019693
a7e6efa0dc Merge branch 'live_anchor_6.4.8' 2023-02-27 11:12:45 +08:00
fdd30aa52a 修复多人连麦第三位麦克风位置不正确的问题 2023-02-23 16:54:01 +08:00
18401019693
ba23f720eb 修改社区没办法送礼问题 2023-02-23 14:20:05 +08:00
05ede89cba 修复和助手端进行PK时,助手结束PK,手机端依旧残留结束连麦按钮 2023-02-22 16:26:55 +08:00
88 changed files with 5453 additions and 1460 deletions

View File

@@ -82,6 +82,10 @@
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<!-- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />-->
<uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
<queries>
<package android:name="com.twitter.android"/>
</queries>
<application
android:name="com.shayu.phonelive.AppContext"
android:allowBackup="true"

View File

@@ -122,11 +122,11 @@ public class AppContext extends CommonAppContext {
@Override
public void onCreate() {
super.onCreate();
//注册全局异常捕获
if (!isMainProcess()) {
return;
}
CrashSaveBean.getInstance().setStartTime(System.currentTimeMillis());
//注册全局异常捕获
registerError();
registerFirebaseCrash();
LogUtils.start(this);

View File

@@ -101,7 +101,7 @@ public class NeverCrashUtils {
Log.e(TAG, "未捕获的主线程异常行为", e);
}
e.printStackTrace();
Toast.makeText(application, "发生闪退:"+e.getMessage(), Toast.LENGTH_SHORT).show();
//Toast.makeText(application, "发生闪退:"+e.getMessage(), Toast.LENGTH_SHORT).show();
FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()), throwableToString(e), "error.log");
getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e);
// return;

View File

@@ -31,7 +31,7 @@ public class LogUtils {
String[] exec = new String[]{"logcat", "-c"};
Runtime.getRuntime().exec(exec).waitFor();
exec = new String[]{"logcat", "-v", "UTC", "-D"};
exec = new String[]{"logcat", "-v", "color", "UTC-8"};
Process process = Runtime.getRuntime().exec(exec);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
@@ -55,6 +55,7 @@ public class LogUtils {
writer = new PrintWriter(os);
while ((line = bufferedReader.readLine()) != null) {
writer.append(line).write("\n");
writer.flush();
}
writer.flush();
writer.close();

View File

@@ -15,6 +15,7 @@ import com.yunbao.common.bean.AnchorRecommendItemModel;
import com.yunbao.common.bean.AnchorRecommendModel;
import com.yunbao.common.bean.CustomSidebarInfoModel;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.DrawerRecommendViewHolder;
import com.yunbao.common.views.DrawerTaskViewHolder;
import com.yunbao.common.views.FunGamesViewHolder;
@@ -121,6 +122,7 @@ public class CustomDrawerPopupAdapter extends RecyclerView.Adapter {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
}
});
}

View File

@@ -0,0 +1,74 @@
package com.yunbao.common.dialog;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager;
import com.yunbao.common.R;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class YoursystemisolderDialog extends AbsDialogFragment {
@Override
protected int getLayoutId() {
return R.layout.view_yoursystemisolder;
}
@Override
protected int getDialogStyle() {
return R.style.dialog;
}
@Override
protected boolean canCancel() {
return false;
}
@Override
protected void setWindowAttributes(Window window) {
window.setWindowAnimations(R.style.bottomToTopAnim);
WindowManager.LayoutParams params = window.getAttributes();
params.width = DpUtil.dp2px(277);
params.height = DpUtil.dp2px(134);
params.gravity = Gravity.CENTER;
window.setAttributes(params);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
TextView hint = (TextView) findViewById(R.id.hint);
TextView toSetUp = (TextView) findViewById(R.id.to_set_up);
TextView knowThe = (TextView) findViewById(R.id.know_the);
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.know_the), () -> dismiss());
}
@Override
public void show(@NonNull FragmentManager manager, @Nullable String tag) {
try {
super.show(manager, tag);
} catch (Exception e) {
e.printStackTrace();
}
}
private YoursystemisolderDialog.HintListener listener;
public YoursystemisolderDialog setListener(YoursystemisolderDialog.HintListener listener) {
this.listener = listener;
return this;
}
public interface HintListener {
void requestPermission();
}
}

View File

@@ -44,4 +44,14 @@ public class AnchorInfoEvent {
public void setClear(boolean clear) {
this.clear = clear;
}
@Override
public String toString() {
return "AnchorInfoEvent{" +
"clear=" + clear +
", id='" + id + '\'' +
", userNiceName='" + userNiceName + '\'' +
", avatar='" + avatar + '\'' +
'}';
}
}

View File

@@ -2,6 +2,7 @@ package com.yunbao.common.manager;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.Handler;
import android.text.TextUtils;
@@ -40,7 +41,15 @@ public class IMLoginManager extends BaseCacheManager {
private final String IS_HINT2 = "is_hint2";
private final String SELECT_CLARITY = "selectClarity";
private final String CLARITY = "clarity";
private final String xiaJBG = "xiaJBG";
public void setXiaJBG(boolean xjbg) {
put(xiaJBG, xjbg);
}
public boolean IsXiaJBG() {
return getBoolean(xiaJBG, false);
}
public void setClarity(String clarity) {
put(CLARITY, clarity);
@@ -276,11 +285,12 @@ public class IMLoginManager extends BaseCacheManager {
}
public boolean isMountEffect() {
return getBoolean(MountEffect, true);
return getBoolean(MountEffect, !(Build.VERSION.SDK_INT < Build.VERSION_CODES.O));
}
public boolean isGiftEffect() {
return getBoolean(GiftEffect, true);
return getBoolean(GiftEffect, !(Build.VERSION.SDK_INT < Build.VERSION_CODES.O));
}
/**

View File

@@ -5,6 +5,7 @@ import android.os.Looper;
import android.util.Log;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.R;
import com.yunbao.common.bean.RankPkInfoBean;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
@@ -341,7 +342,7 @@ public class RandomPkManager {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
}
});
}

View File

@@ -1,11 +1,9 @@
package com.yunbao.common.utils;
import static android.provider.Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION;
import static androidx.core.content.PermissionChecker.PERMISSION_GRANTED;
import static java.text.DateFormat.DEFAULT;
import android.Manifest;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
@@ -14,10 +12,10 @@ import android.os.Environment;
import android.text.TextUtils;
import android.util.Log;
import androidx.core.app.ActivityCompat;
import androidx.annotation.NonNull;
import androidx.core.content.FileProvider;
import androidx.core.content.PermissionChecker;
import com.alibaba.fastjson.JSONObject;
import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Progress;
@@ -31,7 +29,6 @@ import com.yunbao.common.CommonAppConfig;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
@@ -42,11 +39,20 @@ import java.nio.file.Files;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
/**
* Created by cxf on 2019/6/20.
*/
@@ -150,13 +156,17 @@ public class LogUtil {
public static void shareFile(Context context) {
if(true){
try {
if (!new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "pdlive.debug").exists()) {
return;
}
} catch (Exception e) {
return;
}
if (PermissionChecker.checkCallingOrSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
/* if (PermissionChecker.checkCallingOrSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
return;
}
}*/
String title = "[PDLIVE]" + CommonAppConfig.getInstance().getUid() + "_";
String today = title + SimpleDateFormat.getDateInstance(DEFAULT, Locale.CHINA).format(new Date());
File dir = new File(context.getDir("files", Context.MODE_PRIVATE).getAbsolutePath() + File.separator);
@@ -184,33 +194,90 @@ public class LogUtil {
e.printStackTrace();
}
if (zip.exists()) {
Intent share = new Intent(Intent.ACTION_SEND);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri contentUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", zip);
share.putExtra(Intent.EXTRA_STREAM, contentUri);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(zip));
}
share.setType("application/vnd.ms-excel");
share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(Intent.createChooser(share, "分享文件"));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !CommonAppConfig.IS_GOOGLE_PLAY) {
if (!Environment.isExternalStorageManager()) {
Intent intent = new Intent(ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
context.startActivity(intent);
DialogUitl.showSimpleDialog(context, "上报日志", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
new Thread(new Runnable() {
@Override
public void run() {
uploadLog(zip);
}
}).start();
dialog.dismiss();
ToastUtil.show("OK");
Intent share = new Intent(Intent.ACTION_SEND);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
Uri contentUri = FileProvider.getUriForFile(context, context.getPackageName() + ".fileprovider", zip);
share.putExtra(Intent.EXTRA_STREAM, contentUri);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
} else {
share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(zip));
}
share.setType("application/vnd.ms-excel");
share.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
context.startActivity(Intent.createChooser(share, "分享文件"));
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !CommonAppConfig.IS_GOOGLE_PLAY) {
if (!Environment.isExternalStorageManager()) {
Intent intent = new Intent(ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
context.startActivity(intent);
}
}
File out = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + zip.getName());
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Files.copy(zip.toPath(), out.toPath());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
File out = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + zip.getName());
try {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
Files.copy(zip.toPath(), out.toPath());
}
} catch (Exception e) {
e.printStackTrace();
}
});
}
}
private static String TAG="Upload";
private static void uploadLog(File log) {
JSONObject body = new JSONObject();
MultipartBody requestBody = new MultipartBody.Builder()
.addFormDataPart("uid", CommonAppConfig.getInstance().getUid())
.addFormDataPart("time", new SimpleDateFormat("yyyy-DD-mm HH:mm:ss", Locale.getDefault()).format(new Date()))
.addFormDataPart("isGoogle", CommonAppConfig.IS_GOOGLE_PLAY+"")
.addFormDataPart("appVersion", CommonAppConfig.getInstance().getVersion())
.addFormDataPart("file","file", RequestBody.create(MediaType.parse("application/octet-stream"),log)) //上报日志文件
.build();
body.put("uid", CommonAppConfig.getInstance().getUid());
body.put("time", new SimpleDateFormat("yyyy-DD-mm HH:mm:ss", Locale.getDefault()).format(new Date()));
body.put("isGoogle", CommonAppConfig.IS_GOOGLE_PLAY);
body.put("appVersion", CommonAppConfig.getInstance().getVersion());
OkHttpClient client = new OkHttpClient.Builder()
.connectTimeout(3, TimeUnit.SECONDS)
.build();
Request request = new Request.Builder()
//.url("https://newht.yaoulive.com/index.php/api/error_log/report") //无法接受文件
.url("https://tools.yutou233.cn/public/file/request.do")//临时上报地址,可接受文件
.post(requestBody)
.build();
client.newCall(request)
.enqueue(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
Log.e(TAG, "error",e );
}
@Override
public void onResponse(Call call, okhttp3.Response response) throws IOException {
String body = response.body().string();
Log.i(TAG, "onResponse: "+body);
}
});
}
}

View File

@@ -75,6 +75,15 @@ public class RouteUtil {
.withBoolean("forwardEntry", true)
.navigation();
}
/**
* 只回到登录页,不提示东西
*/
public static void forwardEntry2() {
ARouter.getInstance().build(PATH_ENTRY)
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
.navigation();
}
/**
* 跳转到个人主页

View File

@@ -164,7 +164,7 @@ public class CustomDrawerPopupView extends DrawerPopupView {
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show(R.string.net_error);
}
});
}

View File

@@ -100,7 +100,7 @@ public class DrawerTaskChildViewHolder extends RecyclerView.ViewHolder {
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
}
});
} else {

View File

@@ -55,12 +55,20 @@ public class LiveAnchorMessageCustomPopup extends BottomPopupView {
@Override
public void onSuccess(List<ListInfoMessageModel> data) {
size = data.size();
adapter.addData(data);
if (page == 1 && size == 0) {
liveMessage.setVisibility(GONE);
findViewById(R.id.img_no_new).setVisibility(VISIBLE);
} else {
findViewById(R.id.img_no_new).setVisibility(GONE);
liveMessage.setVisibility(VISIBLE);
adapter.addData(data);
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
}
});

View File

@@ -142,7 +142,7 @@ public class LiveOpenCustomPopup extends CenterPopupView {
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
}
});

View File

@@ -181,7 +181,7 @@ public class LiveRobotMessageCustomPopup extends BottomPopupView {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -121,7 +121,7 @@ public class LiveRobotSayHelloCustomPopup extends BottomPopupView {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -251,7 +251,7 @@ public class LiveRobotSettingCustomPopup extends BottomPopupView implements View
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
}
});

View File

@@ -44,7 +44,7 @@ public class RobotMessageViewHolder extends RecyclerView.ViewHolder {
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -44,7 +44,7 @@ public class RobotSayHelloViewHoler extends RecyclerView.ViewHolder {
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -105,9 +105,9 @@ public class LiveFloatView implements Function1<FloatCallbacks.Builder, Unit> {
@Override
public void onNetStatus(Bundle bundle) {
}
});
ViewClicksAntiShake.clicksAntiShake(magnetView.findViewById(R.id.btn_close), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {

View File

@@ -17,5 +17,14 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/live_message"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:visibility="gone" />
<ImageView
android:id="@+id/img_no_new"
android:layout_width="200dp"
android:layout_height="200dp"
android:layout_gravity="center"
android:layout_marginTop="50dp"
android:src="@mipmap/img_no_new" />
</LinearLayout>

View File

@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="277dp"
android:layout_height="133.67dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="16dp"
app:cardElevation="0dp"
app:cardPreventCornerOverlap="true"
tools:ignore="MissingDefaultResource">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16.33dp"
android:layout_marginTop="24.67dp"
android:text="@string/yoursystemisolder"
android:textColor="#161616"
android:textSize="14sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom|end"
android:layout_marginEnd="33.67dp"
android:layout_marginBottom="23.67dp">
<TextView
android:id="@+id/to_set_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/to_set_up"
android:visibility="gone"
android:textColor="#B1B1B1"
android:textSize="16sp" />
<TextView
android:id="@+id/know_the"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="23.33dp"
android:text="@string/know_the"
android:textColor="#FFAF08"
android:textSize="16sp" />
</LinearLayout>
</FrameLayout>
</androidx.cardview.widget.CardView>

View File

@@ -168,6 +168,9 @@
<string name="guard_buy_2">Open guard</string>
<string name="guard_buy_3">Renewal Guardian</string>
<string name="guard_my">My</string>
<string name="theguardianof">Become the guardian of %s</string>
<string name="favoriteanchor">Open a guard for your favorite anchor</string>
<string name="guardiandate">The guardian date expires at: %s</string>
<string name="get">GET</string>
<string name="only_one">Only one can be given away~</string>
<string name="guard_guard">Guard</string>
@@ -845,8 +848,8 @@ Limited ride And limited avatar frame</string>
<string name="hurry_contact">Contact a mentor now!</string>
<string name="withdraw_success">Withdrawal succeeded</string>
<string name="normal_barrage">normal barrage</string>
<string name="floating_screen">floating screen</string>
<string name="whole_station_horn">Whole station horn</string>
<string name="floating_screen">Float barrage</string>
<string name="whole_station_horn">Total speaker</string>
<string name="quote">quote</string>
<string name="whole_station_horn_hint">Available times: %s Note: Update times at 4:00 am on the 1st of each month</string>
<string name="cannot_be_empty">Content cannot be empty</string>
@@ -882,7 +885,8 @@ Limited ride And limited avatar frame</string>
<string name="system_notice">Notice</string>
<string name="online_service">Online Service</string>
<string name="popular_tickets">Hot Ticket</string>
<string name="register_and_log_in">Register and log in</string>
<string name="sign_up_for">Sign up for PD LIVE</string>
<string name="tell_the_world">Tell the world</string>
<string name="better_emperor_hint">Tell the world! %s recommends anchor %s to everyone!</string>
<string name="emperor_hint">Tell the world! %s recommends the anchor %s to everyone, and the splendid glance is amazing</string>
@@ -895,13 +899,13 @@ Limited ride And limited avatar frame</string>
<string name="onlookers">onlookers</string>
<string name="open_noble">The live broadcast studio was opened</string>
<string name="baron">baron</string>
<string name="viscount">viscount</string>
<string name="marquis">The marquis DE</string>
<string name="duke">The duke</string>
<string name="king">The king</string>
<string name="emperor">The emperor</string>
<string name="better_emperor">Super huang</string>
<string name="baron">Baron</string>
<string name="viscount">Viscount</string>
<string name="marquis">Marquis</string>
<string name="duke">Duke</string>
<string name="king">King</string>
<string name="emperor">Emperor</string>
<string name="better_emperor">Super king</string>
<string name="login_wait">Please wait...</string>
<string name="slide_settings">The slide set</string>
<string name="up_slide_settings">Slide up and down to switch the broadcast room</string>
@@ -916,16 +920,26 @@ Limited ride And limited avatar frame</string>
<string name="star_change">%sStar challenge</string>
<string name="star_success">Congratulations %s, completed %s %s star challenge, go to meet the host face!</string>
<string name="star">star</string>
<string name="favorite_host_fan">Join your favorite host fan club</string>
<string name="small_window_settings">Small window play Settings</string>
<string name="small_window">Small window to play</string>
<string name="app_window">Minimize Play</string>
<string name="Continue_to_guard">Continue to guard</string>
<string name="Join_a_fan_club">Join Fan club</string>
<string name="daemon_list">Daemon list</string>
<string name="guard_tip_day1">You are the weekly guardian of the current anchor</string>
<string name="guard_tip_day2">You are the monthly guardian of the current anchor</string>
<string name="guard_tip_day3">You are the annual guardian of the current anchor</string>
<string name="app_window_hint">Show when exiting the live room</string>
<string name="system_window">ALL Minimize Play</string>
<string name="waiting_for_you">Anchor is waiting for you to become the guardian of TA, \n escort for TA!</string>
<string name="guard_for_your">Open a guard for your favorite anchor</string>
<string name="system_window_hint">Show on other apps and pages \n Need to open the display</string>
<string name="to_open_the">Go to open</string>
<string name="do_you_like">Don\'t like the small window play?\n You can turn it off in [Personal Center] - [Settings]</string>
<string name="to_set_up">Go to Settings</string>
<string name="know_the">Got it</string>
<string name="enjoy_a_lot">Open noble, enjoy a lot of privileges!</string>
<string name="individual_set">Personal Settings</string>
<string name="reward">Rewards</string>
<string name="change_the_password">Change password</string>
@@ -1019,4 +1033,60 @@ Limited ride And limited avatar frame</string>
<string name="live_data_fan_group">New fan group</string>
<string name="live_data_fan_group_rate">Fan group conversion rate</string>
<string name="live_data_loading">loading…</string>
<string name="yoursystemisolder">Gift and seat effects have been turned off and can be turned on manually in "Settings".</string>
<string name="net_error">i \'m sorry! An error occurred.</string>
<string name="getting_it">Congratulations on getting it!</string>
<string name="this_month">You have accumulated sign-ups this month %s Heaven</string>
<string name="more_day_to">Sign in for 1 more day to get extra bonus.</string>
<string name="sign_in_to_the_center">Sign in to the center」</string>
<string name="go_to_the">Go to the「Sign-in Center」to get extra rewards!</string>
<string name="sign_in_center">Sign-in Center</string>
<string name="to_top">Back to top</string>
<string name="go_to_the_sign">Go to the sign-in center</string>
<string name="confirm_pick_up">Confirm pick up</string>
<string name="customer_service2">Unable to login? Click here to contact customer service</string>
<string name="next_step_is_consent">By logging in, you agree to the Terms of</string>
<string name="user_protocol2"> Service</string>
<string name="and">and</string>
<string name="privacy_terms">Privacy</string>
<string name="terms_and_policies">Terms and policies</string>
<string name="install_the_application">For details, please read the following message to install the application:</string>
<string name="treat_and_protect">Welcome to PD LIVE. For your personal information and privacy, we will adopt the highest standards of treatment and protection.</string>
<string name="anti_cheating_services">In order to provide you with one-click sharing service, our product integrates Mob+U-Share SDK, The Mob+SDK needs to collect your device Mac address, unique device identifier (1MEIandroid IDIDFAOPENUDIDGUID, SIM card IMSI information), and public social account information that you need to share in order to complete the one-click sharing service. And through the geographical location calibration report data accuracy, provide basic anti-cheating services. For the sake of your information security, we have made data security and confidentiality agreements with third-party SDK service providers, and these companies will strictly abide by our data privacy and security requirements. We will not share your personally identifiable information with them unless we have your consent. To facilitate you better understand/Mob + data types and USES, and how to protect your personal information, you can log on to https:www.mob.com aboutpolicy understand [Mob +] privacy policy).</string>
<string name="read_and_agre">Clicking Agree means you have read and agree to all of the above.。</string>
<string name="agreement">agreement</string>
<string name="come_to">Welcome to PD LIVE.</string>
<string name="live_gift">gift</string>
<string name="register_tip_2">User service agreement</string>
<string name="live_fans_medal_pri_des">一 Fan privilege 一</string>
<string name="live_item_gift_name">Gift name</string>
<string name="live_medal_name">True love ranking</string>
<string name="register_tip_4">and</string>
<string name="live_medal_des1">Speech memo</string>
<string name="register_tip_3">Privacy policy</string>
<string name="live_medal_des2">Daily gift pack</string>
<string name="live_send_gift_4">To one\'s liking</string>
<string name="live_send_buy_guard_1">Opened a pair of</string>
<string name="live_send_buy_guard_2">guard</string>
<string name="live_send_buy_zuoji_1">I bought a ride</string>
<string name="live_send_buy_liang_name_1">Purchased a beautiful number</string>
<string name="live_send_buy_vip_1">VIP</string>
<string name="live_random">Random PK</string>
<string name="live_medal_des3">VIP seating</string>
<string name="live_medal_des5">True love ranking</string>
<string name="live_set_wishlist_num">Please enter the number</string>
<string name="guard_tip_day">You are the current anchor whose weekly guardian \n guardian date is up</string>
<string name="wallet_gold_name">My %1$s:</string>
<string name="charge_explain">Top-up instructions</string>
<string name="register_tip_1">Registration means consent</string>
<string name="live_become_fans_medal">One-time gift ≥2000 diamonds), can obtain fan privilege yo</string>
<string name="live_go_charge">Top up</string>
<string name="live_user_card_level">User level</string>
<string name="live_noble_level_anchor">aristocracy</string>
<string name="live_noble_fens_anchor">Fan club</string>
<string name="live_anchor_open_mic">Voice connection is not enabled</string>
<string name="live_honor_number_anchor">Wall of honor</string>
<string name="live_medal_des4">Get a fan badge for giving gifts</string>
<string name="clear_unread_messages">Whether to clear unread messages</string>
<string name="support_login">The application collects location data to support login and registration functions.</string>
</resources>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,11 +4,11 @@ ext {
buildToolsVersion: "29.0.2",
minSdkVersion : 21,
targetSdkVersion : 31,
versionCode : 405,
versionName : "6.4.8"
versionCode : 413,
versionName : "6.4.9"
]
manifestPlaceholders = [
//正式
//正式
// serverHost : "https://napi.yaoulive.com",
//测试
serverHost : "https://ceshi.yaoulive.com",
@@ -22,7 +22,6 @@ ext {
baiduAppId : "23774720",
baiduAppKey : "zgCgFhUKEOV7I3ZXDFpTfnRB",
baiduAppSecretKey: "nEVSgmuGpU0pjPr6VleEGGAl0hzGW52S",
// true表示谷歌支付 false
isGooglePlay : false,
//是否上报异常日志

View File

@@ -1288,6 +1288,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
public void onError(String error) {
Log.e("LiveUserMoreDialog", error);
ToastUtil.show( R.string.net_error);
}
});
} else {

View File

@@ -5,6 +5,7 @@ import android.app.Dialog;
import android.content.Intent;
import android.content.res.Configuration;
import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Handler;
@@ -20,6 +21,7 @@ import androidx.annotation.NonNull;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import androidx.core.view.WindowInsetsControllerCompat;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager.widget.ViewPager;
import com.alibaba.android.arouter.facade.annotation.Route;
@@ -52,6 +54,7 @@ import com.yunbao.common.dialog.EffectsSettingsDialog;
import com.yunbao.common.dialog.FloatSettingsDialog;
import com.yunbao.common.dialog.LiveChargeDialogFragment;
import com.yunbao.common.dialog.SlideSettingsDialog;
import com.yunbao.common.dialog.YoursystemisolderDialog;
import com.yunbao.common.event.CustomDrawerPopupEvent;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.glide.ImgLoader;
@@ -183,6 +186,11 @@ public class LiveAudienceActivity extends LiveActivity {
mStream = mLiveBean.getStream();
initData();
MicStatusManager.getInstance().addOnMicListener(onMicStatusListener);
if (!IMLoginManager.get(mContext).IsXiaJBG() && (Build.VERSION.SDK_INT < Build.VERSION_CODES.O)) {
YoursystemisolderDialog fragment = new YoursystemisolderDialog();
fragment.show(((FragmentActivity) mContext).getSupportFragmentManager(), "YoursystemisolderDialog");
IMLoginManager.get(mContext).setXiaJBG(true);
}
}
private final MicStatusManager.OnMicStatusListener onMicStatusListener = new MicStatusManager.OnMicStatusListener() {
@@ -1251,6 +1259,7 @@ public class LiveAudienceActivity extends LiveActivity {
case SOCKET_LIVE_DRPK_SET_PK_END_VIEW:
if (manager.getmLivePlayViewHolder() != null) {
manager.getmLivePlayViewHolder().setPkEndview();
manager.setPkStatus(false);
}
if (manager != null) {
@@ -1349,6 +1358,7 @@ public class LiveAudienceActivity extends LiveActivity {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
}
});

View File

@@ -1566,11 +1566,17 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
if (mLiveRyLinkMicPkPresenter != null) {
mLiveRyLinkMicPkPresenter.leaveDRRoom();
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.hotAddVisibility(false);
}
break;
case LEAVE_PK_SCORE:
if (mLiveRyLinkMicPkPresenter != null) {
mLiveRyLinkMicPkPresenter.upDataPkScore(event.getPkScores(), event.getUid(), event.getTime());
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.hotAddVisibility(true);
}
break;
case PK_TIME_COUNT:
if (mLiveRoomViewHolder != null) {
@@ -1675,7 +1681,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show(R.string.net_error);
}
});
}

View File

@@ -163,7 +163,7 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
}
});
});

View File

@@ -26,6 +26,7 @@ import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordsTypeUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.FreePkRecyclerAdapter;
@@ -170,7 +171,7 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.common.R.string.net_error);
}
});
}

View File

@@ -10,6 +10,7 @@ import com.lxj.xpopup.XPopup;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.LiveDataInfoRecyclerAdapter;
@@ -88,7 +89,7 @@ public class LiveDataInfoDialog extends AbsDialogPopupWindow {
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.common.R.string.net_error);
}
});

View File

@@ -202,7 +202,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
@Override
public void onError(String error) {
Log.i("debug", "onError: " + error);
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
dismiss();
}
});

View File

@@ -367,6 +367,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -82,7 +82,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
private LiveNewGuardBuyItemsAdapter buyItemsAdapter;
private GuardRightAdapter mGuardRightAdapter;
private boolean isEmpty,showBuyView;
private boolean isEmpty, showBuyView;
private ImageView mBack;
private RelativeLayout relativeLayout;
@@ -169,13 +169,13 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
mAncherName = bundle.getString(Constants.LIVE_ANCHER_NAME);
mAncherIcon = bundle.getString(Constants.LIVE_ANCHER_ICON);
mUserIcon = bundle.getString(Constants.USER_ICON);
showBuyView = bundle.getBoolean("showBuyView",true);
showBuyView = bundle.getBoolean("showBuyView", true);
String coinName = WordUtil.getString(R.string.diamond);
mCoinName = coinName;
isEmpty=bundle.getBoolean("guard",true);
isEmpty = bundle.getBoolean("guard", true);
// mCoinNameTextView.setText(WordUtil.getString(R.string.guard_my) + coinName + ":");
mCoinNameTextView.setText("快为您喜欢的主播开通守护吧");
anchorName.setText(String.format("成爲%s的守護", mAncherName));
mCoinNameTextView.setText(R.string.favoriteanchor);
anchorName.setText(String.format(mContext.getString(R.string.theguardianof), mAncherName));
}
LiveHttpUtil.getGuardBuyList(new HttpCallback() {
@Override
@@ -211,11 +211,11 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
private void initView() {
int guardType = mLiveGuardInfo.getMyGuardType();
if (guardType == Constants.GUARD_TYPE_NONE) {
if(isEmpty){
if (isEmpty) {
iconCover.setImageResource(R.drawable.guardian_img_wings);
userIconOne.setVisibility(View.GONE);
userIconTwo.setVisibility(View.GONE);
}else{
} else {
mBack.setVisibility(View.VISIBLE);
ImgLoader.display(mContext, mAncherIcon, userIconOne);
ImgLoader.display(mContext, mUserIcon, userIconTwo);
@@ -223,7 +223,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
userIconTwo.setVisibility(View.VISIBLE);
}
// iconCover.setBackgroundResource(R.drawable.guardian_img_wings);
// iconCover.setBackgroundResource(R.drawable.guardian_img_wings);
buy1.setVisibility(View.VISIBLE);
@@ -240,19 +240,19 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
String title = "";
switch (guardType) {
case Constants.GUARD_TYPE_DAY:
title = "您是當前主播的周守護";
title = mContext.getString(R.string.guard_tip_day1);
break;
case Constants.GUARD_TYPE_MONTH:
title = "您是當前主播的月守護";
title = mContext.getString(R.string.guard_tip_day2);
break;
case Constants.GUARD_TYPE_YEAR:
title = "您是當前主播的年守護";
title = mContext.getString(R.string.guard_tip_day3);
break;
}
anchorName.setText(title);
guard_tips.setText("守護日期截止到:"+ mLiveGuardInfo.getMyGuardEndTime());
guard_tips.setText(String.format(mContext.getString(R.string.guardiandate), mLiveGuardInfo.getMyGuardEndTime()));
}
if(!showBuyView){
if (!showBuyView) {
relativeLayout.setVisibility(View.GONE);
}
@@ -267,12 +267,12 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
bean.setChecked(false);
}
for (int i : guardBuyBean.getPrivilege()) {
if(i<mRightList.size()) {
if (i < mRightList.size()) {
mRightList.get(i).setChecked(true);
}
}
mGuardRightAdapter.notifyDataSetChanged();
// mBtnBuy.setEnabled(mCoinVal >= guardBuyBean.getCoin());
// mBtnBuy.setEnabled(mCoinVal >= guardBuyBean.getCoin());
}
}
@@ -286,13 +286,14 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
} else if (i == R.id.guard_buy) {
forwardMyCoin();
}else if (i==R.id.guard_back){
} else if (i == R.id.guard_back) {
gotoBack();
}
}
private void gotoBack(){
private void gotoBack() {
dismiss();
((LiveActivity)mContext).openNewGuardListWindow(mContext instanceof LiveRyAnchorActivity);
((LiveActivity) mContext).openNewGuardListWindow(mContext instanceof LiveRyAnchorActivity);
}
/**

View File

@@ -260,7 +260,7 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -27,6 +27,7 @@ import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.LiveTaskRecyclerAdapter;
@@ -173,6 +174,7 @@ public class LiveTaskDialog extends AbsDialogPopupWindow {
if (loadDialog != null) {
loadDialog.dismiss();
}
ToastUtil.show(R.string.net_error);
}
});
}

View File

@@ -19,6 +19,7 @@ import com.yunbao.common.dialog.AbsDialogFragment;
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.views.weight.ViewClicksAntiShake;
import com.yunbao.live.adapter.FunGamesAdapter;
import com.yunbao.live.event.LiveAudienceEvent;
@@ -92,6 +93,7 @@ public class LiveTotalDialog extends AbsDialogFragment {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
} else {

View File

@@ -25,6 +25,7 @@ import com.blankj.utilcode.util.GsonUtils;
import com.google.gson.reflect.TypeToken;
import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.LiveUserRankBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.UserRankModel;
@@ -38,7 +39,6 @@ import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.adapter.UserMoreInfoAdapter;
import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.live.http.LiveHttpUtil;
import java.util.ArrayList;
@@ -68,7 +68,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie
private RelativeLayout bottom_msg;//底部信息的布局,在榜单列表下不需要显示底部信息
private String Tips = "1";
private String type = "guanzhong";
private boolean isOnly, noble,showBuyView;
private boolean isOnly, noble, showBuyView;
ImageView no_more;
private List<String> outRankHide = new ArrayList<>();
@@ -115,7 +115,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie
stream = bundle.getString(Constants.STREAM);
isOnly = bundle.getBoolean("only", false);
noble = bundle.getBoolean("noble", false);
showBuyView = bundle.getBoolean("showBuyView",true);
showBuyView = bundle.getBoolean("showBuyView", true);
String outRankHideString = bundle.getString("outRankHide");
outRankHide = GsonUtils.fromJson(outRankHideString, new TypeToken<List<String>>() {
}.getType());
@@ -373,27 +373,27 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mRefreshView.getLayoutParams();
params.bottomMargin = DpUtil.dp2px(65);
if (Tips.equals("1")) {
tags.setText("開通貴族,尊享超多特權!");
tags.setText(R.string.enjoy_a_lot);
btn.setBackgroundResource(R.mipmap.btn_openvip);
btn.setText("開通貴族");
btn.setText(R.string.live_ktgz);
setTextColor(audience_btn, guard_btn, fans_btn, weekRank, dayRank);
gz_view.setVisibility(View.GONE);
userMoreInfoAdapter.type = "1";
type = "guanzhong";
} else if (Tips.equals("2")) {
tags.setText("快為您喜歡的主播開通守護吧");
tags.setText(R.string.guard_for_your);
btn.setBackgroundResource(R.mipmap.btn_openprotection);
btn.setText("守護列表");
btn.setText(R.string.daemon_list);
setTextColor(guard_btn, audience_btn, fans_btn, dayRank, weekRank);
gz_view.setVisibility(View.GONE);
userMoreInfoAdapter.type = "2";
no_more.setImageResource(R.mipmap.ic_guard_not);
noMoreText.setText("主播正在等待您成為TA的守護\n為TA保駕護航");
noMoreText.setText(R.string.waiting_for_you);
noMoreText.setVisibility(View.VISIBLE);
type = "guard";
} else if (Tips.equals("3")) {
tags.setText("快加入您喜歡的主播粉絲團吧");
btn.setText("加入粉絲團");
tags.setText(R.string.favorite_host_fan);
btn.setText(R.string.Join_a_fan_club);
btn.setBackgroundResource(R.mipmap.btn_joinfans);
setTextColor(fans_btn, audience_btn, guard_btn, dayRank, weekRank);
gz_view.setVisibility(View.GONE);
@@ -421,7 +421,7 @@ public class LiveUserMoreDialogFragment extends AbsDialogFragment implements Vie
setTextColor(weekRank, audience_btn, guard_btn, fans_btn, gz_view, dayRank);
noMoreText.setVisibility(View.VISIBLE);
}
if(!showBuyView){
if (!showBuyView) {
bottom_msg.setVisibility(View.GONE);
params.bottomMargin = DpUtil.dp2px(0);
}

View File

@@ -194,7 +194,7 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -4,6 +4,7 @@ import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
import static com.yunbao.common.Constants.SOCKET_LINK_MIC_PK;
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
import static com.yunbao.live.activity.LiveRyAnchorActivity.isDRPK;
import static com.yunbao.live.views.LivePushRyViewHolder.btn_close;
import static com.yunbao.live.views.LivePushRyViewHolder.contexts;
import static com.yunbao.live.views.LivePushRyViewHolder.rcrtcLiveInfo;
import static com.yunbao.live.views.LivePushRyViewHolder.rtcRoom;
@@ -1137,6 +1138,9 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
Log.e("ry", "退出多人OKKK" + inputStreamList.size());
isDRPK = 0;
if (btn_close != null) {
btn_close.setVisibility(View.GONE);
}
for (int i = 0; i < inputStreamList.size(); i++) {
//退出副房间
RCRTCEngine.getInstance().leaveOtherRoom(inputStreamList.get(i).getUserId(), true, new IRCRTCResultCallback() {
@@ -1685,7 +1689,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});

View File

@@ -29,6 +29,7 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.common.views.weight.ClipPathCircleImage;
import com.yunbao.live.R;
@@ -131,6 +132,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -556,9 +556,9 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
StringBuffer url = new StringBuffer();
url.append(CommonAppConfig.HOST);
if (TextUtils.equals(ct, "zh")) {
url.append("/index.php?g=portal&m=page&a=index&id=66");
url.append("/index.php?g=portal&m=page&a=index&id=671");
} else {
url.append("/index.php?g=portal&m=page&a=index&id=67");
url.append("/index.php?g=portal&m=page&a=index&id=672");
}
url.append("&uid=")
.append(model.getId())

View File

@@ -123,6 +123,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
private TextView debugView;
private LiveExoPlayerManager mPlayer;
private boolean isPk = false;
private boolean userJoinLinkMic = false;//用户是否已加入房间
//0未申请1申请中2连麦中
RCRTCRoom rcrtcRoom;
@@ -731,9 +732,23 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
Log.e("ry", "下麦成功");
// 该用户切换为观众成功,可以以观众身份进行音视频
//退出rtc播放
leaveRoom();
}
/**
* 当切换失败且不影响当前角色继续音视频时回调
* @param errorCode 失败错误码
*/
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", "下麦失败" + errorCode);
leaveRoom();
}
private void leaveRoom(){
RCRTCEngine.getInstance().leaveRoom(new IRCRTCResultCallback() {
@Override
public void onSuccess() {
userJoinLinkMic = false;
Log.e("ry", "退出多人房间成功");
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
@@ -759,21 +774,11 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", errorCode + "退出多人房间成功");
userJoinLinkMic = false;
}
});
}
/**
* 当切换失败且不影响当前角色继续音视频时回调
* @param errorCode 失败错误码
*/
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", "下麦失败" + errorCode);
}
});
}
} else if ("Debug".equals(str)) {
@@ -883,6 +888,10 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
public void UsertoRY() {
userinputStreamList.clear();
Log.e("ry", "主播同意了UsertoRY");
if (userJoinLinkMic) {//已经在房间内不再joinRoom直接去连麦
subscribeMic(rcrtcRoom);
return;
}
RCRTCRoomConfig roomConfig = RCRTCRoomConfig.Builder.create()
// 根据实际场景选择音视频直播LIVE_AUDIO_VIDEO 或音频直播LIVE_AUDIO
.setRoomType(RCRTCRoomType.LIVE_AUDIO_VIDEO)
@@ -893,59 +902,32 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onSuccess(RCRTCRoom data) {
userJoinLinkMic = true;
rcrtcRoom = data;
runOnUiThread(new Runnable() {
@Override
public void run() {
RCRTCEngine.getInstance().enableSpeaker(true);
//遍历远端用户发布的资源列表
for (RCRTCInputStream stream : data.getLiveStreams()) {
if (stream.getMediaType() == RCRTCMediaType.VIDEO) {
//暂停播放
mPlayer.stop();
//如果远端用户发布的是视频流创建显示视图RCRTCVideoView并添加到布局中显示
//如果远端用户发布的是视频流创建显示视图RCRTCVideoView并添加到布局中显示
RCRTCVideoView remoteView = new RCRTCVideoView(contexts);
((RCRTCVideoInputStream) stream).setVideoView(remoteView);
//todo 本demo只演示添加1个远端用户的视图
remoteView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
remoteView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
ry_view.addView(remoteView);
Log.e("ry", stream.getMediaType() + "rcrtcOtherRoom成功 " + data.getLiveStreams().size());
}
userinputStreamList.add(stream);
}
rcrtcRoom.getLocalUser().subscribeStreams(userinputStreamList, new IRCRTCResultCallback() {
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", userinputStreamList.size() + LiveActivity.mLiveUid + "订阅失败" + errorCode.toString());
}
@Override
public void onSuccess() {
Log.e("ry", "订阅资源成功");
// new Handler().postDelayed(new Runnable() {
// @Override
// public void run() {
toMic();
// }
// }, 3000);
}
});
}
});
subscribeMic(data);
}
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", LiveActivity.mLiveUid + errorCode + "");
ToastUtil.show("房间失败" + errorCode);
if (errorCode.getValue() == 50007) {//userJoinLinkMic可能失效直接leaveRoom
userJoinLinkMic = false;
RCRTCEngine.getInstance().leaveRoom(new IRCRTCResultCallback() {
@Override
public void onFailed(RTCErrorCode errorCode) {
}
@Override
public void onSuccess() {
UsertoRY();
}
});
}else{
ToastUtil.show("房间失败" + errorCode);
}
}
});
@@ -953,6 +935,55 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
}
private void subscribeMic(RCRTCRoom data) {
runOnUiThread(new Runnable() {
@Override
public void run() {
RCRTCEngine.getInstance().enableSpeaker(true);
//遍历远端用户发布的资源列表
Log.i(TAG, "软件资源数量:"+data.getLiveStreams().size());
for (RCRTCInputStream stream : data.getLiveStreams()) {
Log.i(TAG, "资源流 type: "+stream.getMediaType());
if (stream.getMediaType() == RCRTCMediaType.VIDEO) {
//暂停播放
mPlayer.stop();
//如果远端用户发布的是视频流创建显示视图RCRTCVideoView并添加到布局中显示
//如果远端用户发布的是视频流创建显示视图RCRTCVideoView并添加到布局中显示
RCRTCVideoView remoteView = new RCRTCVideoView(contexts);
((RCRTCVideoInputStream) stream).setVideoView(remoteView);
//todo 本demo只演示添加1个远端用户的视图
remoteView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
remoteView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
ry_view.addView(remoteView);
Log.e("ry", stream.getMediaType() + "rcrtcOtherRoom成功 " + data.getLiveStreams().size());
}
userinputStreamList.add(stream);
}
rcrtcRoom.getLocalUser().subscribeStreams(userinputStreamList, new IRCRTCResultCallback() {
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", userinputStreamList.size() + LiveActivity.mLiveUid + "订阅失败" + errorCode.toString());
}
@Override
public void onSuccess() {
Log.e("ry", "订阅资源成功");
// new Handler().postDelayed(new Runnable() {
// @Override
// public void run() {
toMic();
// }
// }, 3000);
}
});
}
});
}
/**
* 主房间事件监听
* 详细说明请参考文档https://www.rongcloud.cn/docs/api/android/rtclib_v4/cn/rongcloud/rtc/api/callback/IRCRTCRoomEventsListener.html
@@ -1246,9 +1277,4 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
}
}

View File

@@ -116,8 +116,9 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
//修改上面主播的头像
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUPAnchorInfo(AnchorInfoEvent e) {
Log.i(TAG, "onUPAnchorInfo: "+e);
if (e != null) {
if (e.isClear() == false) {
if (!e.isClear()) {
tv_avatarOther_name.setText(e.getUserNiceName());
ImgLoader.displayAvatar(mContext, e.getAvatar(), avatarOther);
goto_room_view.setVisibility(View.VISIBLE);
@@ -355,7 +356,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});

View File

@@ -1,6 +1,7 @@
package com.yunbao.live.views;
import static com.yunbao.live.bean.LiveChatBean.RECOMMEND_CARD_NOTIFY;
import static com.yunbao.live.views.LivePushRyViewHolder.btn_close;
import android.app.Activity;
import android.app.Dialog;
@@ -79,6 +80,7 @@ import com.yunbao.common.bean.RewardAllModel;
import com.yunbao.common.bean.StarChallengeStatusModel;
import com.yunbao.common.bean.TaskModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.event.AnchorInfoEvent;
import com.yunbao.common.event.CustomFullServiceNotifyEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.API;
@@ -461,13 +463,17 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
}
private static boolean visibility = false;
public void hotAddVisibility(boolean visibility) {
this.visibility = visibility;
ft_hot_add.setVisibility(visibility ? View.GONE : View.VISIBLE);
}
public void endDRGif() {
if (dr_pk_end_gif.getVisibility() == View.GONE) {
dr_pk_end_gif.setVisibility(View.VISIBLE);
visibility = false;
RequestOptions options = new RequestOptions().skipMemoryCache(true);//配置
Glide.with(mContext).asGif()
.apply(options)//应用配置
@@ -1216,6 +1222,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
*/
public void resetView() {
resetViewGone();
visibility = false;
mBannerList1.clear();
mBannerList2.clear();
mBannerList3.clear();
@@ -1818,7 +1825,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
@@ -2086,10 +2093,15 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
//双人pk关闭
public void closePkTwo() {
Log.e("LiveRoomViewHolder", "closePkTwo: 隐藏PK信息" + goto_room_view.getVisibility());
mPkRankTopIcon.setVisibility(View.GONE);
lt_pk_line.setVisibility(View.GONE);
livePKUserListBean = new LivePKUserListBean();
pkUid = "";
if (btn_close != null) {
btn_close.setVisibility(View.GONE);
}
goto_room_view.setVisibility(View.GONE);
livePKUserListBean = new LivePKUserListBean();
}
/**
@@ -3154,7 +3166,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
if ("1".equals(info[0])) {
if ("1".equals(info[0]) && !visibility) {
ft_hot_add.setVisibility(View.VISIBLE);
} else {
ft_hot_add.setVisibility(View.GONE);
@@ -3167,9 +3179,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
/**
* 获取是否有热度卡加成
*/
public static void getIsHot(String isUseHotCard) {
public void getIsHot(String isUseHotCard) {
ImgLoader.display2(Contexts, "https://downs.yaoulive.com/img_hot_gif.gif", img_hot_gif);
if ("1".equals(isUseHotCard)) {
if ("1".equals(isUseHotCard) && !visibility) {
ft_hot_add.setVisibility(View.VISIBLE);
} else {
ft_hot_add.setVisibility(View.GONE);
@@ -3930,6 +3942,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
new Handler(Looper.getMainLooper()).postDelayed(this::initPkRank, 300);
break;
case PK_TWO_END:
EventBus.getDefault().post(new AnchorInfoEvent(true, "", "", ""));
closePkTwo();
break;
case CUSTOM_FULL_SERVICE_NOTIFY:
@@ -3940,7 +3953,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
break;
case UP_PK_TWO:
pkUid = (String) event.getObject();
ToastUtil.show("对方UID=" + pkUid);
UpPkTwo();
break;
case CHANGE_VIEW:
@@ -4062,7 +4074,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
});
}
for (int i = 0; i < pkScores.size(); i++) {
@@ -4105,17 +4116,26 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
textGrade2.setText(String.valueOf(userScore));
userId2 = userId;
} else if (i == 2) {
if (pkScores.size() == 3) {
linearGrade4.setVisibility(View.VISIBLE);
textPkName4.setText(userNiceName);
ImgLoader.display(mContext, resScore, imageGrade4);
textGrade4.setText(String.valueOf(userScore));
userId4 = userId;
} else {
linearGrade3.setVisibility(View.VISIBLE);
textPkName3.setText(userNiceName);
ImgLoader.display(mContext, resScore, imageGrade3);
textGrade3.setText(String.valueOf(userScore));
userId3 = userId;
}
} else if (i == 3) {
linearGrade4.setVisibility(View.VISIBLE);
textPkName4.setText(userNiceName);
ImgLoader.display(mContext, resScore, imageGrade4);
textGrade4.setText(String.valueOf(userScore));
userId4 = userId;
} else if (i == 3) {
linearGrade3.setVisibility(View.VISIBLE);
textPkName3.setText(userNiceName);
ImgLoader.display(mContext, resScore, imageGrade3);
textGrade3.setText(String.valueOf(userScore));
userId3 = userId;
}
}
@@ -4160,6 +4180,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
}
}
};
public void removeDetailView() {
if (detailsView != null) {
mRoot.removeView(detailsView);

View File

@@ -348,6 +348,7 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
@Override
public void onError(String error) {
Log.e("PortraitLiveManager", error);
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -626,7 +626,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show(R.string.net_error);
//直播间上部轮播【新人特惠】【趣味游戏】【幸运天使】 轮播接口
mLiveRoomViewHolder.showLiveRoomActivityBanner();
}
@@ -1854,7 +1854,7 @@ public class PortraitLiveManager implements LivePlayListener, SocketMessageListe
pkScores.remove(index);
pkScores.add(0, liveModel);
mLiveRoomViewHolder.upDataPkScore(pkScores, time);
setPkStatus(true);
}
}

View File

@@ -195,6 +195,9 @@
<TextView
android:layout_width="wrap_content"
android:maxWidth="80dp"
android:maxLines="1"
android:ellipsize="end"
android:layout_height="wrap_content"
android:text="@string/live_blowkiss_time"
android:layout_gravity="center"

View File

@@ -64,7 +64,7 @@
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
android:layout_weight="1.2" />
</RadioGroup>
</LinearLayout>

View File

@@ -171,8 +171,10 @@
<TextView
android:id="@+id/guard_btn_buy"
android:layout_width="90dp"
android:layout_width="110dp"
android:layout_height="30dp"
android:maxLines="1"
android:ellipsize="end"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="15dp"
@@ -214,7 +216,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="14dp"
android:text="充值"
android:text="@string/charge"
android:textColor="#F7B500"
android:textSize="12sp" />
@@ -231,7 +233,7 @@
android:layout_height="35dp"
android:layout_marginTop="2dp"
android:background="@drawable/bg_new_guard_but"
android:text="繼續守護"
android:text="@string/Continue_to_guard"
android:textColor="#FFFFFF"
android:textSize="16sp" />
</LinearLayout>

View File

@@ -146,7 +146,7 @@
<TextView
android:id="@+id/guard_btn_buy"
android:layout_width="90dp"
android:layout_width="110dp"
android:layout_height="30dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"

View File

@@ -156,7 +156,7 @@
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:text="開通貴族,尊享超多特權!"
android:text="@string/enjoy_a_lot"
android:textColor="#ffc2dff0"
android:textSize="12sp" />
@@ -170,7 +170,7 @@
android:layout_marginRight="20dp"
android:background="@mipmap/btn_openvip"
android:gravity="center"
android:text="開通貴族"
android:text="@string/live_ktgz"
android:textSize="13sp" />
</RelativeLayout>

View File

@@ -37,7 +37,7 @@
android:layout_marginEnd="6.76dp"
android:text="000"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
</LinearLayout>
<TextView
@@ -47,17 +47,15 @@
android:layout_marginStart="5.33dp"
android:layout_marginTop="3.3dp"
android:background="@drawable/background_pk_time"
android:maxLines="1"
android:ellipsize="end"
android:maxWidth="50dp"
android:clickable="true"
android:maxLines="1"
android:paddingStart="6dp"
android:paddingTop="4.33dp"
android:paddingEnd="6dp"
android:paddingBottom="4.33dp"
android:text="我方"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
</LinearLayout>
<!--右上-->
<LinearLayout
@@ -96,7 +94,7 @@
android:layout_marginEnd="6.76dp"
android:text="000"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
</LinearLayout>
<TextView
@@ -106,17 +104,15 @@
android:layout_marginTop="3.3dp"
android:layout_marginEnd="5.33dp"
android:background="@drawable/background_pk_time"
android:ellipsize="end"
android:maxWidth="50dp"
android:clickable="true"
android:maxLines="1"
android:paddingStart="6dp"
android:paddingTop="4.33dp"
android:clickable="true"
android:paddingEnd="6dp"
android:paddingBottom="4.33dp"
android:text="我方"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
</LinearLayout>
<!--左下-->
<LinearLayout
@@ -134,17 +130,15 @@
android:layout_marginStart="5.33dp"
android:layout_marginBottom="3.3dp"
android:background="@drawable/background_pk_time"
android:maxLines="1"
android:ellipsize="end"
android:clickable="true"
android:maxWidth="50dp"
android:maxLines="1"
android:paddingStart="6dp"
android:paddingTop="4.33dp"
android:paddingEnd="6dp"
android:paddingBottom="4.33dp"
android:text="我方"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
<LinearLayout
android:id="@+id/linear_grade3"
@@ -173,7 +167,7 @@
android:layout_marginEnd="6.76dp"
android:text="000"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<!--右下-->
@@ -193,17 +187,15 @@
android:layout_marginEnd="5.33dp"
android:layout_marginBottom="3.3dp"
android:background="@drawable/background_pk_time"
android:maxLines="1"
android:ellipsize="end"
android:maxWidth="50dp"
android:clickable="true"
android:maxLines="1"
android:paddingStart="6dp"
android:paddingTop="4.33dp"
android:paddingEnd="6dp"
android:paddingBottom="4.33dp"
android:text="我方"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
<LinearLayout
android:id="@+id/linear_grade4"
@@ -232,7 +224,7 @@
android:layout_marginEnd="6.76dp"
android:text="000"
android:textColor="@color/white"
android:textSize="8sp" />
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<!--PK时间-->

View File

@@ -2116,6 +2116,7 @@
android:layout_width="18dp"
android:layout_height="18dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:src="@mipmap/voice" />
</RelativeLayout>
@@ -2306,6 +2307,7 @@
<com.yunbao.common.views.weight.NobleNoticeView
android:id="@+id/noble"
android:layout_width="match_parent"
android:visibility="gone"
android:layout_height="wrap_content"
android:layout_marginTop="60dp" />
</RelativeLayout>

View File

@@ -5,6 +5,7 @@
android:layout_height="wrap_content"
android:orientation="vertical"
tools:ignore="MissingDefaultResource">
<LinearLayout
android:id="@+id/wish_list_layout"
android:layout_width="80dp"
@@ -27,9 +28,11 @@
android:layout_height="20dp"
android:layout_marginStart="6dp"
android:layout_marginEnd="6dp"
android:ellipsize="end"
android:gravity="center"
android:textColor="#FFFFFF"
android:maxLength="7"
android:text="@string/noble_seat"
android:textColor="#FFFFFF"
android:textSize="10sp" />
</LinearLayout>

View File

@@ -34,4 +34,37 @@
<string name="live_data_msg1">This live data statistics</string>
<string name="live_data_msg2">Historical data can be viewed in the anchor center</string>
<string name="live_data_tip">* Non-real-time calculation of data</string>
<string name="buy_guard_info" >Be TA\'s guardian, escort for TA!</string>
<string name="buy_guard_back_coin" >return</string>
<string name="praise">Be praised</string>
<string name="live_gift_buy_gold" >Open aristocracy</string>
<string name="live_gift_buy_gold_desc" >Enjoy exclusive privileges!</string>
<string name="live_gift_buy_gold_desc_to" >Head to the noble Center</string>
<string name="fingers_slide" >Swipe up to cancel send</string>
<string name="release_cancel_send" >Release cancel send</string>
<string name="more_than" >No recording has been recognized in over 10 seconds</string>
<string name="live_role_title" >Identity privilege</string>
<string name="noble_seat" >Nobleman\'s seat</string>
<string name="live_mic_user_apply" >%s applies for connected wheat. Check whether</string>
<string name="live_mic_user_down" >The wheat has been kicked off</string>
<string name="live_mic_invite" >An invitation has been sent and is waiting for the user to accept</string>
<string name="live_mic_request" >The request has been agreed and is awaiting acceptance by the user</string>
<string name="random_pk_info_view_title" >Random PK</string>
<string name="random_pk_info_title" >PK main rules:</string>
<string name="random_pk_info_time_desc" >Random PK qualifying time</string>
<string name="random_pk_info_time" >12:00~17:00、19:00~23:59</string>
<string name="random_pk_info_desc_1" >1. After matching, the system will automatically select opponents for PK;</string>
<string name="random_pk_info_desc_2" >2. If you cannot match your opponent for a long time, you can try to match again</string>
<string name="random_pk_info_desc_3" >3. During the PK process, if there is any delay or delay, please check your personal device and network first, and then try to log in again and start broadcasting.</string>
<string name="random_pk_info_desc_4" >4, the security department will be 24 hours of inspection, please civilized PK, strictly abide by the anchor rules;</string>
<string name="random_pk_info_switch" >Random PK switch:</string>
<string name="random_pk_info_btn_start" >Start matching</string>
<string name="random_pk_info_btn_ing" >Match %s</string>
<string name="random_pk_info_btn_ing_desc" >Click again to cancel the match</string>
<string name="random_pk_info_btn_end" >Exiting match %s</string>
<string name="random_pk_info_btn_end_desc" >It\'s also possible to match an opponent during the exit process</string>
<string name="random_pk_search_hint" >Please enter the anchor nickname or id you want to pk</string>
<string name="free_pk_user_pking" >The other team is engaged in a PK</string>
<string name="free_pk_num_null" >The PK number is used up</string>
</resources>

View File

@@ -0,0 +1,68 @@
<resources>
<string name="buy_guard_info" >成爲TA的守護爲TA保駕護航</string>
<string name="buy_guard_back_coin" >返還</string>
<string name="no_more_day_rank">暫時無人上榜,快來成為第一位上榜的人吧!</string>
<string name="no_more_guard">主播正在等待您的守護!</string>
<string name="no_rank_data">未上榜</string>
<string name="hour_rank">第%s名</string>
<string name="hour_rank_not">未上榜</string>
<string name="day_rank">日榜</string>
<string name="week_rank">周榜</string>
<string name="views_rank">觀眾</string>
<string name="gurad_rank">觀眾</string>
<string name="fans">粉絲</string>
<string name="praise">獲讚</string>
<string name="room_msg">私信</string>
<string name="live_room_title">選擇房間類型</string>
<string name="live_room_public">公開房</string>
<string name="live_room_private">密碼房</string>
<string name="live_room_public_des">所有人可觀看</string>
<string name="live_room_private_des">僅擁有房間密碼的人可觀看</string>
<string name="live_room_type_submit">確認</string>
<string name="live_gift_buy_gold" >開通貴族</string>
<string name="live_gift_buy_gold_desc" >享受專屬特權!</string>
<string name="live_gift_buy_gold_desc_to" >前往貴族中心</string>
<string name="fingers_slide" >手指上滑,取消發送</string>
<string name="release_cancel_send" >松開取消發送</string>
<string name="more_than" >已超过10秒未识别到录音</string>
<string name="live_role_title" >身份特權</string>
<string name="noble_seat" >貴族坐席</string>
<string name="live_mic_max">當前連麥語音人數已達到3人無法再添加。</string>
<string name="live_mic_user_apply" >%s 申請連麥,是否查看</string>
<string name="live_mic_user_down" >已踢下麥</string>
<string name="live_mic_invite" >已發出邀請,等待用戶接受</string>
<string name="live_mic_request" >已同意請求,等待用戶接受</string>
<string name="random_pk_info_view_title" >隨機PK</string>
<string name="random_pk_info_title" >PK主要規則說明</string>
<string name="random_pk_info_time_desc" >隨機PK排位賽時間</string>
<string name="random_pk_info_time" >12:00~17:00、19:00~23:59</string>
<string name="random_pk_info_desc_1" >1、開始匹配後系統將自動挑選對手進行PK</string>
<string name="random_pk_info_desc_2" >2、若長時間無法匹配到對手可嘗試重新匹配</string>
<string name="random_pk_info_desc_3" >3、PK過程中卡頓及延遲可先檢查個人設備及網絡後嘗試重新登錄並開播</string>
<string name="random_pk_info_desc_4" >4、安全部門將會24小時巡查請文明PK嚴格遵守主播守則</string>
<string name="random_pk_info_switch" >隨機PK開關</string>
<string name="random_pk_info_btn_start" >開始匹配</string>
<string name="random_pk_info_btn_ing" >匹配中 %s </string>
<string name="random_pk_info_btn_ing_desc" >再次點擊可取消匹配</string>
<string name="random_pk_info_btn_end" >正在退出匹配 %s</string>
<string name="random_pk_info_btn_end_desc" >退出過程中也有可能匹配到對手</string>
<string name="random_pk_search_hint" >請輸入您要pk的主播昵稱或id</string>
<string name="free_pk_user_pking" >對方正在PK中</string>
<string name="free_pk_num_null" >PK次數已用完</string>
<string name="live_task_no1">當日連續開播時長(分鐘)</string>
<string name="live_task_no2">當日累計PK次數(不限模式)</string>
<string name="live_task_fans_no1">當日累積新增關註粉絲</string>
<string name="live_task_fans_no2">當日累積新增粉絲團成員</string>
<string name="live_task_tab1">直播互動</string>
<string name="live_task_tab2">粉絲增漲</string>
<string name="live_task_info_title">主播任務特別說明</string>
<string name="live_task_info_msg1">所有主播在開播後,即可獲得一系列的當日任務,當根據相應的要求完成任務後,主播即可在第二天開播後,獲得前一天的任務獎勵。</string>
<string name="live_task_info_msg2">● 所有任務數值將由系統進行實時計算,如因個人手機電腦設備問題、網絡問題或是沒有正常進行下播導致數據出現錯誤等問題,為此相關主播可進行聯系相關平臺工作人員或是在線客服,進行反饋,待相關部分確認後,將會再進行補償處理。\n● 所有任務數據的正常結算周期將會在每日的淩晨6點進行結算若開播時間超過淩晨6點將會出現獎勵無法正常結算的情況請知悉。\n● 當主播規範分低於90時主播任務中心的所有獎勵將僅能獲得50%的當主播規範分低於80以下時將無法獲得主播任務獎勵。</string>
<string name="live_task_item_complete_true">已完成</string>
<string name="live_task_item_complete_false">未完成</string>
<string name="live_task_item_hot">直播熱度</string>
<string name="live_task_item_xp">主播經驗</string>
<string name="live_data_msg1">本場直播數據統計</string>
<string name="live_data_msg2">歷史數據可在主播中心查看</string>
<string name="live_data_tip">* 人數及新增相關數據非实时计算</string>
</resources>

View File

@@ -0,0 +1,68 @@
<resources>
<string name="buy_guard_info" >成爲TA的守護爲TA保駕護航</string>
<string name="buy_guard_back_coin" >返還</string>
<string name="no_more_day_rank">暫時無人上榜,快來成為第一位上榜的人吧!</string>
<string name="no_more_guard">主播正在等待您的守護!</string>
<string name="no_rank_data">未上榜</string>
<string name="hour_rank">第%s名</string>
<string name="hour_rank_not">未上榜</string>
<string name="day_rank">日榜</string>
<string name="week_rank">周榜</string>
<string name="views_rank">觀眾</string>
<string name="gurad_rank">觀眾</string>
<string name="fans">粉絲</string>
<string name="praise">獲讚</string>
<string name="room_msg">私信</string>
<string name="live_room_title">選擇房間類型</string>
<string name="live_room_public">公開房</string>
<string name="live_room_private">密碼房</string>
<string name="live_room_public_des">所有人可觀看</string>
<string name="live_room_private_des">僅擁有房間密碼的人可觀看</string>
<string name="live_room_type_submit">確認</string>
<string name="live_gift_buy_gold" >開通貴族</string>
<string name="live_gift_buy_gold_desc" >享受專屬特權!</string>
<string name="live_gift_buy_gold_desc_to" >前往貴族中心</string>
<string name="fingers_slide" >手指上滑,取消發送</string>
<string name="release_cancel_send" >松開取消發送</string>
<string name="more_than" >已超过10秒未识别到录音</string>
<string name="live_role_title" >身份特權</string>
<string name="noble_seat" >貴族坐席</string>
<string name="live_mic_max">當前連麥語音人數已達到3人無法再添加。</string>
<string name="live_mic_user_apply" >%s 申請連麥,是否查看</string>
<string name="live_mic_user_down" >已踢下麥</string>
<string name="live_mic_invite" >已發出邀請,等待用戶接受</string>
<string name="live_mic_request" >已同意請求,等待用戶接受</string>
<string name="random_pk_info_view_title" >隨機PK</string>
<string name="random_pk_info_title" >PK主要規則說明</string>
<string name="random_pk_info_time_desc" >隨機PK排位賽時間</string>
<string name="random_pk_info_time" >12:00~17:00、19:00~23:59</string>
<string name="random_pk_info_desc_1" >1、開始匹配後系統將自動挑選對手進行PK</string>
<string name="random_pk_info_desc_2" >2、若長時間無法匹配到對手可嘗試重新匹配</string>
<string name="random_pk_info_desc_3" >3、PK過程中卡頓及延遲可先檢查個人設備及網絡後嘗試重新登錄並開播</string>
<string name="random_pk_info_desc_4" >4、安全部門將會24小時巡查請文明PK嚴格遵守主播守則</string>
<string name="random_pk_info_switch" >隨機PK開關</string>
<string name="random_pk_info_btn_start" >開始匹配</string>
<string name="random_pk_info_btn_ing" >匹配中 %s </string>
<string name="random_pk_info_btn_ing_desc" >再次點擊可取消匹配</string>
<string name="random_pk_info_btn_end" >正在退出匹配 %s</string>
<string name="random_pk_info_btn_end_desc" >退出過程中也有可能匹配到對手</string>
<string name="random_pk_search_hint" >請輸入您要pk的主播昵稱或id</string>
<string name="free_pk_user_pking" >對方正在PK中</string>
<string name="free_pk_num_null" >PK次數已用完</string>
<string name="live_task_no1">當日連續開播時長(分鐘)</string>
<string name="live_task_no2">當日累計PK次數(不限模式)</string>
<string name="live_task_fans_no1">當日累積新增關註粉絲</string>
<string name="live_task_fans_no2">當日累積新增粉絲團成員</string>
<string name="live_task_tab1">直播互動</string>
<string name="live_task_tab2">粉絲增漲</string>
<string name="live_task_info_title">主播任務特別說明</string>
<string name="live_task_info_msg1">所有主播在開播後,即可獲得一系列的當日任務,當根據相應的要求完成任務後,主播即可在第二天開播後,獲得前一天的任務獎勵。</string>
<string name="live_task_info_msg2">● 所有任務數值將由系統進行實時計算,如因個人手機電腦設備問題、網絡問題或是沒有正常進行下播導致數據出現錯誤等問題,為此相關主播可進行聯系相關平臺工作人員或是在線客服,進行反饋,待相關部分確認後,將會再進行補償處理。\n● 所有任務數據的正常結算周期將會在每日的淩晨6點進行結算若開播時間超過淩晨6點將會出現獎勵無法正常結算的情況請知悉。\n● 當主播規範分低於90時主播任務中心的所有獎勵將僅能獲得50%的當主播規範分低於80以下時將無法獲得主播任務獎勵。</string>
<string name="live_task_item_complete_true">已完成</string>
<string name="live_task_item_complete_false">未完成</string>
<string name="live_task_item_hot">直播熱度</string>
<string name="live_task_item_xp">主播經驗</string>
<string name="live_data_msg1">本場直播數據統計</string>
<string name="live_data_msg2">歷史數據可在主播中心查看</string>
<string name="live_data_tip">* 人數及新增相關數據非实时计算</string>
</resources>

View File

@@ -0,0 +1,68 @@
<resources>
<string name="buy_guard_info" >成爲TA的守護爲TA保駕護航</string>
<string name="buy_guard_back_coin" >返還</string>
<string name="no_more_day_rank">暫時無人上榜,快來成為第一位上榜的人吧!</string>
<string name="no_more_guard">主播正在等待您的守護!</string>
<string name="no_rank_data">未上榜</string>
<string name="hour_rank">第%s名</string>
<string name="hour_rank_not">未上榜</string>
<string name="day_rank">日榜</string>
<string name="week_rank">周榜</string>
<string name="views_rank">觀眾</string>
<string name="gurad_rank">觀眾</string>
<string name="fans">粉絲</string>
<string name="praise">獲讚</string>
<string name="room_msg">私信</string>
<string name="live_room_title">選擇房間類型</string>
<string name="live_room_public">公開房</string>
<string name="live_room_private">密碼房</string>
<string name="live_room_public_des">所有人可觀看</string>
<string name="live_room_private_des">僅擁有房間密碼的人可觀看</string>
<string name="live_room_type_submit">確認</string>
<string name="live_gift_buy_gold" >開通貴族</string>
<string name="live_gift_buy_gold_desc" >享受專屬特權!</string>
<string name="live_gift_buy_gold_desc_to" >前往貴族中心</string>
<string name="fingers_slide" >手指上滑,取消發送</string>
<string name="release_cancel_send" >松開取消發送</string>
<string name="more_than" >已超过10秒未识别到录音</string>
<string name="live_role_title" >身份特權</string>
<string name="noble_seat" >貴族坐席</string>
<string name="live_mic_max">當前連麥語音人數已達到3人無法再添加。</string>
<string name="live_mic_user_apply" >%s 申請連麥,是否查看</string>
<string name="live_mic_user_down" >已踢下麥</string>
<string name="live_mic_invite" >已發出邀請,等待用戶接受</string>
<string name="live_mic_request" >已同意請求,等待用戶接受</string>
<string name="random_pk_info_view_title" >隨機PK</string>
<string name="random_pk_info_title" >PK主要規則說明</string>
<string name="random_pk_info_time_desc" >隨機PK排位賽時間</string>
<string name="random_pk_info_time" >12:00~17:00、19:00~23:59</string>
<string name="random_pk_info_desc_1" >1、開始匹配後系統將自動挑選對手進行PK</string>
<string name="random_pk_info_desc_2" >2、若長時間無法匹配到對手可嘗試重新匹配</string>
<string name="random_pk_info_desc_3" >3、PK過程中卡頓及延遲可先檢查個人設備及網絡後嘗試重新登錄並開播</string>
<string name="random_pk_info_desc_4" >4、安全部門將會24小時巡查請文明PK嚴格遵守主播守則</string>
<string name="random_pk_info_switch" >隨機PK開關</string>
<string name="random_pk_info_btn_start" >開始匹配</string>
<string name="random_pk_info_btn_ing" >匹配中 %s </string>
<string name="random_pk_info_btn_ing_desc" >再次點擊可取消匹配</string>
<string name="random_pk_info_btn_end" >正在退出匹配 %s</string>
<string name="random_pk_info_btn_end_desc" >退出過程中也有可能匹配到對手</string>
<string name="random_pk_search_hint" >請輸入您要pk的主播昵稱或id</string>
<string name="free_pk_user_pking" >對方正在PK中</string>
<string name="free_pk_num_null" >PK次數已用完</string>
<string name="live_task_no1">當日連續開播時長(分鐘)</string>
<string name="live_task_no2">當日累計PK次數(不限模式)</string>
<string name="live_task_fans_no1">當日累積新增關註粉絲</string>
<string name="live_task_fans_no2">當日累積新增粉絲團成員</string>
<string name="live_task_tab1">直播互動</string>
<string name="live_task_tab2">粉絲增漲</string>
<string name="live_task_info_title">主播任務特別說明</string>
<string name="live_task_info_msg1">所有主播在開播後,即可獲得一系列的當日任務,當根據相應的要求完成任務後,主播即可在第二天開播後,獲得前一天的任務獎勵。</string>
<string name="live_task_info_msg2">● 所有任務數值將由系統進行實時計算,如因個人手機電腦設備問題、網絡問題或是沒有正常進行下播導致數據出現錯誤等問題,為此相關主播可進行聯系相關平臺工作人員或是在線客服,進行反饋,待相關部分確認後,將會再進行補償處理。\n● 所有任務數據的正常結算周期將會在每日的淩晨6點進行結算若開播時間超過淩晨6點將會出現獎勵無法正常結算的情況請知悉。\n● 當主播規範分低於90時主播任務中心的所有獎勵將僅能獲得50%的當主播規範分低於80以下時將無法獲得主播任務獎勵。</string>
<string name="live_task_item_complete_true">已完成</string>
<string name="live_task_item_complete_false">未完成</string>
<string name="live_task_item_hot">直播熱度</string>
<string name="live_task_item_xp">主播經驗</string>
<string name="live_data_msg1">本場直播數據統計</string>
<string name="live_data_msg2">歷史數據可在主播中心查看</string>
<string name="live_data_tip">* 人數及新增相關數據非实时计算</string>
</resources>

View File

@@ -1,68 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="buy_guard_info" translatable="false">成爲TA的守護爲TA保駕護航</string>
<string name="buy_guard_back_coin" translatable="false">返還</string>
<string name="no_more_day_rank">暫時無人上榜,快來成為第一位上榜的人吧!</string>
<string name="no_more_guard">主播正在等待您的守護!</string>
<string name="no_rank_data">未上榜</string>
<string name="hour_rank">第%s名</string>
<string name="hour_rank_not">未上榜</string>
<string name="day_rank">日榜</string>
<string name="week_rank">周榜</string>
<string name="views_rank">觀眾</string>
<string name="gurad_rank">觀眾</string>
<string name="fans">粉絲</string>
<string name="praise">獲讚</string>
<string name="room_msg">私信</string>
<string name="live_room_title">選擇房間類型</string>
<string name="live_room_public">公開房</string>
<string name="live_room_private">密碼房</string>
<string name="live_room_public_des">所有人可觀看</string>
<string name="live_room_private_des">僅擁有房間密碼的人可觀看</string>
<string name="live_room_type_submit">確認</string>
<string name="live_gift_buy_gold" translatable="false">開通貴族</string>
<string name="live_gift_buy_gold_desc" translatable="false">享受專屬特權!</string>
<string name="live_gift_buy_gold_desc_to" translatable="false">前往貴族中心</string>
<string name="fingers_slide" translatable="false">手指上滑,取消發送</string>
<string name="release_cancel_send" translatable="false">松開取消發送</string>
<string name="more_than" translatable="false">已超过10秒未识别到录音</string>
<string name="live_role_title" translatable="false">身份特權</string>
<string name="noble_seat" translatable="false">貴族坐席</string>
<string name="live_mic_max">當前連麥語音人數已達到3人無法再添加。</string>
<string name="live_mic_user_apply" translatable="false">%s 申請連麥,是否查看</string>
<string name="live_mic_user_down" translatable="false">已踢下麥</string>
<string name="live_mic_invite" translatable="false">已發出邀請,等待用戶接受</string>
<string name="live_mic_request" translatable="false">已同意請求,等待用戶接受</string>
<string name="random_pk_info_view_title" translatable="false">隨機PK</string>
<string name="random_pk_info_title" translatable="false">PK主要規則說明</string>
<string name="random_pk_info_time_desc" translatable="false">隨機PK排位賽時間</string>
<string name="random_pk_info_time" translatable="false">12:00~17:00、19:00~23:59</string>
<string name="random_pk_info_desc_1" translatable="false">1、開始匹配後系統將自動挑選對手進行PK</string>
<string name="random_pk_info_desc_2" translatable="false">2、若長時間無法匹配到對手可嘗試重新匹配</string>
<string name="random_pk_info_desc_3" translatable="false">3、PK過程中卡頓及延遲可先檢查個人設備及網絡後嘗試重新登錄並開播</string>
<string name="random_pk_info_desc_4" translatable="false">4、安全部門將會24小時巡查請文明PK嚴格遵守主播守則</string>
<string name="random_pk_info_switch" translatable="false">隨機PK開關</string>
<string name="random_pk_info_btn_start" translatable="false">開始匹配</string>
<string name="random_pk_info_btn_ing" translatable="false">匹配中 %s </string>
<string name="random_pk_info_btn_ing_desc" translatable="false">再次點擊可取消匹配</string>
<string name="random_pk_info_btn_end" translatable="false">正在退出匹配 %s</string>
<string name="random_pk_info_btn_end_desc" translatable="false">退出過程中也有可能匹配到對手</string>
<string name="random_pk_search_hint" translatable="false">請輸入您要pk的主播昵稱或id</string>
<string name="free_pk_user_pking" translatable="false">對方正在PK中</string>
<string name="free_pk_num_null" translatable="false">PK次數已用完</string>
<string name="live_task_no1">當日連續開播時長(分鐘)</string>
<string name="live_task_no2">當日累計PK次數(不限模式)</string>
<string name="live_task_fans_no1">當日累積新增關註粉絲</string>
<string name="live_task_fans_no2">當日累積新增粉絲團成員</string>
<string name="live_task_tab1">直播互動</string>
<string name="live_task_tab2">粉絲增漲</string>
<string name="live_task_info_title">主播任務特別說明</string>
<string name="live_task_info_msg1">所有主播在開播後,即可獲得一系列的當日任務,當根據相應的要求完成任務後,主播即可在第二天開播後,獲得前一天的任務獎勵。</string>
<string name="live_task_info_msg2">● 所有任務數值將由系統進行實時計算,如因個人手機電腦設備問題、網絡問題或是沒有正常進行下播導致數據出現錯誤等問題,為此相關主播可進行聯系相關平臺工作人員或是在線客服,進行反饋,待相關部分確認後,將會再進行補償處理。\n● 所有任務數據的正常結算周期將會在每日的淩晨6點進行結算若開播時間超過淩晨6點將會出現獎勵無法正常結算的情況請知悉。\n● 當主播規範分低於90時主播任務中心的所有獎勵將僅能獲得50%的當主播規範分低於80以下時將無法獲得主播任務獎勵。</string>
<string name="live_task_item_complete_true">已完成</string>
<string name="live_task_item_complete_false">未完成</string>
<string name="live_task_item_hot">直播熱度</string>
<string name="live_task_item_xp">主播經驗</string>
<string name="live_data_msg1">本場直播數據統計</string>
<string name="live_data_msg2">歷史數據可在主播中心查看</string>
<string name="live_data_tip">* 人數及新增相關數據非实时计算</string>
</resources>
<string name="no_more_day_rank">No one is on the list at the moment</string>
<string name="no_more_guard">anchor are waiting at your guard!</string>
<string name="no_rank_data">Not on the list</string>
<string name="hour_rank">No.%s</string>
<string name="hour_rank_not">Not listed</string>
<string name="day_rank">Day</string>
<string name="week_rank">Weekly</string>
<string name="views_rank">Viewers</string>
<string name="gurad_rank">Guard</string>
<string name="fans">Fans</string>
<string name="room_msg">News</string>
<string name="live_room_title">Select room type</string>
<string name="live_room_public">Public Rooms</string>
<string name="live_room_private">Password Rooms</string>
<string name="live_room_public_des">Available for all</string>
<string name="live_room_private_des">Only those who have the room code can watch</string>
<string name="live_room_type_submit">Submit</string>
<string name="live_mic_max">The number of voices has reached 3, and no more can be added.</string>
<string name="live_task_no1">Consecutive broadcast duration of the day (minutes)</string>
<string name="live_task_no2">PK count on the day (unlimited mode)</string>
<string name="live_task_fans_no1">Accumulated new followers on that day</string>
<string name="live_task_fans_no2">Cumulative new fan group members on that day</string>
<string name="live_task_tab1">Live interaction</string>
<string name="live_task_tab2">Fan growth</string>
<string name="live_task_info_title">Special instructions for anchor tasks</string>
<string name="live_task_info_msg1">After the broadcast, all anchors can get a series of tasks of the day. After completing the tasks according to the corresponding requirements, anchors can get the task reward of the previous day after the broadcast of the next day.</string>
<string name="live_task_info_msg2">● All task values will be calculated by the system in real time. If data errors occur due to personal, mobile, computer equipment problems, network problems or no normal downcasting, relevant anchors can contact relevant platform staff or online customer service for feedback. After confirmation by relevant part, compensation will be processed.\n● The normal settlement period of all mission data will be settled at 6:00 am every day. If the broadcast time is longer than 6:00 AM, the reward cannot be settled normally, please be noted.\n● When the anchor standard score is lower than 90, the anchor task center can only get 50% of all rewards. When the anchor standard score is lower than 80, the anchor task reward cannot be obtained.</string>
<string name="live_task_item_complete_true">success</string>
<string name="live_task_item_complete_false">incomplete</string>
<string name="live_task_item_hot">hot</string>
<string name="live_task_item_xp">exp</string>
<string name="live_data_msg1">This live data statistics</string>
<string name="live_data_msg2">Historical data can be viewed in the anchor center</string>
<string name="live_data_tip">* Non-real-time calculation of data</string>
<string name="buy_guard_info" >Be TA\'s guardian, escort for TA!</string>
<string name="buy_guard_back_coin" >return</string>
<string name="praise">Be praised</string>
<string name="live_gift_buy_gold" >Open aristocracy</string>
<string name="live_gift_buy_gold_desc" >Enjoy exclusive privileges!</string>
<string name="live_gift_buy_gold_desc_to" >Head to the noble Center</string>
<string name="fingers_slide" >Swipe up to cancel send</string>
<string name="release_cancel_send" >Release cancel send</string>
<string name="more_than" >No recording has been recognized in over 10 seconds</string>
<string name="live_role_title" >Identity privilege</string>
<string name="noble_seat" >Nobleman\'s seat</string>
<string name="live_mic_user_apply" >%s applies for connected wheat. Check whether</string>
<string name="live_mic_user_down" >The wheat has been kicked off</string>
<string name="live_mic_invite" >An invitation has been sent and is waiting for the user to accept</string>
<string name="live_mic_request" >The request has been agreed and is awaiting acceptance by the user</string>
<string name="random_pk_info_view_title" >Random PK</string>
<string name="random_pk_info_title" >PK main rules:</string>
<string name="random_pk_info_time_desc" >Random PK qualifying time</string>
<string name="random_pk_info_time" >12:00~17:00、19:00~23:59</string>
<string name="random_pk_info_desc_1" >1. After matching, the system will automatically select opponents for PK;</string>
<string name="random_pk_info_desc_2" >2. If you cannot match your opponent for a long time, you can try to match again</string>
<string name="random_pk_info_desc_3" >3. During the PK process, if there is any delay or delay, please check your personal device and network first, and then try to log in again and start broadcasting.</string>
<string name="random_pk_info_desc_4" >4, the security department will be 24 hours of inspection, please civilized PK, strictly abide by the anchor rules;</string>
<string name="random_pk_info_switch" >Random PK switch:</string>
<string name="random_pk_info_btn_start" >Start matching</string>
<string name="random_pk_info_btn_ing" >Match %s</string>
<string name="random_pk_info_btn_ing_desc" >Click again to cancel the match</string>
<string name="random_pk_info_btn_end" >Exiting match %s</string>
<string name="random_pk_info_btn_end_desc" >It\'s also possible to match an opponent during the exit process</string>
<string name="random_pk_search_hint" >Please enter the anchor nickname or id you want to pk</string>
<string name="free_pk_user_pking" >The other team is engaged in a PK</string>
<string name="free_pk_num_null" >The PK number is used up</string>
</resources>

View File

@@ -275,7 +275,7 @@ public class EntryActivity extends AppCompatActivity {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});

View File

@@ -121,7 +121,8 @@ public class LoginActivity extends AbsActivity {
findViewById(R.id.btn_back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
//finish();
RouteUtil.forwardEntry2();
}
});
@@ -379,4 +380,10 @@ public class LoginActivity extends AbsActivity {
super.onDestroy();
}
@Override
public void onBackPressed() {
super.onBackPressed();
RouteUtil.forwardEntry2();
}
}

View File

@@ -313,7 +313,12 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
@Override
public void onPageSelected(int position) {
if(mTabButtonGroup.getCurPosition()!=position){
System.err.println("重连IM");
System.err.println("重连IM:"+IMLoginManager.isLogin(mContext));
if(!IMLoginManager.isLogin(mContext)){
//IMLoginManager.get(mContext).setupLoginUser();
RouteUtil.forwardLoginInvalid("登錄失效");
return;
}
RongcloudIMManager.connectIM(mContext.getApplication());
position = 0;
mTabButtonGroup.setCurPosition(0);
@@ -536,6 +541,7 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.live.R.string.net_error);
}
});

View File

@@ -176,7 +176,7 @@ public class MainListActivity extends AbsActivity implements OnItemClickListener
@Override
public void onError(String error) {
Log.e("MainListActivity", error);
ToastUtil.show( R.string.net_error);
}
});
initView();

View File

@@ -239,7 +239,7 @@ public class MsgSettActivity extends AbsActivity {
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.live.R.string.net_error);
}
});
}

View File

@@ -549,8 +549,8 @@ public class MyWebViewActivity extends AbsActivity {
if (!TextUtils.isEmpty(event.getMethod())) {
if (TextUtils.equals(event.getMethod(), "androidCommunityGift")) {
Constants.nowPostsId = event.getPostsId();
EncourageDialog fragment = new EncourageDialog();
fragment.setId(event.getPostsId());
fragment.show(((MyWebViewActivity) mContext).getSupportFragmentManager(), "EncourageDialog");
} else if (TextUtils.equals(event.getMethod(), "modifyMydata")) {
indexInto = event.getIndexInto();

View File

@@ -443,7 +443,7 @@ public class PDLiveConversationListActivity extends AbsActivity implements View.
@Override
public void onError(String error) {
ToastUtil.show(error);
ToastUtil.show( R.string.net_error);
}
});
MessageIMManager.get(mContext).setSystemNumber(0);

View File

@@ -21,6 +21,7 @@ import com.yunbao.common.http.ResponseData;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R;
@@ -113,7 +114,7 @@ public class MsgFollowAdapter extends RecyclerView.Adapter<MsgFollowAdapter.Vh>
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -61,6 +61,7 @@ public class SearchResultsAdapter extends RecyclerView.Adapter {
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.live.R.string.net_error);
}
});
}

View File

@@ -2,6 +2,7 @@ package com.yunbao.main.dialog;
import static com.yunbao.common.utils.RouteUtil.PATH_REWARD;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
@@ -44,6 +45,7 @@ public class SigninDialog extends AbsDialogFragment {
window.setAttributes(params);
}
@SuppressLint("StringFormatInvalid")
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
@@ -73,6 +75,7 @@ public class SigninDialog extends AbsDialogFragment {
return;
}
gold.setText(bundle.getString("send_gold") + "金豆+" + bundle.getString("send_exp") + "EXP");
sign_day.setText("本月您已累積簽到" + bundle.getString("sign_day") + "天,");
sign_day.setText(String.format(getString(R.string.this_month), bundle.getString("sign_day")));
}
}

View File

@@ -85,6 +85,7 @@ public class SearchRecommendFragment extends BaseFragment {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -16,6 +16,7 @@ import com.yunbao.common.bean.SearchModel;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.OnRecyclerViewScrollListener;
import com.yunbao.main.R;
import com.yunbao.main.adapter.SearchRecommendBodyAdapter;
@@ -116,6 +117,7 @@ public class SearchResultsItemFragment extends BaseFragment {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -20,6 +20,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.InstructorRemarkManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.activity.PDLIiveChatActivity;
import com.yunbao.live.activity.PDLiveConversationActivity;
import com.yunbao.live.bean.SearchUserBean;
@@ -317,7 +318,7 @@ public class ConversationIMListManager {
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.live.R.string.net_error);
}
});
}

View File

@@ -40,10 +40,7 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
super.init();
img_trophy = (ImageView) findViewById(R.id.img_trophy);
img_trophy.setOnLongClickListener(v -> {
mContext.startActivity(new Intent(mContext, TestActivity.class));
return true;
});
ImgLoader.display(mContext, "https://downs.yaoulive.com/gif_trophy.gif", img_trophy);

View File

@@ -302,8 +302,8 @@ public class MainMeViewHolder extends AbsMainViewHolder implements OnItemClickLi
user_noble_time.setText(mContext.getResources().getString(R.string.open_noble_text));
}
String singnature = u.getSignature();
if (TextUtils.equals(singnature, "貴族") || TextUtils.equals(singnature, "贵族")) {
singnature = singnature + "中心";
if (TextUtils.equals(singnature, "這個人很懶,什麼也沒留下") ||TextUtils.equals(singnature, "这家伙很懒,什么都没留下") || TextUtils.isEmpty(singnature)) {
singnature ="The guy was lazy and didn't write anything.";
}
signature.setText(singnature);
CommonAppConfig appConfig = CommonAppConfig.getInstance();

View File

@@ -53,6 +53,7 @@ public class SearchRecommendBodyViewHolder extends RecyclerView.ViewHolder {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
}
});
}

View File

@@ -235,7 +235,7 @@
android:id="@+id/tv_customer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="無法登陸?點此聯繫客服"
android:text="@string/customer_service2"
android:textColor="@color/white"
android:textSize="11sp" />
</LinearLayout>
@@ -252,7 +252,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="進入下一步即代表同意"
android:text="@string/next_step_is_consent"
android:textColor="#ffb1b1b1"
android:textSize="10sp" />
@@ -262,7 +262,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:text="用户協議"
android:text="@string/user_protocol2"
android:textColor="#ffb1b1b1"
android:textSize="10sp" />
@@ -270,7 +270,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:text=""
android:text="@string/and"
android:textColor="#ffb1b1b1"
android:textSize="10sp" />
@@ -279,7 +279,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="1dp"
android:text="隱私條款"
android:text="privacy_terms"
android:textColor="#ffb1b1b1"
android:textSize="10sp" />

View File

@@ -37,7 +37,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="忘記密碼"
android:text="@string/find_pwd_forget"
android:textColor="#ffff8d41"
android:textSize="24sp"
android:layout_marginLeft="41dp"
@@ -194,7 +194,7 @@
android:layout_height="match_parent"
android:layout_marginLeft="15dp"
android:background="@null"
android:hint="請填寫新密碼"
android:hint="@string/modify_pwd_new_1"
android:inputType="textPassword"
android:textColor="@color/textColor"
android:textColorHint="@color/gray3"
@@ -243,7 +243,7 @@
android:background="@drawable/border_fdbe40"
android:gravity="center"
android:onClick="registerClick"
android:text="立即找回"
android:text="@string/find_pwd_find"
android:textColor="@color/white"
android:textSize="16sp"
/>

View File

@@ -1,62 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/white">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="65dp"
android:background="@color/white"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_marginTop="23dp">
android:orientation="vertical">
<ImageView
android:id="@+id/btn_back"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:onClick="backClick"
android:padding="9dp"
android:src="@mipmap/icon_back"
android:tint="@color/textColor"
/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="23dp"
android:layout_marginRight="20dp"
android:background="@color/white">
<TextView android:id="@+id/btn_forget_pwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="忘記密碼"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:textColor="#ffc4c6ca"
android:onClick="loginClick"
android:textSize="14sp"
/>
</RelativeLayout>
<ImageView
android:id="@+id/btn_back"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:onClick="backClick"
android:padding="9dp"
android:src="@mipmap/icon_back"
android:tint="@color/textColor" />
<TextView
android:id="@+id/btn_forget_pwd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:onClick="loginClick"
android:text="@string/find_pwd_forget"
android:textColor="#ffc4c6ca"
android:textSize="14sp" />
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="45dp"
android:layout_marginTop="49dp"
android:text="Hello"
android:textColor="#ffff8d41"
android:textSize="33sp"
android:textStyle="bold"
android:layout_marginLeft="45dp"
android:layout_marginTop="49dp"/>
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="歡迎來到PD LIVE。"
android:textColor="#ffb1b1b1"
android:textSize="20sp"
android:layout_marginLeft="45dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="39dp"
android:layout_marginLeft="45dp"/>
android:text="@string/come_to"
android:textColor="#ffb1b1b1"
android:textSize="20sp" />
<LinearLayout
android:id="@+id/view"
@@ -66,66 +64,65 @@
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="47dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginBottom="15dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/border_grey_50">
android:layout_marginBottom="15dp"
android:background="@drawable/border_grey_50"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginLeft="27dp"
android:layout_marginRight="36dp"
android:src="@mipmap/icon_phone"/>
android:src="@mipmap/icon_phone" />
<EditText
android:id="@+id/edit_phone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="left|center"
android:hint="@string/login_input_phone"
android:background="@null"
android:maxLength="20"
android:singleLine="true"
android:textColor="#161616"
android:textColorHint="#B6B6B6"
android:textSize="16sp" />
android:id="@+id/edit_phone"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:gravity="left|center"
android:hint="@string/login_input_phone"
android:maxLength="20"
android:singleLine="true"
android:textColor="#161616"
android:textColorHint="#B6B6B6"
android:textSize="16sp" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="47dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_marginBottom="15dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/border_grey_50">
android:layout_marginBottom="15dp"
android:background="@drawable/border_grey_50"
android:gravity="center_vertical"
android:orientation="horizontal">
<ImageView
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginLeft="27dp"
android:layout_marginRight="36dp"
android:src="@mipmap/icon_password"/>
android:src="@mipmap/icon_password" />
<EditText
android:id="@+id/edit_pwd"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@null"
android:gravity="left|center"
android:hint="@string/login_input_pwd"
android:inputType="textPassword"
android:background="@null"
android:maxLength="20"
android:singleLine="true"
android:textColor="#161616"
@@ -139,8 +136,8 @@
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="30dp"
android:layout_marginRight="30dp"
android:background="@drawable/border_fdbe40"
android:gravity="center"
android:onClick="loginClick"
@@ -154,8 +151,8 @@
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_marginTop="15dp"
android:layout_marginRight="30dp"
android:background="@drawable/border_fff_lin"
android:gravity="center"
android:onClick="loginClick"
@@ -167,8 +164,8 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone"
android:layout_marginTop="10dp">
android:layout_marginTop="10dp"
android:visibility="gone">
<LinearLayout
android:layout_width="match_parent"
@@ -249,12 +246,12 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="8sp"
android:layout_marginRight="40dp"
android:layout_marginLeft="50dp"
android:layout_marginRight="40dp"
android:layout_marginBottom="10dp"
android:text="為了提供分享服務我們的產品集成Mob+ SDKSDK需要收集您的設備識別碼和您需要分享的社交賬號。為便於您更好地了解[Mob+]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政策"
android:textColor="@color/red"/>
android:textColor="@color/red"
android:textSize="8sp" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>

View File

@@ -40,7 +40,7 @@
android:layout_marginLeft="41dp"
android:layout_marginTop="30dp"
android:layout_marginBottom="25dp"
android:text="註冊PD LIVE"
android:text="@string/sign_up_for"
android:textColor="#ffff8d41"
android:textSize="24sp" />
@@ -246,7 +246,7 @@
android:gravity="center"
android:clickable="true"
android:onClick="registerClick"
android:text="註冊並登錄"
android:text="@string/register_and_log_in"
android:textColor="@color/white"
android:textSize="16sp"
android:focusable="true" />

View File

@@ -1,100 +1,105 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/login_ties_bg">
android:background="@mipmap/login_ties_bg"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:gravity="center"
android:layout_marginBottom="100dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="條款和政策"
android:textColor="#ff161616"
android:textSize="16sp"
android:textStyle="bold"
android:layout_marginTop="15dp"
android:layout_marginBottom="22dp"
android:gravity="center"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="歡迎來到PD LIVE對於您的個人信息及隱私我們將採用最高標準對待和保護。"
android:textColor="#ff161616"
android:textSize="14sp"/>
<TextView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="詳情請您閱讀以下安裝應用程序的消息:"
android:textColor="#ff161616"
android:textSize="14sp"
android:gravity="left"
android:layout_marginBottom="22dp"/>
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:layout_marginBottom="100dp"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="為了向您提供一鍵分享服務我們的產品集成Mob+U-Share SDKMob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息以便完成一鍵分享服務。並通過地理位置校準報表數據準確性提供基礎反作弊服務。為了您的信息安全我們已與第三方SDK服務商進行數據安全保密約定這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]采集的數據類型及用途以及何保護您的個人信息您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。"
android:textColor="#ffb1b1b1"
android:layout_marginBottom="22dp"
android:textSize="11sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginBottom="22dp"
android:gravity="center"
android:text="@string/terms_and_policies"
android:textColor="#ff161616"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="本應用會收集位置數據以支持登錄和註冊的功能使用。"
android:textColor="#ffb1b1b1"
android:drawablePadding="5dp"
android:textSize="11sp"
android:drawableLeft="@mipmap/icon_position"
android:layout_marginBottom="10dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/treat_and_protect"
android:textColor="#ff161616"
android:textSize="14sp"
android:textStyle="bold" />
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="22dp"
android:gravity="left"
android:text="@string/install_the_application"
android:textColor="#ff161616"
android:textSize="14sp"
android:textStyle="bold" />
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="140dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginBottom="22dp"
android:text="@string/anti_cheating_services"
android:textColor="#ffb1b1b1"
android:textSize="11sp" />
</androidx.core.widget.NestedScrollView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:drawableLeft="@mipmap/icon_position"
android:drawablePadding="5dp"
android:text="@string/support_login"
android:textColor="#ffb1b1b1"
android:textSize="11sp" />
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_marginRight="24dp"
android:layout_marginLeft="24dp"
android:layout_marginRight="24dp"
android:gravity="center"
android:orientation="vertical">
<Button android:id="@+id/btn_agree"
<Button
android:id="@+id/btn_agree"
android:layout_width="match_parent"
android:layout_height="47dp"
android:text="同意"
android:textSize="18sp"
android:textStyle="bold"
android:background="@drawable/border_89b6ff"
android:text="@string/agreement"
android:textColor="@color/color_white"
android:background="@drawable/border_89b6ff"/>
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="點擊同意後即代表您已閱讀並同意以上所有內容。"
android:textColor="#ffb1b1b1"
android:layout_marginTop="12dp"
android:layout_marginBottom="22dp"
android:textSize="12sp"
/>
android:text="@string/read_and_agre"
android:textColor="#ffb1b1b1"
android:textSize="12sp" />
</LinearLayout>
</RelativeLayout>

View File

@@ -1,78 +1,86 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/successfully">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:orientation="vertical"
android:gravity="center">
android:layout_centerInParent="true"
android:gravity="center"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="恭喜你獲得了"
android:textColor="#ffc4c6ca"
android:textSize="15sp"
android:layout_marginTop="15dp"
/>
<pl.droidsonroids.gif.GifImageView
android:id="@+id/btn_live"
android:layout_width="150dp"
android:layout_height="150dp"
android:adjustViewBounds="true"
android:layout_alignParentBottom="true"
android:src="@mipmap/jindou"/>
android:text="@string/getting_it"
android:textColor="#ffc4c6ca"
android:textSize="15sp" />
<pl.droidsonroids.gif.GifImageView
android:id="@+id/btn_live"
android:layout_width="150dp"
android:layout_height="150dp"
android:layout_alignParentBottom="true"
android:adjustViewBounds="true"
android:src="@mipmap/jindou" />
<TextView android:id="@+id/gold"
<TextView
android:id="@+id/gold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="200 金豆 + 2000 EXP"
android:textColor="#ffffbe41"
android:textSize="20sp" />
<TextView android:id="@+id/sign_day"
<TextView
android:id="@+id/sign_day"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="本月您已累積簽到6天"
android:text="@string/this_month"
android:textColor="#ffc4c6ca"
android:textSize="12sp"/>
android:textSize="12sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="再簽到1天即可獲得額外獎勵。"
android:text="@string/more_day_to"
android:textColor="#ffc4c6ca"
android:textSize="12sp"/>
android:textSize="12sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="10dp">
android:layout_marginTop="10dp"
android:orientation="horizontal">
<Button android:id="@+id/goto_sign"
<Button
android:id="@+id/goto_sign"
android:layout_width="130dp"
android:layout_height="38dp"
android:layout_marginRight="10dp"
android:background="@mipmap/btn_goto"/>
android:background="@mipmap/btn_goto"
android:text="@string/go_to_the_sign"
android:textColor="#C9CACE"
android:textSize="9sp" />
<Button android:id="@+id/confirm"
<Button
android:id="@+id/confirm"
android:layout_width="130dp"
android:layout_height="38dp"
android:layout_marginLeft="10dp"
android:background="@mipmap/btn_signin"/>
android:textColor="#fff"
android:textSize="9sp"
android:text="@string/confirm_pick_up"
android:background="@mipmap/btn_signin" />
</LinearLayout>
</LinearLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB