# Conflicts:
#	app/build.gradle
#	common/src/main/res/values-zh-rHK/strings.xml
#	common/src/main/res/values-zh-rTW/strings.xml
#	common/src/main/res/values/strings.xml
This commit is contained in:
余前卫 2024-07-10 10:53:01 +08:00
commit 6d6010d023
115 changed files with 1655 additions and 797 deletions

View File

@ -13,7 +13,7 @@ import com.google.gson.JsonObject;
import com.yunbao.faceunity.entity.net.FineStickerEntity; import com.yunbao.faceunity.entity.net.FineStickerEntity;
import com.yunbao.faceunity.utils.FaceUnityData; import com.yunbao.faceunity.utils.FaceUnityData;
import com.yunbao.faceunity.utils.FileUtils; import com.yunbao.faceunity.utils.FileUtils;
import com.yunbao.faceunity.utils.ZipUtils; import com.yunbao.common.utils.ZipUtils;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;

View File

@ -88,12 +88,12 @@ android {
applicationVariants.all { variant -> applicationVariants.all { variant ->
println "清空build文件夹"; println "清空build文件夹";
/* for (final def project in rootProject.getAllprojects()) { for (final def project in rootProject.getAllprojects()) {
def name = variant.name.replace('Debug', '').replace('Release', '').toLowerCase() def name = variant.name.replace('Debug', '').replace('Release', '').toLowerCase()
delete project.buildDir //delete project.buildDir
delete project.rootDir.absolutePath+File.separator+"app"+File.separator+name delete project.rootDir.absolutePath+File.separator+"app"+File.separator+name
println project.buildDir //println project.buildDir
}*/ }
//delete project.rootDir.absolutePath + File.separator + "outputs" //delete project.rootDir.absolutePath + File.separator + "outputs"
String variantName = variant.name.capitalize() String variantName = variant.name.capitalize()
def processManifestTask = project.tasks.getByName("process${variantName}Manifest") def processManifestTask = project.tasks.getByName("process${variantName}Manifest")

View File

@ -25,7 +25,7 @@ import com.blankj.utilcode.util.Utils;
import com.facebook.appevents.AppEventsLogger; import com.facebook.appevents.AppEventsLogger;
import com.fm.openinstall.OpenInstall; import com.fm.openinstall.OpenInstall;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.shayu.phonelive.utils.LogUtils; import com.yunbao.common.utils.LogUtils;
import com.tencent.imsdk.v2.V2TIMGroupMemberInfo; import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
import com.tencent.imsdk.v2.V2TIMManager; import com.tencent.imsdk.v2.V2TIMManager;
import com.tencent.imsdk.v2.V2TIMSimpleMsgListener; import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;

View File

@ -59,7 +59,6 @@ public abstract class AbsActivity extends AppCompatActivity {
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
create();
Intent intent = getIntent(); Intent intent = getIntent();
if (intent != null) { if (intent != null) {
isFullWindow = getIntent().getBooleanExtra("isFull", false); isFullWindow = getIntent().getBooleanExtra("isFull", false);
@ -68,6 +67,7 @@ public abstract class AbsActivity extends AppCompatActivity {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
} }
} }
create();
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
mTag = this.getClass().getSimpleName(); mTag = this.getClass().getSimpleName();
setStatusBar(); setStatusBar();
@ -133,7 +133,7 @@ public abstract class AbsActivity extends AppCompatActivity {
/** /**
* 设置透明状态栏 * 设置透明状态栏
*/ */
private void setStatusBar() { public void setStatusBar() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow(); Window window = getWindow();

View File

@ -5,6 +5,7 @@ import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.graphics.Color;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Handler; import android.os.Handler;
@ -12,6 +13,7 @@ import android.provider.MediaStore;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.WindowManager;
import android.webkit.ValueCallback; import android.webkit.ValueCallback;
import android.webkit.WebChromeClient; import android.webkit.WebChromeClient;
import android.webkit.WebSettings; import android.webkit.WebSettings;
@ -82,6 +84,15 @@ public class WebViewActivity extends AbsActivity {
return R.layout.activity_webview; return R.layout.activity_webview;
} }
@Override
public void setStatusBar() {
getWindow().setStatusBarColor(Color.parseColor("#FFFFFF"));
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
}
@Override @Override
protected void main() { protected void main() {
String url = getIntent().getStringExtra(Constants.URL); String url = getIntent().getStringExtra(Constants.URL);

View File

@ -13,6 +13,7 @@ import com.yunbao.common.R;
import com.yunbao.common.bean.CustomSidebarChildModel; import com.yunbao.common.bean.CustomSidebarChildModel;
import com.yunbao.common.event.CustomDrawerPopupEvent; import com.yunbao.common.event.CustomDrawerPopupEvent;
import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.views.InteractionGamesChildViewHolder; import com.yunbao.common.views.InteractionGamesChildViewHolder;
import java.util.ArrayList; import java.util.ArrayList;
@ -36,7 +37,7 @@ public class InteractionGamesAdapter extends RecyclerView.Adapter {
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view3, parent, false); View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view3, parent, false);
return new InteractionGamesChildViewHolder(runGamesView); return new InteractionGamesChildViewHolder(runGamesView,mContext);
} }
@Override @Override
@ -51,6 +52,9 @@ public class InteractionGamesAdapter extends RecyclerView.Adapter {
if (activityID != 0) { if (activityID != 0) {
Bus.get().post(new CustomDrawerPopupEvent() Bus.get().post(new CustomDrawerPopupEvent()
.setDisMiss(true).setInteractionID(activityID).setInteraction(true).setChild(srcChild)); .setDisMiss(true).setInteractionID(activityID).setInteraction(true).setChild(srcChild));
if(model.getSudGameIsNew().equals("1")){
SpUtil.getInstance().setLiveGameId(model.getId());
}
} }

View File

@ -31,11 +31,16 @@ public class LiveNewRoleFunGamesAdapter extends RecyclerView.Adapter {
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view, parent, false); View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view, parent, false);
return new NewRoleFunGamesChildViewHolder(runGamesView,showRed); return new NewRoleFunGamesChildViewHolder(runGamesView,showRed,mContext);
} }
@Override @Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams((int)
(mContext.getResources().getDisplayMetrics().widthPixels / 4.5),
ViewGroup.LayoutParams.WRAP_CONTENT);
holder.itemView.setLayoutParams(layoutParams);
NewRoleFunGamesChildViewHolder childViewHolder = (NewRoleFunGamesChildViewHolder) holder; NewRoleFunGamesChildViewHolder childViewHolder = (NewRoleFunGamesChildViewHolder) holder;
childViewHolder.setData(child.get(position), rigts); childViewHolder.setData(child.get(position), rigts);
} }

View File

@ -11,11 +11,11 @@ import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.bean.CustomSidebarChildModel; import com.yunbao.common.bean.CustomSidebarChildModel;
import com.yunbao.common.event.CustomDrawerPopupEvent;
import com.yunbao.common.event.LiveNewRoleEvent; import com.yunbao.common.event.LiveNewRoleEvent;
import com.yunbao.common.event.NewRoleCustomDrawerPopupEvent; import com.yunbao.common.event.NewRoleCustomDrawerPopupEvent;
import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.InteractionGamesChildViewHolder; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.views.InteractionGamesChildBottomViewHolder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -34,14 +34,14 @@ public class LiveNewRoleInteractionGamesAdapter extends RecyclerView.Adapter {
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view3, parent, false); View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view3, parent, false);
return new InteractionGamesChildViewHolder(runGamesView); return new InteractionGamesChildBottomViewHolder(runGamesView,mContext);
} }
@Override @Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
InteractionGamesChildViewHolder childViewHolder = (InteractionGamesChildViewHolder) holder; InteractionGamesChildBottomViewHolder childViewHolder = (InteractionGamesChildBottomViewHolder) holder;
childViewHolder.setData(child.get(position), rigts); childViewHolder.setData(child.get(position), rigts);
childViewHolder.setItemViewClicks(new InteractionGamesChildViewHolder.InteractionGamesCallBack() { childViewHolder.setItemViewClicks(new InteractionGamesChildBottomViewHolder.InteractionGamesCallBack() {
@Override @Override
public void onItemViewClicks(CustomSidebarChildModel model, boolean rigts) { public void onItemViewClicks(CustomSidebarChildModel model, boolean rigts) {
@ -52,6 +52,9 @@ public class LiveNewRoleInteractionGamesAdapter extends RecyclerView.Adapter {
.setInteractionID(activityID) .setInteractionID(activityID)
.setChild(child) .setChild(child)
.setInteraction(true)); .setInteraction(true));
if(model.getSudGameIsNew().equals("1")){
SpUtil.getInstance().setLiveGameId(model.getId());
}
} }
@ -60,12 +63,14 @@ public class LiveNewRoleInteractionGamesAdapter extends RecyclerView.Adapter {
}); });
} }
@Override @Override
public int getItemCount() { public int getItemCount() {
return child.size(); return child.size();
} }
public void updateData(List<CustomSidebarChildModel> mChild) { public void updateData(List<CustomSidebarChildModel> mChild) {
child.clear(); child.clear();
/* if (mChild.size() > 8) { /* if (mChild.size() > 8) {
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {

View File

@ -39,13 +39,14 @@ public class LiveNewRolerPopupAdapter extends RecyclerView.Adapter {
switch (viewType) { switch (viewType) {
case FUN_GAMES: case FUN_GAMES:
View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_new_roler_fun_games_view, parent, false); View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_new_roler_fun_games_view, parent, false);
return new LiveNewRoleFunGamesViewHolder(runGamesView); return new LiveNewRoleFunGamesViewHolder(runGamesView,mContext);
case RIGHTS_INTERESTS: case RIGHTS_INTERESTS:
//特权
View rightsInterestsView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_roler_ights_interests, parent, false); View rightsInterestsView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_roler_ights_interests, parent, false);
return new LiveNewRoleRigtsInterestsViewHolder(rightsInterestsView,showRed); return new LiveNewRoleRigtsInterestsViewHolder(rightsInterestsView,showRed,mContext);
default: default:
View gamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_interaction_games_view, parent, false); View gamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_interaction_games_view, parent, false);
return new LiveNewRoleInteractionGamesViewHolder(gamesView); return new LiveNewRoleInteractionGamesViewHolder(gamesView,mContext);
} }
} }

View File

@ -30,11 +30,15 @@ public class NewRoleFunGamesAdapter extends RecyclerView.Adapter {
@Override @Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view2, parent, false); View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_live_new_role_fun_games_child_view2, parent, false);
return new NewRoleFunGamesChildViewHolder(runGamesView,false); return new NewRoleFunGamesChildViewHolder(runGamesView,false,mContext);
} }
@Override @Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams((int)
(mContext.getResources().getDisplayMetrics().widthPixels / 4.5),
ViewGroup.LayoutParams.WRAP_CONTENT);
holder.itemView.setLayoutParams(layoutParams);
NewRoleFunGamesChildViewHolder childViewHolder = (NewRoleFunGamesChildViewHolder) holder; NewRoleFunGamesChildViewHolder childViewHolder = (NewRoleFunGamesChildViewHolder) holder;
childViewHolder.setData(child.get(position), rigts); childViewHolder.setData(child.get(position), rigts);
} }

View File

@ -22,6 +22,30 @@ public class GuardPriceModel extends BaseModel {
private String discount; private String discount;
@SerializedName("price_key") @SerializedName("price_key")
private int priceKey; private int priceKey;
@SerializedName("coupon_discount")
private String couponDiscount;
@SerializedName("coupon_discount_en")
private String couponDiscountEn;
@SerializedName("coupon_discount_price")
private String couponDiscountPrice;
@SerializedName("coupon_id")
private String couponId;
public String getCouponDiscount() {
return couponDiscount;
}
public String getCouponId() {
return couponId;
}
public String getCouponDiscountEn() {
return couponDiscountEn;
}
public String getCouponDiscountPrice() {
return couponDiscountPrice;
}
public String getOpeningTime() { public String getOpeningTime() {
return openingTime; return openingTime;

View File

@ -0,0 +1,16 @@
package com.yunbao.common.bean;
import com.alibaba.fastjson.annotation.JSONField;
public class QiniuLog extends BaseModel{
@JSONField(name = "log_type")
private int log_type;
public int getLog_type() {
return log_type;
}
public void setLog_type(int log_type) {
this.log_type = log_type;
}
}

View File

@ -0,0 +1,80 @@
package com.yunbao.common.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.text.Html;
import android.text.Spanned;
import android.view.View;
import android.widget.TextView;
import com.yunbao.common.R;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.WordUtil;
public class GuardBuyCouponTipsDialog {
/**
* @param context
* @param coin 钻石
* @param content 购买类型名称
* @param simpleCallback
*/
public static void showBuyOrRenewDialog(Context context, String coupon, String coin, String content,
DialogUitl.SimpleCallback3 simpleCallback) {
if (context instanceof Activity) {
if (((Activity) context).isDestroyed() || ((Activity) context).isFinishing()) {
return;
}
}
final Dialog dialog = new Dialog(context, R.style.dialog2);
dialog.setContentView(R.layout.dialog_guard_buy_coupon_tips);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
TextView btn_confirm = dialog.findViewById(R.id.btn_confirm);
TextView content2 = dialog.findViewById(R.id.content2);
Spanned tips;
if (WordUtil.isNewZh()) {
tips = Html.fromHtml("<font color='#FFE0BF'>您有一張</font>"
+ "<font color='#FF9937'>" + content + "優惠券</font><br>"
+ "<font color='#FFE0BF'>開通/續費" + content + "(1個月)時,</font><br><font color='#FFE0BF'>可享</font>"
+ "<strong><font color='#FF9937'>" + coupon + "折</font></strong>"
+ "<font color='#FFE0BF'>優惠 (折後:</font>"
+ "<font color='#FF9937'>" + coin + "鑽</font>)<br>"
+ "<font color='#FFE0BF'>是否使用優惠券?</font>");
} else {
tips = Html.fromHtml("<font color='#FFE0BF'>You have a </font>"
+ "<font color='#FF9937'>" + content + " coupon</font>"
+ "<font color='#FFE0BF'> When activating/renewing " + content + "(1 month), you can enjoy a</font>"
+ "<strong><font color='#FF9937'> " + coupon + "% </font></strong>"
+ "<font color='#FFE0BF'>discount (After folding:</font>"
+ "<font color='#FF9937'>" + coin + " diamonds</font>"
+ "<font color='#FFE0BF'>Do you want to use coupons?</font>");
}
content2.setText(tips);
dialog.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.findViewById(R.id.btn_cancel1).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
simpleCallback.onCancel();
dialog.dismiss();
}
});
btn_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
simpleCallback.onConfirmClick(dialog);
dialog.dismiss();
}
});
dialog.show();
}
}

View File

