From eedbbb53044cc1940491d2b0145064d9b524fbb2 Mon Sep 17 00:00:00 2001 From: 18401019693 Date: Sat, 23 Sep 2023 17:44:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E6=B8=B8=E6=88=8F=E6=88=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapter/InteractionGamesAdapter.java | 19 +- .../LiveNewRoleInteractionGamesAdapter.java | 24 ++- .../common/adapter/SudTitleSelectAdapter.java | 62 ++++++ .../common/bean/CreateSudRoomModel.java | 160 ++++++++++++++++ .../common/dialog/CreateSudGamePopup.java | 156 +++++++++++++++ .../common/dialog/SudGameListPopup.java | 124 ++++++++++++ .../common/dialog/SudGameListSelectPopup.java | 94 +++++++++ .../common/event/CreateSudGameEvent.java | 38 ++++ .../common/event/CustomDrawerPopupEvent.java | 15 ++ .../event/NewRoleCustomDrawerPopupEvent.java | 14 ++ .../event/SudGameListDissMissEvent.java | 6 + .../yunbao/common/event/SudGameListEvent.java | 26 +++ .../com/yunbao/common/http/PDLiveApi.java | 13 ++ .../common/http/live/LiveNetManager.java | 26 ++- .../common/views/CustomDrawerPopupView.java | 9 +- .../InteractionGamesChildViewHolder.java | 25 +-- .../yunbao/common/views/LiveSudGamePopup.java | 42 ++++- .../views/SudTitleSelectViewHolder.java | 35 ++++ .../res/drawable/bg_live_sud_game_back.xml | 7 + .../res/drawable/bg_live_sud_game_top.xml | 5 + .../main/res/drawable/bg_live_sud_list.xml | 5 + .../res/drawable/bg_live_sud_list_btn.xml | 5 + .../res/drawable/bg_live_sud_list_input.xml | 8 + .../res/drawable/bg_live_sud_list_select.xml | 8 + .../drawable/bg_live_sud_list_select_item.xml | 16 ++ .../res/layout/dialog_create_sud_game.xml | 135 +++++++++++++ .../main/res/layout/dialog_live_sud_game.xml | 117 +++++++++++- .../main/res/layout/dialog_sud_game_list.xml | 178 ++++++++++++++++++ .../main/res/layout/view_sud_game_slelect.xml | 27 +++ .../res/layout/view_sud_title_select_view.xml | 17 ++ .../mipmap-xxhdpi/icon_create_sud_game.png | Bin 0 -> 13281 bytes .../icon_interactive_game__add.png | Bin 0 -> 1706 bytes .../icon_interactive_game__ranking.png | Bin 0 -> 4364 bytes .../icon_interactive_game__search.png | Bin 0 -> 2596 bytes .../icon_interactive_game_arrow.png | Bin 0 -> 393 bytes ...icon_interactive_game_create_room_back.png | Bin 0 -> 888 bytes ...con_interactive_game_create_room_seats.png | Bin 0 -> 1918 bytes ...con_interactive_game_room_random_start.png | Bin 0 -> 20186 bytes common/src/main/res/values/strings.xml | 16 ++ .../live/activity/LiveAudienceActivity.java | 22 ++- .../live/views/LiveAudienceViewHolder.java | 1 - .../main/res/layout/dialog_new_live_user.xml | 1 - 42 files changed, 1424 insertions(+), 32 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/adapter/SudTitleSelectAdapter.java create mode 100644 common/src/main/java/com/yunbao/common/bean/CreateSudRoomModel.java create mode 100644 common/src/main/java/com/yunbao/common/dialog/CreateSudGamePopup.java create mode 100644 common/src/main/java/com/yunbao/common/dialog/SudGameListPopup.java create mode 100644 common/src/main/java/com/yunbao/common/dialog/SudGameListSelectPopup.java create mode 100644 common/src/main/java/com/yunbao/common/event/CreateSudGameEvent.java create mode 100644 common/src/main/java/com/yunbao/common/event/SudGameListDissMissEvent.java create mode 100644 common/src/main/java/com/yunbao/common/event/SudGameListEvent.java create mode 100644 common/src/main/java/com/yunbao/common/views/SudTitleSelectViewHolder.java create mode 100644 common/src/main/res/drawable/bg_live_sud_game_back.xml create mode 100644 common/src/main/res/drawable/bg_live_sud_game_top.xml create mode 100644 common/src/main/res/drawable/bg_live_sud_list.xml create mode 100644 common/src/main/res/drawable/bg_live_sud_list_btn.xml create mode 100644 common/src/main/res/drawable/bg_live_sud_list_input.xml create mode 100644 common/src/main/res/drawable/bg_live_sud_list_select.xml create mode 100644 common/src/main/res/drawable/bg_live_sud_list_select_item.xml create mode 100644 common/src/main/res/layout/dialog_create_sud_game.xml create mode 100644 common/src/main/res/layout/dialog_sud_game_list.xml create mode 100644 common/src/main/res/layout/view_sud_game_slelect.xml create mode 100644 common/src/main/res/layout/view_sud_title_select_view.xml create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_create_sud_game.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_interactive_game__add.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_interactive_game__ranking.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_interactive_game__search.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_interactive_game_arrow.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_interactive_game_create_room_back.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_interactive_game_create_room_seats.png create mode 100644 common/src/main/res/mipmap-xxhdpi/icon_interactive_game_room_random_start.png diff --git a/common/src/main/java/com/yunbao/common/adapter/InteractionGamesAdapter.java b/common/src/main/java/com/yunbao/common/adapter/InteractionGamesAdapter.java index 3aa7909bc..7b906da7a 100644 --- a/common/src/main/java/com/yunbao/common/adapter/InteractionGamesAdapter.java +++ b/common/src/main/java/com/yunbao/common/adapter/InteractionGamesAdapter.java @@ -1,6 +1,7 @@ package com.yunbao.common.adapter; import android.content.Context; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -10,7 +11,8 @@ import androidx.recyclerview.widget.RecyclerView; import com.yunbao.common.R; import com.yunbao.common.bean.CustomSidebarChildModel; -import com.yunbao.common.views.FunGamesChildViewHolder; +import com.yunbao.common.event.CustomDrawerPopupEvent; +import com.yunbao.common.utils.Bus; import com.yunbao.common.views.InteractionGamesChildViewHolder; import java.util.ArrayList; @@ -37,6 +39,19 @@ public class InteractionGamesAdapter extends RecyclerView.Adapter { public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { InteractionGamesChildViewHolder childViewHolder = (InteractionGamesChildViewHolder) holder; childViewHolder.setData(child.get(position), rigts); + childViewHolder.setItemViewClicks(new InteractionGamesChildViewHolder.InteractionGamesCallBack() { + @Override + public void onItemViewClicks(CustomSidebarChildModel model, boolean rigts) { + + long activityID = TextUtils.isEmpty(model.getSrc()) ? 0 : Long.parseLong(model.getSrc()); + if (activityID != 0) { + Bus.get().post(new CustomDrawerPopupEvent() + .setDisMiss(true).setInteractionID(activityID).setInteraction(true)); + } + + + } + }); } @Override @@ -56,7 +71,7 @@ public class InteractionGamesAdapter extends RecyclerView.Adapter { notifyDataSetChanged(); } - public void selectAll(List mChild){ + public void selectAll(List mChild) { child.clear(); child.addAll(mChild); notifyDataSetChanged(); diff --git a/common/src/main/java/com/yunbao/common/adapter/LiveNewRoleInteractionGamesAdapter.java b/common/src/main/java/com/yunbao/common/adapter/LiveNewRoleInteractionGamesAdapter.java index 7ae09c10c..58c920ae2 100644 --- a/common/src/main/java/com/yunbao/common/adapter/LiveNewRoleInteractionGamesAdapter.java +++ b/common/src/main/java/com/yunbao/common/adapter/LiveNewRoleInteractionGamesAdapter.java @@ -1,6 +1,7 @@ package com.yunbao.common.adapter; import android.content.Context; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -10,6 +11,10 @@ import androidx.recyclerview.widget.RecyclerView; import com.yunbao.common.R; import com.yunbao.common.bean.CustomSidebarChildModel; +import com.yunbao.common.event.CustomDrawerPopupEvent; +import com.yunbao.common.event.LiveNewRoleEvent; +import com.yunbao.common.event.NewRoleCustomDrawerPopupEvent; +import com.yunbao.common.utils.Bus; import com.yunbao.common.views.InteractionGamesChildViewHolder; import java.util.ArrayList; @@ -36,6 +41,23 @@ public class LiveNewRoleInteractionGamesAdapter extends RecyclerView.Adapter { public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { InteractionGamesChildViewHolder childViewHolder = (InteractionGamesChildViewHolder) holder; childViewHolder.setData(child.get(position), rigts); + childViewHolder.setItemViewClicks(new InteractionGamesChildViewHolder.InteractionGamesCallBack() { + @Override + public void onItemViewClicks(CustomSidebarChildModel model, boolean rigts) { + + long activityID = TextUtils.isEmpty(model.getSrc()) ? 0 : Long.parseLong(model.getSrc()); + if (activityID != 0) { + Bus.get().post(new NewRoleCustomDrawerPopupEvent() + .setDisMiss(true) + .setInteractionID(activityID) + .setChild(child) + .setInteraction(true)); + } + + + Bus.get().post(new LiveNewRoleEvent()); + } + }); } @Override @@ -55,7 +77,7 @@ public class LiveNewRoleInteractionGamesAdapter extends RecyclerView.Adapter { notifyDataSetChanged(); } - public void selectAll(List mChild){ + public void selectAll(List mChild) { child.clear(); child.addAll(mChild); notifyDataSetChanged(); diff --git a/common/src/main/java/com/yunbao/common/adapter/SudTitleSelectAdapter.java b/common/src/main/java/com/yunbao/common/adapter/SudTitleSelectAdapter.java new file mode 100644 index 000000000..7d8afc5ff --- /dev/null +++ b/common/src/main/java/com/yunbao/common/adapter/SudTitleSelectAdapter.java @@ -0,0 +1,62 @@ +package com.yunbao.common.adapter; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.views.SudTitleSelectViewHolder; + +import java.util.ArrayList; +import java.util.List; + +public class SudTitleSelectAdapter extends RecyclerView.Adapter { + + private List selectString = new ArrayList<>(); + + private int mIndex; + + public SudTitleSelectAdapter(List selectString, int index) { + this.selectString = selectString; + mIndex = index; + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_sud_title_select_view, parent, false); + return new SudTitleSelectViewHolder(runGamesView); + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + SudTitleSelectViewHolder childViewHolder = (SudTitleSelectViewHolder) holder; + childViewHolder.setData(selectString.get(position), mIndex == position, position, new SudTitleSelectViewHolder.SudTitleSelectListener() { + @Override + public void onSudTitleSelectCallBack(int index) { + if (sudTitleSelectCallBack != null) { + sudTitleSelectCallBack.onSudTitleSelectCallBack(index); + } + } + }); + + } + + @Override + public int getItemCount() { + return selectString.size(); + } + + private SudTitleSelectCallBack sudTitleSelectCallBack; + + public void setSudTitleSelectCallBack(SudTitleSelectCallBack sudTitleSelectCallBack) { + this.sudTitleSelectCallBack = sudTitleSelectCallBack; + } + + public interface SudTitleSelectCallBack { + void onSudTitleSelectCallBack(int index); + } +} diff --git a/common/src/main/java/com/yunbao/common/bean/CreateSudRoomModel.java b/common/src/main/java/com/yunbao/common/bean/CreateSudRoomModel.java new file mode 100644 index 000000000..6d53a777e --- /dev/null +++ b/common/src/main/java/com/yunbao/common/bean/CreateSudRoomModel.java @@ -0,0 +1,160 @@ +package com.yunbao.common.bean; + +import android.text.TextUtils; + +import com.google.gson.annotations.SerializedName; + +public class CreateSudRoomModel extends BaseModel { + + @SerializedName("sud_game_room_id") + private String sudGameRoomId; + @SerializedName("sud_game_id") + private String sudGameId; + @SerializedName("room_holder_id") + private int roomHolderId; + @SerializedName("room_holder_name") + private String roomHolderName; + @SerializedName("avatar") + private String avatar; + @SerializedName("room_holder_type") + private int roomHolderType; + @SerializedName("sud_game_name") + private String sudGameName; + @SerializedName("room_name") + private String roomName; + @SerializedName("room_status") + private String roomStatus; + @SerializedName("player_total") + private String playerTotal; + @SerializedName("ob_total") + private String obTotal; + @SerializedName("mg_id") + private String mgId; + @SerializedName("sud_game_icon") + private String sudGameIcon; + + public String getSudGameRoomId() { + return sudGameRoomId; + } + + public CreateSudRoomModel setSudGameRoomId(String sudGameRoomId) { + this.sudGameRoomId = sudGameRoomId; + return this; + } + + public String getSudGameId() { + return sudGameId; + } + + public long getLongSudGameId() { + if (TextUtils.isEmpty(sudGameId)) { + return 0; + } else { + return Long.parseLong(sudGameId); + } + } + + public CreateSudRoomModel setSudGameId(String sudGameId) { + this.sudGameId = sudGameId; + return this; + } + + public int getRoomHolderId() { + return roomHolderId; + } + + public CreateSudRoomModel setRoomHolderId(int roomHolderId) { + this.roomHolderId = roomHolderId; + return this; + } + + public String getRoomHolderName() { + return roomHolderName; + } + + public CreateSudRoomModel setRoomHolderName(String roomHolderName) { + this.roomHolderName = roomHolderName; + return this; + } + + public String getAvatar() { + return avatar; + } + + public CreateSudRoomModel setAvatar(String avatar) { + this.avatar = avatar; + return this; + } + + public int getRoomHolderType() { + return roomHolderType; + } + + public CreateSudRoomModel setRoomHolderType(int roomHolderType) { + this.roomHolderType = roomHolderType; + return this; + } + + public String getSudGameName() { + return sudGameName; + } + + public CreateSudRoomModel setSudGameName(String sudGameName) { + this.sudGameName = sudGameName; + return this; + } + + public String getRoomName() { + return roomName; + } + + public CreateSudRoomModel setRoomName(String roomName) { + this.roomName = roomName; + return this; + } + + public String getRoomStatus() { + return roomStatus; + } + + public CreateSudRoomModel setRoomStatus(String roomStatus) { + this.roomStatus = roomStatus; + return this; + } + + public String getPlayerTotal() { + return playerTotal; + } + + public CreateSudRoomModel setPlayerTotal(String playerTotal) { + this.playerTotal = playerTotal; + return this; + } + + public String getObTotal() { + return obTotal; + } + + public CreateSudRoomModel setObTotal(String obTotal) { + this.obTotal = obTotal; + return this; + } + + public String getMgId() { + return mgId; + } + + public CreateSudRoomModel setMgId(String mgId) { + this.mgId = mgId; + return this; + } + + public String getSudGameIcon() { + return sudGameIcon; + } + + public CreateSudRoomModel setSudGameIcon(String sudGameIcon) { + this.sudGameIcon = sudGameIcon; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/dialog/CreateSudGamePopup.java b/common/src/main/java/com/yunbao/common/dialog/CreateSudGamePopup.java new file mode 100644 index 000000000..b143f7cc0 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/dialog/CreateSudGamePopup.java @@ -0,0 +1,156 @@ +package com.yunbao.common.dialog; + +import android.content.Context; +import android.text.TextUtils; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.core.BottomPopupView; +import com.lxj.xpopup.enums.PopupPosition; +import com.yunbao.common.R; +import com.yunbao.common.bean.CreateSudRoomModel; +import com.yunbao.common.bean.CustomSidebarChildModel; +import com.yunbao.common.event.CreateSudGameEvent; +import com.yunbao.common.event.SudGameListDissMissEvent; +import com.yunbao.common.http.base.HttpCallback; +import com.yunbao.common.http.live.LiveNetManager; +import com.yunbao.common.manager.IMLoginManager; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.LiveSudGamePopup; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; + +public class CreateSudGamePopup extends BottomPopupView { + private List customSidebarChildModels = new ArrayList<>(); + private TextView createGameType; + private EditText roomName, gameSill; + private long interactionID = 0; + private String id; + + public CreateSudGamePopup(@NonNull Context context, List child) { + super(context); + customSidebarChildModels = child; + } + + // 返回自定义弹窗的布局 + @Override + protected int getImplLayoutId() { + return R.layout.dialog_create_sud_game; + } + + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + Bus.getOn(this); + initView(); + initDate(); + + } + + private void initDate() { + + } + + private void initView() { + createGameType = findViewById(R.id.create_game_type); + roomName = findViewById(R.id.room_name); + gameSill = findViewById(R.id.game_sill); + ViewClicksAntiShake.clicksAntiShake(createGameType, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + XPopup.Builder builder = new XPopup.Builder(getContext()).atView(createGameType); + builder.hasShadowBg(false) + .isDestroyOnDismiss(true) + .isLightStatusBar(false) + .popupPosition(PopupPosition.Bottom) + .asCustom(new SudGameListSelectPopup(getContext(), 4, customSidebarChildModels, interactionID)) + .show(); + } + }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.create_room), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + String sill = gameSill.getText().toString(); + String name = roomName.getText().toString(); + if (TextUtils.isEmpty(name)) { + if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) { + ToastUtil.show("房间名不能为空"); + } else { + ToastUtil.show("房间名不能为空"); + } + return; + } + if (TextUtils.isEmpty(id)) { + if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) { + ToastUtil.show("还未选择游戏"); + } else { + ToastUtil.show("还未选择游戏"); + } + return; + } + if (TextUtils.isEmpty(sill)) { + if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) { + ToastUtil.show("数量区间为100--5W"); + } else { + ToastUtil.show("数量区间为100--5W"); + } + return; + } + int sillNumber = Integer.parseInt(sill); + if (sillNumber < 100 || sillNumber > 50000) { + if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) { + ToastUtil.show("数量区间为100--5W"); + } else { + ToastUtil.show("数量区间为100--5W"); + } + return; + } + LiveNetManager.get(getContext()) + .createSudRoom(name, sill, id, new HttpCallback() { + @Override + public void onSuccess(CreateSudRoomModel data) { + + new XPopup.Builder(getContext()) + .enableDrag(false) + .dismissOnTouchOutside(false) + .dismissOnBackPressed(false) + .asCustom(new LiveSudGamePopup(getContext(), data)) + .show(); + dialog.dismiss(); + Bus.get().post(new SudGameListDissMissEvent()); + } + + @Override + public void onError(String error) { + ToastUtil.show(error); + } + }); + } + }); + } + + @Override + protected void onDismiss() { + Bus.getOff(this); + super.onDismiss(); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onSudGameListEvent(CreateSudGameEvent event) { + interactionID = event.getInteractionID(); + createGameType.setText(event.getTitle()); + id = event.getId(); + + } +} diff --git a/common/src/main/java/com/yunbao/common/dialog/SudGameListPopup.java b/common/src/main/java/com/yunbao/common/dialog/SudGameListPopup.java new file mode 100644 index 000000000..ef7c05b96 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/dialog/SudGameListPopup.java @@ -0,0 +1,124 @@ +package com.yunbao.common.dialog; + +import android.animation.ObjectAnimator; +import android.content.Context; +import android.text.TextUtils; +import android.view.animation.LinearInterpolator; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; + +import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.core.BottomPopupView; +import com.lxj.xpopup.enums.PopupPosition; +import com.yunbao.common.R; +import com.yunbao.common.bean.CustomSidebarChildModel; +import com.yunbao.common.event.SudGameListDissMissEvent; +import com.yunbao.common.event.SudGameListEvent; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +import org.greenrobot.eventbus.Subscribe; +import org.greenrobot.eventbus.ThreadMode; + +import java.util.ArrayList; +import java.util.List; + +public class SudGameListPopup extends BottomPopupView { + private long interactionID = 0; + private List customSidebarChildModels = new ArrayList<>(); + private ImageView roomGameArrow; + + private TextView gameTitle; + + public SudGameListPopup(@NonNull Context context, long interactionID, List child) { + super(context); + this.interactionID = interactionID; + customSidebarChildModels = child; + } + + // 返回自定义弹窗的布局 + @Override + protected int getImplLayoutId() { + return R.layout.dialog_sud_game_list; + } + + // 执行初始化操作,比如:findView,设置点击,或者任何你弹窗内的业务逻辑 + @Override + protected void onCreate() { + super.onCreate(); + Bus.getOn(this); + initView(); + initDate(); + + } + + private void initDate() { + + } + + private void initView() { + roomGameArrow = findViewById(R.id.room_game_arrow); + gameTitle = findViewById(R.id.game_title); + for (CustomSidebarChildModel model : customSidebarChildModels) { + if (TextUtils.equals(String.valueOf(interactionID), model.getSrc())) { + gameTitle.setText(model.getTitle().substring(0, 2)); + } + } + + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.interactive_game_room_game), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + ObjectAnimator animator = ObjectAnimator.ofFloat(roomGameArrow, "rotation", 0f, 90f); + animator.setDuration(500); + animator.setInterpolator(new LinearInterpolator()); + animator.start(); + XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.interactive_game_room_game)); + builder.hasShadowBg(false) + .isDestroyOnDismiss(true) + .isLightStatusBar(false) + .popupPosition(PopupPosition.Bottom) + .asCustom(new SudGameListSelectPopup(getContext(), 0, customSidebarChildModels, interactionID)) + .show(); + + + } + }); + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.interactive_game_add), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + new XPopup.Builder(getContext()) + .enableDrag(false) + .asCustom(new CreateSudGamePopup(getContext(), customSidebarChildModels)) + + .show(); + } + }); + + } + + @Override + protected void onDismiss() { + Bus.getOff(this); + + super.onDismiss(); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onSudGameListEvent(SudGameListEvent event) { + interactionID = event.getInteractionID(); + gameTitle.setText(event.getTitle().substring(0, 2)); + ObjectAnimator animator = ObjectAnimator.ofFloat(roomGameArrow, "rotation", 90f, 0f); + animator.setDuration(500); + animator.setInterpolator(new LinearInterpolator()); + animator.start(); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onSudGameListDissMissEvent(SudGameListDissMissEvent event) { + dialog.dismiss(); + } + + +} diff --git a/common/src/main/java/com/yunbao/common/dialog/SudGameListSelectPopup.java b/common/src/main/java/com/yunbao/common/dialog/SudGameListSelectPopup.java new file mode 100644 index 000000000..afb5760fc --- /dev/null +++ b/common/src/main/java/com/yunbao/common/dialog/SudGameListSelectPopup.java @@ -0,0 +1,94 @@ +package com.yunbao.common.dialog; + +import android.content.Context; +import android.text.TextUtils; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.lxj.xpopup.core.AttachPopupView; +import com.yunbao.common.R; +import com.yunbao.common.adapter.SudTitleSelectAdapter; +import com.yunbao.common.bean.CustomSidebarChildModel; +import com.yunbao.common.event.CreateSudGameEvent; +import com.yunbao.common.event.SudGameListEvent; +import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +import java.util.ArrayList; +import java.util.List; + +public class SudGameListSelectPopup extends AttachPopupView { + private int mType; + private List customSidebarChildModels = new ArrayList<>(); + private List selectString = new ArrayList<>(); + private TextView topSelect; + + private RecyclerView sudTitleSelect; + + private SudTitleSelectAdapter sudTitleSelectAdapter; + private long interactionID = 0; + + public SudGameListSelectPopup(@NonNull Context context, int type, List child, long interactionID) { + super(context); + customSidebarChildModels = child; + mType = type; + this.interactionID = interactionID; + } + + protected int getImplLayoutId() { + return R.layout.view_sud_game_slelect; + } + + @Override + protected void onCreate() { + topSelect = findViewById(R.id.top_select); + sudTitleSelect = findViewById(R.id.sud_title_select); + int index = -1; + if (mType == 0 || mType == 4) { + topSelect.setText(getContext().getString(R.string.interactive_game_room_all)); + for (int i = 0; i < customSidebarChildModels.size(); i++) { + selectString.add(customSidebarChildModels.get(i).getTitle()); + if (TextUtils.equals(String.valueOf(interactionID), customSidebarChildModels.get(i).getSrc())) { + index = i; + } + } + sudTitleSelectAdapter = new SudTitleSelectAdapter(selectString, index); + sudTitleSelect.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false)); + sudTitleSelect.setAdapter(sudTitleSelectAdapter); + if (interactionID == 0) { + topSelect.setSelected(true); + } + if (mType == 4) { + topSelect.setVisibility(GONE); + } + + sudTitleSelectAdapter.setSudTitleSelectCallBack(new SudTitleSelectAdapter.SudTitleSelectCallBack() { + @Override + public void onSudTitleSelectCallBack(int index) { + if (mType == 0) { + Bus.get().post(new SudGameListEvent() + .setInteractionID(Long.parseLong(customSidebarChildModels.get(index).getSrc())) + .setTitle(customSidebarChildModels.get(index).getTitle())); + } else { + Bus.get().post(new CreateSudGameEvent() + .setInteractionID(Long.parseLong(customSidebarChildModels.get(index).getSrc())) + .setId(customSidebarChildModels.get(index).getId()) + .setTitle(customSidebarChildModels.get(index).getTitle())); + } + + dialog.dismiss(); + } + }); + } + ViewClicksAntiShake.clicksAntiShake(topSelect, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + Bus.get().post(new SudGameListEvent().setInteractionID(0L).setTitle(getContext().getString(R.string.interactive_game_room_all))); + dialog.dismiss(); + } + }); + } +} diff --git a/common/src/main/java/com/yunbao/common/event/CreateSudGameEvent.java b/common/src/main/java/com/yunbao/common/event/CreateSudGameEvent.java new file mode 100644 index 000000000..84e42962b --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/CreateSudGameEvent.java @@ -0,0 +1,38 @@ +package com.yunbao.common.event; + +import android.widget.TextView; + +import com.yunbao.common.bean.BaseModel; + +public class CreateSudGameEvent extends BaseModel { + private long interactionID = 0; + private String title; + private String id; + + public String getId() { + return id; + } + + public CreateSudGameEvent setId(String id) { + this.id = id; + return this; + } + + public String getTitle() { + return title; + } + + public CreateSudGameEvent setTitle(String title) { + this.title = title; + return this; + } + + public long getInteractionID() { + return interactionID; + } + + public CreateSudGameEvent setInteractionID(long interactionID) { + this.interactionID = interactionID; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/event/CustomDrawerPopupEvent.java b/common/src/main/java/com/yunbao/common/event/CustomDrawerPopupEvent.java index 1a1d138d9..c05d507b5 100644 --- a/common/src/main/java/com/yunbao/common/event/CustomDrawerPopupEvent.java +++ b/common/src/main/java/com/yunbao/common/event/CustomDrawerPopupEvent.java @@ -1,6 +1,10 @@ package com.yunbao.common.event; import com.yunbao.common.bean.BaseModel; +import com.yunbao.common.bean.CustomSidebarChildModel; + +import java.util.ArrayList; +import java.util.List; public class CustomDrawerPopupEvent extends BaseModel { //是否关闭弹窗 @@ -31,6 +35,17 @@ public class CustomDrawerPopupEvent extends BaseModel { private boolean interaction = false; private long interactionID; + private List child = new ArrayList<>(); + + public List getChild() { + return child; + } + + public CustomDrawerPopupEvent setChild(List child) { + this.child = child; + return this; + } + public boolean isInteraction() { return interaction; } diff --git a/common/src/main/java/com/yunbao/common/event/NewRoleCustomDrawerPopupEvent.java b/common/src/main/java/com/yunbao/common/event/NewRoleCustomDrawerPopupEvent.java index 7d78790dc..c81744145 100644 --- a/common/src/main/java/com/yunbao/common/event/NewRoleCustomDrawerPopupEvent.java +++ b/common/src/main/java/com/yunbao/common/event/NewRoleCustomDrawerPopupEvent.java @@ -1,6 +1,10 @@ package com.yunbao.common.event; import com.yunbao.common.bean.BaseModel; +import com.yunbao.common.bean.CustomSidebarChildModel; + +import java.util.ArrayList; +import java.util.List; public class NewRoleCustomDrawerPopupEvent extends BaseModel { //是否关闭弹窗 @@ -30,6 +34,16 @@ public class NewRoleCustomDrawerPopupEvent extends BaseModel { private boolean fontSize = false; private boolean interaction = false; private long interactionID; + private List child = new ArrayList<>(); + + public List getChild() { + return child; + } + + public NewRoleCustomDrawerPopupEvent setChild(List child) { + this.child = child; + return this; + } public boolean isInteraction() { return interaction; diff --git a/common/src/main/java/com/yunbao/common/event/SudGameListDissMissEvent.java b/common/src/main/java/com/yunbao/common/event/SudGameListDissMissEvent.java new file mode 100644 index 000000000..e79d1c4be --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/SudGameListDissMissEvent.java @@ -0,0 +1,6 @@ +package com.yunbao.common.event; + +import com.yunbao.common.bean.BaseModel; + +public class SudGameListDissMissEvent extends BaseModel { +} diff --git a/common/src/main/java/com/yunbao/common/event/SudGameListEvent.java b/common/src/main/java/com/yunbao/common/event/SudGameListEvent.java new file mode 100644 index 000000000..26b145d1f --- /dev/null +++ b/common/src/main/java/com/yunbao/common/event/SudGameListEvent.java @@ -0,0 +1,26 @@ +package com.yunbao.common.event; + +import com.yunbao.common.bean.BaseModel; + +public class SudGameListEvent extends BaseModel { + private long interactionID = 0; + private String title; + + public String getTitle() { + return title; + } + + public SudGameListEvent setTitle(String title) { + this.title = title; + return this; + } + + public long getInteractionID() { + return interactionID; + } + + public SudGameListEvent setInteractionID(long interactionID) { + this.interactionID = interactionID; + return this; + } +} diff --git a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java index 2e31e7f21..d6c52afae 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -8,6 +8,7 @@ import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.BlindBoxInfoModel; import com.yunbao.common.bean.CheckLiveModel; import com.yunbao.common.bean.ContributeModel; +import com.yunbao.common.bean.CreateSudRoomModel; import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; @@ -972,10 +973,22 @@ public interface PDLiveApi { /** * 获取游戏code + * * @return */ @GET("/api/public/?service=Sudgame.getCode") Observable>> getCode(); + /** + * 创建游戏房 + * + * @return + */ + @GET("/api/public/?service=Sudgameserver.createSudRoom") + Observable> createSudRoom( + @Query("room_name") String roomName, + @Query("golden_bean_number") String goldenBeanNumber, + @Query("game_id") String gameId); + } diff --git a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java index 7ff497ed9..11af25791 100644 --- a/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java +++ b/common/src/main/java/com/yunbao/common/http/live/LiveNetManager.java @@ -10,6 +10,7 @@ import com.yunbao.common.bean.ActiveModel; import com.yunbao.common.bean.BaseModel; import com.yunbao.common.bean.BlindBoxInfoModel; import com.yunbao.common.bean.CheckLiveModel; +import com.yunbao.common.bean.CreateSudRoomModel; import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.bean.DiscountsModel; import com.yunbao.common.bean.EnterRoomNewModel; @@ -314,7 +315,7 @@ public class LiveNetManager { * * @param callback */ - public void getCustomSidebarInfo(String type,HttpCallback> callback) { + public void getCustomSidebarInfo(String type, HttpCallback> callback) { API.get().pdLiveApi(mContext) .getCustomSidebarInfo(type) .subscribeOn(Schedulers.io()) @@ -2216,6 +2217,29 @@ public class LiveNetManager { }).isDisposed(); } + public void createSudRoom(String roomName, String goldenBeanNumber, String gameId, HttpCallback callback) { + API.get().pdLiveApi(mContext) + .createSudRoom(roomName, goldenBeanNumber, gameId) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel createSudRoomModelResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(createSudRoomModelResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + + /** * 直播间取消网络请求 */ diff --git a/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java b/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java index 2a8beec76..3d94725a2 100644 --- a/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java +++ b/common/src/main/java/com/yunbao/common/views/CustomDrawerPopupView.java @@ -13,6 +13,7 @@ import com.lxj.xpopup.enums.PopupPosition; import com.yunbao.common.R; import com.yunbao.common.adapter.CustomDrawerPopupAdapter; import com.yunbao.common.bean.AnchorRecommendItemModel; +import com.yunbao.common.bean.CustomSidebarChildModel; import com.yunbao.common.bean.CustomSidebarInfoModel; import com.yunbao.common.event.CustomDrawerPopupEvent; import com.yunbao.common.http.live.LiveNetManager; @@ -170,7 +171,7 @@ public class CustomDrawerPopupView extends DrawerPopupView { adapter.updateData(data); } else { LiveNetManager.get(mContext) - .getCustomSidebarInfo("0",new com.yunbao.common.http.base.HttpCallback>() { + .getCustomSidebarInfo("0", new com.yunbao.common.http.base.HttpCallback>() { @Override public void onSuccess(List data) { adapter.updateData(data); @@ -222,7 +223,7 @@ public class CustomDrawerPopupView extends DrawerPopupView { void changeFontSize(); - void interaction(long interactionID); + void interaction(long interactionID, List child); } @Subscribe(threadMode = ThreadMode.MAIN) @@ -269,8 +270,8 @@ public class CustomDrawerPopupView extends DrawerPopupView { dismiss(); callBack.changeFontSize(); } - if (event.isInteraction()){ - callBack.interaction(event.getInteractionID()); + if (event.isInteraction()) { + callBack.interaction(event.getInteractionID(), event.getChild()); } } diff --git a/common/src/main/java/com/yunbao/common/views/InteractionGamesChildViewHolder.java b/common/src/main/java/com/yunbao/common/views/InteractionGamesChildViewHolder.java index d876e03cc..c52725c62 100644 --- a/common/src/main/java/com/yunbao/common/views/InteractionGamesChildViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/InteractionGamesChildViewHolder.java @@ -38,19 +38,22 @@ public class InteractionGamesChildViewHolder extends RecyclerView.ViewHolder { ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() { @Override public void onViewClicks() { - - if (!rigts) { - Bus.get().post(new CustomDrawerPopupEvent() - .setDisMiss(true).setRightsInterests(model.getTitle())); - } else { - long activityID = TextUtils.isEmpty(model.getSrc()) ? 0 : Long.parseLong(model.getSrc()); - if (activityID != 0) { - Bus.get().post(new CustomDrawerPopupEvent() - .setDisMiss(true).setInteractionID(activityID).setInteraction(true)); - } - + if (interactionGamesCallBack != null) { + interactionGamesCallBack.onItemViewClicks(model, rigts); } + + } }); } + + private InteractionGamesCallBack interactionGamesCallBack; + + public void setItemViewClicks(InteractionGamesCallBack callBack) { + interactionGamesCallBack = callBack; + } + + public interface InteractionGamesCallBack { + void onItemViewClicks(CustomSidebarChildModel model, boolean rigts); + } } diff --git a/common/src/main/java/com/yunbao/common/views/LiveSudGamePopup.java b/common/src/main/java/com/yunbao/common/views/LiveSudGamePopup.java index 471ad4106..ec10e42b9 100644 --- a/common/src/main/java/com/yunbao/common/views/LiveSudGamePopup.java +++ b/common/src/main/java/com/yunbao/common/views/LiveSudGamePopup.java @@ -4,15 +4,21 @@ import android.app.Activity; import android.content.Context; import android.view.View; import android.widget.FrameLayout; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.lifecycle.Observer; import com.lxj.xpopup.core.BottomPopupView; +import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.R; +import com.yunbao.common.bean.CreateSudRoomModel; import com.yunbao.common.event.LiveNewWishListEvent; +import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.sud.QuickStartGameViewModel; +import com.yunbao.common.sud.model.GameConfigModel; import com.yunbao.common.utils.Bus; +import com.yunbao.common.views.weight.ViewClicksAntiShake; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -26,12 +32,23 @@ public class LiveSudGamePopup extends BottomPopupView { private String mLiveUid; private final QuickStartGameViewModel gameViewModel = new QuickStartGameViewModel(); // 创建ViewModel - public LiveSudGamePopup(@NonNull Context context, long interactionID,String liveUid) { + private CreateSudRoomModel mCreateSudRoomModel; + private TextView gameTitle, roomName, roomNumber; + private RoundedImageView mAvatar; + + public LiveSudGamePopup(@NonNull Context context, long interactionID, String liveUid) { super(context); mInteractionID = interactionID; mLiveUid = liveUid; } + public LiveSudGamePopup(@NonNull Context context, CreateSudRoomModel createSudRoomModel) { + super(context); + mCreateSudRoomModel = createSudRoomModel; + mInteractionID = mCreateSudRoomModel.getLongSudGameId(); + mLiveUid = mCreateSudRoomModel.getSudGameRoomId(); + } + // 返回自定义弹窗的布局 @Override protected int getImplLayoutId() { @@ -50,6 +67,23 @@ public class LiveSudGamePopup extends BottomPopupView { private void initView() { gameContainer = findViewById(R.id.game_container); + gameTitle = findViewById(R.id.game_title); + roomName = findViewById(R.id.room_name); + roomNumber = findViewById(R.id.room_number); + mAvatar = findViewById(R.id.avatar); + if (mCreateSudRoomModel != null) { + gameTitle.setText(mCreateSudRoomModel.getSudGameName()); + roomName.setText(mCreateSudRoomModel.getRoomName()); + roomNumber.setText(mCreateSudRoomModel.getSudGameRoomId()); + ImgLoader.display(getContext(), mCreateSudRoomModel.getAvatar(), mAvatar); + } + ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.exit), new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + gameViewModel.onDestroy(); + dialog.dismiss(); + } + }); gameViewModel.gameViewLiveData.observe(this, new Observer() { @Override public void onChanged(View view) { @@ -61,8 +95,10 @@ public class LiveSudGamePopup extends BottomPopupView { } }); // 加载游戏,参数定义可查看BaseGameViewModel.switchGame()方法注释 - - + // 游戏配置 + GameConfigModel gameConfigModel = gameViewModel.getGameConfigModel(); + gameConfigModel.ui.ping.hide = true; // 配置不隐藏ping值 + gameConfigModel.ui.level.hide = true; // 配置不隐藏ping值 // SudMGP平台64bit游戏ID gameViewModel.switchGame((Activity) getContext(), mLiveUid, mInteractionID); } diff --git a/common/src/main/java/com/yunbao/common/views/SudTitleSelectViewHolder.java b/common/src/main/java/com/yunbao/common/views/SudTitleSelectViewHolder.java new file mode 100644 index 000000000..e5a02af94 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/SudTitleSelectViewHolder.java @@ -0,0 +1,35 @@ +package com.yunbao.common.views; + +import android.view.View; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.yunbao.common.R; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +public class SudTitleSelectViewHolder extends RecyclerView.ViewHolder { + private TextView title; + + public SudTitleSelectViewHolder(@NonNull View itemView) { + super(itemView); + title = itemView.findViewById(R.id.select_title); + } + + public void setData(String titleStr, boolean select, int position,SudTitleSelectListener listener) { + title.setText(titleStr); + title.setSelected(select); + ViewClicksAntiShake.clicksAntiShake(title, new ViewClicksAntiShake.ViewClicksCallBack() { + @Override + public void onViewClicks() { + if (listener!=null){ + listener.onSudTitleSelectCallBack(position); + } + } + }); + } + public interface SudTitleSelectListener { + void onSudTitleSelectCallBack(int index); + } +} diff --git a/common/src/main/res/drawable/bg_live_sud_game_back.xml b/common/src/main/res/drawable/bg_live_sud_game_back.xml new file mode 100644 index 000000000..c6d1aa167 --- /dev/null +++ b/common/src/main/res/drawable/bg_live_sud_game_back.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_live_sud_game_top.xml b/common/src/main/res/drawable/bg_live_sud_game_top.xml new file mode 100644 index 000000000..4c5e37c35 --- /dev/null +++ b/common/src/main/res/drawable/bg_live_sud_game_top.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_live_sud_list.xml b/common/src/main/res/drawable/bg_live_sud_list.xml new file mode 100644 index 000000000..4216aa85c --- /dev/null +++ b/common/src/main/res/drawable/bg_live_sud_list.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_live_sud_list_btn.xml b/common/src/main/res/drawable/bg_live_sud_list_btn.xml new file mode 100644 index 000000000..716846250 --- /dev/null +++ b/common/src/main/res/drawable/bg_live_sud_list_btn.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_live_sud_list_input.xml b/common/src/main/res/drawable/bg_live_sud_list_input.xml new file mode 100644 index 000000000..5a7b6214a --- /dev/null +++ b/common/src/main/res/drawable/bg_live_sud_list_input.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_live_sud_list_select.xml b/common/src/main/res/drawable/bg_live_sud_list_select.xml new file mode 100644 index 000000000..1b4692bf2 --- /dev/null +++ b/common/src/main/res/drawable/bg_live_sud_list_select.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_live_sud_list_select_item.xml b/common/src/main/res/drawable/bg_live_sud_list_select_item.xml new file mode 100644 index 000000000..f81e534a3 --- /dev/null +++ b/common/src/main/res/drawable/bg_live_sud_list_select_item.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dialog_create_sud_game.xml b/common/src/main/res/layout/dialog_create_sud_game.xml new file mode 100644 index 000000000..2b310ffeb --- /dev/null +++ b/common/src/main/res/layout/dialog_create_sud_game.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dialog_live_sud_game.xml b/common/src/main/res/layout/dialog_live_sud_game.xml index d2753e471..ad6115b7e 100644 --- a/common/src/main/res/layout/dialog_live_sud_game.xml +++ b/common/src/main/res/layout/dialog_live_sud_game.xml @@ -1,11 +1,122 @@ - + android:layout_height="40dp" + android:layout_marginTop="14dp" + android:gravity="center_vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dialog_sud_game_list.xml b/common/src/main/res/layout/dialog_sud_game_list.xml new file mode 100644 index 000000000..8e6574470 --- /dev/null +++ b/common/src/main/res/layout/dialog_sud_game_list.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +