From 47da21351e2e18836557070fc35de95623136cbb Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Thu, 15 Aug 2024 17:31:39 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/shayu/phonelive/AppContext.java | 3 +- .../com/shayu/phonelive/NeverCrashUtils.java | 5 +- .../GiftWallGiftInfoListItemAdapter.java | 55 +++++++ .../yunbao/common/bean/GiftWallInfoBean.java | 16 ++ .../bean/GiftWallMainTab2ClassicInfoBean.java | 31 ++++ .../common/dialog/GiftWallGiftInfoDialog.java | 13 ++ .../GiftWallMainTab2ClassicInfoDialog.java | 39 +++-- .../common/dialog/SudGameDoubleDialog.java | 4 +- .../manager/game/BilliardsRandomManager.java | 5 +- .../sud/decorator/SudFSMMGDecorator.java | 3 +- .../com/yunbao/common/utils/AppManager.java | 9 -- .../com/yunbao/common/utils/DebugUtils.java | 29 ++++ .../utils/JavascriptInterfaceUtils.java | 14 ++ .../res/drawable/bg_gift_wall_star_t1.xml | 9 ++ .../res/drawable/bg_gift_wall_star_t2.xml | 9 ++ .../res/layout/dialog_gift_wall_gift_info.xml | 149 ++++++++++------- .../item_dialog_gift_wall_gift_info2.xml | 150 +++++++++++++++++ .../item_dialog_gift_wall_gift_info2t.xml | 151 ++++++++++++++++++ .../bg_game_list_activity_top.png | Bin 11904 -> 10325 bytes common/src/main/res/values-zh/strings.xml | 4 + common/src/main/res/values/strings.xml | 4 + .../live/activity/SudSwGameActivity.java | 27 +++- .../live/activity/SystemMessageActivity.java | 13 +- .../adapter/LiveAnchorEditCallMeAdapter.java | 1 + .../live/dialog/LiveGiftDialogFragment.java | 3 +- .../yunbao/live/views/LiveRoomViewHolder.java | 3 +- .../live/views/PortraitLiveManager.java | 5 +- live/src/main/res/layout/view_sys_msg.xml | 5 +- .../yunbao/main/activity/MainActivity.java | 29 ++++ .../yunbao/main/views/MainHomeViewHolder.java | 8 +- 30 files changed, 701 insertions(+), 95 deletions(-) create mode 100644 common/src/main/java/com/yunbao/common/utils/DebugUtils.java create mode 100644 common/src/main/res/drawable/bg_gift_wall_star_t1.xml create mode 100644 common/src/main/res/drawable/bg_gift_wall_star_t2.xml create mode 100644 common/src/main/res/layout/item_dialog_gift_wall_gift_info2.xml create mode 100644 common/src/main/res/layout/item_dialog_gift_wall_gift_info2t.xml diff --git a/app/src/main/java/com/shayu/phonelive/AppContext.java b/app/src/main/java/com/shayu/phonelive/AppContext.java index 5ceb3d531..4397e9546 100644 --- a/app/src/main/java/com/shayu/phonelive/AppContext.java +++ b/app/src/main/java/com/shayu/phonelive/AppContext.java @@ -28,6 +28,7 @@ import com.facebook.appevents.AppEventsLogger; import com.fm.openinstall.OpenInstall; import com.google.gson.Gson; import com.yunbao.common.manager.IMLoginManager; +import com.yunbao.common.utils.DebugUtils; import com.yunbao.common.utils.LogUtils; import com.tencent.imsdk.v2.V2TIMGroupMemberInfo; import com.tencent.imsdk.v2.V2TIMManager; @@ -355,7 +356,7 @@ public class AppContext extends CommonAppContext { NeverCrashUtils.getInstance().setDebugMode(BuildConfig.DEBUG).setMainCrashHandler((t, e) -> { Log.e("ApplicationError", "主线程异常");//此处log只是展示,当debug为true时,主类内部log会打印异常信息 e.printStackTrace(); - AppManager.runDebugCode(() -> { + DebugUtils.runDebugCode(() -> { //闪退后finish所有Activity并且杀死进程 for (WeakReference activity : activities) { if (activity != null && activity.get() != null) { diff --git a/app/src/main/java/com/shayu/phonelive/NeverCrashUtils.java b/app/src/main/java/com/shayu/phonelive/NeverCrashUtils.java index b9787b307..4c1b4d4cc 100644 --- a/app/src/main/java/com/shayu/phonelive/NeverCrashUtils.java +++ b/app/src/main/java/com/shayu/phonelive/NeverCrashUtils.java @@ -10,6 +10,7 @@ import android.widget.Toast; import com.yunbao.common.bean.CrashSaveBean; import com.yunbao.common.utils.AppManager; +import com.yunbao.common.utils.DebugUtils; import com.yunbao.common.utils.FileUtil; import com.yunbao.common.utils.SpUtil; @@ -105,10 +106,10 @@ public class NeverCrashUtils { } e.printStackTrace(); AppContext.setFirebaseCrashData(); - AppManager.runDebugCode(() -> Toast.makeText(application, "发生闪退:" + e.getMessage(), Toast.LENGTH_SHORT).show()); + DebugUtils.runDebugCode(() -> Toast.makeText(application, "发生闪退:" + e.getMessage(), Toast.LENGTH_SHORT).show()); FileUtil.saveStringToFile(new File(application.getDir("files", Context.MODE_PRIVATE).getAbsolutePath()), throwableToString(e), "error.log"); getMainCrashHandler().mainException(Looper.getMainLooper().getThread(), e); - AppManager.runDebugCode(() -> errorWhile = false); + DebugUtils.runDebugCode(() -> errorWhile = false); // return; } } diff --git a/common/src/main/java/com/yunbao/common/adapter/GiftWallGiftInfoListItemAdapter.java b/common/src/main/java/com/yunbao/common/adapter/GiftWallGiftInfoListItemAdapter.java index d49706220..42d011e90 100644 --- a/common/src/main/java/com/yunbao/common/adapter/GiftWallGiftInfoListItemAdapter.java +++ b/common/src/main/java/com/yunbao/common/adapter/GiftWallGiftInfoListItemAdapter.java @@ -9,12 +9,16 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.blankj.utilcode.util.LogUtils; import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.R; import com.yunbao.common.bean.GiftWallInfoBean; +import com.yunbao.common.bean.GiftWallTab2Bean; +import com.yunbao.common.dialog.GiftWallMainTab2ClassicInfoDialog; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.utils.WordUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; import java.util.ArrayList; import java.util.List; @@ -27,9 +31,14 @@ public class GiftWallGiftInfoListItemAdapter extends RecyclerView.Adapter 0) && data.get(0).getId() != -1) { + return 1; + } + return 0; + } + @NonNull @Override public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + if (viewType == 1) { + return new VH2(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_dialog_gift_wall_gift_info2, parent, false)); + } return new VH(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_dialog_gift_wall_gift_info, parent, false)); } @@ -156,4 +176,39 @@ public class GiftWallGiftInfoListItemAdapter extends RecyclerView.Adapter list) { + data=new ArrayList<>(); + for (GiftWallInfoBean.Data item : list) { + GiftData gift=new GiftData(); + gift.setUserId(item.user_id); + gift.setAvatar(item.getAvatar()); + gift.setCreateTime(item.getCreate_time()); + gift.setLiveAvatar(item.getLive_avatar()); + gift.setActiveRankHide(item.getGift_hall_rank_hide()); + gift.setLiveUserName(item.getLive_user_name()); + gift.setGiftHallSendNum(item.getGift_hall_send_num()); + gift.setNaming_user_gift_hall_rank_hide(item.getGift_hall_rank_hide()); + gift.setUserName(item.getUser_name()); + data.add(gift); + } + } + // 内部类:GiftInfo public static class GiftInfo { diff --git a/common/src/main/java/com/yunbao/common/dialog/GiftWallGiftInfoDialog.java b/common/src/main/java/com/yunbao/common/dialog/GiftWallGiftInfoDialog.java index 3ca287050..9ab065166 100644 --- a/common/src/main/java/com/yunbao/common/dialog/GiftWallGiftInfoDialog.java +++ b/common/src/main/java/com/yunbao/common/dialog/GiftWallGiftInfoDialog.java @@ -67,6 +67,7 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow { View bottom_layout; View gift_schedule; ImageView diamond_icon; + View titleLayout, titleLayout2; GiftWallGiftInfoListItemAdapter adapter; RecyclerView recyclerView; @@ -167,6 +168,8 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow { tab_layout = findViewById(R.id.tab_layout); bottom_layout = findViewById(R.id.bottom_layout); gift_schedule = findViewById(R.id.gift_schedule); + titleLayout = findViewById(R.id.list_title); + titleLayout2 = findViewById(R.id.list_title2); adapter = new GiftWallGiftInfoListItemAdapter(); adapter.setAnchor(isAnchor); adapter.setLiveRoom(isLiveRoom); @@ -251,6 +254,9 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow { mIvBack.setLayoutParams(params); ViewClicksAntiShake.clicksAntiShake(mIvBack, this::dismiss); resetWindows(); + if(isStar){ + findViewById(R.id.anchorTips).setVisibility(View.VISIBLE); + } } private void initTabText() { @@ -259,7 +265,11 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow { ((TextView) findViewById(R.id.user_name)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename1)); ((TextView) findViewById(R.id.tv_rename)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename_value1)); tv_list_title.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_title_star)); + titleLayout.setVisibility(View.GONE); + titleLayout2.setVisibility(View.VISIBLE); } else { + titleLayout.setVisibility(VISIBLE); + titleLayout2.setVisibility(View.GONE); tab2.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_title_champion)); tv_list_title.setText(WordUtil.getNewString(R.string.dialog_gift_wall_gfit_info_list_title_champion)); ((TextView) findViewById(R.id.user_name)).setText(WordUtil.getNewString(R.string.dialog_gift_wall_list_info_list_header_rename)); @@ -336,6 +346,7 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow { btn_lighten.setBackgroundResource(R.drawable.gift_wall_gift_info_un_lighten); } adapter.setGiftStatus(giftBean.getGift_info().getIlluminate_status()); + adapter.setGiftId(giftBean.getGift_info().getGift_id()); /** * 如果对方是主播,要有点亮标记。 * 如果对方是用户,不要有点亮标记 @@ -392,7 +403,9 @@ public class GiftWallGiftInfoDialog extends AbsDialogPopupWindow { } private void setTips(String tmp) { + if(btn_one.getVisibility()==VISIBLE){ btn_one_tips.setVisibility(View.VISIBLE); + } btn_one_tips.setText(String.format(Locale.getDefault(), "%s%s%s" , WordUtil.isNewZh() ? "需 " : "Need ", tmp, diff --git a/common/src/main/java/com/yunbao/common/dialog/GiftWallMainTab2ClassicInfoDialog.java b/common/src/main/java/com/yunbao/common/dialog/GiftWallMainTab2ClassicInfoDialog.java index 9c42cc9e8..d4b0f40c3 100644 --- a/common/src/main/java/com/yunbao/common/dialog/GiftWallMainTab2ClassicInfoDialog.java +++ b/common/src/main/java/com/yunbao/common/dialog/GiftWallMainTab2ClassicInfoDialog.java @@ -21,6 +21,7 @@ import com.lxj.xpopup.XPopup; import com.makeramen.roundedimageview.RoundedImageView; import com.yunbao.common.R; import com.yunbao.common.adapter.GiftWallTab2GiftInfoListItemAdapter; +import com.yunbao.common.bean.GiftWallInfoBean; import com.yunbao.common.bean.GiftWallMainTab2ClassicInfoBean; import com.yunbao.common.bean.GiftWallTab2Bean; import com.yunbao.common.custom.ItemDecoration; @@ -100,17 +101,37 @@ public class GiftWallMainTab2ClassicInfoDialog extends AbsDialogPopupWindow { } void initData() { - LiveNetManager.get(mContext).lastAllGiftHallWeekStarDetail(gift.getGiftId() + "", gift.getNamingLiveId() + "", new HttpCallback() { - @Override - public void onSuccess(GiftWallMainTab2ClassicInfoBean data) { - initData(data); - } + if (gift.getSendType() == -1) { + LiveNetManager.get(mContext) + .liveGiftHallDetail(gift.getNamingLiveId() + "", gift.getGiftId() + "", 2, 1, new HttpCallback() { + @Override + public void onSuccess(GiftWallInfoBean data) { + GiftWallMainTab2ClassicInfoBean infoBean = new GiftWallMainTab2ClassicInfoBean(); + infoBean.setIsMe(data.getIs_me()); + infoBean.setWallInfoGiftInfo(data.getGift_info(),gift); + infoBean.setWallInfoData(data.getData()); + initData(infoBean); + } - @Override - public void onError(String error) { + @Override + public void onError(String error) { - } - }); + } + }); + return; + } + LiveNetManager.get(mContext).lastAllGiftHallWeekStarDetail(gift.getGiftId() + "", + gift.getNamingLiveId() + "", new HttpCallback() { + @Override + public void onSuccess(GiftWallMainTab2ClassicInfoBean data) { + initData(data); + } + + @Override + public void onError(String error) { + + } + }); } void initData(GiftWallMainTab2ClassicInfoBean data) { diff --git a/common/src/main/java/com/yunbao/common/dialog/SudGameDoubleDialog.java b/common/src/main/java/com/yunbao/common/dialog/SudGameDoubleDialog.java index 99495cc0a..ade28bf27 100644 --- a/common/src/main/java/com/yunbao/common/dialog/SudGameDoubleDialog.java +++ b/common/src/main/java/com/yunbao/common/dialog/SudGameDoubleDialog.java @@ -116,6 +116,9 @@ public class SudGameDoubleDialog extends AbsDialogCenterPopupWindow { boolean isDraw = sudSettleBean1.getWin_num() == sudSettleBean2.getWin_num(); boolean isZh = WordUtil.isNewZh(); LogUtils.e("isFirstMe:" + isFirstMe); + if(isActivityGame){ + findViewById(R.id.tips).setVisibility(View.INVISIBLE); + } if (containMe) { // 当前用户在游戏中 // SudSettleBean winBean = isFirstMe ? sudSettleBean1 : sudSettleBean2; @@ -165,7 +168,6 @@ public class SudGameDoubleDialog extends AbsDialogCenterPopupWindow { if (!map.isEmpty()) { isDraw = map.get("win").intValue() == map.get("loss").intValue(); } - findViewById(R.id.tips).setVisibility(View.INVISIBLE); } else { sub_win_score.setText(sudSettleBean1.getWin_num() > 0 ? "+" + sudSettleBean1.getWin_num() : String.valueOf(sudSettleBean1.getWin_num())); sub_loss_score.setText(String.valueOf(sudSettleBean2.getWin_num())); diff --git a/common/src/main/java/com/yunbao/common/manager/game/BilliardsRandomManager.java b/common/src/main/java/com/yunbao/common/manager/game/BilliardsRandomManager.java index 7bb160290..30bc8e38b 100644 --- a/common/src/main/java/com/yunbao/common/manager/game/BilliardsRandomManager.java +++ b/common/src/main/java/com/yunbao/common/manager/game/BilliardsRandomManager.java @@ -48,7 +48,7 @@ public class BilliardsRandomManager extends AbsRandomGameManager { } } }; - private boolean isInitDebug = true; + private boolean isInitDebug = false; @Override public void onStart(CheckCurrencyModel currencyModel, CreateSudRoomModel data, boolean isHome, boolean isRandom) { @@ -111,7 +111,7 @@ public class BilliardsRandomManager extends AbsRandomGameManager { joinAiRobot(); } if (event.getSudMGPMGState().equals(SudMGPMGState.MG_COMMON_PLAYER_IN)) { - LogUtils.e("收到的回调: AI uid = " + getAiUid() + "| kickUid = " + event.getPlayerIn().kickUID); + LogUtils.e("收到的回调: AI uid = " + getAiUid() + "| kickUid = " + event.getPlayerIn().kickUID + "|" + getPlayerSize()); if (event.getPlayerIn().reason == 1 && aiInfo != null) { ToastUtil.show("踢掉了AI"); reset(); @@ -141,7 +141,6 @@ public class BilliardsRandomManager extends AbsRandomGameManager { private void joinAiRobot() { if (!isAddRobot) return; if (!isRandom) return; - if(!isCaptain)return; if (getPlayerSize() == 2) return; if (autoJoinRobotHandler != null) { autoJoinRobotHandler.removeCallbacks(autoJoinRobotRunnable); diff --git a/common/src/main/java/com/yunbao/common/sud/decorator/SudFSMMGDecorator.java b/common/src/main/java/com/yunbao/common/sud/decorator/SudFSMMGDecorator.java index 77a6843cd..afbc5b40f 100644 --- a/common/src/main/java/com/yunbao/common/sud/decorator/SudFSMMGDecorator.java +++ b/common/src/main/java/com/yunbao/common/sud/decorator/SudFSMMGDecorator.java @@ -14,6 +14,7 @@ import com.yunbao.common.manager.RandomSudGameManager; import com.yunbao.common.sud.state.SudMGPMGState; import com.yunbao.common.utils.AppManager; import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.DebugUtils; import com.yunbao.common.utils.ISudFSMStateHandleUtils; import com.yunbao.common.utils.SudJsonUtils; @@ -220,7 +221,7 @@ public class SudFSMMGDecorator implements ISudFSMMG { break; case SudMGPMGState.MG_COMMON_SELF_CLICK_START_BTN: // 8. 开始游戏按钮点击状态 SudMGPMGState.MGCommonSelfClickStartBtn mgCommonSelfClickStartBtn = SudJsonUtils.fromJson(dataJson, SudMGPMGState.MGCommonSelfClickStartBtn.class); - AppManager.runDebugCode(new Runnable() { + DebugUtils.runDebugCode(new Runnable() { @Override public void run() { RandomSudGameManager.getManager().reset(); diff --git a/common/src/main/java/com/yunbao/common/utils/AppManager.java b/common/src/main/java/com/yunbao/common/utils/AppManager.java index 45d95dd91..d4041e02d 100644 --- a/common/src/main/java/com/yunbao/common/utils/AppManager.java +++ b/common/src/main/java/com/yunbao/common/utils/AppManager.java @@ -179,15 +179,6 @@ public class AppManager { activityStack.clear(); } - /** - * 仅在debug下运行的代码 - */ - public static void runDebugCode(Runnable runnable) { - if (BuildConfig.DEBUG) { - runnable.run(); - } - } - /** * 退出应用程序 diff --git a/common/src/main/java/com/yunbao/common/utils/DebugUtils.java b/common/src/main/java/com/yunbao/common/utils/DebugUtils.java new file mode 100644 index 000000000..1a96e85eb --- /dev/null +++ b/common/src/main/java/com/yunbao/common/utils/DebugUtils.java @@ -0,0 +1,29 @@ +package com.yunbao.common.utils; + +import android.util.Log; + +import com.yunbao.common.BuildConfig; + +public class DebugUtils { + /** + * 打印堆栈信息 + */ + public static void showStackTrace(){ + StackTraceElement[] stackTrace = new Throwable().getStackTrace(); + StringBuilder sb=new StringBuilder(); + for (StackTraceElement element : stackTrace) { + if(element!=null){ + sb.append(element).append("\n"); + } + } + Log.e("DebugUtils",sb.toString()); + } + /** + * 仅在debug下运行的代码 + */ + public static void runDebugCode(Runnable runnable) { + if (BuildConfig.DEBUG) { + runnable.run(); + } + } +} diff --git a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java index 4660abed4..fcc3a49a8 100644 --- a/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java +++ b/common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java @@ -23,6 +23,7 @@ import com.lxj.xpopup.XPopup; import com.yunbao.common.CommonAppConfig; import com.yunbao.common.Constants; import com.yunbao.common.bean.CheckUpgradesModel; +import com.yunbao.common.bean.CreateSudRoomModel; import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.bean.LiveBean; import com.yunbao.common.bean.ReportCommunityBean; @@ -38,6 +39,7 @@ import com.yunbao.common.http.HttpClient; import com.yunbao.common.http.LiveHttpUtil; import com.yunbao.common.interfaces.CommonCallback; import com.yunbao.common.manager.IMLoginManager; +import com.yunbao.common.manager.RandomSudGameManager; import org.greenrobot.eventbus.EventBus; @@ -717,4 +719,16 @@ public class JavascriptInterfaceUtils { throw new RuntimeException(e); } } + @JavascriptInterface + public void androidRandomSudGame(){ + RandomSudGameManager.getManager().random(mContext); + } + @JavascriptInterface + public void androidStartSudGame(String roomName,String roomId,String gameId){ + CreateSudRoomModel createSudRoomModel = new CreateSudRoomModel(); + createSudRoomModel.setSudGameId(gameId); + createSudRoomModel.setSudGameRoomId(roomId); + createSudRoomModel.setRoomName(roomName); + RandomSudGameManager.getManager().start(createSudRoomModel,true,true); + } } diff --git a/common/src/main/res/drawable/bg_gift_wall_star_t1.xml b/common/src/main/res/drawable/bg_gift_wall_star_t1.xml new file mode 100644 index 000000000..11b6b2b24 --- /dev/null +++ b/common/src/main/res/drawable/bg_gift_wall_star_t1.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/drawable/bg_gift_wall_star_t2.xml b/common/src/main/res/drawable/bg_gift_wall_star_t2.xml new file mode 100644 index 000000000..0ada76776 --- /dev/null +++ b/common/src/main/res/drawable/bg_gift_wall_star_t2.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/dialog_gift_wall_gift_info.xml b/common/src/main/res/layout/dialog_gift_wall_gift_info.xml index 7c2097297..4ce3b1a96 100644 --- a/common/src/main/res/layout/dialog_gift_wall_gift_info.xml +++ b/common/src/main/res/layout/dialog_gift_wall_gift_info.xml @@ -186,7 +186,9 @@ android:textAllCaps="false" android:textColor="#02215D" android:textSize="16sp" - tools:text="繼續點亮" /> + android:visibility="gone" + tools:text="繼續點亮" + tools:visibility="visible" /> @@ -199,8 +201,8 @@ android:layout_marginTop="10dp" android:layout_marginEnd="17dp" android:layout_marginBottom="58dp" - android:paddingBottom="32dp" android:background="@mipmap/gift_wall_gift_info_list" + android:paddingBottom="32dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/linearLayout2"> @@ -263,29 +265,41 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + app:layout_constraintTop_toBottomOf="@+id/tips_timer"> + + + + + + @@ -297,54 +311,79 @@ android:layout_width="0dp" android:layout_height="64dp" android:background="@mipmap/gift_wall_gift_info_botton" + android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent"> + app:layout_constraintStart_toStartOf="parent" + tools:visibility="visible"> - + app:layout_constraintTop_toTopOf="parent"> - + - + + + + + + +