@ -0,0 +1,44 @@
package com.yunbao.common.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.widget.TextView;
import com.yunbao.common.R;
import com.yunbao.common.utils.WordUtil;
public class GuardBuyTipsNewDialog {
/**
* @param context
*/
public static void showBuyOrRenewDialog(Context context) {
if (context instanceof Activity) {
if (((Activity) context).isDestroyed() || ((Activity) context).isFinishing()) {
return;
}
}
final Dialog dialog = new Dialog(context, R.style.dialog2);
dialog.setContentView(R.layout.dialog_guard_buy_tips);
dialog.setCancelable(true);
dialog.setCanceledOnTouchOutside(true);
TextView btn_confirm = dialog.findViewById(R.id.btn_confirm);
btn_confirm.setText(WordUtil.isNewZh() ? "確認" : "Confirm");
dialog.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.findViewById(R.id.btn_confirm).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}

View File

@ -1,7 +1,10 @@
package com.yunbao.common.dialog; package com.yunbao.common.dialog;
import android.content.Context; import android.content.Context;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View; import android.view.View;
import android.widget.EditText;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
@ -26,18 +29,19 @@ import java.math.BigDecimal;
* 战令等级 经验 * 战令等级 经验
*/ */
public class OrderLevelPopupWindow extends CenterPopupView { public class OrderLevelPopupWindow extends CenterPopupView {
private TextView orderLevel, orderLevelDiamond, balanceDiamond, current, expText; private TextView orderLevelDiamond, balanceDiamond, current, expText;
private int currentExperience, totalExperience;//当前经验全部经验 private int currentExperience, totalExperience;//当前经验全部经验
private String buyExp = "100", currentLevel, balance; private String buyExp = "1", currentLevel, balance;
private ProgressBar progressBar; private ProgressBar progressBar;
private OrderLevelCallback orderLevelCallback; private OrderLevelCallback orderLevelCallback;
private long maxExp; private long maxExp;
private BattlePassUserInfoBean userInfoBean; private BattlePassUserInfoBean userInfoBean;
private Context mContext;
private EditText orderLevel;
public OrderLevelPopupWindow(@NonNull Context context, BattlePassUserInfoBean userInfoBean, public OrderLevelPopupWindow(@NonNull Context context, BattlePassUserInfoBean userInfoBean, int mCurrentExperience, int mTotalExperience, String mCurrentLevel, String mBalance, long maxExp, OrderLevelCallback mOrderLevelCallback) {
int mCurrentExperience, int mTotalExperience,
String mCurrentLevel, String mBalance, long maxExp, OrderLevelCallback mOrderLevelCallback) {
super(context); super(context);
this.mContext = context;
this.userInfoBean = userInfoBean; this.userInfoBean = userInfoBean;
currentExperience = mCurrentExperience; currentExperience = mCurrentExperience;
totalExperience = mTotalExperience; totalExperience = mTotalExperience;
@ -67,15 +71,15 @@ public class OrderLevelPopupWindow extends CenterPopupView {
progressBar.setProgress(currentExperience); progressBar.setProgress(currentExperience);
expText.setText(String.format("%s/%s", userInfoBean.getBattlePassExp(), userInfoBean.getNextLevelExp())); expText.setText(String.format("%s/%s", userInfoBean.getBattlePassExp(), userInfoBean.getNextLevelExp()));
current.setText(String.format("Lv%s", currentLevel)); current.setText(String.format("Lv%s", currentLevel));
balanceDiamond.setText(balance); balanceDiamond.setText((WordUtil.isNewZh() ? "剩餘:" : "Balance") + balance);
findViewById(R.id.sub).setOnClickListener(new OnClickListener() { findViewById(R.id.sub).setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
float exp = new BigDecimal(buyExp).floatValue(); float exp = new BigDecimal(buyExp).floatValue();
if (exp > 100) { if (exp > 1) {
BigDecimal buyExpBigDecimal = new BigDecimal(buyExp).subtract(new BigDecimal("100")); BigDecimal buyExpBigDecimal = new BigDecimal(buyExp).subtract(new BigDecimal("1"));
buyExp = String.valueOf(buyExpBigDecimal.intValue()); buyExp = String.valueOf(buyExpBigDecimal.intValue());
orderLevelDiamond.setText(String.valueOf(buyExpBigDecimal.floatValue())); orderLevelDiamond.setText("00 = " + buyExp + "00");
orderLevel.setText(buyExp); orderLevel.setText(buyExp);
} }
} }
@ -84,15 +88,14 @@ public class OrderLevelPopupWindow extends CenterPopupView {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
float exp = new BigDecimal(buyExp).floatValue(); float exp = new BigDecimal(buyExp).floatValue();
if (exp < maxExp && exp < 10000) { if (exp < maxExp && (exp + 1) < 10000) {
BigDecimal buyExpBigDecimal = new BigDecimal(buyExp).add(new BigDecimal("100")); BigDecimal buyExpBigDecimal = new BigDecimal(buyExp).add(new BigDecimal("1"));
buyExp = String.valueOf(buyExpBigDecimal.intValue()); buyExp = String.valueOf(buyExpBigDecimal.intValue());
orderLevelDiamond.setText(String.valueOf(buyExpBigDecimal.floatValue())); orderLevelDiamond.setText("00 = " + buyExp + "00");
orderLevel.setText(buyExp); orderLevel.setText(buyExp);
} else if (exp >= maxExp) { } else if (exp >= maxExp) {
ToastUtil.show(WordUtil.isNewZh() ? "经验已滿" : "Experience full"); ToastUtil.show(WordUtil.isNewZh() ? "經驗超出,僅需" + maxExp + "經驗可達滿级" : "Exp exceeds.Only " + maxExp + " exp is needed to reach the max level.");
} }
} }
}); });
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.war_order_close), new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.war_order_close), new ViewClicksAntiShake.ViewClicksCallBack() {
@ -101,40 +104,58 @@ public class OrderLevelPopupWindow extends CenterPopupView {
dialog.dismiss(); dialog.dismiss();
} }
}); });
orderLevel.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
buyExp = charSequence.toString();
orderLevelDiamond.setText("00 = " + charSequence.toString() + "00");
}
@Override
public void afterTextChanged(Editable editable) {
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.buying_experience), new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.buying_experience), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override
public void onViewClicks() { public void onViewClicks() {
LiveNetManager.get(getContext()) if (Integer.parseInt(orderLevel.getText().toString()+"00") <= maxExp) {
.buyingExperiencePoint(buyExp, new HttpCallback<ResponseModel<Object>>() { LiveNetManager.get(getContext()).buyingExperiencePoint(buyExp + "00", new HttpCallback<ResponseModel<Object>>() {
@Override @Override
public void onSuccess(ResponseModel<Object> data) { public void onSuccess(ResponseModel<Object> data) {
if (orderLevelCallback != null) {
if (orderLevelCallback != null) { orderLevelCallback.onCallback(data.getData().getCode(), data.getMsg());
orderLevelCallback.onCallback(data.getData().getCode(), data.getMsg());
}
dialog.dismiss();
} }
dialog.dismiss();
}
@Override @Override
public void onError(String error) { public void onError(String error) {
if (orderLevelCallback != null) { if (orderLevelCallback != null) {
orderLevelCallback.onCallback(102, error); orderLevelCallback.onCallback(102, error);
}
dialog.dismiss();
} }
}); dialog.dismiss();
}
});
} else {
ToastUtil.show(WordUtil.isNewZh() ? "經驗超出,僅需" + maxExp + "經驗可達滿级" : "Exp exceeds.Only " + maxExp + " exp is needed to reach the max level.");
}
}
});
IMLoginManager.get(getContext()).updateUserCoin(new OnItemClickListener<JSONObject>() {
@Override
public void onItemClick(JSONObject bean, int position) {
if (bean != null) {
balance = bean.getString("coin");
balanceDiamond.setText((WordUtil.isNewZh() ? "剩餘:" : "Balance") + balance);
}
} }
}); });
IMLoginManager.get(getContext())
.updateUserCoin(new OnItemClickListener<JSONObject>() {
@Override
public void onItemClick(JSONObject bean, int position) {
if (bean != null) {
balance = bean.getString("coin");
balanceDiamond.setText(balance);
}
}
});
} }
public interface OrderLevelCallback { public interface OrderLevelCallback {

View File

@ -8,6 +8,7 @@ import android.util.Log;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.DeviceUtils;
import com.lzy.okgo.OkGo; import com.lzy.okgo.OkGo;
import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.callback.StringCallback;
import com.lzy.okgo.model.Response; import com.lzy.okgo.model.Response;
@ -28,6 +29,7 @@ import com.yunbao.common.utils.AppManager;
import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.SpUtil; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.VersionUtil; import com.yunbao.common.utils.VersionUtil;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
@ -459,6 +461,20 @@ public class CommonHttpUtil {
.params("token", CommonAppConfig.getInstance().getToken()) .params("token", CommonAppConfig.getInstance().getToken())
.params("ext", isImg ? ".jpeg" : ".mp4") .params("ext", isImg ? ".jpeg" : ".mp4")
.execute(callback); .execute(callback);
} /**
* 上传文件 获取七牛云token的接口
*/
public static void getUploadQiNiuTokenLog(HttpCallback callback,String fileName) {
String uid = CommonAppConfig.getInstance().getUid();
if(StringUtil.isEmpty(uid)){
uid="NotLogin_"+ DeviceUtils.getUniqueDeviceId();
}
HttpClient.getInstance().get("Pdluserhome.getQiNiuToken3", "Pdluserhome.getQiNiuToken3")
.params("uid",uid)
.params("token", CommonAppConfig.getInstance().getToken())
.params("file_name", fileName)
.params("ext", ".zip")
.execute(callback);
} }
// //
// //埋点唯一性 // //埋点唯一性

View File

@ -36,7 +36,6 @@ public abstract class HttpCallback extends AbsCallback<JsonBean> {
public void onSuccess(Response<JsonBean> response) { public void onSuccess(Response<JsonBean> response) {
JsonBean bean = response.body(); JsonBean bean = response.body();
String gson = new Gson().toJson(bean); String gson = new Gson().toJson(bean);
Log.e("onSuccess", gson);
if (bean != null) { if (bean != null) {
if (200 == bean.getRet()) { if (200 == bean.getRet()) {
Data data = bean.getData(); Data data = bean.getData();

View File

@ -133,15 +133,18 @@ public class HttpLoggingInterceptor implements Interceptor {
ResponseBody responseBody = clone.body(); ResponseBody responseBody = clone.body();
boolean logBody = (printLevel == Level.BODY); boolean logBody = (printLevel == Level.BODY);
boolean logHeaders = (printLevel == Level.BODY || printLevel == Level.HEADERS); boolean logHeaders = (printLevel == Level.BODY || printLevel == Level.HEADERS);
StringBuilder sb=new StringBuilder();
try { try {
log("<-- " + clone.code() + ' ' + clone.message() + ' ' + clone.request().url() + " (" + tookMs + "ms"); sb.append("<-- ").append(clone.code())
.append(' ').append(clone.message())
.append(' ').append(clone.request().url())
.append(" (").append(tookMs).append("ms\n");
if (logHeaders) { if (logHeaders) {
Headers headers = clone.headers(); Headers headers = clone.headers();
for (int i = 0, count = headers.size(); i < count; i++) { for (int i = 0, count = headers.size(); i < count; i++) {
log("\t" + headers.name(i) + ": " + headers.value(i)); sb.append("\t").append(headers.name(i)).append(": ").append(headers.value(i)).append("\n");
} }
log(" "); sb.append("\n");
if (logBody && HttpHeaders.hasBody(clone)) { if (logBody && HttpHeaders.hasBody(clone)) {
if (responseBody == null) return response; if (responseBody == null) return response;
@ -149,18 +152,19 @@ public class HttpLoggingInterceptor implements Interceptor {
byte[] bytes = IOUtils.toByteArray(responseBody.byteStream()); byte[] bytes = IOUtils.toByteArray(responseBody.byteStream());
MediaType contentType = responseBody.contentType(); MediaType contentType = responseBody.contentType();
String body = new String(bytes, getCharset(contentType)); String body = new String(bytes, getCharset(contentType));
log("\tbody:" + body); sb.append("\tbody:").append(body).append("\n");
responseBody = ResponseBody.create(responseBody.contentType(), bytes); responseBody = ResponseBody.create(responseBody.contentType(), bytes);
return response.newBuilder().body(responseBody).build(); return response.newBuilder().body(responseBody).build();
} else { } else {
log("\tbody: maybe [binary body], omitted!"); sb.append("\tbody: maybe [binary body], omitted!").append("\n");
} }
} }
} }
} catch (Exception e) { } catch (Exception e) {
OkLogger.printStackTrace(e); OkLogger.printStackTrace(e);
} finally { } finally {
log("<-- END HTTP"); sb.append("<-- END HTTP").append("\n");
log(sb.toString());
} }
return response; return response;
} }

View File

@ -57,6 +57,7 @@ import com.yunbao.common.bean.PrankGiftBean;
import com.yunbao.common.bean.PrankGiftResultBean; import com.yunbao.common.bean.PrankGiftResultBean;
import com.yunbao.common.bean.PrankHttpTurntableBean; import com.yunbao.common.bean.PrankHttpTurntableBean;
import com.yunbao.common.bean.PrankProgressBean; import com.yunbao.common.bean.PrankProgressBean;
import com.yunbao.common.bean.QiniuLog;
import com.yunbao.common.bean.QuickGiftSendGiftModel; import com.yunbao.common.bean.QuickGiftSendGiftModel;
import com.yunbao.common.bean.RandomPkUserBean; import com.yunbao.common.bean.RandomPkUserBean;
import com.yunbao.common.bean.RankPkInfoBean; import com.yunbao.common.bean.RankPkInfoBean;
@ -1212,7 +1213,7 @@ public interface PDLiveApi {
Observable<ResponseModel<GuardGetGuardOpenInfoModel>> getGuardOpenInfo(@Query("liveuid") String liveUid); Observable<ResponseModel<GuardGetGuardOpenInfoModel>> getGuardOpenInfo(@Query("liveuid") String liveUid);
@GET("/api/public/?service=Guard.openGuard") @GET("/api/public/?service=Guard.openGuard")
Observable<ResponseModel<Object>> openGuard(@Query("liveuid") String liveUid, @Query("guard_type") String guardType, @Query("price_key") String priceKey, @Query("stream") String stream); Observable<ResponseModel<Object>> openGuard(@Query("liveuid") String liveUid, @Query("guard_type") String guardType, @Query("price_key") String priceKey, @Query("stream") String stream,@Query("coupon_type") String coupon_type,@Query("coupon_id") String coupon_id);
@GET("/api/public/?service=Guard.sendMoneyLong") @GET("/api/public/?service=Guard.sendMoneyLong")
Observable<ResponseModel<Object>> sendMoneyLong(@Query("liveuid") String liveUid, @Query("gold_num") String goldNum); Observable<ResponseModel<Object>> sendMoneyLong(@Query("liveuid") String liveUid, @Query("gold_num") String goldNum);
@ -1279,4 +1280,8 @@ public interface PDLiveApi {
@Query("anchor_id")String anchor_id, @Query("anchor_id")String anchor_id,
@Query("gift_id")String gift_id @Query("gift_id")String gift_id
); );
@GET("/api/public/?service=Tx.androidQiniuLog")
Observable<ResponseModel<QiniuLog>> getPrankList(
@Query("type")String type
);
} }

View File

@ -57,6 +57,7 @@ import com.yunbao.common.bean.PrankGiftBean;
import com.yunbao.common.bean.PrankGiftResultBean; import com.yunbao.common.bean.PrankGiftResultBean;
import com.yunbao.common.bean.PrankHttpTurntableBean; import com.yunbao.common.bean.PrankHttpTurntableBean;
import com.yunbao.common.bean.PrankProgressBean; import com.yunbao.common.bean.PrankProgressBean;
import com.yunbao.common.bean.QiniuLog;
import com.yunbao.common.bean.QuickGiftSendGiftModel; import com.yunbao.common.bean.QuickGiftSendGiftModel;
import com.yunbao.common.bean.RandomPkUserBean; import com.yunbao.common.bean.RandomPkUserBean;
import com.yunbao.common.bean.RankPkInfoBean; import com.yunbao.common.bean.RankPkInfoBean;
@ -3058,9 +3059,9 @@ public class LiveNetManager {
} }
public void openGuard(String liveUid, String guardType, String priceKey, String stream, HttpCallback<String> callback) { public void openGuard(String liveUid, String guardType, String priceKey, String stream,String coupon_type,String couponId, HttpCallback<String> callback) {
API.get().pdLiveApi(mContext) API.get().pdLiveApi(mContext)
.openGuard(liveUid, guardType, priceKey, stream) .openGuard(liveUid, guardType, priceKey, stream,coupon_type,couponId)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<Object>>() { .subscribe(new Consumer<ResponseModel<Object>>() {
@ -3281,6 +3282,31 @@ public class LiveNetManager {
} }
/**
* 上报日志相关
* @param type 1为查询3为删除
* @param callback
*/
public void getLogUpdateStatus(String type, HttpCallback<QiniuLog>callback) {
API.get().pdLiveApi(mContext)
.getPrankList(type)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(listResponseModel -> {
if (callback != null) {
callback.onSuccess(listResponseModel.getData().getInfo());
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
throwable.printStackTrace();
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void updateFile(File file, HttpCallback<AvatarBean> callback) { public void updateFile(File file, HttpCallback<AvatarBean> callback) {
MultipartBody.Part uploadFile = createUploadFile(file); MultipartBody.Part uploadFile = createUploadFile(file);

View File

@ -11,6 +11,7 @@ public class UploadBean {
public static final int IMG = 0; public static final int IMG = 0;
public static final int VIDEO = 1; public static final int VIDEO = 1;
public static final int VOICE = 2; public static final int VOICE = 2;
public static final int LOG = 3;
private File mOriginFile;//要被上传的源文件 private File mOriginFile;//要被上传的源文件
private File mCompressFile;//压缩后的图片文件 private File mCompressFile;//压缩后的图片文件
private String mRemoteFileName;//上传成功后在云存储上的文件名字 private String mRemoteFileName;//上传成功后在云存储上的文件名字

View File

@ -1,5 +1,7 @@
package com.yunbao.common.upload; package com.yunbao.common.upload;
import static java.text.DateFormat.DEFAULT;
import android.content.Context; import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
@ -11,6 +13,7 @@ import com.qiniu.android.storage.UpCompletionHandler;
import com.qiniu.android.storage.UploadManager; import com.qiniu.android.storage.UploadManager;
import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
@ -18,7 +21,10 @@ import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.File; import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Locale;
import top.zibin.luban.Luban; import top.zibin.luban.Luban;
@ -52,7 +58,9 @@ public class UploadQnImpl implements UploadStrategy {
assert response != null; assert response != null;
mList.get(mIndex).setRemoteAccessUrl(response.getString("key")); mList.get(mIndex).setRemoteAccessUrl(response.getString("key"));
} catch (JSONException e) { } catch (JSONException e) {
throw new RuntimeException(e); // throw new RuntimeException(e);
L.e(e);
return;
} }
if (mList == null || mList.size() == 0) { if (mList == null || mList.size() == 0) {
if (mUploadCallback != null) { if (mUploadCallback != null) {
@ -72,6 +80,8 @@ public class UploadQnImpl implements UploadStrategy {
compressedFile.delete(); compressedFile.delete();
} }
} }
} else if (uploadBean.getType() == UploadBean.LOG) {
uploadBean.getOriginFile().delete();
} }
mIndex++; mIndex++;
if (mIndex < mList.size()) { if (mIndex < mList.size()) {
@ -90,6 +100,10 @@ public class UploadQnImpl implements UploadStrategy {
@Override @Override
public void upload(List<UploadBean> list, boolean needCompress, UploadCallback callback, boolean isImg) { public void upload(List<UploadBean> list, boolean needCompress, UploadCallback callback, boolean isImg) {
upload(list, needCompress, callback, isImg, false);
}
public void upload(List<UploadBean> list, boolean needCompress, UploadCallback callback, boolean isImg, boolean isLog) {
System.err.println("-------upload------>" + list.size()); System.err.println("-------upload------>" + list.size());
if (callback == null) { if (callback == null) {
return; return;
@ -127,7 +141,11 @@ public class UploadQnImpl implements UploadStrategy {
} }
}; };
} }
CommonHttpUtil.getUploadQiNiuToken(mGetUploadTokenCallback, isImg); if (isLog) {
CommonHttpUtil.getUploadQiNiuTokenLog(mGetUploadTokenCallback, list.get(0).getOriginFile().getName());
} else {
CommonHttpUtil.getUploadQiNiuToken(mGetUploadTokenCallback, isImg);
}
} }
@Override @Override
@ -159,8 +177,16 @@ public class UploadQnImpl implements UploadStrategy {
bean.setRemoteFileName(StringUtil.contact(StringUtil.generateFileName(), ".mp4")); bean.setRemoteFileName(StringUtil.contact(StringUtil.generateFileName(), ".mp4"));
} else if (bean.getType() == UploadBean.VOICE) { } else if (bean.getType() == UploadBean.VOICE) {
bean.setRemoteFileName(StringUtil.contact(StringUtil.generateFileName(), ".m4a")); bean.setRemoteFileName(StringUtil.contact(StringUtil.generateFileName(), ".m4a"));
} else if (bean.getType() == UploadBean.LOG) {
bean.setRemoteFileName("logs/"
+ IMLoginManager.get(mContext).getUserInfo().getId()
+ "/"
+ SimpleDateFormat.getDateInstance(DEFAULT, Locale.CHINA).format(new Date())
+ "/"
+ bean.getOriginFile().getName()
);
} }
System.err.println("-------mIndex >= bean.getType() == UploadBean.IMG------>" + bean); System.err.println("-------mIndex >= bean.getType() == " + bean.getType() + "------>" + bean);
upload(bean); upload(bean);
/*if (bean.getType() == UploadBean.IMG && mNeedCompress) { /*if (bean.getType() == UploadBean.IMG && mNeedCompress) {
System.err.println("-------UploadBean.IMG && mNeedCompress------>" + bean + "UploadBean.IMG:" + UploadBean.IMG + "__mNeedCompress" + mNeedCompress); System.err.println("-------UploadBean.IMG && mNeedCompress------>" + bean + "UploadBean.IMG:" + UploadBean.IMG + "__mNeedCompress" + mNeedCompress);

View File

@ -2,6 +2,13 @@ package com.yunbao.common.utils;
import android.util.Log; import android.util.Log;
import org.json.JSONException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import java.util.UUID;
/** /**
* Created by cxf on 2017/8/3. * Created by cxf on 2017/8/3.
*/ */
@ -24,13 +31,23 @@ public class L {
} }
} }
final static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA);
public static void e(String tag, String s) { public static void e(String tag, String s) {
if (sDeBug) { if (sDeBug) {
Log.e(tag, s); Log.e(tag, s);
} else {
String uuid = UUID.randomUUID().toString();
Log.e(tag, uuid);
LogUtils.addSafeLog(dateFormat.format(new Date()) + " [" + uuid + "|" + tag + "] " + s);
} }
} }
public static void setDeBug(boolean deBug) { public static void setDeBug(boolean deBug) {
sDeBug = deBug; sDeBug = deBug;
} }
public static void e(Exception e) {
Log.e("Exception", e.getMessage(), e);
}
} }

View File

@ -24,28 +24,25 @@ import com.lzy.okgo.request.PostRequest;
import com.lzy.okserver.OkUpload; import com.lzy.okserver.OkUpload;
import com.lzy.okserver.upload.UploadListener; import com.lzy.okserver.upload.UploadListener;
import com.lzy.okserver.upload.UploadTask; import com.lzy.okserver.upload.UploadTask;
import com.yunbao.common.BuildConfig;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.upload.UploadBean;
import com.yunbao.common.upload.UploadCallback;
import com.yunbao.common.upload.UploadQnImpl;
import java.io.BufferedOutputStream;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.nio.channels.Channels;
import java.nio.channels.FileChannel;
import java.nio.channels.WritableByteChannel;
import java.nio.file.Files; import java.nio.file.Files;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import okhttp3.Call; import okhttp3.Call;
import okhttp3.Callback; import okhttp3.Callback;
@ -149,91 +146,56 @@ public class LogUtil {
public static void shareFile(Context context) { public static void shareFile(Context context) {
try {
IMLoginModel bean = IMLoginManager.get(context).getUserInfo();
boolean isAnchor = false;
if (bean != null) {
isAnchor = bean.anchorUserType();
}
//有debug文件或主播才允许
if (!new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "pdlive.debug").exists() && !isAnchor) {
return;
}
} catch (Exception e) {
return;
}
/* if (PermissionChecker.checkCallingOrSelfPermission(context, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PERMISSION_GRANTED) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
return;
}*/
String title = "[PDLIVE]" + CommonAppConfig.getInstance().getUid() + "_"; String title = "[PDLIVE]" + CommonAppConfig.getInstance().getUid() + "_";
String today = title + SimpleDateFormat.getDateInstance(DEFAULT, Locale.CHINA).format(new Date()); String today = title + SimpleDateFormat.getDateInstance(DEFAULT, Locale.CHINA).format(new Date());
File dir = new File(context.getDir("files", Context.MODE_PRIVATE).getAbsolutePath() + File.separator); File dir = new File("/data/data/" + context.getPackageName() + File.separator);
File zip = new File(context.getDir("files", Context.MODE_PRIVATE).getAbsolutePath() + File.separator + today + ".zip"); File zip = new File(context.getDir("files", Context.MODE_PRIVATE).getAbsolutePath() + File.separator + today + ".zip");
try { try {
ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zip))); List<String> filters = getFiltersList(context.getPackageName());
FileInputStream fis = null; filters.add(context.getPackageName() + File.separator + "app_files" + File.separator + today + ".zip");
WritableByteChannel writableByteChannel = Channels.newChannel(zos); List<String> srcList = new ArrayList<>();
if (dir.listFiles() != null) { srcList.add(dir.getAbsolutePath());
for (File file : dir.listFiles()) { srcList.add(context.getExternalFilesDir("").getAbsolutePath());
if (file.getName().endsWith(".log")) { LogUtils.endSafeLog();
ZipEntry entry = new ZipEntry(file.getName()); ZipUtils.zipFolder(srcList, zip.getAbsolutePath(), filters, new Runnable() {
zos.putNextEntry(entry); @Override
fis = new FileInputStream(file); public void run() {
FileChannel channel = fis.getChannel(); if (BuildConfig.DEBUG) {
channel.transferTo(0, file.length() - 1, writableByteChannel); return;
fis.close();
} }
UploadQnImpl mUploadStrategy = new UploadQnImpl(context);
List<UploadBean> list = new ArrayList<>();
list.add(new UploadBean(zip, UploadBean.LOG));
mUploadStrategy.upload(list, false, new UploadCallback() {
@Override
public void onFinish(List<UploadBean> list, boolean success) {
if (success) {
LiveNetManager.get(context).getLogUpdateStatus("3", null);
}
LogUtils.startSafeLog(context);
}
}, false, true);
} }
} });
zos.close();
writableByteChannel.close();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (zip.exists()) { }
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 == 0) {
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();
}
}
});
} private static @NonNull List<String> getFiltersList(String packageName) {
List<String> filters = new ArrayList<>();
filters.add(packageName + File.separator + "files" + File.separator + "gif");
filters.add(packageName + File.separator + "app_textures");
filters.add(packageName + File.separator + "app_webview");
filters.add(packageName + File.separator + "code_cache");
filters.add(packageName + File.separator + "databases");
filters.add(packageName + File.separator + "cache" + File.separator + "https");
filters.add(packageName + File.separator + "cache" + File.separator + "image");
filters.add(packageName + File.separator + "cache" + File.separator + "jtechCache");
filters.add(packageName + File.separator + "cache" + File.separator + "picasso-cache");
filters.add(packageName + File.separator + "cache" + File.separator + "svga");
filters.add(packageName + File.separator + "cache" + File.separator + "WebView");
return filters;
} }
private static String TAG = "Upload"; private static String TAG = "Upload";
@ -251,7 +213,9 @@ public class LogUtil {
body.put("appVersion", CommonAppConfig.getInstance().getVersion()); body.put("appVersion", CommonAppConfig.getInstance().getVersion());
OkHttpClient client = new OkHttpClient.Builder().connectTimeout(3, TimeUnit.SECONDS).build(); 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") //无法接受文件 Request request = new Request.Builder()
.url("https://tools.yutou233.cn/public/file/request.do")//临时上报地址可接受文件
//.url("https://newht.yaoulive.com/index.php/api/error_log/report") //无法接受文件
.post(requestBody).build(); .post(requestBody).build();
client.newCall(request).enqueue(new Callback() { client.newCall(request).enqueue(new Callback() {
@Override @Override
@ -269,5 +233,32 @@ public class LogUtil {
}); });
} }
private static void openShareDialog(Context context, File zip) {
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 == 0) {
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();
}
}
} }

View File

@ -1,4 +1,4 @@
package com.shayu.phonelive.utils; package com.yunbao.common.utils;
import static java.text.DateFormat.DEFAULT; import static java.text.DateFormat.DEFAULT;
@ -17,8 +17,11 @@ import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.Locale; import java.util.Locale;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.LinkedBlockingQueue;
public class LogUtils { public class LogUtils {
private static final LinkedBlockingQueue<String> QUEUE = new LinkedBlockingQueue<>();
/** /**
* 采集所有日志 * 采集所有日志
*/ */
@ -68,7 +71,55 @@ public class LogUtils {
} }
} }
}).start(); }).start();
startSafeLog(context);
}
private static Thread safeThread;
private static boolean writerSafeLog = true;
public static void startSafeLog(Context context) {
if (safeThread != null && safeThread.isAlive()) {
return;
}
safeThread = new Thread(new Runnable() {
@Override
public void run() {
try {
String title = CommonAppConfig.getInstance().getUid() + "_";
String today = title + SimpleDateFormat.getDateInstance(DEFAULT, Locale.CHINA).format(new Date());
File saveFile = new File(context.getDir("files", Context.MODE_PRIVATE).getAbsolutePath() + File.separator + today + ".safe");
saveFile.createNewFile();
FileOutputStream os = new FileOutputStream(saveFile, true);
PrintWriter writer = new PrintWriter(os);
while (writerSafeLog) {
if (!QUEUE.isEmpty()) {
writer.append(QUEUE.poll()).write("\n");
writer.flush();
} else {
Thread.sleep(1000);
}
}
while (!QUEUE.isEmpty()){
writer.append(QUEUE.poll()).write("\n");
writer.flush();
}
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
});
safeThread.setName("safeLog");
safeThread.start();
}
public static void addSafeLog(String log) {
QUEUE.offer(log);
}
public static void endSafeLog() {
writerSafeLog = false;
} }
/** /**

View File

@ -4,8 +4,13 @@ import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.text.TextUtils; import android.text.TextUtils;
import com.alibaba.fastjson.JSONArray;
import com.google.gson.Gson;
import com.yunbao.common.CommonAppContext; import com.yunbao.common.CommonAppContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -37,9 +42,8 @@ public class SpUtil {
public static final String ANCHOR_PK_TIME = "anchorPkTime"; public static final String ANCHOR_PK_TIME = "anchorPkTime";
//播放短视频上下滑动引导页 //播放短视频上下滑动引导页
public static final String READ_VIDEO_GUIDE = "readVideoGuide"; public static final String READ_VIDEO_GUIDE = "readVideoGuide";
public static final String MESSAGE_SYS_DEL = "FIRST_DEL"; public static final String MESSAGE_SYS_DEL = "FIRST_DEL";
public static final String LIVE_GAME_NEWED_LIST = "LIVE_GAME_NEWED_LIST";
public SpUtil() { public SpUtil() {
mSharedPreferences = CommonAppContext.sInstance.getSharedPreferences("SharedPreferences", Context.MODE_PRIVATE); mSharedPreferences = CommonAppContext.sInstance.getSharedPreferences("SharedPreferences", Context.MODE_PRIVATE);
@ -56,6 +60,41 @@ public class SpUtil {
return sInstance; return sInstance;
} }
public static void setLiveGameId(String gameId) {
String gameMap = getStringValue(LIVE_GAME_NEWED_LIST);
List<String> gameNewList;
gameNewList = JSONArray.parseArray(gameMap, String.class);
L.eSw("gameMap:" + gameMap);
if (gameNewList == null) {
gameNewList = new ArrayList<>();
}
for (int i = 0; i < gameNewList.size(); i++) {
if (gameNewList.get(i).equals(gameId)) {
gameNewList.remove(i);
break;
}
}
gameNewList.add(gameId);
setStringValue(LIVE_GAME_NEWED_LIST, new Gson().toJson(gameNewList));
}
public static boolean isLiveGameNew(String gameId) {
String gameMap = getStringValue(LIVE_GAME_NEWED_LIST);
List<String> gameNewList = new ArrayList<>();
gameNewList = JSONArray.parseArray(gameMap, String.class);
if (gameNewList == null) {
gameNewList = new ArrayList<>();
}
boolean isNew = false;
for (int i = 0; i < gameNewList.size(); i++) {
if (gameNewList.get(i).equals(gameId)) {
isNew = true;
}
}
return !isNew;
}
/** /**
* 保存一个字符串 * 保存一个字符串
*/ */

View File

@ -1,10 +1,11 @@
package com.yunbao.faceunity.utils; package com.yunbao.common.utils;
import android.util.Log; import android.util.Log;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -151,16 +152,36 @@ public class ZipUtils {
* @param zipFileString 解压完成的Zip路径 * @param zipFileString 解压完成的Zip路径
* @throws Exception * @throws Exception
*/ */
public static void zipFolder(String srcFileString, String zipFileString) throws Exception { public static void zipFolder(List<String> srcFileString, String zipFileString, List<String> filters, Runnable runnable) throws Exception {
if (filters == null) {
filters = new ArrayList<>();
}
filters.add(new File(zipFileString).getAbsolutePath());
final List<String> tmp = new ArrayList<>(filters);
//创建ZIP //创建ZIP
ZipOutputStream outZip = new ZipOutputStream(new FileOutputStream(zipFileString)); ZipOutputStream outZip = new ZipOutputStream(new FileOutputStream(zipFileString));
//创建文件
File file = new File(srcFileString); new Thread(new Runnable() {
//压缩 @Override
zipFiles(file.getParent() + File.separator, file.getName(), outZip); public void run() {
//完成和关闭 try {
outZip.finish(); for (String src : srcFileString) {
outZip.close(); File file = new File(src);
//压缩
zipFiles(file.getParent() + File.separator, file.getName(), outZip, tmp);
}
//创建文件
//完成和关闭
outZip.finish();
outZip.close();
runnable.run();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
} }
/** /**
@ -171,9 +192,15 @@ public class ZipUtils {
* @param zipOutputSteam * @param zipOutputSteam
* @throws Exception * @throws Exception
*/ */
private static void zipFiles(String folderString, String fileString, ZipOutputStream zipOutputSteam) throws Exception { private static void zipFiles(String folderString, String fileString, ZipOutputStream zipOutputSteam, List<String> filters) throws Exception {
if (zipOutputSteam == null) if (zipOutputSteam == null)
return; return;
for (String filter : filters) {
if (fileString.startsWith(filter)) {
return;
}
}
System.out.println("压缩文件:" + folderString + "|" + fileString);
File file = new File(folderString + fileString); File file = new File(folderString + fileString);
if (file.isFile()) { if (file.isFile()) {
ZipEntry zipEntry = new ZipEntry(fileString); ZipEntry zipEntry = new ZipEntry(fileString);
@ -196,7 +223,7 @@ public class ZipUtils {
} }
//子文件和递归 //子文件和递归
for (int i = 0; i < fileList.length; i++) { for (int i = 0; i < fileList.length; i++) {
zipFiles(folderString, fileString + File.separator + fileList[i], zipOutputSteam); zipFiles(folderString, fileString + File.separator + fileList[i], zipOutputSteam, filters);
} }
} }
} }

View File

@ -0,0 +1,67 @@
package com.yunbao.common.views;
import android.content.Context;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.R;
import com.yunbao.common.bean.CustomSidebarChildModel;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class InteractionGamesChildBottomViewHolder extends RecyclerView.ViewHolder {
private RoundedImageView funGamePic;
private TextView funGameName;
private Context mContext;
public InteractionGamesChildBottomViewHolder(@NonNull View itemView, Context context) {
super(itemView);
this.mContext = context;
funGamePic = itemView.findViewById(R.id.fun_game_pic);
funGameName = itemView.findViewById(R.id.fun_game_name);
}
public void setData(CustomSidebarChildModel model, boolean rigts) {
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams((int)
(mContext.getResources().getDisplayMetrics().widthPixels / 4.5),
ViewGroup.LayoutParams.WRAP_CONTENT);
itemView.setLayoutParams(layoutParams);
if (rigts) {
ImgLoader.display(itemView.getContext(), model.getIcon(), funGamePic);
} else {
ImgLoader.display(itemView.getContext(), model.getResIcon(), funGamePic);
}
funGameName.setText(model.getTitle());
if (!TextUtils.isEmpty(model.getSudGameIsNew())&&TextUtils.equals(model.getSudGameIsNew(),"1")&& SpUtil.isLiveGameNew(model.getId())){
itemView.findViewById(R.id.icon_new_game).setVisibility(View.VISIBLE);
}else {
itemView.findViewById(R.id.icon_new_game).setVisibility(View.GONE);
}
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
if (interactionGamesCallBack != null) {
interactionGamesCallBack.onItemViewClicks(model, rigts);
}
}
});
}
private InteractionGamesCallBack interactionGamesCallBack;
public void setItemViewClicks(InteractionGamesCallBack callBack) {
interactionGamesCallBack = callBack;
}
public interface InteractionGamesCallBack {
void onItemViewClicks(CustomSidebarChildModel model, boolean rigts);
}
}

View File

@ -1,40 +1,48 @@
package com.yunbao.common.views; package com.yunbao.common.views;
import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.bean.CustomSidebarChildModel; import com.yunbao.common.bean.CustomSidebarChildModel;
import com.yunbao.common.event.CustomDrawerPopupEvent;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class InteractionGamesChildViewHolder extends RecyclerView.ViewHolder { public class InteractionGamesChildViewHolder extends RecyclerView.ViewHolder {
private ImageView funGamePic; private RoundedImageView funGamePic;
private TextView funGameName; private TextView funGameName;
private Context mContext;
public InteractionGamesChildViewHolder(@NonNull View itemView) { public InteractionGamesChildViewHolder(@NonNull View itemView,Context mContext) {
super(itemView); super(itemView);
this.mContext = mContext;
funGamePic = itemView.findViewById(R.id.fun_game_pic); funGamePic = itemView.findViewById(R.id.fun_game_pic);
funGameName = itemView.findViewById(R.id.fun_game_name); funGameName = itemView.findViewById(R.id.fun_game_name);
} }
public void setData(CustomSidebarChildModel model, boolean rigts) { public void setData(CustomSidebarChildModel model, boolean rigts) {
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams((int)
(mContext.getResources().getDisplayMetrics().widthPixels / 4.5),
ViewGroup.LayoutParams.WRAP_CONTENT);
itemView.setLayoutParams(layoutParams);
if (rigts) { if (rigts) {
ImgLoader.display(itemView.getContext(), model.getIcon(), funGamePic); ImgLoader.display(itemView.getContext(), model.getIcon(), funGamePic);
} else { } else {
ImgLoader.display(itemView.getContext(), model.getResIcon(), funGamePic); ImgLoader.display(itemView.getContext(), model.getResIcon(), funGamePic);
} }
funGameName.setText(model.getTitle()); funGameName.setText(model.getTitle());
if (!TextUtils.isEmpty(model.getSudGameIsNew())&&TextUtils.equals(model.getSudGameIsNew(),"1")){ if (!TextUtils.isEmpty(model.getSudGameIsNew())&&TextUtils.equals(model.getSudGameIsNew(),"1")&& SpUtil.isLiveGameNew(model.getId())){
itemView.findViewById(R.id.icon_new_game).setVisibility(View.VISIBLE); itemView.findViewById(R.id.icon_new_game).setVisibility(View.VISIBLE);
}else { }else {
itemView.findViewById(R.id.icon_new_game).setVisibility(View.GONE); itemView.findViewById(R.id.icon_new_game).setVisibility(View.GONE);
@ -45,8 +53,6 @@ public class InteractionGamesChildViewHolder extends RecyclerView.ViewHolder {
if (interactionGamesCallBack != null) { if (interactionGamesCallBack != null) {
interactionGamesCallBack.onItemViewClicks(model, rigts); interactionGamesCallBack.onItemViewClicks(model, rigts);
} }
} }
}); });
} }

View File

@ -1,6 +1,8 @@
package com.yunbao.common.views; package com.yunbao.common.views;
import android.content.Context;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@ -25,21 +27,22 @@ public class LiveNewRoleFunGamesViewHolder extends RecyclerView.ViewHolder {
private RecyclerView childList; private RecyclerView childList;
private ImageView selectMoreIcon; private ImageView selectMoreIcon;
boolean isShowMore = true; boolean isShowMore = true;
private Context mContext;
public LiveNewRoleFunGamesViewHolder(@NonNull View itemView) { public LiveNewRoleFunGamesViewHolder(@NonNull View itemView, Context context) {
super(itemView); super(itemView);
this.mContext = context;
sendGoodGift = itemView.findViewById(R.id.send_good_gift); sendGoodGift = itemView.findViewById(R.id.send_good_gift);
childList = itemView.findViewById(R.id.child_list); childList = itemView.findViewById(R.id.child_list);
selectMoreIcon = itemView.findViewById(R.id.select_more_icon); selectMoreIcon = itemView.findViewById(R.id.select_more_icon);
selectMore = itemView.findViewById(R.id.select_more); selectMore = itemView.findViewById(R.id.select_more);
funGamesAdapter = new NewRoleFunGamesAdapter(itemView.getContext(),true); funGamesAdapter = new NewRoleFunGamesAdapter(itemView.getContext(), true);
childList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.HORIZONTAL, false)); childList.setLayoutManager(new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.HORIZONTAL, false));
childList.setAdapter(funGamesAdapter); childList.setAdapter(funGamesAdapter);
} }
public void setData(CustomSidebarInfoModel model) { public void setData(CustomSidebarInfoModel model) {
List<CustomSidebarChildModel> sidebarChildModels = model.getChild(); List<CustomSidebarChildModel> sidebarChildModels = model.getChild();
itemView.findViewById(R.id.select_more_layout).setVisibility(sidebarChildModels.size() >= 8 ? View.VISIBLE : View.GONE); itemView.findViewById(R.id.select_more_layout).setVisibility(sidebarChildModels.size() >= 8 ? View.VISIBLE : View.GONE);
sendGoodGift.setText(model.getTitle()); sendGoodGift.setText(model.getTitle());

View File

@ -1,11 +1,13 @@
package com.yunbao.common.views; package com.yunbao.common.views;
import android.content.Context;
import android.view.View; import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R; import com.yunbao.common.R;
@ -21,14 +23,14 @@ public class LiveNewRoleInteractionGamesViewHolder extends RecyclerView.ViewHold
private RecyclerView childList; private RecyclerView childList;
private ImageView selectMoreIcon; private ImageView selectMoreIcon;
boolean isShowMore = true; boolean isShowMore = true;
public LiveNewRoleInteractionGamesViewHolder(@NonNull View itemView, Context context) {
public LiveNewRoleInteractionGamesViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
sendGoodGift = itemView.findViewById(R.id.send_good_gift); sendGoodGift = itemView.findViewById(R.id.send_good_gift);
childList = itemView.findViewById(R.id.child_list); childList = itemView.findViewById(R.id.child_list);
selectMoreIcon = itemView.findViewById(R.id.select_more_icon); selectMoreIcon = itemView.findViewById(R.id.select_more_icon);
funGamesAdapter = new LiveNewRoleInteractionGamesAdapter(itemView.getContext(), true); funGamesAdapter = new LiveNewRoleInteractionGamesAdapter(itemView.getContext(), true);
childList.setLayoutManager(new GridLayoutManager(itemView.getContext(), 4)); LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false);
childList.setLayoutManager(layoutManager);
childList.setAdapter(funGamesAdapter); childList.setAdapter(funGamesAdapter);
} }

View File

@ -1,10 +1,13 @@
package com.yunbao.common.views; package com.yunbao.common.views;
import android.content.Context;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R; import com.yunbao.common.R;
@ -21,19 +24,21 @@ public class LiveNewRoleRigtsInterestsViewHolder extends RecyclerView.ViewHolder
private TextView sendGoodGift; private TextView sendGoodGift;
private RecyclerView childList; private RecyclerView childList;
private boolean showRed = false; private boolean showRed = false;
public LiveNewRoleRigtsInterestsViewHolder(@NonNull View itemView,boolean showRed) { private Context mContext;
public LiveNewRoleRigtsInterestsViewHolder(@NonNull View itemView, boolean showRed,Context mContext) {
super(itemView); super(itemView);
this.mContext = mContext;
sendGoodGift = itemView.findViewById(R.id.send_good_gift); sendGoodGift = itemView.findViewById(R.id.send_good_gift);
childList = itemView.findViewById(R.id.child_list); childList = itemView.findViewById(R.id.child_list);
sendGoodGift = itemView.findViewById(R.id.send_good_gift); sendGoodGift = itemView.findViewById(R.id.send_good_gift);
childList = itemView.findViewById(R.id.child_list); childList = itemView.findViewById(R.id.child_list);
funGamesAdapter = new LiveNewRoleFunGamesAdapter(itemView.getContext(), false,showRed); funGamesAdapter = new LiveNewRoleFunGamesAdapter(itemView.getContext(), false,showRed);
childList.setLayoutManager(new GridLayoutManager(itemView.getContext(), 4)); LinearLayoutManager layoutManager = new LinearLayoutManager(itemView.getContext(), LinearLayoutManager.HORIZONTAL, false);
childList.setLayoutManager(layoutManager);
childList.setAdapter(funGamesAdapter); childList.setAdapter(funGamesAdapter);
} }
public void setData(CustomSidebarInfoModel model) { public void setData(CustomSidebarInfoModel model) {
sendGoodGift.setText(model.getTitle()); sendGoodGift.setText(model.getTitle());
funGamesAdapter.updateData(generateData()); funGamesAdapter.updateData(generateData());
} }

