feat:完成房间团队PK-UI改版

This commit is contained in:
max
2024-06-14 11:15:11 +08:00
parent fbb7d20f3d
commit 95f65558a4
100 changed files with 1160 additions and 1514 deletions

View File

@@ -1,297 +0,0 @@
package com.chwl.app.avroom.dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.chwl.app.R;
import com.chwl.app.common.widget.CircleImageView;
import com.chwl.app.ui.widget.dialog.BaseDialog;
import com.chwl.app.ui.widget.dialog.CommonTipDialog;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.manager.IMNetEaseManager;
import com.chwl.core.manager.RoomEvent;
import com.chwl.core.room.pk.bean.PKMemberInfo;
import com.chwl.core.room.pk.bean.PKTeamInfo;
import com.chwl.core.room.pk.bean.PKTeamMember;
import com.chwl.core.room.pk.bean.RoomPkData;
import com.chwl.core.room.pk.event.PKDataUpdateEvent;
import com.chwl.core.room.pk.event.PKTimeFinishEvent;
import com.chwl.core.room.pk.event.PKTimeTickEvent;
import com.chwl.core.room.pk.model.PkModel;
import com.chwl.core.super_admin.util.SuperAdminUtil;
import com.chwl.library.utils.FormatUtils;
import com.chwl.library.utils.ResUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
import io.reactivex.SingleObserver;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
/**
* @author jack
* @Description
* @Date 2019/1/3
*/
public class PKScoreBoardDialog extends BaseDialog {
private TextView tvPkVoteMode;
private View tvClose;
private ProgressBar pbScore;
private TextView tvRedTeamScore;
private TextView tvBlueTeamScore;
private TextView tvPkTimer;
private CircleImageView ivRedAvatar1;
private CircleImageView ivRedAvatar2;
private CircleImageView ivRedAvatar3;
private CircleImageView ivRedAvatar4;
private CircleImageView ivBlueAvatar1;
private CircleImageView ivBlueAvatar2;
private CircleImageView ivBlueAvatar3;
private CircleImageView ivBlueAvatar4;
private TextView tvRestart;
private final List<CircleImageView> redTeamAvatars = new ArrayList<>();
private final List<CircleImageView> blueTeamAvatars = new ArrayList<>();
private RoomPkData roomPkData;
private CompositeDisposable compositeDisposable;
public PKScoreBoardDialog(Context context) {
super(context, R.style.easy_dialog_style);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setCanceledOnTouchOutside(true);
setContentView(R.layout.dialog_pk_score_board);
tvPkVoteMode = (TextView) findViewById(R.id.tv_pk_vote_mode);
tvClose = findViewById(R.id.tv_close);
pbScore = (ProgressBar) findViewById(R.id.pb_score);
tvRedTeamScore = (TextView) findViewById(R.id.tv_red_team_score);
tvBlueTeamScore = (TextView) findViewById(R.id.tv_blue_team_score);
tvPkTimer = (TextView) findViewById(R.id.tv_pk_timer);
tvRestart = (TextView) findViewById(R.id.tv_restart);
ivRedAvatar1 = (CircleImageView) findViewById(R.id.iv_red_avatar_1);
ivRedAvatar2 = (CircleImageView) findViewById(R.id.iv_red_avatar_2);
ivRedAvatar3 = (CircleImageView) findViewById(R.id.iv_red_avatar_3);
ivRedAvatar4 = (CircleImageView) findViewById(R.id.iv_red_avatar_4);
ivBlueAvatar1 = (CircleImageView) findViewById(R.id.iv_blue_avatar_1);
ivBlueAvatar2 = (CircleImageView) findViewById(R.id.iv_blue_avatar_2);
ivBlueAvatar3 = (CircleImageView) findViewById(R.id.iv_blue_avatar_3);
ivBlueAvatar4 = (CircleImageView) findViewById(R.id.iv_blue_avatar_4);
redTeamAvatars.add(ivRedAvatar1);
redTeamAvatars.add(ivRedAvatar2);
redTeamAvatars.add(ivRedAvatar3);
redTeamAvatars.add(ivRedAvatar4);
blueTeamAvatars.add(ivBlueAvatar1);
blueTeamAvatars.add(ivBlueAvatar2);
blueTeamAvatars.add(ivBlueAvatar3);
blueTeamAvatars.add(ivBlueAvatar4);
init();
}
private void init() {
tvClose.setOnClickListener(v -> dismiss());
roomPkData = PkModel.get().getCurPkInfo();
if (roomPkData == null) {
return;
}
if (roomPkData.getVoteMode() == RoomPkData.VOTE_MODE_GIFT) {
tvPkVoteMode.setText(getContext().getResources().getString(R.string.vote_type_gift_value));
} else if (roomPkData.getVoteMode() == RoomPkData.VOTE_MODE_PERSON) {
tvPkVoteMode.setText(getContext().getResources().getString(R.string.vote_type_gift_member));
}
PKTeamInfo redTeam = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_RED);
for (int i = 0; i < redTeamAvatars.size(); i++) {
if (i < redTeam.getTeamMembers().size()) {
redTeamAvatars.get(i).setVisibility(View.VISIBLE);
PKTeamMember pkTeamMember = redTeam.getTeamMembers().get(i);
PKMemberInfo pkMemberInfo = findPKMemberInfo(pkTeamMember.getUid());
if (pkMemberInfo == null || pkMemberInfo.getUserInfo() == null) {
continue;
}
GlideApp.with(redTeamAvatars.get(i))
.load(pkMemberInfo.getUserInfo().getAvatar())
.placeholder(R.drawable.default_avatar)
.dontAnimate()
.into(redTeamAvatars.get(i));
} else {
redTeamAvatars.get(i).setVisibility(View.GONE);
}
}
PKTeamInfo blueTeam = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_BLUE);
for (int i = 0; i < blueTeamAvatars.size(); i++) {
if (i < blueTeam.getTeamMembers().size()) {
blueTeamAvatars.get(i).setVisibility(View.VISIBLE);
PKTeamMember pkTeamMember = blueTeam.getTeamMembers().get(i);
PKMemberInfo pkMemberInfo = findPKMemberInfo(pkTeamMember.getUid());
if (pkMemberInfo == null || pkMemberInfo.getUserInfo() == null) {
continue;
}
GlideApp.with(blueTeamAvatars.get(i))
.load(pkMemberInfo.getUserInfo().getAvatar())
.placeholder(R.drawable.default_avatar)
.dontAnimate()
.into(blueTeamAvatars.get(i));
} else {
blueTeamAvatars.get(i).setVisibility(View.GONE);
}
}
if (AvRoomDataManager.get().isManager() && !SuperAdminUtil.isSuperAdmin()) {
tvRestart.setVisibility(View.VISIBLE);
tvRestart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (PkModel.get().getCurPkInfo() == null) {
toast(ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_01));
dismiss();
return;
}
if (PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK) {
toast(ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_02));
dismiss();
return;
}
CommonTipDialog tipDialog = new CommonTipDialog(getContext());
tipDialog.setTipMsg(ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_03) +
ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_04));
tipDialog.setOnActionListener(
new CommonTipDialog.OnActionListener() {
@Override
public void onOk() {
PkModel.get().toPKAgain().subscribe(new SingleObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
compositeDisposable.add(d);
}
@Override
public void onSuccess(String s) {
dismiss();
}
@Override
public void onError(Throwable e) {
toast(e.getMessage());
}
});
}
}
);
tipDialog.show();
}
});
} else {
tvRestart.setVisibility(View.GONE);
tvRestart.setOnClickListener(null);
}
updateTime();
onPKDataUpdateEvent(null);
}
private PKMemberInfo findPKMemberInfo(String account) {
for (PKMemberInfo pkMemberInfo : PkModel.get().getPkMemberInfoList()) {
if (String.valueOf(pkMemberInfo.getUserInfo().getUid()).equals(account)) {
return pkMemberInfo;
}
}
return null;
}
private void updateTime() {
roomPkData = PkModel.get().getCurPkInfo();
if (roomPkData == null) {
return;
}
long pkTimeUntilEnd = roomPkData.getCurPkTimeUntilEnd();
tvPkTimer.setText(String.format("%1$02d:%2$02d", pkTimeUntilEnd / 60, pkTimeUntilEnd % 60));
}
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
compositeDisposable = new CompositeDisposable();
compositeDisposable.add(IMNetEaseManager.get().getChatRoomEventObservable()
.subscribe(this::onReceiveRoomEvent));
}
private void onReceiveRoomEvent(RoomEvent roomEvent) {
int event = roomEvent.getEvent();
switch (event) {
case RoomEvent.PK_INFO_UPDATE:
roomPkData = PkModel.get().getCurPkInfo();
if (roomPkData != null && (roomPkData.getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK ||
roomPkData.getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK)) {
dismiss();
}
break;
}
}
@Override
protected void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
compositeDisposable.dispose();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPKDataUpdateEvent(PKDataUpdateEvent event) {
if (PkModel.get().getCurPkInfo() == null
|| PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK) {
dismiss();
return;
}
PKTeamInfo redTeam = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_RED);
PKTeamInfo blueTeam = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_BLUE);
if (redTeam == null || blueTeam == null) {
return;
}
long totalScore = redTeam.getScore() + blueTeam.getScore();
if (totalScore > 0) {
tvRedTeamScore.setText(FormatUtils.formatPKValue(redTeam.getScore()));
tvBlueTeamScore.setText(FormatUtils.formatPKValue(blueTeam.getScore()));
int percent = (int) ((float) redTeam.getScore() / (float) totalScore * 100.0f);
pbScore.setProgress(percent);
} else {
pbScore.setProgress(50);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPKTimeTickEvent(PKTimeTickEvent event) {
updateTime();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPKTimeFinishEvent(PKTimeFinishEvent event) {
tvPkTimer.setText("00:00");
}
}

View File

@@ -1,14 +1,13 @@
package com.chwl.app.avroom.dialog;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.Nullable;
@@ -17,18 +16,16 @@ import androidx.recyclerview.widget.RecyclerView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.chwl.app.R;
import com.chwl.app.common.widget.CircleImageView;
import com.chwl.app.databinding.RoomTeamPkResultDialogBinding;
import com.chwl.app.ui.widget.dialog.BaseDialog;
import com.chwl.library.common.util.Utils;
import com.chwl.app.ui.widget.recyclerview.decoration.ColorDecoration;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.room.pk.bean.PKTeamInfo;
import com.chwl.core.room.pk.bean.PKTeamMember;
import com.chwl.core.room.pk.bean.RoomPkData;
import com.chwl.library.utils.FormatUtils;
import com.chwl.library.utils.ResUtil;
import com.netease.nim.uikit.support.glide.GlideApp;
import java.util.ArrayList;
import java.util.List;
@@ -40,19 +37,14 @@ import lombok.Data;
* @Description
* @Date 2019/1/4
*/
public class PKResultDialog extends BaseDialog {
public class RoomTeamPKResultDialog extends BaseDialog {
private final static int TEAM_RED = PKTeamInfo.TEAM_RED;
private final static int TEAM_BLUE = PKTeamInfo.TEAM_BLUE;
private final static int PK_RESULT_VICTORY = 1;
private final static int PK_RESULT_FAIL = -1;
private final static int PK_RESULT_TIE = 0;
private LinearLayout llGuardianName;
private LinearLayout llGuardianValue;
private LinearLayout llPkMember;
private LinearLayout llScore;
private ImageView ivResultBottom;
private RoomTeamPkResultDialogBinding binding;
private ImageView ivResultTop;
private RecyclerView rvList;
private TextView tvScore;
@@ -60,9 +52,6 @@ public class PKResultDialog extends BaseDialog {
private TextView tvGuardianValue;
private TextView tvTeamStatus;
private TextView tvSeeOtherTeam;
private TextView tvTeamLose;
private LinearLayout llResultTie;
private TextView tvTieScore;
private int pkResult = PK_RESULT_TIE;
private boolean isShowOpponent = false;//是否在显示对手
@@ -70,8 +59,9 @@ public class PKResultDialog extends BaseDialog {
private RoomPkData roomPkData;
private PKTeamInfo teamInfo;
public PKResultDialog(Context context, RoomPkData roomPkData) {
public RoomTeamPKResultDialog(Context context, RoomPkData roomPkData) {
super(context, R.style.full_screen_dialog);
binding = RoomTeamPkResultDialogBinding.inflate(LayoutInflater.from(getContext()));
Window window = getWindow();
if (window != null) {
WindowManager.LayoutParams lps = window.getAttributes();
@@ -87,31 +77,20 @@ public class PKResultDialog extends BaseDialog {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setCanceledOnTouchOutside(true);
setContentView(R.layout.dialog_pk_result);
setContentView(binding.getRoot());
llPkMember = (LinearLayout) findViewById(R.id.ll_pk_member);
llScore = (LinearLayout) findViewById(R.id.ll_score);
ivResultBottom = (ImageView) findViewById(R.id.iv_result_bottom);
ivResultTop = (ImageView) findViewById(R.id.iv_result_top);
rvList = (RecyclerView) findViewById(R.id.rv_list);
rvList = (RecyclerView) findViewById(R.id.recycler_view);
tvScore = (TextView) findViewById(R.id.tv_score);
llGuardianName = (LinearLayout) findViewById(R.id.ll_guardian_name);
llGuardianValue = (LinearLayout) findViewById(R.id.ll_guardian_value);
tvGuardianName = (TextView) findViewById(R.id.tv_guardian_name);
tvGuardianValue = (TextView) findViewById(R.id.tv_guardian_value);
tvTeamStatus = (TextView) findViewById(R.id.tv_team_status);
tvSeeOtherTeam = (TextView) findViewById(R.id.tv_see_other_team);
tvTeamLose = (TextView) findViewById(R.id.tv_team_lose);
llResultTie = (LinearLayout) findViewById(R.id.ll_result_tie);
tvTieScore = (TextView) findViewById(R.id.tv_tie_score);
adapter = new PkResultMemberAdapter(null);
rvList.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
rvList.addItemDecoration(new ColorDecoration(Color.TRANSPARENT, Utils.dip2px(getContext(), 10), 0, true));
rvList.setAdapter(adapter);
tvSeeOtherTeam.setOnClickListener(v -> {
@@ -130,28 +109,29 @@ public class PKResultDialog extends BaseDialog {
return;
}
if (roomPkData.getVoteMode() == RoomPkData.VOTE_MODE_PERSON) {
llGuardianName.setVisibility(View.GONE);
llGuardianValue.setVisibility(View.GONE);
binding.groupGuardianName.setVisibility(View.GONE);
binding.groupGuardianValue.setVisibility(View.GONE);
}
int result = roomPkData.getResult();
int teamId = findTeamIdByAccount(String.valueOf(AuthModel.get().getCurrentUid()));
if (teamId == PKTeamInfo.TEAM_NONE) {
//观众
if (result == RoomPkData.PK_RESULT_DRAW) {
teamInfo = findTeamByTeamId(PKTeamInfo.TEAM_RED);
pkResult = PK_RESULT_TIE;
tvTeamStatus.setText(ResUtil.getString(R.string.avroom_dialog_pkresultdialog_01));
llPkMember.setVisibility(View.GONE);
llScore.setVisibility(View.GONE);
llGuardianName.setVisibility(View.GONE);
llGuardianValue.setVisibility(View.GONE);
llResultTie.setVisibility(View.VISIBLE);
tvTieScore.setText(FormatUtils.formatPKValue(roomPkData.getTeams().get(0).getScore()));
refreshBgByStatus();
if (teamInfo != null) {
tvScore.setText(teamInfo.getScore() + "");
} else {
tvScore.setText("0");
}
binding.groupGuardianName.setVisibility(View.GONE);
binding.groupGuardianValue.setVisibility(View.GONE);
refreshView(pkResult, teamInfo);
} else {
pkResult = PK_RESULT_VICTORY;
teamInfo = findTeamByTeamId(result);
refreshView(pkResult, teamInfo);
}
} else {
@@ -161,10 +141,13 @@ public class PKResultDialog extends BaseDialog {
if (result == RoomPkData.PK_RESULT_DRAW) {
pkResult = PK_RESULT_TIE;
tvTeamStatus.setText(ResUtil.getString(R.string.avroom_dialog_pkresultdialog_02));
tvScore.setText(teamInfo.getScore() + "");
llGuardianName.setVisibility(View.GONE);
llGuardianValue.setVisibility(View.GONE);
tvTeamLose.setVisibility(View.GONE);
if (teamInfo != null) {
tvScore.setText(teamInfo.getScore() + "");
} else {
tvScore.setText("0");
}
binding.groupGuardianName.setVisibility(View.GONE);
binding.groupGuardianValue.setVisibility(View.GONE);
refreshView(pkResult, teamInfo);
} else {
@@ -175,7 +158,7 @@ public class PKResultDialog extends BaseDialog {
}
private void showTeamMembers(PKTeamInfo teamInfo) {
private void showTeamMembers(int pkResult, PKTeamInfo teamInfo) {
List<PkResultMember> pkResultMembers = new ArrayList<>();
for (PKTeamMember pkTeamMember : teamInfo.getTeamMembers()) {
PkResultMember resultMember = new PkResultMember();
@@ -184,22 +167,29 @@ public class PKResultDialog extends BaseDialog {
resultMember.isMVP = pkTeamMember.getUid().equals(teamInfo.getMvp());
pkResultMembers.add(resultMember);
}
if (pkResult == PK_RESULT_VICTORY) {
adapter.setAvatarBg(R.drawable.room_team_pk_result_avatar_bg_win);
} else if (pkResult == PK_RESULT_FAIL) {
adapter.setAvatarBg(R.drawable.room_team_pk_result_avatar_bg_fail);
} else {
adapter.setAvatarBg(R.drawable.room_team_pk_result_avatar_bg_draw);
}
adapter.setNewData(pkResultMembers);
}
private void showColorByTeam(PKTeamInfo pkTeamInfo) {
if (pkTeamInfo.getTeam() == PKTeamInfo.TEAM_RED) {
tvScore.setTextColor(getContext().getResources().getColor(R.color.color_FD4D72));
tvGuardianName.setTextColor(getContext().getResources().getColor(R.color.color_FD4D72));
tvGuardianValue.setTextColor(getContext().getResources().getColor(R.color.color_FD4D72));
tvTeamStatus.setTextColor(getContext().getResources().getColor(R.color.color_FD4D72));
tvSeeOtherTeam.setTextColor(getContext().getResources().getColor(R.color.color_59B9FB));
tvScore.setTextColor(getContext().getResources().getColor(R.color.color_FF396F));
tvGuardianName.setTextColor(getContext().getResources().getColor(R.color.color_FF396F));
tvGuardianValue.setTextColor(getContext().getResources().getColor(R.color.color_FF396F));
tvTeamStatus.setTextColor(getContext().getResources().getColor(R.color.color_FF4B81));
tvSeeOtherTeam.setTextColor(getContext().getResources().getColor(R.color.color_73B8FF));
} else if (pkTeamInfo.getTeam() == PKTeamInfo.TEAM_BLUE) {
tvScore.setTextColor(getContext().getResources().getColor(R.color.color_59B9FB));
tvGuardianName.setTextColor(getContext().getResources().getColor(R.color.color_59B9FB));
tvGuardianValue.setTextColor(getContext().getResources().getColor(R.color.color_59B9FB));
tvTeamStatus.setTextColor(getContext().getResources().getColor(R.color.color_59B9FB));
tvSeeOtherTeam.setTextColor(getContext().getResources().getColor(R.color.color_FD4D72));
tvScore.setTextColor(getContext().getResources().getColor(R.color.color_73B8FF));
tvGuardianName.setTextColor(getContext().getResources().getColor(R.color.color_73B8FF));
tvGuardianValue.setTextColor(getContext().getResources().getColor(R.color.color_73B8FF));
tvTeamStatus.setTextColor(getContext().getResources().getColor(R.color.color_73B8FF));
tvSeeOtherTeam.setTextColor(getContext().getResources().getColor(R.color.color_FF4B81));
} else {
//未知
}
@@ -207,14 +197,11 @@ public class PKResultDialog extends BaseDialog {
private void refreshBgByStatus() {
if (pkResult == PK_RESULT_VICTORY) {
ivResultTop.setImageResource(R.drawable.pk_result_victory_top);
ivResultBottom.setImageResource(R.mipmap.pk_result_victory_bottom);
ivResultTop.setImageResource(R.drawable.room_team_pk_result_top_win);
} else if (pkResult == PK_RESULT_FAIL) {
ivResultTop.setImageResource(R.drawable.pk_result_fail_top);
ivResultBottom.setImageResource(R.mipmap.pk_result_fail_bottom);
ivResultTop.setImageResource(R.drawable.room_team_pk_result_top_fail);
} else if (pkResult == PK_RESULT_TIE) {
ivResultTop.setImageResource(R.drawable.pk_result_tie_top);
ivResultBottom.setImageResource(R.mipmap.pk_result_tie_bottom);
ivResultTop.setImageResource(R.drawable.room_team_pk_result_top_draw);
}
}
@@ -268,7 +255,7 @@ public class PKResultDialog extends BaseDialog {
private void refreshView(int pkResult, PKTeamInfo teamInfo) {
refreshBgByStatus();
showTeamMembers(teamInfo);
showTeamMembers(pkResult, teamInfo);
showColorByTeam(teamInfo);
tvScore.setText(FormatUtils.formatPKValue(teamInfo.getScore()));
@@ -291,7 +278,6 @@ public class PKResultDialog extends BaseDialog {
if (pkResult == PK_RESULT_VICTORY) {
tvTeamStatus.setText(ResUtil.getString(R.string.avroom_dialog_pkresultdialog_06));
} else if (pkResult == PK_RESULT_FAIL) {
tvTeamLose.setVisibility(View.VISIBLE);
}
tvSeeOtherTeam.setText(ResUtil.getString(R.string.avroom_dialog_pkresultdialog_07));
} else {
@@ -305,7 +291,6 @@ public class PKResultDialog extends BaseDialog {
if (pkResult == PK_RESULT_VICTORY) {
tvTeamStatus.setText(ResUtil.getString(R.string.avroom_dialog_pkresultdialog_011));
} else if (pkResult == PK_RESULT_FAIL) {
tvTeamLose.setVisibility(View.VISIBLE);
}
tvSeeOtherTeam.setText(ResUtil.getString(R.string.avroom_dialog_pkresultdialog_012));
} else {
@@ -327,20 +312,26 @@ public class PKResultDialog extends BaseDialog {
class PkResultMemberAdapter extends BaseQuickAdapter<PkResultMember, BaseViewHolder> {
private int avatarBgResId = R.drawable.room_team_pk_result_avatar_bg_win;
public void setAvatarBg(int redId) {
this.avatarBgResId = redId;
}
public PkResultMemberAdapter(@Nullable List<PkResultMember> data) {
super(R.layout.item_pk_result_member_rv, data);
super(R.layout.room_team_pk_result_item, data);
}
@Override
protected void convert(BaseViewHolder helper, PkResultMember item) {
CircleImageView avatar = helper.getView(R.id.civ_avatar);
ImageView avatarBg = helper.getView(R.id.iv_avatar_bg);
avatarBg.setImageResource(avatarBgResId);
ImageView avatar = helper.getView(R.id.iv_avatar);
GlideApp.with(avatar)
.load(item.avatar)
.placeholder(R.drawable.default_avatar)
.dontAnimate()
.into(avatar);
helper.setVisible(R.id.iv_mvp_mark, item.isMVP);
}
}

View File

@@ -0,0 +1,319 @@
package com.chwl.app.avroom.dialog
import android.text.TextUtils
import android.view.WindowManager
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.core.view.isVisible
import com.chwl.app.R
import com.chwl.app.base.BaseDialog
import com.chwl.app.databinding.RoomTeamPkDialogBinding
import com.chwl.app.ui.utils.loadAvatar
import com.chwl.app.ui.widget.dialog.CommonTipDialog
import com.chwl.core.manager.AvRoomDataManager
import com.chwl.core.room.pk.bean.PKTeamInfo
import com.chwl.core.room.pk.bean.RoomPKInvitedUpMicMember
import com.chwl.core.room.pk.bean.RoomPkData
import com.chwl.core.room.pk.event.PKDataUpdateEvent
import com.chwl.core.room.pk.event.PKTimeFinishEvent
import com.chwl.core.room.pk.event.PKTimeTickEvent
import com.chwl.core.room.pk.model.PkModel
import com.chwl.library.utils.FormatUtils
import com.chwl.library.utils.ResUtil
import com.chwl.library.utils.SingleToastUtil
import io.reactivex.SingleObserver
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.disposables.Disposable
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
class RoomTeamPkDialog : BaseDialog<RoomTeamPkDialogBinding>() {
private var compositeDisposable: CompositeDisposable? = null
private var onActionListener: OnActionListener? = null
override var width = WindowManager.LayoutParams.MATCH_PARENT
override fun init() {
binding.layoutRoot.setOnClickListener {
dismissAllowingStateLoss()
}
binding.userListBlue.showBlueStyle()
binding.ivClose.setOnClickListener {
dismissAllowingStateLoss()
}
binding.tvNext.setOnClickListener {
if (PkModel.get().isFighting) {
onRestartClick()
} else {
onStartClick()
}
}
binding.ivAvatarRed.setOnClickListener {
if (!PkModel.get().isFighting) {
onSeatClick(PKTeamInfo.TEAM_RED)
}
}
binding.ivAvatarBlue.setOnClickListener {
if (!PkModel.get().isFighting) {
onSeatClick(PKTeamInfo.TEAM_BLUE)
}
}
binding.userListRed.setOnClickListener {
if (!PkModel.get().isFighting) {
onSeatClick(PKTeamInfo.TEAM_RED)
}
}
binding.userListBlue.setOnClickListener {
if (!PkModel.get().isFighting) {
onSeatClick(PKTeamInfo.TEAM_BLUE)
}
}
updateView()
}
override fun onStart() {
super.onStart()
EventBus.getDefault().register(this)
compositeDisposable = CompositeDisposable()
}
override fun onStop() {
super.onStop()
EventBus.getDefault().unregister(this)
compositeDisposable?.dispose()
}
fun setOnActionListener(onActionListener: OnActionListener?) {
this.onActionListener = onActionListener
}
fun updateView() {
if (_binding == null) {
return
}
updateTeamUserList()
updateTime()
updateProgress()
if (PkModel.get().isFighting) {
binding.tvNext.setText(R.string.pk_restart)
} else {
binding.tvNext.setText(R.string.start_pk)
}
updateManageButtonVisible(AvRoomDataManager.get().isManager)
}
private fun updateTeamUserList() {
val pkMemberInfoList = PkModel.get().pkMemberInfoList
val redList =
pkMemberInfoList.filter { it.teamId == PKTeamInfo.TEAM_RED }.take(4).mapNotNull {
it.userInfo
}
val blueList =
pkMemberInfoList.filter { it.teamId == PKTeamInfo.TEAM_BLUE }.take(4).mapNotNull {
it.userInfo
}
binding.userListRed.updateData(redList.drop(1).map {
it.avatar
})
binding.userListBlue.updateData(blueList.drop(1).map {
it.avatar
})
binding.ivAvatarRed.loadAvatar(redList.firstOrNull()?.avatar)
binding.ivAvatarBlue.loadAvatar(blueList.firstOrNull()?.avatar)
}
private fun updateManageButtonVisible(isVisible: Boolean) {
val dimensionRatio: String
if (isVisible) {
binding.ivBg.setImageResource(R.drawable.room_team_pk_bg)
binding.tvNext.isVisible = true
dimensionRatio = "309:379"
} else {
binding.ivBg.setImageResource(R.drawable.room_team_pk_bg_no_manage)
binding.tvNext.isVisible = false
dimensionRatio = "309:324"
}
val params = binding.layoutContent.layoutParams as ConstraintLayout.LayoutParams
params.dimensionRatio = dimensionRatio
binding.layoutContent.layoutParams = params
}
private fun updateTime() {
if (_binding == null) {
return
}
val roomPkData = PkModel.get().curPkInfo
val pkTimeUntilEnd: Long
if (roomPkData?.pkStatus != RoomPkData.PK_STATUS_IN_PK) {
pkTimeUntilEnd = roomPkData?.duration ?: 0
} else {
pkTimeUntilEnd = roomPkData.curPkTimeUntilEnd
}
binding.tvTime.text =
String.format("%1$02d:%2$02d", pkTimeUntilEnd / 60, pkTimeUntilEnd % 60)
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onPKDataUpdateEvent(event: PKDataUpdateEvent) {
updateProgress()
if (event.type == PKDataUpdateEvent.TYPE_RESULT) {
safeDismiss()
}
}
private fun updateProgress() {
if (_binding == null) {
return
}
val redTeam = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_RED)
val blueTeam = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_BLUE)
if (redTeam == null || blueTeam == null) {
updateProgress(0, 0)
return
}
updateProgress(redTeam.score, blueTeam.score)
}
private fun updateProgress(redScore: Long, blueScore: Long) {
val totalScore = redScore + blueScore
if (totalScore > 0) {
binding.tvScoreRed.text = FormatUtils.formatPKValue(redScore)
binding.tvScoreBlue.text = FormatUtils.formatPKValue(blueScore)
updateProgress(redScore.toFloat() / totalScore.toFloat())
} else {
updateProgress(0.5f)
}
}
private fun updateProgress(percent: Float) {
binding.pbScore.post {
binding.pbScore.progress = (percent * 100).toInt()
val progress = binding.pbScore.width * (percent)
var bias =
(progress - binding.svgaHot.width / 2f) / (binding.pbScore.width - binding.svgaHot.width)
val layoutParams = binding.svgaHot.layoutParams as ConstraintLayout.LayoutParams
bias = 1f.coerceAtMost(bias)
bias = 0f.coerceAtLeast(bias)
layoutParams.horizontalBias = bias
binding.svgaHot.layoutParams = layoutParams
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onPKTimeTickEvent(event: PKTimeTickEvent?) {
updateTime()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onPKTimeFinishEvent(event: PKTimeFinishEvent?) {
updateView()
}
private fun onSeatClick(teamType: Int) {
//不是管理员或者房主弹出排麦dialog
if (!AvRoomDataManager.get().isManager) {
//已经排麦不操作
if (!PkModel.get().pkMemberInfoList.isNullOrEmpty() && AvRoomDataManager.get().myIsInQueue) {
SingleToastUtil.showToastShort(ResUtil.getString(R.string.avroom_widget_pkboardview_03))
return
}
onActionListener?.onShowPKMicQueueDialog()
return
}
//添加红队人员
val selectDialog =
PKSelectPeopleDialog(context, teamType, PkModel.get().pkMemberInfoList)
selectDialog.setOnSelectPeopleListener { micEntityList -> //更新队伍,麦序,显示头像
val upMicMemberList: MutableList<RoomPKInvitedUpMicMember> =
ArrayList()
for (micEntity in micEntityList) {
if (TextUtils.isEmpty(micEntity.uid)) {
continue
}
val roomPKInvitedUpMicMember = RoomPKInvitedUpMicMember()
if (micEntity.isSelect) {
roomPKInvitedUpMicMember.groupType = teamType
} else {
if (TextUtils.isEmpty(micEntity.uid)) {
roomPKInvitedUpMicMember.groupType = PKTeamInfo.TEAM_NONE
} else {
val teamId = PkModel.get().getTeamIdInPKMemberList(micEntity.uid)
roomPKInvitedUpMicMember.groupType =
if (teamId == teamType) PKTeamInfo.TEAM_NONE else teamId
}
}
roomPKInvitedUpMicMember.uid = micEntity.uid
roomPKInvitedUpMicMember.nick = micEntity.nick
val micQueue = AvRoomDataManager.get().mMicQueueMemberMap
//设置坑位的位置
for (i in 0 until micQueue.size()) {
val key = micQueue.keyAt(i)
val roomQueueInfo = micQueue[key]
if (roomQueueInfo.mChatRoomMember != null && roomQueueInfo.mChatRoomMember.account == micEntity.uid
) {
roomPKInvitedUpMicMember.position = key
}
}
upMicMemberList.add(roomPKInvitedUpMicMember)
}
PkModel.get().inviteInTeam(upMicMemberList)
.doOnError { throwable: Throwable ->
SingleToastUtil.showToastShort(
throwable.message
)
}
.subscribe()
}
selectDialog.show()
}
private fun onStartClick() {
onActionListener?.onBeginPK()
}
private fun onRestartClick() {
if (PkModel.get().curPkInfo == null) {
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_01))
dismissAllowingStateLoss()
return
}
if (PkModel.get().curPkInfo?.pkStatus == RoomPkData.PK_STATUS_AFTER_PK) {
SingleToastUtil.showToast(ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_02))
dismissAllowingStateLoss()
return
}
val tipDialog = CommonTipDialog(context)
tipDialog.setTipMsg(
ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_03) +
ResUtil.getString(R.string.avroom_dialog_pkscoreboarddialog_04)
)
tipDialog.setOnActionListener(
object : CommonTipDialog.OnActionListener {
override fun onOk() {
PkModel.get().toPKAgain().subscribe(object : SingleObserver<String?> {
override fun onSubscribe(d: Disposable) {
compositeDisposable?.add(d)
}
override fun onSuccess(t: String) {
dismissAllowingStateLoss()
}
override fun onError(e: Throwable) {
SingleToastUtil.showToast(e.message)
}
})
}
}
)
tipDialog.show()
}
interface OnActionListener {
fun onBeginPK()
fun onShowPKMicQueueDialog()
}
}

View File

@@ -8,10 +8,13 @@ import android.view.View;
import androidx.annotation.NonNull;
import androidx.databinding.DataBindingUtil;
import com.chwl.app.avroom.dialog.RoomTeamPKResultDialog;
import com.chwl.app.avroom.dialog.RoomTeamPkDialog;
import com.chwl.app.avroom.headline.RoomHeadlineWidget;
import com.chwl.app.avroom.online.RoomOnlineWidget;
import com.chwl.app.music.widget.MusicPlayerView;
import com.chwl.app.ui.webview.DialogWebViewActivity;
import com.chwl.core.room.pk.event.PKDataUpdateEvent;
import com.netease.nim.uikit.common.util.log.LogUtil;
import com.trello.rxlifecycle3.android.FragmentEvent;
import com.chwl.app.R;
@@ -25,12 +28,9 @@ import com.chwl.app.avroom.anotherroompk.RoomPkForceFinishDialog;
import com.chwl.app.avroom.anotherroompk.RoomPkReceivedDialog;
import com.chwl.app.avroom.dialog.MicQueueDialog;
import com.chwl.app.avroom.dialog.PKMicQueueDialog;
import com.chwl.app.avroom.dialog.PKResultDialog;
import com.chwl.app.avroom.dialog.PKScoreBoardDialog;
import com.chwl.app.avroom.giftvalue.GiftValueDialogUiHelper;
import com.chwl.app.avroom.presenter.HomePartyPresenter;
import com.chwl.app.avroom.view.IHomePartyView;
import com.chwl.app.avroom.widget.PKBoardView;
import com.chwl.app.base.BaseMvpActivity;
import com.chwl.app.common.widget.dialog.DialogManager;
import com.chwl.app.databinding.FragmentAvRoomGameBinding;
@@ -87,10 +87,10 @@ import io.reactivex.disposables.Disposable;
*/
@CreatePresenter(HomePartyPresenter.class)
public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, HomePartyPresenter> implements
IHomePartyView, PKBoardView.OnActionListener {
IHomePartyView, RoomTeamPkDialog.OnActionListener {
private long myUid;
private PKBoardView pkBoardView;
private RoomTeamPkDialog teamPkDialog;
private Disposable mDisposable;
private FragmentAvRoomGameBinding gameBinding;
/**
@@ -121,8 +121,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
gameBinding.setKtvModel(false);
gameBinding.playTogether.setVisibility(View.GONE);
microView = mView.findViewById(R.id.micro_view);
pkBoardView = mView.findViewById(R.id.layout_pk_board);
pkBoardView.setOnActionListener(this);
gameBinding.ivTeamPk.setOnClickListener(this);
}
@Override
@@ -257,8 +256,12 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
//PK 开始弹出大记分板
if (PkModel.get().getCurPkInfo() != null
&& PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_IN_PK) {
PKScoreBoardDialog pkScoreBoardDialog = new PKScoreBoardDialog(getContext());
pkScoreBoardDialog.show();
showTeamPkDialog();
}
break;
case RoomEvent.PK_CREATE:
if (PkModel.get().getCurPkInfo() != null) {
showTeamPkDialog();
}
break;
case RoomEvent.ROOM_PK_INVITE:
@@ -345,14 +348,14 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
private void updatePkScoreBoard() {
if (AvRoomDataManager.get().isOpenPKMode()) {
if (pkBoardView.getVisibility() == View.GONE) {
if (gameBinding.ivTeamPk.getVisibility() == View.GONE) {
// 通知更新背景
PKStateEvent pkStateEvent = new PKStateEvent();
pkStateEvent.setCreate(true);
EventBus.getDefault().post(pkStateEvent);
showTeamPkDialog();
}
pkBoardView.setVisibility(View.VISIBLE);
gameBinding.ivTeamPk.setVisibility(View.VISIBLE);
//这里通过接口获取PK 详情 更新pk 记分板
if (PkModel.get().getCurPkInfo() == null) {
PkModel.get().loadPKDataByRoomId(
@@ -366,7 +369,9 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
@Override
public void onSuccess(RoomPkData roomPkData) {
pkBoardView.updateView();
if (teamPkDialog != null) {
teamPkDialog.updateView();
}
}
@Override
@@ -375,7 +380,9 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
}
});
} else {
pkBoardView.updateView();
if (teamPkDialog != null) {
teamPkDialog.updateView();
}
}
//取消掉正在进行的龙珠
if (AvRoomDataManager.get().haveStartDragon) {
@@ -387,23 +394,41 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
}
} else {
if (pkBoardView.getVisibility() == View.VISIBLE) {
if (gameBinding.ivTeamPk.getVisibility() == View.VISIBLE) {
// 通知更新bg
PKStateEvent pkStateEvent = new PKStateEvent();
pkStateEvent.setCreate(false);
EventBus.getDefault().post(pkStateEvent);
}
pkBoardView.setVisibility(View.GONE);
}
if (SuperAdminUtil.isSuperAdmin()) {
pkBoardView.setVisibility(View.GONE);
gameBinding.ivTeamPk.setVisibility(View.GONE);
dismissTeamPkDialog();
}
//龙珠相关界面设置
setDragonView();
}
private void showTeamPkDialog() {
if (getActivity() == null) {
return;
}
if (teamPkDialog != null) {
if (teamPkDialog.isResumed()) {
return;
}
dismissTeamPkDialog();
}
teamPkDialog = new RoomTeamPkDialog();
teamPkDialog.setOnActionListener(this);
teamPkDialog.safeShow(requireActivity().getSupportFragmentManager(), this, null);
}
private void dismissTeamPkDialog() {
if (teamPkDialog != null) {
teamPkDialog.safeDismiss();
teamPkDialog = null;
}
}
private void cleanDragonBar() {
LogUtil.e("cleanDragonBar");
@@ -530,6 +555,7 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
mDisposable.dispose();
mDisposable = null;
}
dismissTeamPkDialog();
super.onDestroy();
}
@@ -565,6 +591,9 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
public void onClick(View v) {
super.onClick(v);
switch (v.getId()) {
case R.id.iv_team_pk:
showTeamPkDialog();
break;
case R.id.play_together:
if (!DynamicFaceModel.get().isShowingFace()) {
FaceInfo faceInfo = DynamicFaceModel.get().getPlayTogetherFace();
@@ -690,12 +719,6 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
}
@Override
public void onEndPK() {
PKResultDialog pkResultDialog = new PKResultDialog(getContext(), PkModel.get().getCurPkInfo());
pkResultDialog.show();
}
@Override
public void onShowPKMicQueueDialog() {
if (PkModel.get().isFighting()) {
@@ -1024,4 +1047,16 @@ public class HomePartyRoomFragment extends BaseRoomFragment<IHomePartyView, Home
super.onInitMusicPlayerView(view);
view.linkIconView(gameBinding.ivMusic, gameBinding.ivMusic);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPKDataUpdateEvent(PKDataUpdateEvent event) {
RoomPkData data = PkModel.get().getCurPkInfo();
if (data == null) {
return;
}
if (event.getType() == PKDataUpdateEvent.TYPE_RESULT && data.getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK) {
RoomTeamPKResultDialog teamPkResultDialog = new RoomTeamPKResultDialog(getContext(), PkModel.get().getCurPkInfo());
teamPkResultDialog.show();
}
}
}

View File

@@ -32,7 +32,7 @@ import androidx.recyclerview.widget.SimpleItemAnimator;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.avroom.activity.AVRoomActivity;
import com.chwl.app.avroom.dialog.PKResultDialog;
import com.chwl.app.avroom.dialog.RoomTeamPKResultDialog;
import com.chwl.app.avroom.widget.OnMsgLongClickListener;
import com.chwl.app.avroom.widget.TemplateMessageAdapter;
import com.chwl.app.common.widget.CustomImageSpan;
@@ -50,7 +50,6 @@ import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
import com.chwl.app.utils.ObjectTypeHelper;
import com.chwl.app.utils.RegexUtil;
import com.chwl.core.DemoCache;
import com.chwl.core.XConstants;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.bean.attachmsg.RoomQueueMsgAttachment;
import com.chwl.core.decoration.car.bean.CarInfo;
@@ -830,7 +829,7 @@ public class PublicChatMessageView extends FrameLayout {
}
} else if (attachment.getFirst() == CustomAttachment.CUSTOM_MESS_HEAD_ROOM_PK) {
if (attachment.getSecond() == CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_RESULT) {
PKResultDialog pkResultDialog = new PKResultDialog(getContext(), ((RoomPkAttachment) attachment).getRoomPkData());
RoomTeamPKResultDialog pkResultDialog = new RoomTeamPKResultDialog(getContext(), ((RoomPkAttachment) attachment).getRoomPkData());
pkResultDialog.show();
}
} else if (attachment instanceof RoomFollowOwnerAttachment2 && !AvRoomDataManager.get().isRoomFans) {

View File

@@ -29,12 +29,9 @@ import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.text.style.ForegroundColorSpan;
@@ -42,7 +39,6 @@ import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
@@ -81,11 +77,9 @@ import com.chwl.app.sadmin.utils.SaAttachmentToMsgUtil;
import com.chwl.app.R;
import com.chwl.app.UIHelper;
import com.chwl.app.avroom.activity.AVRoomActivity;
import com.chwl.app.avroom.dialog.PKResultDialog;
import com.chwl.app.avroom.dialog.RoomTeamPKResultDialog;
import com.chwl.app.avroom.room_album.UnlockRoomAlbumPhotoDialog;
import com.chwl.library.common.util.Utils;
import com.chwl.app.common.widget.CustomAutoWidthImageSpan;
import com.chwl.app.common.widget.CustomImageSpan;
import com.chwl.app.common.widget.OriginalDrawStatusClickSpan;
import com.chwl.app.ui.utils.ImageLoadUtils;
import com.chwl.app.ui.utils.ImageLoadUtilsV2;
@@ -95,7 +89,6 @@ import com.chwl.app.ui.widget.RecyclerViewNoViewpagerScroll;
import com.chwl.app.ui.widget.UserInfoDialog;
import com.chwl.app.ui.widget.magicindicator.buildins.UIUtil;
import com.chwl.app.utils.RegexUtil;
import com.chwl.core.XConstants;
import com.chwl.core.DemoCache;
import com.chwl.core.auth.AuthModel;
import com.chwl.core.bean.attachmsg.RoomQueueMsgAttachment;
@@ -162,7 +155,6 @@ import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.manager.IMNetEaseManager;
import com.chwl.core.miniworld.bean.MiniWorldInWorldInfo;
import com.chwl.core.monsterhunting.bean.MonsterHuntingResult;
import com.chwl.core.monsterhunting.bean.MonsterProtocol;
import com.chwl.core.noble.bean.NobleInfo;
import com.chwl.core.noble.NobleUtil;
import com.chwl.core.praise.PraiseModel;
@@ -2919,7 +2911,7 @@ public class MessageView extends FrameLayout {
}
} else if (attachment.getFirst() == CustomAttachment.CUSTOM_MESS_HEAD_ROOM_PK) {
if (attachment.getSecond() == CustomAttachment.CUSTOM_MESS_SUB_ROOM_PK_RESULT) {
PKResultDialog pkResultDialog = new PKResultDialog(getContext(), ((RoomPkAttachment) attachment).getRoomPkData());
RoomTeamPKResultDialog pkResultDialog = new RoomTeamPKResultDialog(getContext(), ((RoomPkAttachment) attachment).getRoomPkData());
pkResultDialog.show();
}
} else if (attachment instanceof RoomFollowOwnerAttachment2 && !AvRoomDataManager.get().isRoomFans) {

View File

@@ -1,448 +0,0 @@
package com.chwl.app.avroom.widget;
import android.content.Context;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.SparseArray;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.netease.nim.uikit.support.glide.GlideApp;
import com.chwl.app.R;
import com.chwl.app.avroom.dialog.PKScoreBoardDialog;
import com.chwl.app.avroom.dialog.PKSelectPeopleDialog;
import com.chwl.app.common.widget.CircleImageView;
import com.chwl.core.bean.RoomQueueInfo;
import com.chwl.core.manager.AvRoomDataManager;
import com.chwl.core.room.pk.bean.PKMemberInfo;
import com.chwl.core.room.pk.bean.PKTeamInfo;
import com.chwl.core.room.pk.bean.RoomPKInvitedUpMicMember;
import com.chwl.core.room.pk.bean.RoomPkData;
import com.chwl.core.room.pk.event.PKDataUpdateEvent;
import com.chwl.core.room.pk.event.PKTimeFinishEvent;
import com.chwl.core.room.pk.event.PKTimeTickEvent;
import com.chwl.core.room.pk.model.PkModel;
import com.chwl.library.utils.FormatUtils;
import com.chwl.library.utils.ResUtil;
import com.chwl.library.utils.SingleToastUtil;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
/**
* @author jack
* @Description
* @Date 2019/1/8
*/
public class PKBoardView extends RelativeLayout implements View.OnClickListener {
public PKBoardView(Context context) {
super(context);
init();
}
public PKBoardView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public PKBoardView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init();
}
private View llPkScoreBoard;
private View rlRedTeamAddPeople;
private TextView tvRedTeamScore;
private View rlBlueTeamAddPeople;
private TextView tvBlueTeamScore;
private TextView tvPkTimer;
private CircleImageView civRedTeamMember1;
private CircleImageView civRedTeamMember2;
private CircleImageView civRedTeamMember3;
private CircleImageView civRedTeamMember4;
private CircleImageView ivAddRedTeamMember;
private CircleImageView civBlueTeamMember1;
private CircleImageView civBlueTeamMember2;
private CircleImageView civBlueTeamMember3;
private CircleImageView civBlueTeamMember4;
private CircleImageView ivAddBlueTeamMember;
private ProgressBar pbScore;
private ImageView ivPkBegin;
private final List<CircleImageView> civRedAvatars = new ArrayList<>();
private final List<CircleImageView> civBlueAvatars = new ArrayList<>();
private void init() {
inflate(getContext(), R.layout.layout_pk_board_view, this);
if (isInEditMode()) {
return;
}
llPkScoreBoard = findViewById(R.id.root_view);
rlRedTeamAddPeople = findViewById(R.id.fl_left);
tvRedTeamScore = this.findViewById(R.id.tv_red_team_score);
rlBlueTeamAddPeople = findViewById(R.id.fl_right);
tvBlueTeamScore = this.findViewById(R.id.tv_blue_team_score);
tvPkTimer = this.findViewById(R.id.tv_pk_timer);
pbScore = findViewById(R.id.pb_score);
ivPkBegin = findViewById(R.id.iv_pk_begin);
civRedTeamMember1 = findViewById(R.id.civ_red_team_member_1);
civRedTeamMember2 = findViewById(R.id.civ_red_team_member_2);
civRedTeamMember3 = findViewById(R.id.civ_red_team_member_3);
civRedTeamMember4 = findViewById(R.id.civ_red_team_member_4);
ivAddRedTeamMember = findViewById(R.id.iv_add_red_team_member);
civBlueTeamMember1 = findViewById(R.id.civ_blue_team_member_1);
civBlueTeamMember2 = findViewById(R.id.civ_blue_team_member_2);
civBlueTeamMember3 = findViewById(R.id.civ_blue_team_member_3);
civBlueTeamMember4 = findViewById(R.id.civ_blue_team_member_4);
ivAddBlueTeamMember = findViewById(R.id.iv_add_blue_team_member);
civRedAvatars.add(civRedTeamMember1);
civRedAvatars.add(civRedTeamMember2);
civRedAvatars.add(civRedTeamMember3);
civRedAvatars.add(civRedTeamMember4);
civBlueAvatars.add(civBlueTeamMember1);
civBlueAvatars.add(civBlueTeamMember2);
civBlueAvatars.add(civBlueTeamMember3);
civBlueAvatars.add(civBlueTeamMember4);
updateView();
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
EventBus.getDefault().register(this);
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
EventBus.getDefault().unregister(this);
}
public void updateView() {
if (PkModel.get().isFighting()) {
long countDownTime = PkModel.get().getCurPkInfo().getCurPkTimeUntilEnd();
tvPkTimer.setText(String.format(Locale.getDefault(), "%1$02d:%2$02d", countDownTime / 60, countDownTime % 60));
ivAddRedTeamMember.setVisibility(GONE);
ivAddBlueTeamMember.setVisibility(GONE);
ivPkBegin.setVisibility(GONE);
rlRedTeamAddPeople.setOnClickListener(null);
rlBlueTeamAddPeople.setOnClickListener(null);
tvPkTimer.setOnClickListener(null);
llPkScoreBoard.setOnClickListener(this);
showTeamAvatars();
PKTeamInfo blueTeamInfo = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_BLUE);
if (blueTeamInfo != null) {
tvBlueTeamScore.setText(FormatUtils.formatPKValue(blueTeamInfo.getScore()));
}
PKTeamInfo redTeamInfo = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_RED);
if (redTeamInfo != null) {
tvRedTeamScore.setText(FormatUtils.formatPKValue(redTeamInfo.getScore()));
}
if (redTeamInfo != null && blueTeamInfo != null) {
long totalScore = redTeamInfo.getScore() + blueTeamInfo.getScore();
if (totalScore > 0) {
int percent = (int) ((float) redTeamInfo.getScore() / (float) totalScore * 100.0f);
pbScore.setProgress(percent);
} else {
pbScore.setProgress(50);
}
}
} else {
tvPkTimer.setText(ResUtil.getString(R.string.avroom_widget_pkboardview_01));
if (!isTeamHaveMember(PKTeamInfo.TEAM_RED)) {
ivAddRedTeamMember.setVisibility(VISIBLE);
} else {
ivAddRedTeamMember.setVisibility(GONE);
}
if (!isTeamHaveMember(PKTeamInfo.TEAM_BLUE)) {
ivAddBlueTeamMember.setVisibility(VISIBLE);
} else {
ivAddBlueTeamMember.setVisibility(GONE);
}
pbScore.setProgress(50);
showTeamAvatars();
rlRedTeamAddPeople.setOnClickListener(this);
rlBlueTeamAddPeople.setOnClickListener(this);
if (AvRoomDataManager.get().isManager()) {
ivPkBegin.setVisibility(VISIBLE);
ivPkBegin.setOnClickListener(this);
} else {
ivPkBegin.setVisibility(GONE);
}
llPkScoreBoard.setOnClickListener(null);
RoomPkData roomPkData = PkModel.get().getCurPkInfo();
if (roomPkData != null &&
(roomPkData.getPkStatus() == RoomPkData.PK_STATUS_BEFORE_PK || roomPkData.getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK)) {
tvBlueTeamScore.setText(FormatUtils.formatPKValue(0));
tvRedTeamScore.setText(FormatUtils.formatPKValue(0));
}
}
}
private boolean isTeamHaveMember(int teamId) {
for (PKMemberInfo pkMemberInfo : PkModel.get().getPkMemberInfoList()) {
if (pkMemberInfo.getTeamId() == teamId) {
return true;
}
}
return false;
}
public void showTeamAvatars() {
List<PKMemberInfo> pkMemberInfoList = PkModel.get().getPkMemberInfoList();
for (CircleImageView civRedAvatar : civRedAvatars) {
civRedAvatar.setVisibility(GONE);
}
for (CircleImageView civBlueAvatar : civBlueAvatars) {
civBlueAvatar.setVisibility(GONE);
}
int redIndex = 0;
int blueIndex = 0;
for (int i = 0; i < pkMemberInfoList.size(); i++) {
PKMemberInfo pkMemberInfo = pkMemberInfoList.get(i);
if (pkMemberInfo.getTeamId() == PKTeamInfo.TEAM_RED) {
if (redIndex >= civRedAvatars.size()) {
break;
}
civRedAvatars.get(redIndex).setVisibility(VISIBLE);
GlideApp.with(this)
.load(pkMemberInfo.getUserInfo().getAvatar())
.placeholder(R.drawable.default_avatar)
.dontAnimate()
.into(civRedAvatars.get(redIndex));
redIndex++;
} else if (pkMemberInfoList.get(i).getTeamId() == PKTeamInfo.TEAM_BLUE) {
if (blueIndex >= civBlueAvatars.size()) {
break;
}
civBlueAvatars.get(blueIndex).setVisibility(VISIBLE);
GlideApp.with(this)
.load(pkMemberInfo.getUserInfo().getAvatar())
.placeholder(R.drawable.default_avatar)
.dontAnimate()
.into(civBlueAvatars.get(blueIndex));
blueIndex++;
}
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPKTimeTickEvent(PKTimeTickEvent event) {
if (PkModel.get().getCurPkInfo() == null) {
return;
}
long countDownTime = PkModel.get().getCurPkInfo().getCurPkTimeUntilEnd();
tvPkTimer.setText(String.format("%1$02d:%2$02d", countDownTime / 60, countDownTime % 60));
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPKTimeFinishEvent(PKTimeFinishEvent event) {
updateView();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onPKDataUpdateEvent(PKDataUpdateEvent event) {
if (PkModel.get().getCurPkInfo() == null) {
return;
}
if (PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_IN_PK) {
PKTeamInfo blueTeamInfo = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_BLUE);
if (blueTeamInfo != null) {
tvBlueTeamScore.setText(FormatUtils.formatPKValue(blueTeamInfo.getScore()));
}
PKTeamInfo redTeamInfo = PkModel.get().findTeamByTeamId(PKTeamInfo.TEAM_RED);
if (redTeamInfo != null) {
tvRedTeamScore.setText(FormatUtils.formatPKValue(redTeamInfo.getScore()));
}
if (redTeamInfo != null && blueTeamInfo != null) {
long totalScore = redTeamInfo.getScore() + blueTeamInfo.getScore();
if (totalScore > 0) {
int percent = (int) ((float) redTeamInfo.getScore() / (float) totalScore * 100.0f);
pbScore.setProgress(percent);
} else {
pbScore.setProgress(50);
}
}
}
if (PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_AFTER_PK) {
if (onActionListener != null) {
onActionListener.onEndPK();
}
tvBlueTeamScore.setText(FormatUtils.formatPKValue(0));
tvRedTeamScore.setText(FormatUtils.formatPKValue(0));
}
if (PkModel.get().getCurPkInfo().getPkStatus() == RoomPkData.PK_STATUS_TERMINAL_PK_BEFORE_END) {
tvBlueTeamScore.setText(FormatUtils.formatPKValue(0));
tvRedTeamScore.setText(FormatUtils.formatPKValue(0));
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.fl_left:
//不是管理员或者房主弹出排麦dialog
if (!AvRoomDataManager.get().isManager()) {
//已经排麦不操作
if (!PkModel.get().getPkMemberInfoList().isEmpty() && AvRoomDataManager.get().myIsInQueue) {
// Toast.makeText(getContext(), ResUtil.getString(R.string.avroom_widget_pkboardview_02), Toast.LENGTH_SHORT).show();
SingleToastUtil.showToastShort(ResUtil.getString(R.string.avroom_widget_pkboardview_03));
return;
}
if (onActionListener != null) {
onActionListener.onShowPKMicQueueDialog();
}
return;
}
//添加红队人员
PKSelectPeopleDialog selectRedDialog = new PKSelectPeopleDialog(getContext(), PKTeamInfo.TEAM_RED, PkModel.get().getPkMemberInfoList());
selectRedDialog.setOnSelectPeopleListener(new PKSelectPeopleDialog.OnSelectPeopleListener() {
@Override
public void onSelectPeople(List<PKSelectPeopleDialog.MicEntity> micEntityList) {
//更新队伍,麦序,显示头像
List<RoomPKInvitedUpMicMember> upMicMemberList = new ArrayList<>();
for (PKSelectPeopleDialog.MicEntity micEntity : micEntityList) {
if (TextUtils.isEmpty(micEntity.uid)) {
continue;
}
RoomPKInvitedUpMicMember roomPKInvitedUpMicMember = new RoomPKInvitedUpMicMember();
if (micEntity.isSelect) {
roomPKInvitedUpMicMember.setGroupType(PKTeamInfo.TEAM_RED);
} else {
if (TextUtils.isEmpty(micEntity.uid)) {
roomPKInvitedUpMicMember.setGroupType(PKTeamInfo.TEAM_NONE);
} else {
int teamId = PkModel.get().getTeamIdInPKMemberList(micEntity.uid);
roomPKInvitedUpMicMember.setGroupType(
teamId == PKTeamInfo.TEAM_RED ? PKTeamInfo.TEAM_NONE : teamId);
}
}
roomPKInvitedUpMicMember.setUid(micEntity.uid);
roomPKInvitedUpMicMember.setNick(micEntity.nick);
SparseArray<RoomQueueInfo> micQueue = AvRoomDataManager.get().mMicQueueMemberMap;
//设置坑位的位置
for (int i = 0; i < micQueue.size(); i++) {
int key = micQueue.keyAt(i);
RoomQueueInfo roomQueueInfo = micQueue.get(key);
if (roomQueueInfo.mChatRoomMember != null
&& roomQueueInfo.mChatRoomMember.getAccount().equals(micEntity.uid)) {
roomPKInvitedUpMicMember.setPosition(key);
}
}
upMicMemberList.add(roomPKInvitedUpMicMember);
}
PkModel.get().inviteInTeam(upMicMemberList)
.doOnError(throwable -> SingleToastUtil.showToastShort(throwable.getMessage()))
.subscribe();
}
});
selectRedDialog.show();
break;
case R.id.fl_right:
//不是管理员或者房主弹出排麦dialog
if (!AvRoomDataManager.get().isManager()) {
//已经排麦不操作
if (!PkModel.get().getPkMemberInfoList().isEmpty() && AvRoomDataManager.get().myIsInQueue) {
return;
}
if (onActionListener != null) {
onActionListener.onShowPKMicQueueDialog();
}
return;
}
//添加蓝队人员
PKSelectPeopleDialog selectBlueDialog = new PKSelectPeopleDialog(getContext(), PKTeamInfo.TEAM_BLUE, PkModel.get().getPkMemberInfoList());
selectBlueDialog.setOnSelectPeopleListener(micEntityList -> {
//更新队伍,麦序,显示头像
List<RoomPKInvitedUpMicMember> upMicMemberList = new ArrayList<>();
for (PKSelectPeopleDialog.MicEntity micEntity : micEntityList) {
if (TextUtils.isEmpty(micEntity.uid)) {
continue;
}
RoomPKInvitedUpMicMember roomPKInvitedUpMicMember = new RoomPKInvitedUpMicMember();
if (micEntity.isSelect) {
roomPKInvitedUpMicMember.setGroupType(PKTeamInfo.TEAM_BLUE);
} else {
int teamId = PkModel.get().getTeamIdInPKMemberList(micEntity.uid);
roomPKInvitedUpMicMember.setGroupType(
teamId == PKTeamInfo.TEAM_BLUE ? PKTeamInfo.TEAM_NONE : teamId);
}
roomPKInvitedUpMicMember.setUid(micEntity.uid);
roomPKInvitedUpMicMember.setNick(micEntity.nick);
SparseArray<RoomQueueInfo> micQueue = AvRoomDataManager.get().mMicQueueMemberMap;
//设置坑位的位置
for (int i = 0; i < micQueue.size(); i++) {
int key = micQueue.keyAt(i);
RoomQueueInfo roomQueueInfo = micQueue.get(key);
if (roomQueueInfo.mChatRoomMember != null &&
roomQueueInfo.mChatRoomMember.getAccount().equals(micEntity.uid)) {
roomPKInvitedUpMicMember.setPosition(key);
}
}
upMicMemberList.add(roomPKInvitedUpMicMember);
}
PkModel.get().inviteInTeam(upMicMemberList)
.doOnError(throwable -> SingleToastUtil.showToastShort(throwable.getMessage()))
.subscribe();
});
selectBlueDialog.show();
break;
case R.id.iv_pk_begin:
// 开始PK 倒计时
if (onActionListener != null) {
onActionListener.onBeginPK();
}
break;
case R.id.root_view:
//pk中点击pk 面板
if (PkModel.get().isFighting()) {
PKScoreBoardDialog pkScoreBoardDialog = new PKScoreBoardDialog(getContext());
pkScoreBoardDialog.show();
}
break;
default:
break;
}
}
private OnActionListener onActionListener;
public void setOnActionListener(OnActionListener onActionListener) {
this.onActionListener = onActionListener;
}
public interface OnActionListener {
void onBeginPK();
void onEndPK();
void onShowPKMicQueueDialog();
}
}

View File

@@ -0,0 +1,46 @@
package com.chwl.app.avroom.widget
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.FrameLayout
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import com.chwl.app.R
import com.chwl.app.databinding.LayoutRoomTeamPkUserListViewBinding
import com.chwl.app.ui.utils.ImageLoadUtils
import com.chwl.core.room.pk.bean.PKMemberInfo
class TeamPKUserListView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr) {
private val binding = LayoutRoomTeamPkUserListViewBinding.inflate(LayoutInflater.from(context))
private val ivAvatars = arrayOf(binding.ivAvatar1, binding.ivAvatar2, binding.ivAvatar3)
init {
addView(binding.root)
}
fun showBlueStyle() {
binding.ivAvatarSeat1.setImageResource(R.drawable.room_team_pk_bg_seat_blue)
binding.ivAvatarSeat2.setImageResource(R.drawable.room_team_pk_bg_seat_blue)
binding.ivAvatarSeat3.setImageResource(R.drawable.room_team_pk_bg_seat_blue)
}
fun updateData(data: List<String?>?) {
for (i in ivAvatars.indices) {
val item = data?.getOrNull(i)
if (item.isNullOrEmpty()) {
ivAvatars[i].isInvisible = true
} else {
ivAvatars[i].isVisible = true
ImageLoadUtils.loadImage(
context,
item,
ivAvatars[i], R.drawable.default_avatar
)
}
}
}
}

View File

@@ -7,9 +7,14 @@ import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.*
import androidx.fragment.app.FragmentActivity
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.withResumed
import androidx.viewbinding.ViewBinding
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.trello.rxlifecycle3.components.support.RxDialogFragment
import kotlinx.coroutines.launch
import java.lang.reflect.ParameterizedType
abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
@@ -59,6 +64,46 @@ abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
}
}
private var safeShowTask: ((FragmentManager, String?) -> Unit)? = null
fun safeShow(fragmentManager: FragmentManager, lifecycleOwner: LifecycleOwner, tag: String? = null) {
lifecycleOwner.lifecycleScope.launch {
safeShowTask = { fm, tag ->
try {
show(fm, tag)
} catch (e: Exception) {
e.printStackTrace()
}
}
lifecycleOwner.withResumed {
safeShowTask?.invoke(fragmentManager, tag)
}
}
}
fun safeDismiss() {
try {
dismissAllowingStateLoss()
} catch (e: Exception) {
e.printStackTrace()
}
}
override fun onDestroy() {
super.onDestroy()
safeShowTask = null
}
override fun dismiss() {
super.dismiss()
safeShowTask = null
}
override fun dismissAllowingStateLoss() {
super.dismissAllowingStateLoss()
safeShowTask = null
}
override fun onDismiss(dialog: DialogInterface) {
super.onDismiss(dialog)
onDismissListener?.invoke()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 650 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 428 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 272 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 KiB

View File

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

View File

@@ -1,221 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="true"
android:fitsSystemWindows="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="98dp"
android:background="@drawable/pk_result_bg"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll_pk_member"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="35dp"
android:layout_marginTop="38dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pk_participant"
android:textColor="@color/color_FFFFFF"
android:textSize="14sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_list"
android:layout_width="wrap_content"
android:layout_height="35dp" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_score"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="35dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pk_score"
android:textColor="@color/color_FFFFFF"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_FD4D72"
android:textSize="14sp"
tools:text="123456" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_guardian_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="35dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pk_guardian"
android:textColor="@color/color_FFFFFF"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_guardian_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_FD4D72"
android:textSize="14sp"
tools:text="@string/layout_dialog_pk_result_01" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_guardian_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="35dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pk_guardian_score"
android:textColor="@color/color_FFFFFF"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_guardian_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_FD4D72"
android:textSize="14sp"
tools:text="123456" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_result_tie"
android:layout_marginTop="30dp"
android:layout_marginBottom="30dp"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:visibility="gone"
tools:visibility="visible">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:textColor="@color/color_FFFFFF"
android:text="@string/pk_result_tie" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="35dp"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/pk_score"
android:textColor="@color/color_FFFFFF"
android:textSize="14sp" />
<TextView
android:id="@+id/tv_tie_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_FD4D72"
android:textSize="14sp"
tools:text="123456" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_team_status"
android:layout_width="231dp"
android:layout_height="30dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@mipmap/bg_pk_result_team"
android:gravity="center"
android:textColor="@color/color_FD4D72"
android:textSize="16sp"
tools:text="@string/layout_dialog_pk_result_02" />
<TextView
android:id="@+id/tv_team_lose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:textColor="@color/white_transparent_50"
android:textSize="13sp"
android:text="@string/pk_tip_do_not_give_up"
android:visibility="gone" />
<TextView
android:id="@+id/tv_see_other_team"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="12dp"
android:gravity="center"
android:textColor="@color/color_59B9FB"
android:textSize="14sp"
tools:text="@string/layout_dialog_pk_result_03" />
<View
android:layout_width="match_parent"
android:layout_height="18dp" />
</LinearLayout>
<ImageView
android:id="@+id/iv_result_bottom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-8dp"
android:layout_gravity="center_horizontal"
android:src="@mipmap/pk_result_victory_bottom" />
</LinearLayout>
<ImageView
android:id="@+id/iv_result_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@drawable/pk_result_victory_top" />
</FrameLayout>

View File

@@ -1,209 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="260dp"
android:layout_height="168dp"
android:layout_gravity="center"
android:background="@mipmap/bg_pk_score_board"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/tv_pk_timer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#602A06"
android:textSize="10dp"
android:typeface="monospace"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="00:00" />
<com.chwl.app.avroom.widget.PKProgressBar
android:id="@+id/pb_score"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="18dp"
android:layout_marginStart="30dp"
android:layout_marginEnd="30dp"
android:layout_marginBottom="23dp"
android:max="100"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:progress="50"
android:progressDrawable="@drawable/pk_score_pb"
android:thumb="@drawable/ic_pb_indicator"
app:layout_constraintBottom_toTopOf="@id/tv_restart"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/tv_red_team_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
android:gravity="center_horizontal"
android:includeFontPadding="false"
android:text="0"
android:textColor="@color/color_FFFFFF"
android:textSize="12dp"
app:layout_constraintStart_toStartOf="@id/pb_score"
app:layout_constraintTop_toBottomOf="@id/pb_score" />
<TextView
android:id="@+id/tv_blue_team_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:gravity="center_horizontal"
android:includeFontPadding="false"
android:text="0"
android:textColor="@color/color_FFFFFF"
android:textSize="12dp"
app:layout_constraintEnd_toEndOf="@id/pb_score"
app:layout_constraintTop_toBottomOf="@id/pb_score" />
<FrameLayout
android:id="@+id/fl_red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
app:layout_constraintEnd_toStartOf="@id/tv_pk_vote_mode"
android:orientation="horizontal"
app:layout_constraintBottom_toTopOf="@id/pb_score"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.65">
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_red_avatar_1"
android:layout_width="45dp"
android:layout_height="45dp"
android:src="@mipmap/ic_red_seat" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_red_avatar_2"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="10dp"
android:src="@mipmap/ic_red_seat" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_red_avatar_3"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="20dp"
android:src="@mipmap/ic_red_seat" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_red_avatar_4"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_marginStart="30dp"
android:src="@mipmap/ic_red_seat" />
</FrameLayout>
<TextView
android:id="@+id/tv_pk_vote_mode"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/color_79674E"
android:textSize="12dp"
app:layout_constraintBottom_toTopOf="@id/tv_pk_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/fl_red"
app:layout_constraintVertical_chainStyle="packed"
tools:text="@string/vote_type_gift_member" />
<TextView
android:id="@+id/tv_pk_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:gravity="center_horizontal"
android:text="PK"
android:textColor="@color/color_79674E"
android:textSize="15dp"
app:layout_constraintBottom_toBottomOf="@id/fl_blue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_pk_vote_mode" />
<FrameLayout
android:id="@+id/fl_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@id/tv_pk_vote_mode"
app:layout_constraintBottom_toTopOf="@id/pb_score"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.65">
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_blue_avatar_1"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="end"
android:src="@mipmap/ic_blue_seat" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_blue_avatar_2"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="end"
android:layout_marginEnd="10dp"
android:src="@mipmap/ic_blue_seat" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_blue_avatar_3"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="end"
android:layout_marginEnd="20dp"
android:src="@mipmap/ic_blue_seat" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_blue_avatar_4"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_gravity="end"
android:layout_marginEnd="30dp"
android:src="@mipmap/ic_blue_seat" />
</FrameLayout>
<com.coorchice.library.SuperTextView
android:id="@+id/tv_restart"
android:layout_width="90dp"
android:layout_height="24dp"
android:layout_marginTop="13dp"
android:layout_marginBottom="15dp"
android:gravity="center"
android:text="@string/pk_restart"
android:textColor="@color/color_602A06"
android:textSize="12dp"
android:visibility="gone"
app:corner="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:shaderEnable="true"
app:shaderEndColor="#FFDAA8"
app:shaderMode="leftToRight"
app:shaderStartColor="#FFBD64"
tools:visibility="visible" />
<ImageView
android:id="@+id/tv_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bg_pk_score_board_close"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -260,6 +260,17 @@
android:onClick="@{click}"
android:src="@drawable/room_ic_game" />
<ImageView
android:id="@+id/iv_team_pk"
android:layout_width="@dimen/dp_38"
android:layout_height="@dimen/dp_38"
android:layout_above="@id/iv_game"
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/dp_11"
android:layout_marginBottom="@dimen/dp_8"
android:src="@drawable/room_team_pk_icon"
android:visibility="gone" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -317,16 +328,6 @@
</LinearLayout>
<com.chwl.app.avroom.widget.PKBoardView
android:id="@+id/layout_pk_board"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/micro_view"
android:layout_marginStart="15dp"
android:layout_marginTop="5dp"
android:visibility="gone"
tools:contentDescription="@string/layout_fragment_av_room_game_010" />
<com.chwl.app.avroom.anotherroompk.RoomPKBoardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -1,202 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root_view"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:orientation="horizontal"
tools:contentDescription="@string/layout_layout_pk_board_view_01">
<View
android:id="@+id/view_bg"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@mipmap/bg_pk_board"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/fl_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="14dp"
android:gravity="start"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_red_team_member_1"
android:layout_width="25dp"
android:layout_height="25dp"
app:cborder_color="@color/color_FFA572"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_red_team_member_2"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="6dp"
app:cborder_color="@color/color_FFA572"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_red_team_member_3"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="12dp"
app:cborder_color="@color/color_FFA572"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_red_team_member_4"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="18dp"
app:cborder_color="@color/color_FFA572"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_add_red_team_member"
android:layout_width="25dp"
android:layout_height="match_parent"
android:src="@mipmap/bg_pk_board_left" />
</FrameLayout>
<TextView
android:id="@+id/tv_red_team_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:text="0"
android:textColor="@color/color_FFFFFF"
android:textSize="12dp"
app:layout_constraintEnd_toEndOf="@id/fl_left"
app:layout_constraintStart_toStartOf="@id/fl_left"
app:layout_constraintTop_toBottomOf="@id/fl_left" />
<com.chwl.app.avroom.widget.PKProgressBar
android:id="@+id/pb_score"
android:paddingTop="5dp"
android:paddingBottom="5dp"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="18dp"
android:max="100"
android:progress="50"
android:progressDrawable="@drawable/pk_board_pb"
app:layout_constraintBottom_toBottomOf="@id/fl_left"
app:layout_constraintEnd_toStartOf="@id/fl_right"
app:layout_constraintStart_toEndOf="@id/fl_left"
app:layout_constraintTop_toTopOf="@id/fl_left" />
<FrameLayout
android:id="@+id/fl_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="14dp"
android:layout_marginEnd="20dp"
android:gravity="start"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_blue_team_member_1"
android:layout_width="25dp"
android:layout_height="25dp"
app:cborder_color="@color/color_3ECAFC"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_blue_team_member_2"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="6dp"
app:cborder_color="@color/color_3ECAFC"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_blue_team_member_3"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="12dp"
app:cborder_color="@color/color_3ECAFC"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/civ_blue_team_member_4"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginStart="18dp"
app:cborder_color="@color/color_3ECAFC"
app:cborder_width="1dp"
tools:src="@drawable/default_avatar"
tools:visibility="gone" />
<com.chwl.app.common.widget.CircleImageView
android:id="@+id/iv_add_blue_team_member"
android:layout_width="25dp"
android:layout_height="25dp"
android:src="@mipmap/bg_pk_board_right" />
</FrameLayout>
<TextView
android:id="@+id/tv_blue_team_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:lines="1"
android:text="0"
android:textColor="@color/color_FFFFFF"
android:textSize="12dp"
app:layout_constraintEnd_toEndOf="@id/fl_right"
app:layout_constraintStart_toStartOf="@id/fl_right"
app:layout_constraintTop_toBottomOf="@id/fl_right" />
<TextView
android:paddingHorizontal="10dp"
android:paddingVertical="0px"
android:id="@+id/tv_pk_timer"
android:layout_width="wrap_content"
android:layout_height="13dp"
android:background="@drawable/bg_pk_board_status"
android:gravity="center"
android:text="@string/layout_layout_pk_board_view_02"
android:includeFontPadding="false"
android:textColor="#602A06"
android:textSize="10dp"
android:typeface="monospace"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_pk_begin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:gravity="center"
android:src="@drawable/bg_pk_board_begin"
app:layout_constraintBottom_toBottomOf="@id/view_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/view_bg" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<FrameLayout
android:layout_width="@dimen/dp_33"
android:layout_height="@dimen/dp_33">
<ImageView
android:id="@+id/iv_avatar_seat_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/room_team_pk_bg_seat_red" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv_avatar_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/dp_2"
app:shapeAppearance="@style/shape_circle" />
</FrameLayout>
<FrameLayout
android:layout_width="@dimen/dp_33"
android:layout_height="@dimen/dp_33"
android:layout_marginStart="@dimen/dp_5">
<ImageView
android:id="@+id/iv_avatar_seat_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/room_team_pk_bg_seat_red" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv_avatar_2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/dp_2"
app:shapeAppearance="@style/shape_circle" />
</FrameLayout>
<FrameLayout
android:layout_width="@dimen/dp_33"
android:layout_height="@dimen/dp_33"
android:layout_marginStart="@dimen/dp_5">
<ImageView
android:id="@+id/iv_avatar_seat_3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/room_team_pk_bg_seat_red" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv_avatar_3"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="@dimen/dp_2"
app:shapeAppearance="@style/shape_circle" />
</FrameLayout>
</LinearLayout>

View File

@@ -0,0 +1,266 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_content"
android:layout_width="@dimen/dp_309"
android:layout_height="0dp"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp_59"
android:clickable="true"
android:orientation="vertical"
app:layout_constraintDimensionRatio="309:379"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.chwl.app.view.AutoMirroredImageView
android:id="@+id/iv_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/room_team_pk_bg" />
<ImageView
android:layout_width="@dimen/dp_118"
android:layout_height="@dimen/dp_93"
android:layout_marginTop="@dimen/dp_76"
android:src="@drawable/room_pk_result_vs"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_close"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_8"
android:src="@drawable/room_team_pk_ic_close"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_avatar_border_red"
android:layout_width="@dimen/dp_68"
android:layout_height="@dimen/dp_68"
android:layout_marginStart="@dimen/dp_12"
android:layout_marginTop="@dimen/dp_83"
android:src="@drawable/room_team_pk_bg_seat_red"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv_avatar_red"
android:layout_width="@dimen/dp_62"
android:layout_height="@dimen/dp_62"
android:src="@drawable/default_avatar"
app:layout_constraintBottom_toBottomOf="@id/iv_avatar_border_red"
app:layout_constraintEnd_toEndOf="@id/iv_avatar_border_red"
app:layout_constraintStart_toStartOf="@id/iv_avatar_border_red"
app:layout_constraintTop_toTopOf="@id/iv_avatar_border_red"
app:shapeAppearance="@style/shape_circle" />
<ImageView
android:id="@+id/iv_avatar_border_blue"
android:layout_width="@dimen/dp_68"
android:layout_height="@dimen/dp_68"
android:layout_marginEnd="@dimen/dp_12"
android:src="@drawable/room_pk_result_avatar_border_blue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_avatar_border_red" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv_avatar_blue"
android:layout_width="@dimen/dp_62"
android:layout_height="@dimen/dp_62"
android:src="@drawable/default_avatar"
app:layout_constraintBottom_toBottomOf="@id/iv_avatar_border_blue"
app:layout_constraintEnd_toEndOf="@id/iv_avatar_border_blue"
app:layout_constraintStart_toStartOf="@id/iv_avatar_border_blue"
app:layout_constraintTop_toTopOf="@id/iv_avatar_border_blue"
app:shapeAppearance="@style/shape_circle" />
<com.chwl.app.avroom.widget.TeamPKUserListView
android:id="@+id/user_list_red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_5"
android:layout_marginTop="@dimen/dp_186"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.chwl.app.avroom.widget.TeamPKUserListView
android:id="@+id/user_list_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_5"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/user_list_red" />
<LinearLayout
android:id="@+id/layout_time"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_29"
android:layout_marginTop="@dimen/dp_8"
android:background="@drawable/shape_66000000_14dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingHorizontal="@dimen/dp_12"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/user_list_red">
<ImageView
android:layout_width="@dimen/dp_13"
android:layout_height="@dimen/dp_13"
android:src="@drawable/room_team_pk_ic_time" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_4"
android:includeFontPadding="false"
android:text="@string/countdown"
android:textColor="#99FFFFFF"
android:textSize="@dimen/dp_11" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_5"
android:includeFontPadding="false"
android:text="00:00"
android:textColor="#FFFFFF"
android:textSize="@dimen/dp_15"
android:textStyle="bold" />
</LinearLayout>
<ProgressBar
android:id="@+id/pb_score"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="@dimen/dp_215"
android:layout_height="@dimen/dp_13"
android:max="100"
android:progress="50"
android:progressDrawable="@drawable/room_room_pk_bg_board_pb"
app:layout_constraintBottom_toBottomOf="@id/tv_gift_red"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_gift_red" />
<TextView
android:id="@+id/tv_score_red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_3"
android:layout_marginTop="@dimen/dp_4"
android:maxLines="1"
android:text="0"
android:textColor="@color/white"
android:textSize="@dimen/dp_12"
app:layout_constraintStart_toEndOf="@id/iv_gift_red"
app:layout_constraintTop_toBottomOf="@id/pb_score" />
<TextView
android:id="@+id/tv_score_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_3"
android:maxLines="1"
android:text="0"
android:textColor="@color/white"
android:textSize="@dimen/dp_12"
app:layout_constraintBottom_toBottomOf="@id/tv_score_red"
app:layout_constraintEnd_toStartOf="@id/iv_gift_blue"
app:layout_constraintTop_toTopOf="@id/tv_score_red" />
<com.chwl.app.view.AutoMirroredImageView
android:id="@+id/iv_gift_red"
android:layout_width="@dimen/dp_47"
android:layout_height="@dimen/dp_56"
android:layout_marginStart="@dimen/dp_8"
android:layout_marginTop="@dimen/dp_28"
android:src="@drawable/room_team_pk_bg_gift_red"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/user_list_red" />
<TextView
android:id="@+id/tv_gift_red"
android:layout_width="@dimen/dp_47"
android:layout_height="@dimen/dp_47"
android:gravity="center"
android:text="Gift"
android:textColor="@color/white"
android:textSize="@dimen/dp_15"
app:layout_constraintBottom_toBottomOf="@id/iv_gift_red"
app:layout_constraintEnd_toEndOf="@id/iv_gift_red"
app:layout_constraintStart_toStartOf="@id/iv_gift_red" />
<com.chwl.app.view.AutoMirroredImageView
android:id="@+id/iv_gift_blue"
android:layout_width="@dimen/dp_47"
android:layout_height="@dimen/dp_56"
android:layout_marginEnd="@dimen/dp_8"
android:src="@drawable/room_team_pk_bg_gift_blue"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/iv_gift_red" />
<TextView
android:id="@+id/tv_gift_blue"
android:layout_width="@dimen/dp_47"
android:layout_height="@dimen/dp_47"
android:gravity="center"
android:text="Gift"
android:textColor="@color/white"
android:textSize="@dimen/dp_15"
app:layout_constraintBottom_toBottomOf="@id/iv_gift_blue"
app:layout_constraintEnd_toEndOf="@id/iv_gift_blue"
app:layout_constraintStart_toStartOf="@id/iv_gift_blue" />
<com.opensource.svgaplayer.SVGAImageView
android:id="@+id/svga_hot"
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_35"
android:src="@drawable/room_pk_ic_hot"
app:layout_constraintBottom_toBottomOf="@id/pb_score"
app:layout_constraintEnd_toEndOf="@id/pb_score"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="@id/pb_score"
app:layout_constraintTop_toTopOf="@id/pb_score" />
<TextView
android:id="@+id/tv_next"
android:layout_width="@dimen/dp_144"
android:layout_height="@dimen/dp_32"
android:layout_marginTop="@dimen/dp_15"
android:background="@drawable/room_team_pk_bg_button"
android:gravity="center"
android:text="@string/start_pk"
android:textColor="@color/white"
android:textSize="@dimen/dp_15"
app:autoSizeMaxTextSize="@dimen/dp_15"
app:autoSizeMinTextSize="@dimen/dp_8"
app:autoSizeStepGranularity="1px"
app:autoSizeTextType="uniform"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_gift_red" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_status"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_125"
android:src="@drawable/room_team_pk_ic_top"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,197 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_root"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/layout_content"
android:layout_width="@dimen/dp_299"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp_37"
android:clickable="true"
android:clipChildren="false"
android:background="@drawable/room_team_pk_result_bg"
android:orientation="vertical"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.chwl.app.view.AutoMirroredImageView
android:id="@+id/iv_bg"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_55"
android:layout_marginTop="@dimen/dp_90"
android:clipChildren="false"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_score_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_18"
android:layout_marginTop="@dimen/dp_19"
android:includeFontPadding="false"
android:text="@string/pk_score"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/dp_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/recycler_view" />
<TextView
android:id="@+id/tv_score"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_15"
android:gravity="center_vertical"
android:includeFontPadding="false"
android:textColor="#FF396F"
android:textSize="@dimen/dp_14"
app:autoSizeMaxTextSize="@dimen/dp_14"
app:autoSizeMinTextSize="@dimen/dp_8"
app:autoSizeStepGranularity="1px"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toBottomOf="@id/tv_score_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_score_title"
app:layout_constraintTop_toTopOf="@id/tv_score_title"
tools:text="000" />
<TextView
android:id="@+id/tv_guardian_name_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:includeFontPadding="false"
android:text="@string/pk_guardian"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/dp_14"
app:layout_constraintStart_toStartOf="@id/tv_score_title"
app:layout_constraintTop_toBottomOf="@id/tv_score_title" />
<TextView
android:id="@+id/tv_guardian_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_15"
android:gravity="center_vertical"
android:includeFontPadding="false"
android:textColor="#FF396F"
android:textSize="@dimen/dp_14"
app:autoSizeMaxTextSize="@dimen/dp_14"
app:autoSizeMinTextSize="@dimen/dp_8"
app:autoSizeStepGranularity="1px"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toBottomOf="@id/tv_guardian_name_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_guardian_name_title"
app:layout_constraintTop_toTopOf="@id/tv_guardian_name_title"
tools:text="000" />
<TextView
android:id="@+id/tv_guardian_value_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_4"
android:includeFontPadding="false"
android:text="@string/pk_guardian_score"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/dp_14"
app:layout_constraintStart_toStartOf="@id/tv_score_title"
app:layout_constraintTop_toBottomOf="@id/tv_guardian_name_title" />
<TextView
android:id="@+id/tv_guardian_value"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_15"
android:gravity="center_vertical"
android:includeFontPadding="false"
android:textColor="#FF396F"
android:textSize="@dimen/dp_14"
app:autoSizeMaxTextSize="@dimen/dp_14"
app:autoSizeMinTextSize="@dimen/dp_8"
app:autoSizeStepGranularity="1px"
app:autoSizeTextType="uniform"
app:layout_constraintBottom_toBottomOf="@id/tv_guardian_value_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tv_guardian_value_title"
app:layout_constraintTop_toTopOf="@id/tv_guardian_value_title"
tools:text="000" />
<TextView
android:id="@+id/tv_team_status"
android:layout_width="@dimen/dp_191"
android:layout_height="@dimen/dp_18"
android:layout_marginTop="@dimen/dp_12"
android:background="@drawable/room_team_pk_result_team_name_bg"
android:gravity="center"
android:includeFontPadding="false"
android:textColor="#FF4B81"
android:textSize="@dimen/dp_13"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_guardian_value_title"
tools:text="@string/layout_dialog_pk_result_02" />
<TextView
android:id="@+id/tv_see_other_team"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_15"
android:layout_marginBottom="@dimen/dp_15"
android:drawableEnd="@drawable/room_team_pk_result_ic_arrow"
android:drawablePadding="@dimen/dp_4"
android:gravity="center"
android:includeFontPadding="false"
android:textColor="#99FFFFFF"
android:textSize="@dimen/dp_11"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_team_status"
tools:text="@string/layout_dialog_pk_result_03" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_guardian_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="tv_guardian_name_title,tv_guardian_name" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_guardian_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="tv_guardian_value_title,tv_guardian_value" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_score"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:constraint_referenced_ids="tv_score,tv_score_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_result_top"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_125"
android:src="@drawable/room_team_pk_result_top_win"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="@dimen/dp_55"
android:layout_height="@dimen/dp_55"
android:layout_marginHorizontal="@dimen/dp_8"
android:clipChildren="false">
<ImageView
android:id="@+id/iv_avatar_bg"
android:layout_width="@dimen/dp_91"
android:layout_height="@dimen/dp_91"
android:src="@drawable/room_team_pk_result_avatar_bg_win"
app:layout_constraintBottom_toBottomOf="@id/iv_avatar"
app:layout_constraintEnd_toEndOf="@id/iv_avatar"
app:layout_constraintStart_toStartOf="@id/iv_avatar"
app:layout_constraintTop_toTopOf="@id/iv_avatar" />
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv_avatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="@dimen/dp_0_5"
android:src="@drawable/default_avatar"
app:shapeAppearance="@style/shape_circle"
app:strokeColor="@color/white"
app:strokeWidth="@dimen/dp_1" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1402,15 +1402,15 @@
<string name="avroom_dialog_pkresultdialog_02">· متوازن ·</string>
<string name="avroom_dialog_pkresultdialog_03">لا شيء</string>
<string name="avroom_dialog_pkresultdialog_04">· سجل فريق الأحمر ·</string>
<string name="avroom_dialog_pkresultdialog_05">عرض سجل فريق الأزرق></string>
<string name="avroom_dialog_pkresultdialog_05">عرض سجل فريق الأزرق</string>
<string name="avroom_dialog_pkresultdialog_06">· لقد فزت ·</string>
<string name="avroom_dialog_pkresultdialog_07">عرض سجل الخصم></string>
<string name="avroom_dialog_pkresultdialog_08">عرض سجلي></string>
<string name="avroom_dialog_pkresultdialog_07">عرض سجل الخصم</string>
<string name="avroom_dialog_pkresultdialog_08">عرض سجلي</string>
<string name="avroom_dialog_pkresultdialog_09">· سجل فريق الأزرق ·</string>
<string name="avroom_dialog_pkresultdialog_010">عرض سجل فريق الأحمر></string>
<string name="avroom_dialog_pkresultdialog_010">عرض سجل فريق الأحمر</string>
<string name="avroom_dialog_pkresultdialog_011">· لقد فزت ·</string>
<string name="avroom_dialog_pkresultdialog_012">عرض سجل الخصم></string>
<string name="avroom_dialog_pkresultdialog_013">عرض سجلي></string>
<string name="avroom_dialog_pkresultdialog_012">عرض سجل الخصم</string>
<string name="avroom_dialog_pkresultdialog_013">عرض سجلي</string>
<string name="avroom_dialog_pkresultdialog_014">· سجل الفريق غير المعروف ·</string>
<string name="avroom_dialog_pkscoreboarddialog_01">انتهت فترة الـ PK</string>
<string name="avroom_dialog_pkscoreboarddialog_02">انتهى الـ PK</string>
@@ -5293,4 +5293,7 @@
<string name="wallet">المحفظة</string>
<string name="please_enter">يرجى إدخال …</string>
<string name="countdown">倒計時</string>
<string name="start_pk">開始PK</string>
</resources>

View File

@@ -1420,15 +1420,15 @@
<string name="avroom_dialog_pkresultdialog_02">·勢均力敵·</string>
<string name="avroom_dialog_pkresultdialog_03"></string>
<string name="avroom_dialog_pkresultdialog_04">·紅隊戰績·</string>
<string name="avroom_dialog_pkresultdialog_05">查看藍隊戰績></string>
<string name="avroom_dialog_pkresultdialog_05">查看藍隊戰績</string>
<string name="avroom_dialog_pkresultdialog_06">·您勝利了·</string>
<string name="avroom_dialog_pkresultdialog_07">查看對方戰績></string>
<string name="avroom_dialog_pkresultdialog_08">查看我的戰績></string>
<string name="avroom_dialog_pkresultdialog_07">查看對方戰績</string>
<string name="avroom_dialog_pkresultdialog_08">查看我的戰績</string>
<string name="avroom_dialog_pkresultdialog_09">·藍隊戰績·</string>
<string name="avroom_dialog_pkresultdialog_010">查看紅隊戰績></string>
<string name="avroom_dialog_pkresultdialog_010">查看紅隊戰績</string>
<string name="avroom_dialog_pkresultdialog_011">·您勝利了·</string>
<string name="avroom_dialog_pkresultdialog_012">查看對方戰績></string>
<string name="avroom_dialog_pkresultdialog_013">查看我的戰績></string>
<string name="avroom_dialog_pkresultdialog_012">查看對方戰績</string>
<string name="avroom_dialog_pkresultdialog_013">查看我的戰績</string>
<string name="avroom_dialog_pkresultdialog_014">·未知隊戰績·</string>
<string name="avroom_dialog_pkscoreboarddialog_01">PK已經不在</string>
<string name="avroom_dialog_pkscoreboarddialog_02">PK已經結束</string>
@@ -5236,4 +5236,6 @@
<string name="wallet">錢包</string>
<string name="please_enter">請輸入..</string>
<string name="countdown">倒計時</string>
<string name="start_pk">開始PK</string>
</resources>

View File

@@ -734,4 +734,7 @@
<color name="color_7E8373">#7E8373</color>
<color name="color_8E8E8E">#8E8E8E</color>
<color name="color_AD89FF">#AD89FF</color>
<color name="color_73B8FF">#73B8FF</color>
<color name="color_FF396F">#FF396F</color>
<color name="color_FF4B81">#FF4B81</color>
</resources>

View File

@@ -1436,15 +1436,15 @@
<string name="avroom_dialog_pkresultdialog_02">· Balanced ·</string>
<string name="avroom_dialog_pkresultdialog_03">None</string>
<string name="avroom_dialog_pkresultdialog_04">· Red Team\'s Record ·</string>
<string name="avroom_dialog_pkresultdialog_05">View Blue Team\'s Record></string>
<string name="avroom_dialog_pkresultdialog_05">View Blue Team\'s Record</string>
<string name="avroom_dialog_pkresultdialog_06">· You won ·</string>
<string name="avroom_dialog_pkresultdialog_07">View Opponent\'s Record></string>
<string name="avroom_dialog_pkresultdialog_08">View My Record></string>
<string name="avroom_dialog_pkresultdialog_07">View Opponent\'s Record</string>
<string name="avroom_dialog_pkresultdialog_08">View My Record</string>
<string name="avroom_dialog_pkresultdialog_09">· Blue Team\'s Record ·</string>
<string name="avroom_dialog_pkresultdialog_010">View Red Team\'s Record></string>
<string name="avroom_dialog_pkresultdialog_010">View Red Team\'s Record</string>
<string name="avroom_dialog_pkresultdialog_011">· You won ·</string>
<string name="avroom_dialog_pkresultdialog_012">View Opponent\'s Record></string>
<string name="avroom_dialog_pkresultdialog_013">View My Record></string>
<string name="avroom_dialog_pkresultdialog_012">View Opponent\'s Record</string>
<string name="avroom_dialog_pkresultdialog_013">View My Record</string>
<string name="avroom_dialog_pkresultdialog_014">· Unknown Team\'s Record ·</string>
<string name="avroom_dialog_pkscoreboarddialog_01">PK is no longer available</string>
<string name="avroom_dialog_pkscoreboarddialog_02">PK has ended</string>
@@ -5274,6 +5274,9 @@ You cannot join again within 24 hours after leaving</string>
<string name="wallet">Wallet</string>
<string name="please_enter">Please enter...</string>
<string name="countdown">倒計時</string>
<string name="start_pk">開始PK</string>
</resources>