View File

@ -114,7 +114,7 @@ public class LiveSudGamePopup extends BottomPopupView {
gameTitle.setText(mCreateSudRoomModel.getSudGameName()); gameTitle.setText(mCreateSudRoomModel.getSudGameName());
roomName.setText(mCreateSudRoomModel.getRoomName()); roomName.setText(mCreateSudRoomModel.getRoomName());
roomNumber.setText(mCreateSudRoomModel.getSudGameRoomId()); roomNumber.setText(mCreateSudRoomModel.getSudGameRoomId());
ImgLoader.display(getContext(), mCreateSudRoomModel.getAvatar(), mAvatar); //ImgLoader.display(getContext(), mCreateSudRoomModel.getAvatar(), mAvatar);
} }
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.exit), new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.exit), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override

View File

@ -1,8 +1,10 @@
package com.yunbao.common.views; package com.yunbao.common.views;
import android.content.Context;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
@ -27,8 +29,10 @@ public class NewRoleFunGamesChildViewHolder extends RecyclerView.ViewHolder {
private View red_point; private View red_point;
private boolean showRed = false; private boolean showRed = false;
private View total_image_red_point; private View total_image_red_point;
public NewRoleFunGamesChildViewHolder(@NonNull View itemView, boolean showRed) { private Context mContext;
public NewRoleFunGamesChildViewHolder(@NonNull View itemView, boolean showRed, Context mContext) {
super(itemView); super(itemView);
this.mContext = mContext;
this.showRed = showRed; this.showRed = showRed;
funGamePic = itemView.findViewById(R.id.fun_game_pic); funGamePic = itemView.findViewById(R.id.fun_game_pic);
funGameName = itemView.findViewById(R.id.fun_game_name); funGameName = itemView.findViewById(R.id.fun_game_name);

View File

@ -27,7 +27,7 @@ public class RigtsInterestsViewHolder extends RecyclerView.ViewHolder {
sendGoodGift = itemView.findViewById(R.id.send_good_gift); sendGoodGift = itemView.findViewById(R.id.send_good_gift);
childList = itemView.findViewById(R.id.child_list); childList = itemView.findViewById(R.id.child_list);
funGamesAdapter = new FunGamesAdapter(itemView.getContext(), false); funGamesAdapter = new FunGamesAdapter(itemView.getContext(), false);
childList.setLayoutManager(new GridLayoutManager(itemView.getContext(), 3)); childList.setLayoutManager(new GridLayoutManager(itemView.getContext(), 4));
childList.setAdapter(funGamesAdapter); childList.setAdapter(funGamesAdapter);
} }

View File

@ -4,6 +4,7 @@ import android.view.View;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -25,15 +26,19 @@ public class SudGameUserListViewHolder extends RecyclerView.ViewHolder {
private FrameLayout user_layout; private FrameLayout user_layout;
private RoundedImageView sud_game_user; private RoundedImageView sud_game_user;
private LinearLayout layout; private LinearLayout layout;
private TextView userName;
private FrameLayout vacancy_sud_gameLayout;
public SudGameUserListViewHolder(@NonNull View itemView) { public SudGameUserListViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
vacancy_sud_game = itemView.findViewById(R.id.vacancy_sud_game); vacancy_sud_game = itemView.findViewById(R.id.vacancy_sud_game);
vacancy_sud_gameLayout = itemView.findViewById(R.id.vacancy_sud_gameLayout);
sud_game_user = itemView.findViewById(R.id.sud_game_user); sud_game_user = itemView.findViewById(R.id.sud_game_user);
user_layout = itemView.findViewById(R.id.user_layout); user_layout = itemView.findViewById(R.id.user_layout);
mic_status = itemView.findViewById(R.id.mic_status); mic_status = itemView.findViewById(R.id.mic_status);
layout = itemView.findViewById(R.id.layout); layout = itemView.findViewById(R.id.layout);
game_status = itemView.findViewById(R.id.game_status); game_status = itemView.findViewById(R.id.game_status);
userName= itemView.findViewById(R.id.userName);
} }
public void upData(SudGameUserModel sudGameUserModel, SudGameUserListAdapter.SudGameSmallCallBack sudGameSmallCallBack, int position) { public void upData(SudGameUserModel sudGameUserModel, SudGameUserListAdapter.SudGameSmallCallBack sudGameSmallCallBack, int position) {
@ -46,7 +51,7 @@ public class SudGameUserListViewHolder extends RecyclerView.ViewHolder {
// } // }
// }); // });
if (sudGameUserModel.isNullUser()) { if (sudGameUserModel.isNullUser()) {
vacancy_sud_game.setVisibility(View.VISIBLE); vacancy_sud_gameLayout.setVisibility(View.VISIBLE);
user_layout.setVisibility(View.GONE); user_layout.setVisibility(View.GONE);
ViewClicksAntiShake.clicksAntiShake(vacancy_sud_game, new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(vacancy_sud_game, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override
@ -55,7 +60,7 @@ public class SudGameUserListViewHolder extends RecyclerView.ViewHolder {
} }
}); });
} else { } else {
vacancy_sud_game.setVisibility(View.GONE); vacancy_sud_gameLayout.setVisibility(View.GONE);
user_layout.setVisibility(View.VISIBLE); user_layout.setVisibility(View.VISIBLE);
ImgLoader.display2(itemView.getContext(), sudGameUserModel.getAvatar(), sud_game_user); ImgLoader.display2(itemView.getContext(), sudGameUserModel.getAvatar(), sud_game_user);
if (sudGameUserModel.getMicStatus() == 2) { if (sudGameUserModel.getMicStatus() == 2) {
@ -71,6 +76,7 @@ public class SudGameUserListViewHolder extends RecyclerView.ViewHolder {
} else { } else {
game_status.setVisibility(View.GONE); game_status.setVisibility(View.GONE);
} }
userName.setText(sudGameUserModel.getUserNicename());
ViewClicksAntiShake.clicksAntiShake(user_layout, new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(user_layout, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override
public void onViewClicks() { public void onViewClicks() {

View File

@ -27,6 +27,7 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.BitmapUtil; import com.yunbao.common.utils.BitmapUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.SVGAViewUtils; import com.yunbao.common.utils.SVGAViewUtils;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -56,6 +57,8 @@ public class NobleNoticeView extends FrameLayout {
private HorizontalScrollView contextLayout; private HorizontalScrollView contextLayout;
private RelativeLayout scrollLayout; private RelativeLayout scrollLayout;
private ImageView nobleIcon; private ImageView nobleIcon;
private String anchorUid;
private String mLiveId;
public NobleNoticeView(@NonNull Context context) { public NobleNoticeView(@NonNull Context context) {
super(context); super(context);
@ -97,9 +100,11 @@ public class NobleNoticeView extends FrameLayout {
}); });
} }
public NobleNoticeView setRootView(String uHead, String userNameStr, String anchorNicknameStr, String anchorUid) { public NobleNoticeView setRootView(String uHead, String userNameStr, String anchorNicknameStr, String anchorUid,String mLiveId) {
this.uhead = uHead; this.uhead = uHead;
this.anchorNicknameStr = anchorNicknameStr.trim(); this.anchorNicknameStr = anchorNicknameStr.trim();
this.anchorUid = anchorUid;
this.mLiveId = mLiveId;
userName.setText(userNameStr); userName.setText(userNameStr);
anchorNickname.setText(anchorNicknameStr.trim()); anchorNickname.setText(anchorNicknameStr.trim());
if (TextUtils.isEmpty(anchorNicknameStr.trim())) { if (TextUtils.isEmpty(anchorNicknameStr.trim())) {
@ -112,6 +117,10 @@ public class NobleNoticeView extends FrameLayout {
findViewById(R.id.anchor_nickname).setVisibility(VISIBLE); findViewById(R.id.anchor_nickname).setVisibility(VISIBLE);
openNoble.setText(mContext.getString(R.string.open_noble)); openNoble.setText(mContext.getString(R.string.open_noble));
} }
if(anchorUid.equals(mLiveId)){
L.eSw("showBuyVipMessage:"+anchorUid+"__"+mLiveId);
gotoRoomView.setVisibility(GONE);
}
return this; return this;
} }
@ -352,13 +361,15 @@ public class NobleNoticeView extends FrameLayout {
gotoRoomView.setLayoutParams(layoutParams); gotoRoomView.setLayoutParams(layoutParams);
contextLayout.setLayoutParams(contextLayoutParams); contextLayout.setLayoutParams(contextLayoutParams);
if (!TextUtils.isEmpty(anchorNicknameStr)) { if (!TextUtils.isEmpty(anchorNicknameStr)) {
gotoRoomView.setVisibility(VISIBLE); if(mLiveId.equals(anchorUid)){
gotoRoomView.setVisibility(GONE);
}else{
gotoRoomView.setVisibility(VISIBLE);
}
findViewById(R.id.in).setVisibility(VISIBLE); findViewById(R.id.in).setVisibility(VISIBLE);
findViewById(R.id.anchor_nickname).setVisibility(VISIBLE); findViewById(R.id.anchor_nickname).setVisibility(VISIBLE);
} }
contextLayout.setVisibility(VISIBLE); contextLayout.setVisibility(VISIBLE);
}); });
} }

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="360dp" /> <corners android:radius="10dp" />
<solid android:color="#B3414141" /> <solid android:color="#B3414141" />
</shape> </shape>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:topLeftRadius="12dp" android:topRightRadius="12dp" /> <corners android:topLeftRadius="12dp" android:topRightRadius="12dp" />
<solid android:color="#201E1A" /> <solid android:color="#292929" />
</shape> </shape>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="7dp" />
<solid android:color="#B3414141" />
</shape>

View File

@ -14,7 +14,7 @@
<clip android:clipOrientation="horizontal"> <clip android:clipOrientation="horizontal">
<shape> <shape>
<corners android:radius="3dp" /> <corners android:radius="3dp" />
<solid android:color="#CE2BFF" /> <solid android:color="#936EFF" />
</shape> </shape>
</clip> </clip>
</item> </item>

View File

@ -2,6 +2,8 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#201E1A" android:background="#201E1A"
android:orientation="vertical"> android:orientation="vertical">
@ -14,17 +16,25 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
</RelativeLayout> </RelativeLayout>
<LinearLayout <LinearLayout
android:layout_width="150dp" android:layout_width="138dp"
android:layout_height="50dp" android:layout_height="38dp"
android:layout_marginStart="23dp" android:layout_marginStart="23dp"
android:layout_marginTop="48dp" android:layout_marginTop="48dp"
android:background="@drawable/bg_live_sud_game_top_new" android:background="@drawable/bg_live_sud_game_top_new"
android:gravity="start|center_vertical"> android:gravity="start|center_vertical">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:scaleType="centerCrop"
android:src="@mipmap/live_dialog_top_game_icon"
android:visibility="visible"
tools:visibility="visible"
app:riv_oval="true" />
<LinearLayout <LinearLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -69,30 +79,27 @@
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
android:layout_width="98dp" android:layout_width="88dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="end" android:layout_gravity="end"
android:layout_marginTop="49dp" android:layout_marginTop="55dp"
android:layout_marginEnd="20dp"
android:gravity="center_vertical"> android:gravity="center_vertical">
<ImageView <ImageView
android:id="@+id/sud_history" android:id="@+id/sud_history"
android:layout_width="40dp" android:layout_width="30dp"
android:layout_height="40dp" android:layout_height="30dp"
android:layout_marginEnd="14dp" android:layout_marginEnd="14dp"
android:src="@mipmap/icon_sud_history_live_new" /> android:src="@mipmap/icon_sud_history_live_new" />
<TextView <ImageView
android:id="@+id/exit" android:id="@+id/exit"
android:layout_width="40dp" android:layout_width="30dp"
android:layout_height="40dp" android:layout_height="30dp"
android:background="@drawable/bg_live_sud_game_back_new" android:background="@mipmap/bg_live_sud_game_back_new2"
android:gravity="center" android:gravity="center"
android:text="@string/video_exit"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="12sp" /> android:textSize="8sp" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
@ -131,10 +138,8 @@
android:id="@+id/game_seat" android:id="@+id/game_seat"
android:layout_width="34dp" android:layout_width="34dp"
android:layout_height="34dp" android:layout_height="34dp"
android:src="@mipmap/icon_game_seat" /> android:src="@mipmap/icon_game_seat" />
</LinearLayout> </LinearLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
@ -146,13 +151,13 @@
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="70dp" android:layout_height="50dp"
android:layout_marginTop="98dp"> android:layout_marginTop="93dp">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/user_list" android:id="@+id/user_list"
android:layout_marginStart="11dp" android:layout_marginStart="11dp"
android:layout_marginEnd="20dp" android:layout_marginEnd="12dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
</LinearLayout> </LinearLayout>

View File

@ -17,8 +17,9 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="72dp" android:layout_height="72dp"
android:background="@color/white"
android:paddingTop="24dp" android:paddingTop="24dp"
android:background="@color/white"> tools:visibility="gone">
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@ -0,0 +1,88 @@
<?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:layout_width="310dp"
android:layout_height="260dp"
android:gravity="center_horizontal"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="243dp"
android:background="@drawable/guard_buy_tips_bg">
<ImageView
android:id="@+id/btn_cancel"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="10dp"
android:layout_marginEnd="10dp"
android:src="@mipmap/icon_guard_buy_tips_close" />
<com.flyjingfish.gradienttextviewlib.GradientTextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp"
android:letterSpacing="0.1"
android:text="@string/dialog_tip"
android:textSize="22dp"
app:gradient_angle="45"
app:gradient_endColor="#F9E1AE"
app:gradient_startColor="#C28413" />
<TextView
android:id="@+id/content2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_marginStart="20dp"
android:layout_marginTop="5dp"
android:layout_marginEnd="20dp"
android:gravity="center"
android:letterSpacing="0.1"
android:text="@string/current_guard_expires"
android:textColor="#FFE0BF"
android:textSize="14dp" />
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:gravity="center"
android:layout_centerHorizontal="true"
android:layout_height="wrap_content">
<TextView
android:id="@+id/btn_cancel1"
android:layout_width="100dp"
android:gravity="center"
android:layout_height="38dp"
android:textColor="#F7F7F7"
android:textSize="15sp"
android:textStyle="bold"
android:background="@mipmap/guard_buy_tips_cancel_bg"
android:letterSpacing="0.1"
android:text="@string/live_guard_buy_coupon_tips_cancel" />
<TextView
android:layout_marginLeft="40dp"
android:id="@+id/btn_confirm"
android:layout_width="100dp"
android:gravity="center"
android:layout_height="38dp"
android:textColor="#893D0D"
android:textSize="15sp"
android:textStyle="bold"
android:background="@drawable/guard_buy_tips_sure_bg"
android:letterSpacing="0.1"
android:text="@string/live_guard_buy_coupon_tips_use" />
</LinearLayout>
</RelativeLayout>

View File

@ -3,17 +3,19 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="650dp" android:layout_height="650dp"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/bg_live_sud_list" android:background="@drawable/bg_live_sud_list"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_marginTop="14dp" android:layout_marginTop="10dp"
android:gravity="center_vertical"> android:gravity="center_vertical">
<TextView <TextView
android:id="@+id/game_title" android:id="@+id/game_title"
android:visibility="gone"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
@ -22,6 +24,79 @@
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" /> android:textStyle="bold" />
<LinearLayout
android:layout_marginLeft="10dp"
android:layout_width="121dp"
android:layout_height="39dp"
android:padding="2dp"
android:background="@drawable/dialog_live_sud_game_name_bg"
android:gravity="center_vertical">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="6dp"
android:scaleType="centerCrop"
android:src="@mipmap/live_dialog_top_game_icon"
android:visibility="visible"
tools:visibility="visible"
app:riv_oval="true" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="10dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="1dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxLines="1"
android:ellipsize="end"
android:text="@string/interactive_game_create_room_name"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/room_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxWidth="98dp"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/interactive_game_create_room_number"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/room_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<View <View
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="1dp" android:layout_height="1dp"
@ -42,18 +117,19 @@
android:src="@mipmap/icon_min_game_new" android:src="@mipmap/icon_min_game_new"
android:visibility="visible" /> android:visibility="visible" />
<TextView <ImageView
android:id="@+id/exit" android:id="@+id/exit"
android:layout_width="30dp" android:layout_width="30dp"
android:layout_marginEnd="12dp"
android:layout_height="30dp" android:layout_height="30dp"
android:background="@drawable/bg_live_sud_game_back_new2" android:background="@mipmap/bg_live_sud_game_back_new2"
android:gravity="center" android:gravity="center"
android:text="@string/video_exit"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="8sp" /> android:textSize="8sp" />
</LinearLayout> </LinearLayout>
<RelativeLayout <RelativeLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -62,74 +138,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" /> android:layout_height="match_parent" />
<LinearLayout
android:layout_width="175dp"
android:layout_height="50dp"
android:layout_marginStart="15dp"
android:layout_marginTop="16dp"
android:background="@drawable/bg_live_sud_game_top"
android:gravity="center_vertical">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginStart="6dp"
android:scaleType="centerCrop"
android:visibility="gone"
app:riv_oval="true" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="4dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/interactive_game_create_room_name"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/room_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxWidth="98dp"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/interactive_game_create_room_number"
android:textColor="@color/white"
android:textSize="12sp" />
<TextView
android:id="@+id/room_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout> </RelativeLayout>
</LinearLayout> </LinearLayout>

View File

@ -3,7 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="218dp" android:layout_height="240dp"
android:id="@+id/root"
android:layout_marginStart="17dp" android:layout_marginStart="17dp"
android:layout_marginEnd="17dp" android:layout_marginEnd="17dp"
android:background="@drawable/background_order_dialog" android:background="@drawable/background_order_dialog"
@ -39,7 +40,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="46dp" android:layout_marginStart="46dp"
android:text="Lv7" android:text="Lv7"
android:textColor="#CE2BFF" android:textColor="#2439B9"
android:textSize="14sp" /> android:textSize="14sp" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
@ -66,6 +67,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:textColor="#000" android:textColor="#000"
android:layout_marginRight="7dp"
android:textSize="12sp" android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -75,23 +77,23 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> </LinearLayout>
<TextView
android:layout_width="match_parent"
android:gravity="center"
android:layout_marginTop="10dp"
android:layout_height="wrap_content"
android:text="@string/buying_experience_point"
android:textColor="#0D21B2"
android:textSize="14sp" />
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginStart="15dp" android:layout_marginStart="15dp"
android:layout_marginTop="20dp" android:layout_marginTop="10dp"
android:layout_marginEnd="15dp" android:layout_marginEnd="15dp"
android:gravity="center"> android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/buying_experience_point"
android:textColor="#0D21B2"
android:textSize="14sp" />
<LinearLayout <LinearLayout
android:layout_width="90dp" android:layout_width="90dp"
android:layout_height="25dp" android:layout_height="25dp"
@ -103,7 +105,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_weight="1" /> android:layout_weight="1" />
<TextView <EditText
android:id="@+id/tickets_plus_minus" android:id="@+id/tickets_plus_minus"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
@ -111,6 +113,8 @@
android:background="@null" android:background="@null"
android:gravity="center" android:gravity="center"
android:imeOptions="actionSend" android:imeOptions="actionSend"
android:maxEms="4"
android:maxLength="4"
android:inputType="number" android:inputType="number"
android:singleLine="true" android:singleLine="true"
android:text="0" android:text="0"
@ -129,8 +133,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:text="100" android:text="00 = 100"
android:textColor="#0D21B2" android:textColor="#000000"
android:textSize="11sp" /> android:textSize="11sp" />
<ImageView <ImageView

View File

@ -38,7 +38,9 @@
<ImageView <ImageView
android:id="@+id/btn_close" android:id="@+id/btn_close"
android:layout_width="50dp" android:layout_width="50dp"
android:layout_marginLeft="-35dp"
android:layout_height="50dp" android:layout_height="50dp"
android:layout_toRightOf="@+id/layout"
android:paddingBottom="30dp" android:paddingBottom="30dp"
android:src="@mipmap/icon_live_close_3" /> android:src="@mipmap/icon_live_close_3" />

View File

@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:gravity="center" android:paddingEnd="7dp"
android:gravity="start"
android:orientation="vertical"> android:orientation="vertical">
<!--身份特权--> <!--身份特权-->
<RelativeLayout <RelativeLayout
android:layout_width="40dp" android:layout_width="55dp"
android:layout_height="40dp"> android:layout_height="40dp">
<!--普通工具合集--> <!--普通工具合集-->
<ImageView <ImageView
@ -27,7 +27,6 @@
android:layout_height="6dp" android:layout_height="6dp"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:background="@drawable/bg_red_point" android:background="@drawable/bg_red_point"
tools:visibility="visible" /> tools:visibility="visible" />
@ -35,10 +34,11 @@
<TextView <TextView
android:id="@+id/fun_game_name" android:id="@+id/fun_game_name"
android:layout_width="wrap_content" android:layout_width="55dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="6dp" android:layout_marginTop="6dp"
android:text="@string/guard_guard" android:text="@string/guard_guard"
android:gravity="center"
android:textColor="#9A9A9A" android:textColor="#9A9A9A"
android:textSize="10sp" /> android:textSize="10sp" />

View File

@ -39,9 +39,10 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/child_list" android:id="@+id/child_list"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="16dp" /> android:layout_marginBottom="16dp" />
<LinearLayout <LinearLayout

View File

@ -23,16 +23,13 @@
android:textColor="#F6F7FB" android:textColor="#F6F7FB"
android:textSize="14sp" /> android:textSize="14sp" />
</FrameLayout> </FrameLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/child_list" android:id="@+id/child_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginBottom="16dp" /> android:layout_marginBottom="16dp" />
<LinearLayout <LinearLayout

View File

@ -16,13 +16,12 @@
<RelativeLayout <RelativeLayout
android:layout_width="50dp" android:layout_width="50dp"
android:layout_height="50dp"> android:layout_height="50dp">
<!--普通工具合集--> <!--普通工具合集-->
<ImageView <ImageView
android:id="@+id/fun_game_pic" android:id="@+id/fun_game_pic"
android:layout_width="48dp" android:layout_width="38dp"
android:layout_height="48dp" android:layout_height="38dp"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:src="@mipmap/live_more_icon_guard" /> android:src="@mipmap/live_more_icon_guard" />
@ -63,6 +62,6 @@
android:maxLines="1" android:maxLines="1"
android:text="@string/guard_guard" android:text="@string/guard_guard"
android:textColor="#9A9A9A" android:textColor="#9A9A9A"
android:textSize="14sp" /> android:textSize="10sp" />
</LinearLayout> </LinearLayout>

View File

@ -1,17 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_width="50dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:paddingEnd="30dp"
android:clickable="true" android:clickable="true"
android:gravity="center" android:gravity="center"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:id="@+id/fun_game_pic" android:id="@+id/fun_game_pic"
android:layout_width="48dp" android:layout_width="38dp"
android:layout_height="48dp" android:layout_height="38dp"
android:src="@mipmap/live_more_icon_guard" /> android:src="@mipmap/live_more_icon_guard" />
<TextView <TextView
@ -21,6 +20,6 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:text="@string/guard_guard" android:text="@string/guard_guard"
android:textColor="#9A9A9A" android:textColor="#9A9A9A"
android:textSize="14sp" /> android:textSize="10sp" />
</LinearLayout> </LinearLayout>

View File

@ -4,63 +4,70 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="7dp" android:layout_marginEnd="7dp"
android:gravity="center" android:gravity="start"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <LinearLayout
android:layout_width="60dp" android:layout_marginTop="15dp"
android:layout_width="wrap_content"
android:orientation="vertical"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<ImageView <RelativeLayout
android:id="@+id/fun_game_pic" android:layout_width="55dp"
android:layout_width="48dp" android:layout_height="wrap_content">
android:layout_height="48dp"
android:src="@mipmap/live_more_icon_guard" />
<View <com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/red_point" android:id="@+id/fun_game_pic"
android:layout_width="10dp" android:layout_width="38dp"
android:layout_height="10dp" android:layout_height="38dp"
android:layout_gravity="end" android:layout_centerInParent="true"
android:layout_marginTop="5dp" android:layout_centerHorizontal="true"
android:layout_marginEnd="5dp" android:layout_centerVertical="true"
android:background="@drawable/bg_red_point" android:scaleType="centerCrop"
android:visibility="gone" android:src="@mipmap/live_more_icon_guard"
app:layout_constraintEnd_toEndOf="parent" android:visibility="visible"
app:layout_constraintTop_toTopOf="parent" app:riv_oval="true" />
tools:visibility="gone" />
<ImageView <View
android:id="@+id/icon_new_game" android:id="@+id/red_point"
android:layout_width="26dp" android:layout_width="10dp"
android:layout_height="13dp" android:layout_height="10dp"
android:layout_gravity="end" android:layout_gravity="end"
android:layout_alignParentEnd="true"
android:background="@drawable/bg_red_point"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
<ImageView
android:id="@+id/icon_new_game"
android:layout_width="23dp"
android:layout_height="10dp"
android:layout_gravity="end"
android:layout_alignParentEnd="true"
android:visibility="gone"
tools:visibility="visible"
android:src="@mipmap/icon_new_game" />
</RelativeLayout>
<TextView
android:id="@+id/fun_game_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:visibility="gone" android:gravity="center"
android:layout_marginEnd="5dp" android:maxLines="1"
android:src="@mipmap/icon_new_game" /> android:text="@string/guard_guard"
</FrameLayout> android:textColor="#9A9A9A"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
android:textSize="10sp" />
</LinearLayout>
<TextView
android:id="@+id/fun_game_name"
android:layout_width="match_parent"
android:gravity="center"
android:layout_marginStart="1dp"
android:layout_marginEnd="1dp"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:maxLines="1"
android:text="@string/guard_guard"
android:textColor="#9A9A9A"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
android:textSize="14sp" />
</LinearLayout> </LinearLayout>

View File

@ -2,7 +2,7 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp" android:layout_marginStart="15dp"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout

View File

@ -2,12 +2,12 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="14dp"> android:layout_marginTop="14dp">
<TextView <TextView
@ -23,5 +23,7 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/child_list" android:id="@+id/child_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp" />
</LinearLayout> </LinearLayout>

View File

@ -2,12 +2,12 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginTop="14dp"> android:layout_marginTop="14dp">
<TextView <TextView
@ -23,7 +23,10 @@
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/child_list" android:id="@+id/child_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" /> android:layout_marginTop="15dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:overScrollMode="never" />
<LinearLayout <LinearLayout
android:id="@+id/select_more_layout" android:id="@+id/select_more_layout"

View File

@ -26,6 +26,7 @@
</FrameLayout> </FrameLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/child_list" android:id="@+id/child_list"
android:layout_marginLeft="10dp"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="16dp" /> android:layout_marginBottom="16dp" />

View File

@ -3,50 +3,73 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/layout" android:id="@+id/layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="match_parent" android:layout_height="wrap_content"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="vertical"> android:orientation="vertical">
<ImageView <FrameLayout
android:id="@+id/vacancy_sud_game" android:id="@+id/vacancy_sud_gameLayout"
android:layout_width="45dp" android:layout_width="wrap_content"
android:layout_height="45dp" android:layout_height="50dp"
android:layout_marginStart="12dp" android:visibility="visible">
android:src="@mipmap/icon_vacancy_sud_game"
android:visibility="visible" /> <ImageView
android:id="@+id/vacancy_sud_game"
android:layout_width="34dp"
android:layout_height="50dp"
android:paddingBottom="5dp"
android:layout_marginStart="15dp"
android:src="@mipmap/icon_vacancy_sud_game" />
</FrameLayout>
<FrameLayout <FrameLayout
android:id="@+id/user_layout" android:id="@+id/user_layout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="60dp" android:layout_height="50dp"
android:visibility="visible"> android:visibility="visible">
<com.makeramen.roundedimageview.RoundedImageView <com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/sud_game_user" android:id="@+id/sud_game_user"
android:layout_width="45dp" android:layout_width="34dp"
android:layout_height="45dp" android:layout_height="34dp"
android:layout_gravity="center_vertical" android:layout_marginTop="5dp"
android:layout_marginStart="12dp" android:layout_marginStart="15dp"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@mipmap/icon_vacancy_sud_game" android:src="@mipmap/icon_vacancy_sud_game"
app:riv_oval="true" /> app:riv_oval="true" />
<ImageView <ImageView
android:id="@+id/mic_status" android:id="@+id/mic_status"
android:layout_width="15dp" android:layout_width="9dp"
android:layout_height="15dp" android:layout_height="9dp"
android:layout_marginStart="5dp" android:layout_marginTop="3dp"
android:layout_marginTop="5dp" android:layout_marginStart="15dp"
android:src="@mipmap/icon_game_close_wheat_mute" /> android:src="@mipmap/icon_game_close_wheat_mute" />
<ImageView <ImageView
android:id="@+id/game_status" android:id="@+id/game_status"
android:layout_width="18dp" android:layout_width="17dp"
android:layout_height="14dp" android:layout_height="11dp"
android:layout_marginStart="5dp" android:layout_marginTop="31dp"
android:layout_gravity="bottom|center_horizontal" android:layout_marginStart="8dp"
android:layout_gravity="center_horizontal"
android:src="@mipmap/icon_game_status" /> android:src="@mipmap/icon_game_status" />
<TextView
android:id="@+id/userName"
android:text="用户名"
android:layout_marginTop="40dp"
android:ellipsize="end"
android:visibility="gone"
android:maxLines="1"
android:gravity="center"
android:textColor="#333333"
android:layout_marginStart="8dp"
android:textSize="8dp"
android:layout_gravity="center_horizontal"
android:layout_width="34dp"
android:layout_height="wrap_content"/>
</FrameLayout> </FrameLayout>
</LinearLayout> </LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -1332,7 +1332,7 @@ Limited ride And limited avatar frame</string>
<string name="interactive_game_room_all">All Game</string> <string name="interactive_game_room_all">All Game</string>
<string name="interactive_game_create_room">Create a room</string> <string name="interactive_game_create_room">Create a room</string>
<string name="interactive_game_create_room_name">"Room Name: "</string> <string name="interactive_game_create_room_name">"Room Name: "</string>
<string name="interactive_game_create_room_number">Room ID:</string> <string name="interactive_game_create_room_number">ID:</string>
<string name="interactive_game_create_room_name_input">Please enter a room name</string> <string name="interactive_game_create_room_name_input">Please enter a room name</string>
<string name="interactive_game_create_game_type">Game type:</string> <string name="interactive_game_create_game_type">Game type:</string>
<string name="interactive_game_create_game_sill">Game threshold:</string> <string name="interactive_game_create_game_sill">Game threshold:</string>

View File

@ -1329,7 +1329,7 @@
<string name="interactive_game_room_all">所有遊戲</string> <string name="interactive_game_room_all">所有遊戲</string>
<string name="interactive_game_create_room">創建房間</string> <string name="interactive_game_create_room">創建房間</string>
<string name="interactive_game_create_room_name">房間名稱:</string> <string name="interactive_game_create_room_name">房間名稱:</string>
<string name="interactive_game_create_room_number">房間號</string> <string name="interactive_game_create_room_number">ID</string>
<string name="interactive_game_create_room_name_input">請輸入房間名</string> <string name="interactive_game_create_room_name_input">請輸入房間名</string>
<string name="interactive_game_create_game_type">游戲類型:</string> <string name="interactive_game_create_game_type">游戲類型:</string>
<string name="interactive_game_create_game_sill">游戲門檻:</string> <string name="interactive_game_create_game_sill">游戲門檻:</string>
@ -1501,6 +1501,8 @@
<string name="main_type_theater">短劇</string> <string name="main_type_theater">短劇</string>
<string name="prank_complete">完成*1</string> <string name="prank_complete">完成*1</string>
<string name="pking_over">主播正在PK稍後再試</string> <string name="pking_over">主播正在PK稍後再試</string>
<string name="live_guard_buy_coupon_tips_use">使用</string>
<string name="live_guard_buy_coupon_tips_cancel">不使用</string>
<string name="sub_admission_fee">*將收取門檻的10%作為門票</string> <string name="sub_admission_fee">*將收取門檻的10%作為門票</string>
</resources> </resources>

View File

@ -1328,7 +1328,7 @@
<string name="interactive_game_room_all">所有遊戲</string> <string name="interactive_game_room_all">所有遊戲</string>
<string name="interactive_game_create_room">創建房間</string> <string name="interactive_game_create_room">創建房間</string>
<string name="interactive_game_create_room_name">房間名稱:</string> <string name="interactive_game_create_room_name">房間名稱:</string>
<string name="interactive_game_create_room_number">房間號</string> <string name="interactive_game_create_room_number">ID</string>
<string name="interactive_game_create_room_name_input">請輸入房間名</string> <string name="interactive_game_create_room_name_input">請輸入房間名</string>
<string name="interactive_game_create_game_type">游戲類型:</string> <string name="interactive_game_create_game_type">游戲類型:</string>
<string name="interactive_game_create_game_sill">游戲門檻:</string> <string name="interactive_game_create_game_sill">游戲門檻:</string>
@ -1500,6 +1500,8 @@
<string name="main_type_theater">短劇</string> <string name="main_type_theater">短劇</string>
<string name="prank_complete">完成*1</string> <string name="prank_complete">完成*1</string>
<string name="pking_over">主播正在PK稍後再試</string> <string name="pking_over">主播正在PK稍後再試</string>
<string name="live_guard_buy_coupon_tips_use">使用</string>
<string name="live_guard_buy_coupon_tips_cancel">不使用</string>
<string name="sub_admission_fee">*將收取門檻的10%作為門票</string> <string name="sub_admission_fee">*將收取門檻的10%作為門票</string>
</resources> </resources>

View File

@ -1327,7 +1327,7 @@
<string name="interactive_game_room_all">所有遊戲</string> <string name="interactive_game_room_all">所有遊戲</string>
<string name="interactive_game_create_room">創建房間</string> <string name="interactive_game_create_room">創建房間</string>
<string name="interactive_game_create_room_name">房間名稱:</string> <string name="interactive_game_create_room_name">房間名稱:</string>
<string name="interactive_game_create_room_number">房間號</string> <string name="interactive_game_create_room_number">ID</string>
<string name="interactive_game_create_room_name_input">請輸入房間名</string> <string name="interactive_game_create_room_name_input">請輸入房間名</string>
<string name="interactive_game_create_game_type">游戲類型:</string> <string name="interactive_game_create_game_type">游戲類型:</string>
<string name="interactive_game_create_game_sill">游戲門檻:</string> <string name="interactive_game_create_game_sill">游戲門檻:</string>
@ -1497,6 +1497,8 @@
<string name="main_type_theater">短劇</string> <string name="main_type_theater">短劇</string>
<string name="prank_complete">完成*1</string> <string name="prank_complete">完成*1</string>
<string name="pking_over">主播正在PK稍後再試</string> <string name="pking_over">主播正在PK稍後再試</string>
<string name="live_guard_buy_coupon_tips_use">使用</string>
<string name="live_guard_buy_coupon_tips_cancel">不使用</string>
<string name="sub_admission_fee">*將收取門檻的10%作為門票</string> <string name="sub_admission_fee">*將收取門檻的10%作為門票</string>
</resources> </resources>

View File

@ -1335,7 +1335,7 @@ Limited ride And limited avatar frame</string>
<string name="interactive_game_room_all">All Game</string> <string name="interactive_game_room_all">All Game</string>
<string name="interactive_game_create_room">Create a room</string> <string name="interactive_game_create_room">Create a room</string>
<string name="interactive_game_create_room_name">"Room Name: "</string> <string name="interactive_game_create_room_name">"Room Name: "</string>
<string name="interactive_game_create_room_number">Room ID:</string> <string name="interactive_game_create_room_number">ID:</string>
<string name="interactive_game_create_room_name_input">Please enter a room name</string> <string name="interactive_game_create_room_name_input">Please enter a room name</string>
<string name="interactive_game_create_game_type">Game type:</string> <string name="interactive_game_create_game_type">Game type:</string>
<string name="interactive_game_create_game_sill">Game threshold:</string> <string name="interactive_game_create_game_sill">Game threshold:</string>
@ -1506,6 +1506,8 @@ Limited ride And limited avatar frame</string>
<string name="main_type_theater" >Theater</string> <string name="main_type_theater" >Theater</string>
<string name="pking_over">The anchor is in PK, please try again later</string> <string name="pking_over">The anchor is in PK, please try again later</string>
<string name="prank_complete">once</string> <string name="prank_complete">once</string>
<string name="live_guard_buy_coupon_tips_use">Use</string>
<string name="live_guard_buy_coupon_tips_cancel">Not use</string>
<string name="sub_admission_fee">*10% of the threshold will be charged as ticket</string> <string name="sub_admission_fee">*10% of the threshold will be charged as ticket</string>

View File

@ -4,16 +4,16 @@ ext {
buildToolsVersion: "29.0.2", buildToolsVersion: "29.0.2",
minSdkVersion : 21, minSdkVersion : 21,
targetSdkVersion : 33, targetSdkVersion : 33,
versionCode : 678, versionCode : 690,
versionName : "6.7.0" versionName : "6.7.1"
] ]
manifestPlaceholders = [ manifestPlaceholders = [
// //
// serverHost : "https://napi.yaoulive.com",
serverHost : "https://napi.yaoulive.com", serverHost : "https://napi.yaoulive.com",
//
testServerHost : "https://ceshi.yaoulive.com",
buildTime : new Date().format("MM-dd HH:mm", TimeZone.getTimeZone("GMT+8")), buildTime : new Date().format("MM-dd HH:mm", TimeZone.getTimeZone("GMT+8")),
testServerHost : "https://ceshi.yaoulive.com",
// //

View File

@ -23,8 +23,7 @@ android.enableJetifier=true
systemProp.http.proxyHost=127.0.0.1 systemProp.http.proxyHost=127.0.0.1
systemProp.https.proxyHost=127.0.0.1 systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=7890 systemProp.https.proxyPort=10809
systemProp.http.proxyPort=7890 systemProp.http.proxyPort=10809
#android.enableR8.fullMode=true #android.enableR8.fullMode=true

View File

@ -1 +1 @@
apply plugin: 'com.android.library' apply plugin: 'img-optimizer' apply plugin: 'kotlin-android' apply from: "../package_config.gradle" android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false packagingOptions { pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/armeabi-v7a/libyuvutils.so" pickFirst "lib/armeabi/libyuvtools.so" pickFirst "lib/arm64-v8a/libyuvtools.so" pickFirst "lib/armeabi-v7a/libyuvtools.so" exclude "lib/arm64-v8a/libmmcv_api_handgesture.so" exclude "lib/arm64-v8a/libmmcv_api_express.so" exclude "lib/arm64-v8a/libMediaEncoder.so" exclude "lib/arm64-v8a/libarcore_sdk_c.so" exclude "lib/arm64-v8a/libmediadecoder.so" exclude "lib/arm64-v8a/libMediaMuxer.so" exclude "lib/arm64-v8a/libarcore_sdk_jni.so" exclude "lib/arm64-v8a/libMediaUtils.so" exclude "lib/arm64-v8a/libcosmosffmpeg.so" } defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode versionName rootProject.ext.android.versionName manifestPlaceholders = rootProject.ext.manifestPlaceholders ndk { abiFilters "armeabi-v7a", "arm64-v8a","x86","x86_64" } javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()] } } } aaptOptions { cruncherEnabled = false useNewCruncher = false } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } kotlinOptions { allWarningsAsErrors = true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } repositories { flatDir { dirs 'libs', '../libs' } mavenCentral() } dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.0' implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) implementation (name:'../libs/beautysdk-202202241203',ext:'aar') implementation (name:'../libs/svgaplayer-release-v1.2.1',ext:'aar') //socket.io implementation('io.socket:socket.io-client:1.0.0') { exclude group: 'org.json', module: 'json' } //common api project(path:':lib_faceunity')//声网-新娱美颜 api project(path:':FaceUnity')//融云-新娱美颜 api project(path:':common')//公共库 api project(':Share')//分享 annotationProcessor rootProject.ext.dependencies["arouter-compiler"] //工具 api rootProject.ext.dependencies["blank-utilcode"] implementation 'com.eightbitlab:blurview:1.6.6' implementation 'com.google.code.gson:gson:2.8.6' implementation "com.getkeepsafe.relinker:relinker:1.4.4" } apply plugin: 'com.android.library' apply plugin: 'img-optimizer' apply plugin: 'kotlin-android' apply from: "../package_config.gradle" android { compileSdkVersion rootProject.ext.android.compileSdkVersion buildToolsVersion rootProject.ext.android.buildToolsVersion aaptOptions.cruncherEnabled = false aaptOptions.useNewCruncher = false packagingOptions { pickFirst "lib/armeabi/libyuvutils.so" pickFirst "lib/arm64-v8a/libyuvutils.so" pickFirst "lib/armeabi-v7a/libyuvutils.so" pickFirst "lib/armeabi/libyuvtools.so" pickFirst "lib/arm64-v8a/libyuvtools.so" pickFirst "lib/armeabi-v7a/libyuvtools.so" exclude "lib/arm64-v8a/libmmcv_api_handgesture.so" exclude "lib/arm64-v8a/libmmcv_api_express.so" exclude "lib/arm64-v8a/libMediaEncoder.so" exclude "lib/arm64-v8a/libarcore_sdk_c.so" exclude "lib/arm64-v8a/libmediadecoder.so" exclude "lib/arm64-v8a/libMediaMuxer.so" exclude "lib/arm64-v8a/libarcore_sdk_jni.so" exclude "lib/arm64-v8a/libMediaUtils.so" exclude "lib/arm64-v8a/libcosmosffmpeg.so" } defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode versionName rootProject.ext.android.versionName manifestPlaceholders = rootProject.ext.manifestPlaceholders ndk { abiFilters "armeabi-v7a", "arm64-v8a","x86","x86_64" } javaCompileOptions { annotationProcessorOptions { arguments = [AROUTER_MODULE_NAME: project.getName()] } } } aaptOptions { cruncherEnabled = false useNewCruncher = false } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } kotlinOptions { allWarningsAsErrors = true } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } repositories { flatDir { dirs 'libs', '../libs' } mavenCentral() } dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.0.0' implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar']) implementation (name:'../libs/beautysdk-202202241203',ext:'aar') implementation (name:'../libs/svgaplayer-release-v1.2.1',ext:'aar') //socket.io implementation('io.socket:socket.io-client:1.0.0') { exclude group: 'org.json', module: 'json' } //common api project(path:':lib_faceunity')//声网-新娱美颜 api project(path:':FaceUnity')//融云-新娱美颜 api project(path:':common')//公共库 api project(':Share')//分享 annotationProcessor rootProject.ext.dependencies["arouter-compiler"] //工具 implementation 'com.eightbitlab:blurview:1.6.6' implementation 'com.google.code.gson:gson:2.8.6' implementation "com.getkeepsafe.relinker:relinker:1.4.4" }

View File

@ -103,6 +103,7 @@ import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager; import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.ProcessResultUtil; import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;

View File

@ -458,7 +458,7 @@ public class SudRyGameActivity extends AbsActivity implements GameRyMicManager.M
// 设置游戏安全操作区域 // 设置游戏安全操作区域
GameViewInfoModel.GameViewRectModel gameViewRectModel = new GameViewInfoModel.GameViewRectModel(); GameViewInfoModel.GameViewRectModel gameViewRectModel = new GameViewInfoModel.GameViewRectModel();
gameViewRectModel.left = 0; gameViewRectModel.left = 0;
gameViewRectModel.top = DpUtil.dp2px(155); gameViewRectModel.top = DpUtil.dp2px(180);
gameViewRectModel.right = 0; gameViewRectModel.right = 0;
gameViewRectModel.bottom = DpUtil.dp2px(155); gameViewRectModel.bottom = DpUtil.dp2px(155);
gameViewModel.gameViewRectModel = gameViewRectModel; gameViewModel.gameViewRectModel = gameViewRectModel;

View File

@ -509,7 +509,7 @@ public class SudSwGameActivity extends AbsActivity implements GameSwMicManager.M
// 设置游戏安全操作区域 // 设置游戏安全操作区域
GameViewInfoModel.GameViewRectModel gameViewRectModel = new GameViewInfoModel.GameViewRectModel(); GameViewInfoModel.GameViewRectModel gameViewRectModel = new GameViewInfoModel.GameViewRectModel();
gameViewRectModel.left = 0; gameViewRectModel.left = 0;
gameViewRectModel.top = DpUtil.dp2px(155); gameViewRectModel.top = DpUtil.dp2px(180); //游戏安全区域
gameViewRectModel.right = 0; gameViewRectModel.right = 0;
gameViewRectModel.bottom = DpUtil.dp2px(155); gameViewRectModel.bottom = DpUtil.dp2px(155);
gameViewModel.gameViewRectModel = gameViewRectModel; gameViewModel.gameViewRectModel = gameViewRectModel;

View File

@ -41,7 +41,9 @@ import com.yunbao.common.bean.GuardUserInfoModel;
import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.custom.LiveGuardScalePageTransformer; import com.yunbao.common.custom.LiveGuardScalePageTransformer;
import com.yunbao.common.dialog.AbsDialogPopupWindow; import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.dialog.GuardBuyCouponTipsDialog;
import com.yunbao.common.dialog.GuardBuyTipsDialog; import com.yunbao.common.dialog.GuardBuyTipsDialog;
import com.yunbao.common.dialog.GuardBuyTipsNewDialog;
import com.yunbao.common.dialog.GuardUpgradePopup; import com.yunbao.common.dialog.GuardUpgradePopup;
import com.yunbao.common.dialog.LiveBuyGuardSelectPopup; import com.yunbao.common.dialog.LiveBuyGuardSelectPopup;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
@ -247,6 +249,9 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
: WordUtil.getNewString(R.string.open_the_god_guard)); : WordUtil.getNewString(R.string.open_the_god_guard));
} }
guardPriceModel = price.get(0); guardPriceModel = price.get(0);
discountPrice.setTag("1");
discount.setTag(guardPriceModel.getCouponId());
if (TextUtils.isEmpty(guardPriceModel.getDiscountPrice())) { if (TextUtils.isEmpty(guardPriceModel.getDiscountPrice())) {
discountPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice())); discountPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
originalPrice.setVisibility(GONE); originalPrice.setVisibility(GONE);
@ -308,6 +313,8 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
@Override @Override
public void onLiveBuyGuardSelectListener(GuardPriceModel model) { public void onLiveBuyGuardSelectListener(GuardPriceModel model) {
guardPriceModel = model; guardPriceModel = model;
discountPrice.setTag(String.valueOf(guardPriceModel.getPriceKey()));
discount.setTag(guardPriceModel.getCouponId());
if (TextUtils.isEmpty(guardPriceModel.getDiscountPrice())) { if (TextUtils.isEmpty(guardPriceModel.getDiscountPrice())) {
discountPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice())); discountPrice.setText(String.valueOf(guardPriceModel.getOriginalPrice()));
originalPrice.setVisibility(GONE); originalPrice.setVisibility(GONE);
@ -340,204 +347,27 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
ViewClicksAntiShake.clicksAntiShake(openTheGuard, new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(openTheGuard, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override
public void onViewClicks() { public void onViewClicks() {
if (TextUtils.equals(userInfo.getIsOpen(), "1")) { if (TextUtils.equals(mGuardUserInfoModel.getIsOpen(), "1") &&
GuardBuyTipsDialog dataTipModel.getGuardType() < mGuardUserInfoModel.getGuardType()) {
.showBuyOrRenewDialog(mContext, //开通比当前低级的的守护
discountPrice.getText().toString(), GuardBuyTipsNewDialog.showBuyOrRenewDialog(mContext);
dataTipModel.getGuardName(), dataTipModel.isOpen(), }else{
mGuardUserInfoModel, dataTipModel.getGuardType(), new DialogUitl.SimpleCallback2() { //判断是否选择的是一个月
@Override if(discountPrice.getTag().equals("1")&&!discount.getTag().toString().equals("0")){
public void onCancelClick() { GuardBuyCouponTipsDialog.showBuyOrRenewDialog(mContext, WordUtil.isNewZh() ? guardPriceModel.getCouponDiscount() : guardPriceModel.getCouponDiscountEn(), guardPriceModel.getCouponDiscountPrice(), dataTipModel.getGuardName(), new DialogUitl.SimpleCallback3() {
dismiss(); @Override
} public void onConfirmClick(Dialog dialog) {
bugGurd(true);
}
@Override @Override
public void onConfirmClick(Dialog dialog, String content) { public void onCancel() {
bugGurd(false);
LiveNetManager.get(activity) }
.openGuard(mLiveUid, });
String.valueOf(dataTipModel.getGuardType()), }else{
String.valueOf(guardPriceModel.getPriceKey()), mStream, new HttpCallback<String>() { bugGurd(false);
@Override
public void onSuccess(String data) {
if (TextUtils.equals(data, "22")) {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.charge))
.setContent(mContext.getString(R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveBuyGuardDialog.this.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
} else {
IMLoginManager.get(mContext).setGuardType(dataTipModel.getGuardType());
ToastUtil.show(data);
dismiss();
if (dataTipModel.getGuardType() == 3) {
new XPopup.Builder(mContext)
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true
.asCustom(new DragonSendsMoneyPopup(mContext, mLiveUid))
.show();
}
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
} else {
if (userInfo.getGuardType() > dataTipModel.getGuardType()) {
String name = "星之守護";
switch (userInfo.getGuardType()) {
case 1:
name = WordUtil.isNewZh() ? "星之守護" : "star guardian";
break;
case 2:
name = WordUtil.isNewZh() ? "王之守護" : "king guardian";
break;
case 3:
name = WordUtil.isNewZh() ? "神之守護" : "god guardian";
break;
}
StringBuffer buffer = new StringBuffer();
if (WordUtil.isNewZh()) {
buffer.append("您的【")
.append(name).append("】已過期\n").append("開通相同或更高等級守護將會保留您的守護等級").append("開通低等級守護將重新計算您的守護等級");
} else {
buffer.append("Your [")
.append(name).append("] has expired").append("active the same or higher level of guardian will retain your guardian level").append("active lower level guardian will recalculate your guardian level");
}
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
null,
buffer.toString(), false,
null, -200, new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
discountPrice.getText().toString(),
dataTipModel.getGuardName(), dataTipModel.isOpen(),
mGuardUserInfoModel, dataTipModel.getGuardType(), new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
dismiss();
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveNetManager.get(activity)
.openGuard(mLiveUid,
String.valueOf(dataTipModel.getGuardType()),
String.valueOf(guardPriceModel.getPriceKey()), mStream, new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
if (TextUtils.equals(data, "22")) {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.charge))
.setContent(mContext.getString(R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveBuyGuardDialog.this.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
} else {
IMLoginManager.get(mContext).setGuardType(dataTipModel.getGuardType());
ToastUtil.show(data);
dismiss();
if (dataTipModel.getGuardType() == 3) {
new XPopup.Builder(mContext)
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true
.asCustom(new DragonSendsMoneyPopup(mContext, mLiveUid))
.show();
}
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
}
});
}else {
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
discountPrice.getText().toString(),
dataTipModel.getGuardName(), dataTipModel.isOpen(),
mGuardUserInfoModel, dataTipModel.getGuardType(), new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
dismiss();
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveNetManager.get(activity)
.openGuard(mLiveUid,
String.valueOf(dataTipModel.getGuardType()),
String.valueOf(guardPriceModel.getPriceKey()), mStream, new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
if (TextUtils.equals(data, "22")) {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.charge))
.setContent(mContext.getString(R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveBuyGuardDialog.this.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
} else {
IMLoginManager.get(mContext).setGuardType(dataTipModel.getGuardType());
ToastUtil.show(data);
dismiss();
if (dataTipModel.getGuardType() == 3) {
new XPopup.Builder(mContext)
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true
.asCustom(new DragonSendsMoneyPopup(mContext, mLiveUid))
.show();
}
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
} }
} }
switch (dataTipModel.getGuardType()) { switch (dataTipModel.getGuardType()) {
case 1: case 1:
@ -605,6 +435,208 @@ public class LiveBuyGuardDialog extends AbsDialogPopupWindow {
} }
private void bugGurd(boolean isCoupon) {
if (TextUtils.equals(userInfo.getIsOpen(), "1")) {
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
isCoupon?guardPriceModel.getCouponDiscountPrice():discountPrice.getText().toString(),
dataTipModel.getGuardName(), dataTipModel.isOpen(),
mGuardUserInfoModel, dataTipModel.getGuardType(), new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
dismiss();
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveNetManager.get(activity)
.openGuard(mLiveUid,
String.valueOf(dataTipModel.getGuardType()),
String.valueOf(guardPriceModel.getPriceKey()), mStream,isCoupon?"1":"0",discount.getTag().toString(), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
if (TextUtils.equals(data, "22")) {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.charge))
.setContent(mContext.getString(R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveBuyGuardDialog.this.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
} else {
IMLoginManager.get(mContext).setGuardType(dataTipModel.getGuardType());
ToastUtil.show(data);
dismiss();
if (dataTipModel.getGuardType() == 3) {
new XPopup.Builder(mContext)
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true
.asCustom(new DragonSendsMoneyPopup(mContext, mLiveUid))
.show();
}
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
} else {
if (userInfo.getGuardType() > dataTipModel.getGuardType()) {
String name = "星之守護";
switch (userInfo.getGuardType()) {
case 1:
name = WordUtil.isNewZh() ? "星之守護" : "star guardian";
break;
case 2:
name = WordUtil.isNewZh() ? "王之守護" : "king guardian";
break;
case 3:
name = WordUtil.isNewZh() ? "神之守護" : "god guardian";
break;
}
StringBuffer buffer = new StringBuffer();
if (WordUtil.isNewZh()) {
buffer.append("您的【")
.append(name).append("】已過期\n").append("開通相同或更高等級守護將會保留您的守護等級").append("開通低等級守護將重新計算您的守護等級");
} else {
buffer.append("Your [")
.append(name).append("] has expired").append("active the same or higher level of guardian will retain your guardian level").append("active lower level guardian will recalculate your guardian level");
}
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
null,
buffer.toString(), false,
null, -200, new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
isCoupon?guardPriceModel.getCouponDiscountPrice():discountPrice.getText().toString(),
dataTipModel.getGuardName(), dataTipModel.isOpen(),
mGuardUserInfoModel, dataTipModel.getGuardType(), new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
dismiss();
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveNetManager.get(activity)
.openGuard(mLiveUid,
String.valueOf(dataTipModel.getGuardType()),
String.valueOf(guardPriceModel.getPriceKey()), mStream,isCoupon?"1":"0",discount.getTag().toString(), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
if (TextUtils.equals(data, "22")) {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.charge))
.setContent(mContext.getString(R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveBuyGuardDialog.this.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
} else {
IMLoginManager.get(mContext).setGuardType(dataTipModel.getGuardType());
ToastUtil.show(data);
dismiss();
if (dataTipModel.getGuardType() == 3) {
new XPopup.Builder(mContext)
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true
.asCustom(new DragonSendsMoneyPopup(mContext, mLiveUid))
.show();
}
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
}
});
}else {
GuardBuyTipsDialog
.showBuyOrRenewDialog(mContext,
isCoupon?guardPriceModel.getCouponDiscountPrice():discountPrice.getText().toString(),
dataTipModel.getGuardName(), dataTipModel.isOpen(),
mGuardUserInfoModel, dataTipModel.getGuardType(), new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
dismiss();
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveNetManager.get(activity)
.openGuard(mLiveUid,
String.valueOf(dataTipModel.getGuardType()),
String.valueOf(guardPriceModel.getPriceKey()), mStream,isCoupon?"1":"0",discount.getTag().toString(), new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
if (TextUtils.equals(data, "22")) {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.charge))
.setContent(mContext.getString(R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveBuyGuardDialog.this.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
} else {
IMLoginManager.get(mContext).setGuardType(dataTipModel.getGuardType());
ToastUtil.show(data);
dismiss();
if (dataTipModel.getGuardType() == 3) {
new XPopup.Builder(mContext)
.dismissOnTouchOutside(false) // 点击外部是否关闭弹窗默认为true
.asCustom(new DragonSendsMoneyPopup(mContext, mLiveUid))
.show();
}
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
});
}
}
}
private void closeAnimSudGameListEvent(View view) { private void closeAnimSudGameListEvent(View view) {
ObjectAnimator animator = ObjectAnimator.ofFloat(view, "rotation", -90f, 0f); ObjectAnimator animator = ObjectAnimator.ofFloat(view, "rotation", -90f, 0f);
animator.setDuration(animDuration); animator.setDuration(animDuration);

View File

@ -66,7 +66,7 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
ImageView userSex, tagKing; ImageView userSex, tagKing;
RoundedImageView guardIcon; RoundedImageView guardIcon;
SVGAImageView giftSvga; SVGAImageView giftSvga;
TextView btnGuardOpen; ImageView btnGuardOpen;
TextView guard_hint; TextView guard_hint;
TextView guard_time; TextView guard_time;
View guardian_task_view; View guardian_task_view;
@ -117,11 +117,11 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
IMLoginManager.get(mContext).setGuardRedPoint(); IMLoginManager.get(mContext).setGuardRedPoint();
if (WordUtil.isNewZh()) { if (WordUtil.isNewZh()) {
ViewGroup.LayoutParams layoutParams = guardian_task_view.getLayoutParams(); ViewGroup.LayoutParams layoutParams = guardian_task_view.getLayoutParams();
layoutParams.width = DpUtil.dp2px(50); layoutParams.width = DpUtil.dp2px(48);
guardian_task_view.setLayoutParams(layoutParams); guardian_task_view.setLayoutParams(layoutParams);
} else { } else {
ViewGroup.LayoutParams layoutParams = guardian_task_view.getLayoutParams(); ViewGroup.LayoutParams layoutParams = guardian_task_view.getLayoutParams();
layoutParams.width = DpUtil.dp2px(78); layoutParams.width = DpUtil.dp2px(68);
guardian_task_view.setLayoutParams(layoutParams); guardian_task_view.setLayoutParams(layoutParams);
} }
@ -203,18 +203,18 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
if (TextUtils.equals(data.getIsOpen(), "0")) { if (TextUtils.equals(data.getIsOpen(), "0")) {
guardianTask.setVisibility(GONE); guardianTask.setVisibility(GONE);
myGraudGrade.setVisibility(GONE); myGraudGrade.setVisibility(GONE);
btnGuardOpen.setText(WordUtil.isNewZh() ? "開通守護" : "Open Guard"); btnGuardOpen.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_first_icon));
guard_hint.setText(WordUtil.isNewZh() ? "快為您喜歡的主播開通守護吧!" : "Turn on the guard for your favorite anchor!"); guard_hint.setText(WordUtil.isNewZh() ? "快為您喜歡的主播開通守護吧!" : "Turn on the guard for your favorite anchor!");
} else { } else {
if (data.getGuardType() == 0) { if (data.getGuardType() == 0) {
guardianTask.setVisibility(GONE); guardianTask.setVisibility(GONE);
myGraudGrade.setVisibility(GONE); myGraudGrade.setVisibility(GONE);
btnGuardOpen.setText(WordUtil.isNewZh() ? "開通守護" : "Open Guard"); btnGuardOpen.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_first_icon));
guard_hint.setText(WordUtil.isNewZh() ? "快為您喜歡的主播開通守護吧!" : "Turn on the guard for your favorite anchor!"); guard_hint.setText(WordUtil.isNewZh() ? "快為您喜歡的主播開通守護吧!" : "Turn on the guard for your favorite anchor!");
} else { } else {
guardianTask.setVisibility(VISIBLE); guardianTask.setVisibility(VISIBLE);
myGraudGrade.setVisibility(VISIBLE); myGraudGrade.setVisibility(VISIBLE);
btnGuardOpen.setText(WordUtil.isNewZh() ? "續費守護" : "Renewal"); btnGuardOpen.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_icon));
StringBuffer stringBuffer = new StringBuffer(); StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append(WordUtil.isNewZh() ? "您是當前主播的" : "You are the "); stringBuffer.append(WordUtil.isNewZh() ? "您是當前主播的" : "You are the ");
switch (data.getGuardType()) { switch (data.getGuardType()) {
@ -260,7 +260,7 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
ToastUtil.show(error); ToastUtil.show(error);
guardianTask.setVisibility(GONE); guardianTask.setVisibility(GONE);
myGraudGrade.setVisibility(GONE); myGraudGrade.setVisibility(GONE);
btnGuardOpen.setText(WordUtil.isNewZh() ? "開通守護" : "Open Guard"); btnGuardOpen.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_first_icon));
} }
}); });
LiveNetManager.get(getContext()) LiveNetManager.get(getContext())
@ -347,7 +347,7 @@ public class LiveGuardDialog extends AbsDialogPopupWindow {
guardLevel.setText(String.valueOf(guardUserModel.getGuardLevel())); guardLevel.setText(String.valueOf(guardUserModel.getGuardLevel()));
ImgLoader.display(mContext, guardUserModel.getAvatar(), guardIcon); ImgLoader.display(mContext, guardUserModel.getAvatar(), guardIcon);
giftSvga.setImageResource(R.mipmap.guardian_img_wings_p); giftSvga.setImageResource(R.mipmap.guardian_img_wings);
if (TextUtils.equals(guardUserModel.getGuardLevelCard(), "0")) { if (TextUtils.equals(guardUserModel.getGuardLevelCard(), "0")) {
switch (guardUserModel.getGuardType()) { switch (guardUserModel.getGuardType()) {
case 1: case 1:

View File

@ -1,6 +1,5 @@
package com.yunbao.live.dialog; package com.yunbao.live.dialog;
import android.app.Dialog;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.view.Gravity; import android.view.Gravity;
@ -24,14 +23,10 @@ import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter; import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.custom.CommonRefreshView; import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.dialog.AbsDialogFragment; import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.dialog.GuardBuyTipsDialog;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil; import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.CommonIconUtil; import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.ToastUtils;
import com.yunbao.live.R; import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.adapter.GuardAdapter; import com.yunbao.live.adapter.GuardAdapter;
@ -48,10 +43,10 @@ import java.util.List;
* 2024/02/22 * 2024/02/22
*/ */
public class LiveNewGuardDialogFragment extends AbsDialogFragment implements View.OnClickListener { public class LiveNewGuardDialogFragment extends AbsDialogFragment implements View.OnClickListener {
private ImageView guardIcon, userSex, userLevel; private ImageView guardIcon, userSex,mBtnBuy, userLevel;
private ConstraintLayout mRootLayout; private ConstraintLayout mRootLayout;
private CommonRefreshView mRefreshView; private CommonRefreshView mRefreshView;
private TextView mBtnBuy, userName, userGuard, tip1, tip2; private TextView userName, userGuard, tip1, tip2;
private SVGAImageView giftSvga; private SVGAImageView giftSvga;
private LinearLayout userLayout; private LinearLayout userLayout;
@ -117,7 +112,7 @@ public class LiveNewGuardDialogFragment extends AbsDialogFragment implements Vie
relativeLayout = mRootView.findViewById(R.id.guard_relativeLayout); relativeLayout = mRootView.findViewById(R.id.guard_relativeLayout);
mBtnBuy.setOnClickListener(this); mBtnBuy.setOnClickListener(this);
mBtnBuy.setEnabled(true); mBtnBuy.setEnabled(true);
mBtnBuy.setText(R.string.guard_buy_2); mBtnBuy.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_first_icon));
initView(); initView();
} }
@ -222,13 +217,13 @@ public class LiveNewGuardDialogFragment extends AbsDialogFragment implements Vie
tip1.setText(R.string.guard_tip_0); tip1.setText(R.string.guard_tip_0);
} else if (guardType == Constants.GUARD_TYPE_DAY) { } else if (guardType == Constants.GUARD_TYPE_DAY) {
tip1.setText(mContext.getString(R.string.guard_tip_day) + mLiveGuardInfo.getMyGuardEndTime()); tip1.setText(mContext.getString(R.string.guard_tip_day) + mLiveGuardInfo.getMyGuardEndTime());
mBtnBuy.setText(R.string.guard_buy_3); mBtnBuy.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_icon));
} else if (guardType == Constants.GUARD_TYPE_MONTH) { } else if (guardType == Constants.GUARD_TYPE_MONTH) {
tip1.setText(mContext.getString(R.string.guard_tip_1) + mLiveGuardInfo.getMyGuardEndTime()); tip1.setText(mContext.getString(R.string.guard_tip_1) + mLiveGuardInfo.getMyGuardEndTime());
mBtnBuy.setText(R.string.guard_buy_3); mBtnBuy.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_icon));
} else if (guardType == Constants.GUARD_TYPE_YEAR) { } else if (guardType == Constants.GUARD_TYPE_YEAR) {
tip1.setText(mContext.getString(R.string.guard_tip_2) + mLiveGuardInfo.getMyGuardEndTime()); tip1.setText(mContext.getString(R.string.guard_tip_2) + mLiveGuardInfo.getMyGuardEndTime());
mBtnBuy.setText(R.string.guard_buy_3); mBtnBuy.setImageDrawable(getResources().getDrawable(R.mipmap.guard_btn_buy_icon));
} }
} }
} }

View File

@ -153,6 +153,8 @@ public class LiveGiftAnimPresenter {
private ObjectAnimator mGifGiftTipShowAnimatorBuyVip; private ObjectAnimator mGifGiftTipShowAnimatorBuyVip;
private ObjectAnimator mGifGiftTipHideAnimatorBuyVip; private ObjectAnimator mGifGiftTipHideAnimatorBuyVip;
private ObjectAnimator mGifGiftTipShowAnimatorfull_sud_layout_name;
private LiveGiftViewHolder[] mLiveGiftViewHolders; private LiveGiftViewHolder[] mLiveGiftViewHolders;
private ConcurrentLinkedQueue<LiveReceiveGiftBean> mQueue; private ConcurrentLinkedQueue<LiveReceiveGiftBean> mQueue;
@ -276,6 +278,7 @@ public class LiveGiftAnimPresenter {
mFrameImageView = (FrameImageView) v.findViewById(R.id.all_frame_img); mFrameImageView = (FrameImageView) v.findViewById(R.id.all_frame_img);
full_service_notice_new = v.findViewById(R.id.full_service_notice_new); full_service_notice_new = v.findViewById(R.id.full_service_notice_new);
full_live_room_game_view = v.findViewById(R.id.sud_layout_name);
full_service_notice_new_bg = v.findViewById(R.id.full_service_notice_new_bg); full_service_notice_new_bg = v.findViewById(R.id.full_service_notice_new_bg);
full_service_notice_new_icon = v.findViewById(R.id.full_service_notice_new_icon); full_service_notice_new_icon = v.findViewById(R.id.full_service_notice_new_icon);
full_service_notice_new_text = v.findViewById(R.id.full_service_notice_new_text); full_service_notice_new_text = v.findViewById(R.id.full_service_notice_new_text);
@ -622,6 +625,15 @@ public class LiveGiftAnimPresenter {
}); });
} }
public void startGiftTipAnimatormSud(){
mDp500 = DpUtil.dp2px(-300);
mGifGiftTipShowAnimatorfull_sud_layout_name = ObjectAnimator.ofFloat(full_live_room_game_view, "translationX", mDp500, 0);
mGifGiftTipShowAnimatorfull_sud_layout_name.setDuration(600);
mGifGiftTipShowAnimatorfull_sud_layout_name.setInterpolator(new LinearInterpolator());
mGifGiftTipShowAnimatorfull_sud_layout_name.start();
}
private void setGitTipAnimatormGifGiftTipShowAnimatorfull_service_notice_new() { private void setGitTipAnimatormGifGiftTipShowAnimatorfull_service_notice_new() {
mDp500 = DpUtil.dp2px(500); mDp500 = DpUtil.dp2px(500);
mGifGiftTipShowAnimatorfull_service_notice_new = ObjectAnimator.ofFloat(full_service_notice_new, "translationX", mDp500, 0); mGifGiftTipShowAnimatorfull_service_notice_new = ObjectAnimator.ofFloat(full_service_notice_new, "translationX", mDp500, 0);
@ -656,6 +668,9 @@ public class LiveGiftAnimPresenter {
} }
/** /**
* 釋放全局通知 * 釋放全局通知
*/ */
@ -1071,8 +1086,13 @@ public class LiveGiftAnimPresenter {
mGifGiftTipGroupAllServer.setAlpha(1f); mGifGiftTipGroupAllServer.setAlpha(1f);
mGifGiftTipGroupAllServer.setVisibility(View.VISIBLE); mGifGiftTipGroupAllServer.setVisibility(View.VISIBLE);
textRender.render(mContext, mGifGiftTipAllServer, mTempGifGiftBean.getGiftIcon(), mTempGifGiftBean.getUserNiceName(), mAncherName, mTempGifGiftBean.getGiftName(), 1, mWindowManager, ""); textRender.render(mContext, mGifGiftTipAllServer, mTempGifGiftBean.getGiftIcon(), mTempGifGiftBean.getUserNiceName(), mAncherName, mTempGifGiftBean.getGiftName(), 1, mWindowManager, "");
mIvLook.setVisibility(View.VISIBLE); if(CommonAppConfig.getInstance().getUid().equals(mLiveUid)){
mIvLook.setVisibility(View.GONE);
}else{
mIvLook.setVisibility(View.VISIBLE);
}
mIvLook.setTag(bean); mIvLook.setTag(bean);
mIvLook.setVisibility(mLiveUid.equals(bean.getUid())?View.GONE:View.VISIBLE);
mGifGiftTipShowAnimatorAllServer.start(); mGifGiftTipShowAnimatorAllServer.start();
} }
@ -1116,7 +1136,11 @@ public class LiveGiftAnimPresenter {
break; break;
} }
mIvLook.setText(R.string.participate_in); mIvLook.setText(R.string.participate_in);
mIvLook.setVisibility(View.VISIBLE); if(CommonAppConfig.getInstance().getUid().equals(mLiveUid)){
mIvLook.setVisibility(View.GONE);
}else{
mIvLook.setVisibility(View.VISIBLE);
}
superNotice.setBackgroundResource(R.mipmap.icon_blind_box_headlines); superNotice.setBackgroundResource(R.mipmap.icon_blind_box_headlines);
textRender.blindBoxText(mContext, mGifGiftTipAllServer, serverNotifyEvent); textRender.blindBoxText(mContext, mGifGiftTipAllServer, serverNotifyEvent);
} }
@ -1160,6 +1184,7 @@ public class LiveGiftAnimPresenter {
AllServerNotifyFFGGGDJANEvent notifyFFGGGDJANEvent; AllServerNotifyFFGGGDJANEvent notifyFFGGGDJANEvent;
View iv_look_full_service_notice_new3; View iv_look_full_service_notice_new3;
ImageView iv_look_full_service_notice_new2; ImageView iv_look_full_service_notice_new2;
View full_live_room_game_view;
public void showAllServerNotifyFFGGGD(AllServerNotifyFFGGGDJANEvent event, boolean showB) { public void showAllServerNotifyFFGGGD(AllServerNotifyFFGGGDJANEvent event, boolean showB) {
if (TextUtils.isEmpty(event.getBackgroundImage())) return; if (TextUtils.isEmpty(event.getBackgroundImage())) return;
@ -1206,10 +1231,10 @@ public class LiveGiftAnimPresenter {
int unameSize = textMsg.length(); int unameSize = textMsg.length();
builder.setSpan(new ForegroundColorSpan(Color.parseColor(dto.getColour())), unameIndexOf, unameIndexOf + unameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setSpan(new ForegroundColorSpan(Color.parseColor(dto.getColour())), unameIndexOf, unameIndexOf + unameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
} }
if (!showB) { if (!showB ||CommonAppConfig.getInstance().getUid().equals(mLiveUid)) {
iv_look_full_service_notice_new3.setVisibility(View.GONE); iv_look_full_service_notice_new3.setVisibility(View.GONE);
} else { } else {
if (TextUtils.equals(event.getJumpType(), "0")) { if (TextUtils.equals(event.getJumpType(), "0")||CommonAppConfig.getInstance().getUid().equals(mLiveUid)) {
iv_look_full_service_notice_new3.setVisibility(View.GONE); iv_look_full_service_notice_new3.setVisibility(View.GONE);
} else { } else {
iv_look_full_service_notice_new3.setVisibility(View.VISIBLE); iv_look_full_service_notice_new3.setVisibility(View.VISIBLE);
@ -1299,8 +1324,12 @@ public class LiveGiftAnimPresenter {
if (!TextUtils.isEmpty(event.getIsOnlookers()) && TextUtils.equals("0", event.getIsOnlookers())) { if (!TextUtils.isEmpty(event.getIsOnlookers()) && TextUtils.equals("0", event.getIsOnlookers())) {
mIvLookBuyGuardNew.setVisibility(View.GONE); mIvLookBuyGuardNew.setVisibility(View.GONE);
} else { } else {
mIvLookBuyGuardNew.setVisibility(View.VISIBLE); if(event.getLiveuid().equals(mLiveUid)||CommonAppConfig.getInstance().getUid().equals(mLiveUid)){
mIvLookBuyGuardNew.setText(WordUtil.isNewZh() ? "圍觀" : "Views"); mIvLookBuyGuardNew.setVisibility(View.GONE);
}else{
mIvLookBuyGuardNew.setVisibility(View.VISIBLE);
mIvLookBuyGuardNew.setText(WordUtil.isNewZh() ? "圍觀" : "Views");
}
} }
mGifGiftTipShowAnimatorBuyGuardNew.start(); mGifGiftTipShowAnimatorBuyGuardNew.start();
@ -1365,6 +1394,7 @@ public class LiveGiftAnimPresenter {
//购买守护 全服通知 //购买守护 全服通知
public void showBuyGuardGiftAnim(LiveReceiveGiftBean bean) { public void showBuyGuardGiftAnim(LiveReceiveGiftBean bean) {
mIvLookBuyGuard.setVisibility(mLiveUid.equals(bean.getUid())?View.GONE:View.VISIBLE);
if (bean.ismTypeBuyGuard()) { if (bean.ismTypeBuyGuard()) {
mTempGifGiftBean = bean; mTempGifGiftBean = bean;
if (mShowAllServer) { if (mShowAllServer) {
@ -1502,6 +1532,8 @@ public class LiveGiftAnimPresenter {
iv_look_buy_vip.setVisibility(View.GONE); iv_look_buy_vip.setVisibility(View.GONE);
} }
iv_look_buy_vip.setVisibility(mLiveUid.equals(bean.getUid())?View.GONE:View.VISIBLE);
mGifGiftTipBuyVip.setSelected(false); mGifGiftTipBuyVip.setSelected(false);
if (!"0".equals(bean.getmLiveUId())) { if (!"0".equals(bean.getmLiveUId())) {

View File

@ -714,7 +714,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
} }
private TextView sud_text_name; private TextView sud_text_name;
private LinearLayout sud_layout_name; private RelativeLayout sud_layout_name;
private TextView sud_join;
private ImageView iconSudClose;
private Handler sudNameHandler = new Handler(); private Handler sudNameHandler = new Handler();
private Runnable sudNameRunnable = new Runnable() { private Runnable sudNameRunnable = new Runnable() {
@Override @Override
@ -727,9 +729,9 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
public void setSudName(String sudName, SudGameDateModel sudGameDateModel) { public void setSudName(String sudName, SudGameDateModel sudGameDateModel) {
sud_text_name = (TextView) findViewById(R.id.sud_text_name); sud_text_name = (TextView) findViewById(R.id.sud_text_name);
sud_layout_name = (LinearLayout) findViewById(R.id.sud_layout_name); sud_layout_name = (RelativeLayout) findViewById(R.id.sud_layout_name);
sud_text_name.setText(WordUtil.isNewZh() ? String.format("主播创建了【%s】房间快来与主播同玩~", sudName) : String.format("The anchor has created a 【%s】 room. Come and play with the anchor~", sudName)); iconSudClose = (ImageView) findViewById(R.id.iconSudClose);
sud_layout_name.setVisibility(View.VISIBLE); //sud_layout_name.setVisibility(View.VISIBLE);
ViewClicksAntiShake.clicksAntiShake(sud_layout_name, new ViewClicksAntiShake.ViewClicksCallBack() { ViewClicksAntiShake.clicksAntiShake(sud_layout_name, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override @Override
public void onViewClicks() { public void onViewClicks() {
@ -748,8 +750,34 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
sud_layout_name.setVisibility(View.GONE); sud_layout_name.setVisibility(View.GONE);
} }
}); });
ViewClicksAntiShake.clicksAntiShake(iconSudClose, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
sud_layout_name.setVisibility(View.GONE);
}
});
sudNameHandler.removeCallbacks(sudNameRunnable); sudNameHandler.removeCallbacks(sudNameRunnable);
sudNameHandler.postDelayed(sudNameRunnable, 10000); sudNameHandler.postDelayed(sudNameRunnable, 10000);
sud_layout_name.post(new Runnable() {
@Override
public void run() {
RelativeLayout.LayoutParams params1 = (RelativeLayout.LayoutParams) sud_layout_name.getLayoutParams();
params1.width = mChatRecyclerView.getWidth()-DpUtil.dp2px(85);
sud_layout_name.setLayoutParams(params1);
}
});
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
sud_text_name.setText(WordUtil.isNewZh() ? String.format("主播创建了【%s】房间快来与主播同玩~", sudName) : String.format("The anchor created a 【%s】 room", sudName));
sud_layout_name.setVisibility(View.VISIBLE);
mLiveGiftAnimPresenter = new LiveGiftAnimPresenter(mContext, mContentView, mGifImageView, mSVGAImageView, mLiveGiftPrizePoolContainer, windowManager);
mLiveGiftAnimPresenter.startGiftTipAnimatormSud();
}
},2000);
} }
private View sudGameMin; private View sudGameMin;
@ -2073,12 +2101,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
redPacket.setVisibility(View.GONE); redPacket.setVisibility(View.GONE);
if (dragonImmediateParticipation.getVisibility() == View.VISIBLE) { if (dragonImmediateParticipation.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
dragonImmediateParticipation.setLayoutParams(layoutParams); dragonImmediateParticipation.setLayoutParams(layoutParams);
} }
if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE) { if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
dragonImmediateParticipationTime.setLayoutParams(layoutParams); dragonImmediateParticipationTime.setLayoutParams(layoutParams);
} }
anchorTimeHandler.removeCallbacks(anchorTimeRunnable); anchorTimeHandler.removeCallbacks(anchorTimeRunnable);
@ -2108,22 +2136,22 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
redPacket.setVisibility(View.VISIBLE); redPacket.setVisibility(View.VISIBLE);
if (dragonImmediateParticipation.getVisibility() == View.VISIBLE) { if (dragonImmediateParticipation.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(190); layoutParams.topMargin = DpUtil.dp2px(240);
dragonImmediateParticipation.setLayoutParams(layoutParams); dragonImmediateParticipation.setLayoutParams(layoutParams);
} }
if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE && mContext instanceof LiveRyAnchorActivity||mContext instanceof LiveSwAnchorActivity) { if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE && mContext instanceof LiveRyAnchorActivity||mContext instanceof LiveSwAnchorActivity) {
RelativeLayout.LayoutParams layoutParamsredPacket = (RelativeLayout.LayoutParams) redPacket.getLayoutParams(); RelativeLayout.LayoutParams layoutParamsredPacket = (RelativeLayout.LayoutParams) redPacket.getLayoutParams();
layoutParamsredPacket.topMargin = DpUtil.dp2px(110); layoutParamsredPacket.topMargin = DpUtil.dp2px(160);
redPacket.setLayoutParams(layoutParamsredPacket); redPacket.setLayoutParams(layoutParamsredPacket);
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipationTime.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipationTime.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(190); layoutParams.topMargin = DpUtil.dp2px(240);
dragonImmediateParticipationTime.setLayoutParams(layoutParams); dragonImmediateParticipationTime.setLayoutParams(layoutParams);
} }
if (mContext instanceof LiveRyAnchorActivity || mContext instanceof LiveSwAnchorActivity) { if (mContext instanceof LiveRyAnchorActivity || mContext instanceof LiveSwAnchorActivity) {
if (dragonImmediateParticipationTime.getVisibility() == View.GONE) { if (dragonImmediateParticipationTime.getVisibility() == View.GONE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) redPacket.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) redPacket.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
redPacket.setLayoutParams(layoutParams); redPacket.setLayoutParams(layoutParams);
} }
} }
@ -2189,12 +2217,12 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
redPacket.setVisibility(View.GONE); redPacket.setVisibility(View.GONE);
if (dragonImmediateParticipation.getVisibility() == View.VISIBLE) { if (dragonImmediateParticipation.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
dragonImmediateParticipation.setLayoutParams(layoutParams); dragonImmediateParticipation.setLayoutParams(layoutParams);
} }
if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE) { if (dragonImmediateParticipationTime.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipationTime.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipationTime.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
dragonImmediateParticipationTime.setLayoutParams(layoutParams); dragonImmediateParticipationTime.setLayoutParams(layoutParams);
} }
} }
@ -3528,11 +3556,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
dragonImmediateParticipationTime.setVisibility(View.VISIBLE); dragonImmediateParticipationTime.setVisibility(View.VISIBLE);
if (redPacket.getVisibility() == View.VISIBLE) { if (redPacket.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(190); layoutParams.topMargin = DpUtil.dp2px(240);
dragonImmediateParticipationTime.setLayoutParams(layoutParams); dragonImmediateParticipationTime.setLayoutParams(layoutParams);
} else { } else {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
dragonImmediateParticipationTime.setLayoutParams(layoutParams); dragonImmediateParticipationTime.setLayoutParams(layoutParams);
} }
String s1 = StringUtil.getDurationText(sendMoneyTime * 1000); String s1 = StringUtil.getDurationText(sendMoneyTime * 1000);
@ -3542,11 +3570,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
dragonImmediateParticipation.setVisibility(View.VISIBLE); dragonImmediateParticipation.setVisibility(View.VISIBLE);
if (redPacket.getVisibility() == View.VISIBLE) { if (redPacket.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(190); layoutParams.topMargin = DpUtil.dp2px(240);
dragonImmediateParticipation.setLayoutParams(layoutParams); dragonImmediateParticipation.setLayoutParams(layoutParams);
} else { } else {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
dragonImmediateParticipation.setLayoutParams(layoutParams); dragonImmediateParticipation.setLayoutParams(layoutParams);
} }
} }
@ -3562,7 +3590,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
dragonImmediateParticipationTime.setLayoutParams(layoutParams); dragonImmediateParticipationTime.setLayoutParams(layoutParams);
} else { } else {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(110); layoutParams.topMargin = DpUtil.dp2px(160);
dragonImmediateParticipationTime.setLayoutParams(layoutParams); dragonImmediateParticipationTime.setLayoutParams(layoutParams);
} }
} else { } else {
@ -3601,7 +3629,7 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
dragonImmediateParticipation.setVisibility(View.VISIBLE); dragonImmediateParticipation.setVisibility(View.VISIBLE);
if (redPacket.getVisibility() == View.VISIBLE) { if (redPacket.getVisibility() == View.VISIBLE) {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
layoutParams.topMargin = DpUtil.dp2px(190); layoutParams.topMargin = DpUtil.dp2px(240);
dragonImmediateParticipation.setLayoutParams(layoutParams); dragonImmediateParticipation.setLayoutParams(layoutParams);
} else { } else {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams(); RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) dragonImmediateParticipation.getLayoutParams();
@ -4366,29 +4394,30 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
* @param bean * @param bean
*/ */
public void showBuyVipMessage(LiveReceiveGiftBean bean) { public void showBuyVipMessage(LiveReceiveGiftBean bean) {
L.eSw("showBuyVipMessage:"+bean.getRoomnum()+"__"+mLiveUid);
noble.setVisibility(View.VISIBLE); noble.setVisibility(View.VISIBLE);
switch (bean.getNobilityid()) { switch (bean.getNobilityid()) {
case "1": case "1":
noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.BARON).setCallBack(() -> gotoLive(bean.getRoomnum())); noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.BARON).setCallBack(() -> gotoLive(bean.getRoomnum()));
break; break;
case "2": case "2":
noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.VISCOUNT).setCallBack(() -> gotoLive(bean.getRoomnum())); noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.VISCOUNT).setCallBack(() -> gotoLive(bean.getRoomnum()));
break; break;
case "3": case "3":
noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.MARQUIS).setCallBack(() -> gotoLive(bean.getRoomnum())); noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.MARQUIS).setCallBack(() -> gotoLive(bean.getRoomnum()));
break; break;
case "4": case "4":
noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.DUKE).setCallBack(() -> gotoLive(bean.getRoomnum())); noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.DUKE).setCallBack(() -> gotoLive(bean.getRoomnum()));
break; break;
case "5": case "5":
noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.KING).setCallBack(() -> gotoLive(bean.getRoomnum())); noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.KING).setCallBack(() -> gotoLive(bean.getRoomnum()));
break; break;
case "6": case "6":
noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum())); noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum()));
break; break;
case "7": case "7":
noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum()).setRoleType(NobleNoticeView.RoleType.BETTER_EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum())); noble.setRootView(bean.getUhead(), bean.getUname(), bean.getAncherName(), bean.getRoomnum(),mLiveUid).setRoleType(NobleNoticeView.RoleType.BETTER_EMPEROR).setCallBack(() -> gotoLive(bean.getRoomnum()));
break; break;
} }
} }

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="8dp"/>
<solid android:color="#FFFFFF"/>
</shape>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="74dp" android:height="23dp">
<shape android:layout_width="match_parent" android:layout_height="wrap_content" android:shape="rectangle">
<gradient android:angle="180" android:centerColor="#ffe782ff" android:endColor="#ffff9c9c" android:startColor="#ff9e96ff" android:type="linear" android:useLevel="true" />
<corners android:radius="12dp" />
</shape>
</item>
</selector>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="102dp" android:height="34dp">
<shape android:shape="rectangle">
<gradient android:type="linear"
android:useLevel="true"
android:startColor="#5BD6FF"
android:endColor="#6DA0FF"
android:angle="90" />
<corners android:radius="21dp" />
</shape>
</item>
</selector>

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

View File

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="45"
android:endColor="#3B217D"
android:startColor="#181F3B" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp" />
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 600 KiB

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="-45"
android:centerColor="#090522"
android:endColor="#0E1633"
android:startColor="#2C1661" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="12dp"
android:topRightRadius="12dp" />
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="45"
android:centerColor="#220A3C"
android:endColor="#0E1633"
android:startColor="#0E1633" />
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="12dp"
android:topRightRadius="12dp" />
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@ -9,7 +9,7 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="59dp" android:layout_marginTop="59dp"
android:layout_marginBottom="71dp" android:layout_marginBottom="71dp"
android:background="@drawable/background_live_guard"> android:background="@drawable/guard_buy_top_bg">
<RelativeLayout <RelativeLayout
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -82,7 +82,6 @@
<FrameLayout <FrameLayout
android:id="@+id/guardian_task" android:id="@+id/guardian_task"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="14dp" android:layout_marginStart="14dp"
@ -96,12 +95,13 @@
android:textColor="#E8C7F9" android:textColor="#E8C7F9"
android:textSize="12sp" /> android:textSize="12sp" />
<View <ImageView
android:id="@+id/guardian_task_view" android:id="@+id/guardian_task_view"
android:layout_width="50dp" android:layout_width="48dp"
android:layout_height="1dp" android:layout_height="20dp"
android:layout_gravity="bottom|center_horizontal" android:layout_marginTop="6dp"
android:background="#E8C7F9" /> android:src="@drawable/live_dialog_top_guardian_tasks_bg"
/>
</FrameLayout> </FrameLayout>
@ -121,11 +121,6 @@
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="12sp" /> android:textSize="12sp" />
<View
android:layout_width="60dp"
android:layout_height="1dp"
android:layout_gravity="bottom"
android:background="@color/white" />
</FrameLayout> </FrameLayout>
<FrameLayout <FrameLayout
@ -134,7 +129,7 @@
android:layout_marginStart="7dp" android:layout_marginStart="7dp"
android:layout_marginTop="96dp" android:layout_marginTop="96dp"
android:layout_marginEnd="7dp" android:layout_marginEnd="7dp"
android:background="@drawable/background_live_guard2"> android:background="@drawable/guard_buy_center_bg">
<com.yunbao.common.custom.CommonRefreshView <com.yunbao.common.custom.CommonRefreshView
@ -174,9 +169,8 @@
android:id="@+id/guard_imageView" android:id="@+id/guard_imageView"
android:layout_width="58dp" android:layout_width="58dp"
android:layout_height="58dp" android:layout_height="58dp"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_centerVertical="true" android:layout_marginTop="20dp"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@mipmap/guardian_img_wings" android:src="@mipmap/guardian_img_wings"
android:visibility="visible" android:visibility="visible"
@ -197,7 +191,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="71dp" android:layout_height="71dp"
android:layout_gravity="bottom" android:layout_gravity="bottom"
android:background="@drawable/background_live_guard3"> android:background="@drawable/guard_buy_bottom_bg">
<LinearLayout <LinearLayout
android:layout_width="0dp" android:layout_width="0dp"
@ -232,18 +226,18 @@
android:textSize="11sp" /> android:textSize="11sp" />
</LinearLayout> </LinearLayout>
<ImageView
<TextView
android:id="@+id/btn_guard_open" android:id="@+id/btn_guard_open"
android:layout_width="124dp" android:layout_width="101dp"
android:layout_height="42dp" android:layout_height="36dp"
android:layout_gravity="center_vertical|end" android:layout_gravity="center_vertical"
android:layout_marginEnd="16dp" android:layout_marginEnd="15dp"
android:background="@mipmap/btn_guard_open" android:background="@mipmap/guard_btn_buy_icon"
android:enabled="false"
android:gravity="center" android:gravity="center"
android:text="續費守護" android:singleLine="true"
android:text="@string/guard_buy_2"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="15sp" android:textSize="14sp" />
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
</FrameLayout> </FrameLayout>

View File

@ -17,6 +17,36 @@
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"> app:layout_constraintStart_toStartOf="parent">
<ImageView
android:layout_width="50dp"
android:layout_height="20dp"
android:src="@drawable/live_dialog_top_guardian_tasks_bg"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="23.5dp"
tools:layout_editor_absoluteY="26dp" />
<TextView
android:id="@+id/guardian_tasks"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/live_dialog_top_guardian_tasks"
android:textColor="#E8B9FF"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="20dp"
tools:layout_editor_absoluteY="15dp" />
<TextView
android:id="@+id/guardian_tasks_my_rank"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的等級 >"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="@color/white"
android:layout_marginRight="20dp"
android:layout_alignParentEnd="true"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteY="15dp" />
<LinearLayout <LinearLayout
android:id="@+id/guard_linearLayout" android:id="@+id/guard_linearLayout"
@ -125,13 +155,13 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:text=""
android:ellipsize="marquee" android:ellipsize="marquee"
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever" android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true" android:scrollHorizontally="true"
android:singleLine="true" android:singleLine="true"
android:text=""
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="11sp" /> android:textSize="11sp" />
@ -143,30 +173,29 @@
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:drawablePadding="4dp" android:drawablePadding="4dp"
android:text="456"
android:ellipsize="marquee" android:ellipsize="marquee"
android:focusable="true" android:focusable="true"
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever" android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true" android:scrollHorizontally="true"
android:singleLine="true" android:singleLine="true"
android:text="456"
android:textColor="#A281FD" android:textColor="#A281FD"
android:textSize="11sp" android:textSize="11sp"
android:visibility="gone" /> android:visibility="gone" />
</LinearLayout> </LinearLayout>
<ImageView
<TextView
android:id="@+id/guard_btn_buy" android:id="@+id/guard_btn_buy"
android:layout_width="110dp" android:layout_width="101dp"
android:layout_height="30dp" android:layout_height="36dp"
android:singleLine="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_marginEnd="15dp" android:layout_marginEnd="15dp"
android:background="@drawable/bg_guard_btn_buy" android:background="@mipmap/guard_btn_buy_icon"
android:enabled="false" android:enabled="false"
android:gravity="center" android:gravity="center"
android:singleLine="true"
android:text="@string/guard_buy_2" android:text="@string/guard_buy_2"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="14sp" /> android:textSize="14sp" />
@ -195,7 +224,7 @@
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@mipmap/guardian_img_wings" android:src="@mipmap/guardian_img_wings"
android:visibility="visible" android:visibility="visible"
app:riv_oval="true" /> app:riv_oval="true" />
@ -204,7 +233,7 @@
android:id="@+id/gift_svga" android:id="@+id/gift_svga"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:src="@mipmap/guardian_img_wings" android:src="@mipmap/guardian_img_wings"
android:visibility="visible" android:visibility="visible"
app:autoPlay="true" /> app:autoPlay="true" />

View File

@ -515,7 +515,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginEnd="150dp" android:layout_marginEnd="144dp"
android:layout_marginBottom="-2dp" android:layout_marginBottom="-2dp"
android:text="99" android:text="99"
android:textColor="#FFB403" android:textColor="#FFB403"

View File

@ -745,8 +745,9 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="12dp" android:layout_marginStart="12dp"
android:layout_marginTop="100dp" android:layout_marginTop="160dp"
android:visibility="gone" /> android:visibility="gone"
tools:visibility="visible"/>
<FrameLayout <FrameLayout
android:id="@+id/btn_prize_pool_level" android:id="@+id/btn_prize_pool_level"
@ -1158,6 +1159,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="51dp" android:layout_height="51dp"
android:translationX="500dp" android:translationX="500dp"
tools:visibility="visible"
android:visibility="invisible"> android:visibility="invisible">
<LinearLayout <LinearLayout
@ -1283,8 +1285,8 @@
android:id="@+id/iv_look_full_service_notice_new3" android:id="@+id/iv_look_full_service_notice_new3"
android:layout_width="56dp" android:layout_width="56dp"
android:layout_height="30dp" android:layout_height="30dp"
android:layout_marginBottom="1dp" android:layout_marginEnd="5dp"
android:layout_marginEnd="5dp"> android:layout_marginBottom="1dp">
<ImageView <ImageView
android:id="@+id/iv_look_full_service_notice_new2" android:id="@+id/iv_look_full_service_notice_new2"
@ -1297,10 +1299,10 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:clickable="true" android:clickable="true"
tools:text="btn"
tools:textColor="@color/white"
android:gravity="center" android:gravity="center"
android:textSize="12sp" /> android:textSize="12sp"
tools:text="btn"
tools:textColor="@color/white" />
</FrameLayout> </FrameLayout>
@ -1515,10 +1517,11 @@
<RelativeLayout <RelativeLayout
android:id="@+id/lt_pk_line" android:id="@+id/lt_pk_line"
android:layout_width="match_parent" android:layout_width="match_parent"
tools:visibility="visible"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/live_top" android:layout_marginTop="@dimen/live_top"
android:visibility="gone"> android:visibility="gone"
tools:visibility="visible">
<TextView <TextView
android:id="@+id/pk_rank_red_val" android:id="@+id/pk_rank_red_val"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -1557,8 +1560,8 @@
<LinearLayout <LinearLayout
android:id="@+id/pk_red_layout" android:id="@+id/pk_red_layout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_alignParentBottom="true" android:layout_height="wrap_content"
android:layout_height="wrap_content"> android:layout_alignParentBottom="true">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
@ -2390,29 +2393,28 @@
<!--整蛊进度列表--> <!--整蛊进度列表-->
<include <include
android:id="@+id/prank_group" android:id="@+id/prank_group"
layout="@layout/view_prank_group"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible" tools:visibility="visible" />
layout="@layout/view_prank_group"/>
<pl.droidsonroids.gif.GifImageView <pl.droidsonroids.gif.GifImageView
android:id="@+id/prank_small_icon" android:id="@+id/prank_small_icon"
android:layout_gravity="end"
android:visibility="gone"
android:layout_width="23dp" android:layout_width="23dp"
android:layout_height="33dp" android:layout_height="33dp"
android:layout_gravity="end"
android:layout_marginBottom="5dp" android:layout_marginBottom="5dp"
/> android:visibility="gone" />
<ImageView <ImageView
android:id="@+id/prank_group_turntable_icon" android:id="@+id/prank_group_turntable_icon"
android:src="@mipmap/turntable_icon"
android:layout_gravity="end"
android:visibility="gone"
android:layout_marginBottom="5dp"
tools:visibility="visible"
android:layout_marginEnd="16dp"
android:layout_width="44dp" android:layout_width="44dp"
android:layout_height="46dp"/> android:layout_height="46dp"
android:layout_gravity="end"
android:layout_marginEnd="16dp"
android:layout_marginBottom="5dp"
android:src="@mipmap/turntable_icon"
android:visibility="gone"
tools:visibility="visible" />
<LinearLayout <LinearLayout
@ -2446,13 +2448,13 @@
android:id="@+id/top_banner2" android:id="@+id/top_banner2"
android:layout_width="52dp" android:layout_width="52dp"
android:layout_height="76dp" android:layout_height="76dp"
android:layout_marginTop="20dp"
android:layout_gravity="end" android:layout_gravity="end"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
android:visibility="gone" android:visibility="gone"
app:delay_time="5000" app:delay_time="5000"
tools:visibility="visible" app:indicator_height="8dp"
app:indicator_height="8dp" /> tools:visibility="visible" />
<LinearLayout <LinearLayout
android:id="@+id/lt_trickery" android:id="@+id/lt_trickery"
@ -2664,31 +2666,73 @@
android:layout_marginTop="80dp" android:layout_marginTop="80dp"
app:autoPlay="true" /> app:autoPlay="true" />
<LinearLayout <RelativeLayout
android:id="@+id/sud_layout_name" android:id="@+id/sud_layout_name"
android:layout_width="257dp" android:layout_width="200dp"
android:layout_height="40dp" android:layout_height="40dp"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginStart="21dp" android:layout_marginStart="13dp"
android:layout_marginEnd="42dp"
android:background="@drawable/background_live_sud_hint" android:background="@drawable/background_live_sud_hint"
android:gravity="center" android:paddingStart="5dp"
android:paddingStart="21dp" android:visibility="gone"
android:paddingEnd="15dp" tools:visibility="visible">
android:visibility="gone">
<ImageView
android:id="@+id/sud_game_coin"
android:layout_width="22dp"
android:layout_height="16dp"
android:layout_centerVertical="true"
android:layout_marginTop="2dp"
android:src="@mipmap/live_room_sud_hint_icon" />
<com.yunbao.common.views.weight.MarqueeTextView <com.yunbao.common.views.weight.MarqueeTextView
android:id="@+id/sud_text_name" android:id="@+id/sud_text_name"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginStart="5dp"
android:layout_toStartOf="@+id/sud_join"
android:layout_toEndOf="@+id/sud_game_coin"
android:ellipsize="marquee" android:ellipsize="marquee"
android:scrollHorizontally="true" android:scrollHorizontally="true"
android:singleLine="true" android:singleLine="true"
android:text="主播創建了【游戲名】房間,快來與主播同玩~" android:text="主播創建了【游戲名】房間,快來與主播同玩~"
android:textColor="#999999"
android:textSize="12dp" />
<TextView
android:id="@+id/sud_join"
android:layout_width="wrap_content"
android:layout_height="18dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/bg_live_room_sud_hint_join"
android:ellipsize="end"
android:fontFamily="sans-serif-condensed-medium"
android:gravity="center"
android:maxWidth="50dp"
android:paddingStart="10dp"
android:paddingEnd="10dp"
android:singleLine="true"
android:text="@string/live_room_sud_hint_join"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="14sp" /> android:textSize="10sp"
</LinearLayout> android:visibility="visible"
tools:visibility="visible" />
<ImageView
android:id="@+id/iconSudClose"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_marginTop="2dp"
android:layout_marginEnd="2dp"
android:src="@mipmap/icon_live_room_sud_close" />
</RelativeLayout>
<FrameLayout <FrameLayout
android:id="@+id/pa_pao_layout" android:id="@+id/pa_pao_layout"
@ -2701,7 +2745,8 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginStart="220dp"> android:layout_marginStart="220dp"
tools:visibility="gone">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -2736,9 +2781,10 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="10dp" android:layout_marginStart="10dp"
android:layout_marginTop="180dp" android:layout_marginTop="240dp"
android:gravity="center" android:gravity="center"
android:orientation="vertical" android:orientation="vertical"
tools:visibility="visible"
android:visibility="gone"> android:visibility="gone">
<ImageView <ImageView
@ -2766,6 +2812,7 @@
android:layout_marginTop="120dp" android:layout_marginTop="120dp"
android:gravity="center" android:gravity="center"
android:orientation="vertical" android:orientation="vertical"
tools:visibility="visible"
android:visibility="gone"> android:visibility="gone">
<ImageView <ImageView

View File

@ -15,7 +15,7 @@
<ImageView <ImageView
android:id="@+id/guard_number_img" android:id="@+id/guard_number_img"
android:layout_width="19dp" android:layout_width="38.5dp"
android:layout_height="19dp" android:layout_height="19dp"
android:layout_gravity="center" android:layout_gravity="center"
android:src="@mipmap/icon_one_guard" android:src="@mipmap/icon_one_guard"

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

After

Width:  |  Height:  |  Size: 346 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Some files were not shown because too many files have changed in this diff Show More