diff --git a/app/src/main/java/com/shayu/phonelive/AppContext.java b/app/src/main/java/com/shayu/phonelive/AppContext.java index 6dea8b7ed..98dc3348a 100644 --- a/app/src/main/java/com/shayu/phonelive/AppContext.java +++ b/app/src/main/java/com/shayu/phonelive/AppContext.java @@ -135,12 +135,6 @@ public class AppContext extends CommonAppContext { if (!isMainProcess()) { return; } - AppManager.runDebugCode(new Runnable() { - @Override - public void run() { - ToastUtil.show("Debug代码"); - } - }); CrashSaveBean.getInstance().setStartTime(System.currentTimeMillis()); //注册全局异常捕获 registerError(); diff --git a/common/src/main/java/com/yunbao/common/adapter/LiveNewWishAdapter.java b/common/src/main/java/com/yunbao/common/adapter/LiveNewWishAdapter.java index e6550b62d..4363e6dd2 100644 --- a/common/src/main/java/com/yunbao/common/adapter/LiveNewWishAdapter.java +++ b/common/src/main/java/com/yunbao/common/adapter/LiveNewWishAdapter.java @@ -1,5 +1,6 @@ package com.yunbao.common.adapter; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -11,6 +12,7 @@ import com.yunbao.common.R; import com.yunbao.common.bean.WishModel; import com.yunbao.common.event.LiveNewWishListCloseEvent; import com.yunbao.common.utils.Bus; +import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.views.DayWishItemViewHolder; import com.yunbao.common.views.LunarWishItemViewHolder; import com.yunbao.common.views.SeasonalWishItemViewHolder; @@ -46,8 +48,20 @@ public class LiveNewWishAdapter extends RecyclerView.Adapter { Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(true)); break; } + boolean isAdd = false; + for (int i = 0; i < wishList.size(); i++) { + if (wishList.get(i)!=null){ + if (!TextUtils.isEmpty(wishList.get(i).getLid()) && !TextUtils.isEmpty(model.getLid()) + && TextUtils.equals(wishList.get(i).getLid(), model.getLid())) { + ToastUtil.show(R.string.too_many_gifts); + isAdd = true; + } + } - wishList.add(0, model); + } + if (!isAdd) { + wishList.add(0, model); + } notifyDataSetChanged(); } diff --git a/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java b/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java index c6dfaf62d..bb7a963c1 100644 --- a/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java +++ b/common/src/main/java/com/yunbao/common/fragment/LiveNewWishListFragment.java @@ -17,11 +17,11 @@ import com.yunbao.common.bean.WishListModel; import com.yunbao.common.bean.WishModel; import com.yunbao.common.bean.WishModel2; import com.yunbao.common.event.LiveNewWishListCloseEvent; -import com.yunbao.common.event.PopupViewDismissEvent; import com.yunbao.common.http.base.HttpCallback; import com.yunbao.common.http.live.LiveNetManager; import com.yunbao.common.utils.Bus; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.views.HintCustomPopup; import com.yunbao.common.views.LiveNewWishGiftPopup; import com.yunbao.common.views.weight.ViewClicksAntiShake; @@ -66,7 +66,7 @@ public class LiveNewWishListFragment extends BaseFragment { @Override public void onViewClicks() { saveWish(); - Bus.get().post(new PopupViewDismissEvent()); + } }); } @@ -105,29 +105,51 @@ public class LiveNewWishListFragment extends BaseFragment { liveNewWishAdapter.addData(wishList, type); } - public void saveWish() { + public int liveNewWishAdapterWishList() { List wishList = liveNewWishAdapter.getWishList(); List wishList2 = new ArrayList<>(); Gson gson = new Gson(); for (WishModel model : wishList) { - if (model!=null){ + if (model != null) { WishModel2 model2 = gson.fromJson(gson.toJson(model), WishModel2.class); wishList2.add(model2); } } - if (wishList2.size() == 0) { - Bus.get().post(new PopupViewDismissEvent()); - } else { - if (wishList2.size()>10){ - ToastUtil.show(R.string.must_hint); - return; + return wishList2.size(); + } + + public void saveWish() { + List wishList = liveNewWishAdapter.getWishList(); + List wishList2 = new ArrayList<>(); + Gson gson = new Gson(); + for (WishModel model : wishList) { + if (model != null) { + WishModel2 model2 = gson.fromJson(gson.toJson(model), WishModel2.class); + wishList2.add(model2); } + + } + switch (type) { + case 1: + Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(false)); + break; + case 2: + Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(false)); + break; + case 3: + Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(false)); + break; + case 4: + Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(false)); + break; + } + if (wishList2.size() == 0) { LiveNetManager.get(getContext()). setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() { @Override public void onSuccess(String data) { - + ToastUtil.show("修改成功"); } @Override @@ -135,22 +157,58 @@ public class LiveNewWishListFragment extends BaseFragment { ToastUtil.show(R.string.net_error); } }); - switch (type) { - case 1: - Bus.get().post(new LiveNewWishListCloseEvent().setDayWish(false)); - break; - case 2: - Bus.get().post(new LiveNewWishListCloseEvent().setZhouXin(false)); - break; - case 3: - Bus.get().post(new LiveNewWishListCloseEvent().setLunarWish(false)); - break; - case 4: - Bus.get().post(new LiveNewWishListCloseEvent().setSeasonalWish(false)); - break; + } else if (wishList2.size() == 1) { + new XPopup.Builder(getContext()) + .asCustom(new HintCustomPopup(getContext(), + getContext().getString(R.string.dialog_tip), + getContext().getString(R.string.sett_rigger)) + .setLiveOpenOk(getContext().getString(R.string.settings_ser)) + .setLiveOpenCancel(getContext().getString(R.string.cancel_ca)) + .setCallBack(new HintCustomPopup.HintCustomCallBack() { + @Override + public void onSure() { + + } + + @Override + public void onCancel() { + + if (wishList2.size() > 10) { + ToastUtil.show(R.string.must_hint); + return; + } + LiveNetManager.get(getContext()). + setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() { + @Override + public void onSuccess(String data) { + ToastUtil.show("修改成功"); + } + + @Override + public void onError(String error) { + ToastUtil.show(R.string.net_error); + } + }); + } + })).show(); + } else { + if (wishList2.size() > 10) { + ToastUtil.show(R.string.must_hint); + return; } + LiveNetManager.get(getContext()). + setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() { + @Override + public void onSuccess(String data) { + ToastUtil.show("修改成功"); + } + + @Override + public void onError(String error) { + ToastUtil.show(R.string.net_error); + } + }); + } - - } } 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 8779c4866..a32b22392 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -863,6 +863,15 @@ public interface PDLiveApi { @Query("to_uid") String toUid ); + /** + * 礼物墙已点亮 + */ + @GET("/api/public/?service=Gift.giftUserSendWall") + Observable> giftUserSendWall( + @Query("liveuid") String liveUid, + @Query("to_uid") String toUid + ); + /** * 礼物墙未点亮 */ 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 aeeb32a15..b628a359e 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 @@ -1874,6 +1874,28 @@ public class LiveNetManager { }).isDisposed(); } + public void giftUserSendWall(String liveUid, String toUid, HttpCallback callback) { + API.get().pdLiveApi(mContext) + .giftUserSendWall(liveUid, toUid) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Consumer>() { + @Override + public void accept(ResponseModel giftAlreadyWallModelResponseModel) throws Exception { + if (callback != null) { + callback.onSuccess(giftAlreadyWallModelResponseModel.getData().getInfo()); + } + } + }, new Consumer() { + @Override + public void accept(Throwable throwable) throws Exception { + if (callback != null) { + callback.onError(mContext.getString(R.string.net_error)); + } + } + }).isDisposed(); + } + public void giftWithoutWall(String liveUid, String toUid, HttpCallback callback) { API.get().pdLiveApi(mContext) .giftWithoutWall(liveUid, toUid) @@ -2072,9 +2094,9 @@ public class LiveNetManager { }).isDisposed(); } - public void buyFansExclusivePack(String liveUid, String packId,String stream, HttpCallback callback) { + public void buyFansExclusivePack(String liveUid, String packId, String stream, HttpCallback callback) { API.get().pdLiveApi(mContext) - .buyFansExclusivePack(liveUid, packId,stream) + .buyFansExclusivePack(liveUid, packId, stream) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer>() { diff --git a/common/src/main/java/com/yunbao/common/views/DayWishItemViewHolder.java b/common/src/main/java/com/yunbao/common/views/DayWishItemViewHolder.java index 335b71651..677c2d632 100644 --- a/common/src/main/java/com/yunbao/common/views/DayWishItemViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/DayWishItemViewHolder.java @@ -80,10 +80,13 @@ public class DayWishItemViewHolder extends RecyclerView.ViewHolder { @Override public void onViewClicks() { int number = model.wishProgress(); - model.setWishlistNum(String.valueOf(number - 1)); - if (listener != null) { - listener.onUpdate(model, index); + if (number>1){ + model.setWishlistNum(String.valueOf(number - 1)); + if (listener != null) { + listener.onUpdate(model, index); + } } + } }); } else { diff --git a/common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java b/common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java index 4294b8b34..7a654aaba 100644 --- a/common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java +++ b/common/src/main/java/com/yunbao/common/views/GiftNumberPopup.java @@ -54,7 +54,9 @@ public class GiftNumberPopup extends BottomPopupView { new XPopup.Builder(getContext()) .asCustom(new InputCustomPopup(getContext(), getContext().getString(R.string.the_title_financier3), - R.string.custom_quantity, true).setListener(new InputCustomPopup.InputCustomListener() { + R.string.custom_quantity, true) + .setMaxValue(4) + .setListener(new InputCustomPopup.InputCustomListener() { @Override public void onConfirm(String text) { if (!TextUtils.isEmpty(text)) { diff --git a/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java b/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java index b2598cd14..80b31e916 100644 --- a/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java +++ b/common/src/main/java/com/yunbao/common/views/InputCustomPopup.java @@ -1,6 +1,7 @@ package com.yunbao.common.views; import android.content.Context; +import android.text.InputFilter; import android.text.InputType; import android.text.TextUtils; import android.view.View; @@ -22,6 +23,7 @@ public class InputCustomPopup extends CenterPopupView { private String message = ""; private int title = R.string.dialog_tip; private boolean isType; + private int maxValue=0; public InputCustomPopup(@NonNull Context context, String message, int title) { super(context); @@ -36,6 +38,11 @@ public class InputCustomPopup extends CenterPopupView { this.isType = isType; } + public InputCustomPopup setMaxValue(int maxValue) { + this.maxValue = maxValue; + return this; + } + public InputCustomPopup(@NonNull Context context, int title) { super(context); this.title = title; @@ -53,6 +60,9 @@ public class InputCustomPopup extends CenterPopupView { super.onCreate(); EditText content = findViewById(R.id.content); TextView titleText = findViewById(R.id.title); + if(maxValue>0){ + content.setFilters(new InputFilter[]{new InputFilter.LengthFilter(maxValue)}); + } if (isType) { content.setHint(message); diff --git a/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java b/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java index b6d8a88c6..4ca74750f 100644 --- a/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java +++ b/common/src/main/java/com/yunbao/common/views/LiveNewWishListPopup.java @@ -98,7 +98,6 @@ public class LiveNewWishListPopup extends BottomPopupView { private void saveWishDialog(boolean isDismiss) { if (hintCustomPopup != null) return; - hintCustomPopup = new HintCustomPopup( getContext(), getContext().getString(R.string.replacement_reset_confirmed_cancel3), @@ -110,17 +109,15 @@ public class LiveNewWishListPopup extends BottomPopupView { public void onSure() { hintCustomPopup = null; if (dayWish) { - dayWishFragment.saveWish(); + dayWishFragment.saveWish( ); } else if (zhouXin) { - zhouXinFragment.saveWish(); + zhouXinFragment.saveWish( ); } else if (lunarWish) { - lunarWishFragment.saveWish(); + lunarWishFragment.saveWish( ); } else if (seasonalWish) { - seasonalWishFragment.saveWish(); - } - if (isDismiss) { - dismiss(); + seasonalWishFragment.saveWish( ); } + } @Override @@ -167,6 +164,7 @@ public class LiveNewWishListPopup extends BottomPopupView { .setWishlistName(event.getModel().getName()) .setWishlistIcon(event.getModel().getImg()) .setWishlistNum("1") + .setLid(event.getModel().getId()) .setLuid("" + IMLoginManager.get(mContext).getUserInfo().getId()) .setWishlistProgress("0") .setPrice(Integer.parseInt(event.getModel().getPrice())) @@ -334,7 +332,7 @@ public class LiveNewWishListPopup extends BottomPopupView { setWishlistV2(type, gson.toJson(wishList2), new HttpCallback() { @Override public void onSuccess(String data) { - ToastUtil.show(data); + ToastUtil.show("修改成功"); } @Override diff --git a/common/src/main/java/com/yunbao/common/views/LunarWishItemViewHolder.java b/common/src/main/java/com/yunbao/common/views/LunarWishItemViewHolder.java index 756685745..01d3d65ea 100644 --- a/common/src/main/java/com/yunbao/common/views/LunarWishItemViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/LunarWishItemViewHolder.java @@ -77,10 +77,13 @@ public class LunarWishItemViewHolder extends RecyclerView.ViewHolder { @Override public void onViewClicks() { int number = model.wishProgress(); - model.setWishlistNum(String.valueOf(number - 1)); - if (listener != null) { - listener.onUpdate(model, index); + if (number>1){ + model.setWishlistNum(String.valueOf(number - 1)); + if (listener != null) { + listener.onUpdate(model, index); + } } + } }); } else { diff --git a/common/src/main/java/com/yunbao/common/views/SeasonalWishItemViewHolder.java b/common/src/main/java/com/yunbao/common/views/SeasonalWishItemViewHolder.java index b0578cc45..be93e658d 100644 --- a/common/src/main/java/com/yunbao/common/views/SeasonalWishItemViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/SeasonalWishItemViewHolder.java @@ -77,10 +77,13 @@ public class SeasonalWishItemViewHolder extends RecyclerView.ViewHolder { @Override public void onViewClicks() { int number = model.wishProgress(); - model.setWishlistNum(String.valueOf(number - 1)); - if (listener != null) { - listener.onUpdate(model, index); + if (number>1){ + model.setWishlistNum(String.valueOf(number - 1)); + if (listener != null) { + listener.onUpdate(model, index); + } } + } }); } else { diff --git a/common/src/main/java/com/yunbao/common/views/WeekWishItemViewHolder.java b/common/src/main/java/com/yunbao/common/views/WeekWishItemViewHolder.java index 422c2e304..63d1f533e 100644 --- a/common/src/main/java/com/yunbao/common/views/WeekWishItemViewHolder.java +++ b/common/src/main/java/com/yunbao/common/views/WeekWishItemViewHolder.java @@ -77,10 +77,13 @@ public class WeekWishItemViewHolder extends RecyclerView.ViewHolder { @Override public void onViewClicks() { int number = model.wishProgress(); - model.setWishlistNum(String.valueOf(number - 1)); - if (listener != null) { - listener.onUpdate(model, index); + if (number>1){ + model.setWishlistNum(String.valueOf(number - 1)); + if (listener != null) { + listener.onUpdate(model, index); + } } + } }); } else { diff --git a/common/src/main/res/drawable/background_skip_unselect_button.png b/common/src/main/res/drawable/background_skip_unselect_button.png new file mode 100644 index 000000000..0b0bb68b7 Binary files /dev/null and b/common/src/main/res/drawable/background_skip_unselect_button.png differ diff --git a/common/src/main/res/layout/dialog_live_gift_popup.xml b/common/src/main/res/layout/dialog_live_gift_popup.xml index e51c57a5d..a489f4994 100644 --- a/common/src/main/res/layout/dialog_live_gift_popup.xml +++ b/common/src/main/res/layout/dialog_live_gift_popup.xml @@ -53,6 +53,7 @@ android:gravity="center_vertical"> @@ -157,14 +158,23 @@ android:progress="0" android:progressDrawable="@drawable/progress_bg_user" /> - + Guard Contribution this week anchor are waiting at your guard! - Let\'s open up a guard for our favorite anchor + Turn on the guard for your favorite anchor! You are the current anchor\'s monthly guard \ n the guard date expires You are the current anchor\'s annual guardian \ n the guardian date expires Special gift for annual guard @@ -1308,6 +1308,10 @@ Limited ride And limited avatar frame Please make gifts in the studio Been sent out Send out + "At least 2 types of gifts can be set to trigger the wish list special effect gift. " + cancel + settings + Too many gifts diff --git a/common/src/main/res/values-zh-rHK/strings.xml b/common/src/main/res/values-zh-rHK/strings.xml index a1b2ca7d1..c4f091157 100644 --- a/common/src/main/res/values-zh-rHK/strings.xml +++ b/common/src/main/res/values-zh-rHK/strings.xml @@ -1300,8 +1300,12 @@ 冠名主播: 冠名金主: 冠名 - 请输入自定义数量 - 请在直播间内进行送礼 + 請輸入自定義數量 + 請在直播間內進行送禮 已送出 立即送出 + 最低設置2種類型禮物才能觸發心愿單特效禮物。 + 不再設置 + 去設置 + 重複添加禮物 diff --git a/common/src/main/res/values-zh-rTW/strings.xml b/common/src/main/res/values-zh-rTW/strings.xml index 56cc1c802..abbd53187 100644 --- a/common/src/main/res/values-zh-rTW/strings.xml +++ b/common/src/main/res/values-zh-rTW/strings.xml @@ -1299,8 +1299,12 @@ 冠名主播: 冠名金主: 冠名 - 请输入自定义数量 - 请在直播间内进行送礼 + 請輸入自定義數量 + 請在直播間內進行送禮 已送出 立即送出 + 最低設置2種類型禮物才能觸發心愿單特效禮物。 + 不再設置 + 去設置 + 重複添加禮物 diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index ebe4b025f..74039fbf7 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -20,7 +20,7 @@ 立即簽到 已連續簽到 - 美顏初始化异常,無法使用 + 美顏初始化異常,無法使用 提現帳戶 您當前還沒設定提現帳戶 添加提現帳戶 @@ -34,7 +34,7 @@ 支付寶 微信 銀行卡 - 是否要删除該帳戶? + 是否要刪除該帳戶? 提現記錄 贈送 帳戶餘額 @@ -58,17 +58,17 @@ 任務1 任務2 任務3 - 赠送一个\n免费礼物 + 贈送一個\n免費禮物 未完成 完成 任意關注\n一名主播 雙擊點亮\n 直播間 恭喜你完成任務 - 获得 + 獲得 這個禮物只能送一個哦~ 生日 性別 - 申请連麥 + 申請連麥 取消申請 關閉連麥 退出連麥 @@ -125,7 +125,7 @@ 我的 鑽石 - 主播守护 + 主播守護 本周貢獻 主播正在等待您的守護! 快去為喜歡的主播開通守護吧 @@ -193,12 +193,12 @@ 登入即代表同意 服務和隱私條款 其他登入管道 - 注册登入後體驗更精彩! + 註冊登入後體驗更精彩! 請輸入手機號碼 請輸入密碼 立即登入 登入中 - 立即注册 + 立即註冊 忘記密碼 請輸入正確的手機號碼 正在授權登入 @@ -219,7 +219,7 @@ 選擇頻道 選擇直播頻道 注意選擇適合自己的頻道。 - 直播過程中,若運營人員發現選擇的頻道和直播內容不相符的情况,會調整您的直播頻道。 + 直播過程中,若運營人員發現選擇的頻道和直播內容不相符的情況,會調整您的直播頻道。 請設定房間密碼 請設定收費金額\n(收益以直播結束顯示為准) 請設定房間密碼 @@ -424,17 +424,17 @@ 可提現%1$s數 輸入要選取的%1$s數 立即提現 - 注册 + 註冊 請輸入您的手機號 請輸入驗證碼 請填寫密碼 請確認密碼 填寫邀請碼(非必填) - 注册並登入 + 註冊並登入 獲取驗證碼 重新獲取 密碼不一致 - 注册中 + 註冊中 直播間紅包 給當前直播間觀眾發紅包 拼手氣紅包 @@ -516,7 +516,7 @@ 視頻預處理失敗 視頻預處理取消 處理中 - 狀態异常,停止編輯 + 狀態異常,停止編輯 選擇音樂 蒐索歌曲名稱 熱門歌曲 @@ -533,7 +533,7 @@ 視頻生成中 生成視頻成功 生成視頻失敗 - 是否放弃發佈此條視頻 + 是否放棄發佈此條視頻 未找到本地視頻 本地視頻 視頻時長不符合要求 @@ -559,12 +559,12 @@ 請選擇舉報理由 舉報成功 已經到頂了哦 - 確定删除上一段視頻? + 確定刪除上一段視頻? 是否退出視頻編輯 添加 接受 全部 - 相册 + 相冊 取消 相機 圖片選取/預覽 @@ -577,18 +577,18 @@ 無法關注自己哦~ 提示 下載 - 删除 + 刪除 結束 熱門 日榜 周榜 觀衆 - 红润 + 紅潤 美白 磨皮 大眼 - 瘦脸 - 削脸 + 瘦臉 + 削臉 下巴 鼻子 嘴唇 @@ -596,24 +596,24 @@ 白牙 自然 白皙 - 净白 + 凈白 日系 黑白 柔和 暖光 - 复古 + 復古 花香 - 轻氧 - 元气 - 鲜明 + 輕氧 + 元氣 + 鮮明 明亮 深海 - 夕阳 - 治愈 - 滤镜 + 夕陽 + 治癒 + 濾鏡 美型 - 美颜 - 可爱 + 美顏 + 可愛 女神 個性裝扮 魅力榜 @@ -680,7 +680,7 @@ 發言,需要到達%1$s級 開定位 堅決關閉 - 關閉定位,直播不會被附近的人看到,直播間人數可能會减少,確認關閉嗎? + 關閉定位,直播不會被附近的人看到,直播間人數可能會減少,確認關閉嗎? 火星 商城 明細 @@ -698,7 +698,7 @@ 未選中支付方式 我的%1$s 充值 - 领取 + 領取 消息中心 所屬公會 開通貴族 @@ -715,7 +715,7 @@ 立即支付 使用者等級 主播等級 - 用户等級 + 用戶等級 貴族等級 粉絲團 榮譽墻 @@ -728,7 +728,7 @@ 購買了座騎 購買了靚號 VIP - 随机PK + 隨機PK 心願單 娛樂整蠱 多人PK @@ -745,7 +745,7 @@ 您是當前主播的年守護 守護日期截止到:%s - 快为您喜欢的主播开通守护吧 + 快為您喜歡的主播開通守護吧 成爲%s的守護 @@ -765,7 +765,7 @@ 隱私政策 每日禮包 貴賓座席 - 真爱排行 + 真愛排行 送禮獲得粉絲微章 當日設置的心願,會在當天24:00失效 添加禮物和數量 @@ -777,7 +777,7 @@ 直播中 休息中 - 拜托拜托,可以關注一下我嗎? + 拜託拜託,可以關注一下我嗎? 關注並退出 直接退出 用戶 @@ -816,10 +816,10 @@ 當前貴族: 到期時間: - 已加入黑名单 - 加入黑名单失败 - 移除黑名单成功 - 移除黑名单失败 + 已加入黑名單 + 加入黑名單失敗 + 移除黑名單成功 + 移除黑名單失敗 回復 回復評論 @@ -844,9 +844,9 @@ 解鎖直播間發言功能 前置任務 - 使用Facebook登录 - 使用Twitter登录 - 使用Google登录 + 使用Facebook登錄 + 使用Twitter登錄 + 使用Google登錄 請求超時,請稍後再試。 @@ -893,12 +893,12 @@ 飄屏彈幕 全站喇叭 可用次數:%s 注:每月1日凌晨4點更新次數 - 内容不可为空 + 內容不可為空 貴族專屬全站消息 全站顯示消息並可跳轉到當前直播間 - 开通贵族国王、皇帝、超级皇帝免费获得 + 開通貴族國王、皇帝、超級皇帝免費獲得 返回 - 前往贵族 + 前往貴族 使用成功 前往直播間 搜索歷史 @@ -907,7 +907,7 @@ 更多 精彩直播 為您推薦 - 趣味游戏 + 趣味遊戲 增值權益 粉絲團 活動中心 @@ -931,7 +931,7 @@ 子爵 侯爵 公爵 - 国王 + 國王 皇帝 超皇 無法前往神秘人的個人主頁。 @@ -942,21 +942,21 @@ 數據加載失敗,請稍後再試 開通了 喇叭數量不足 - 订单查询中 - 订单无异常 + 訂單查詢中 + 訂單無異常 登錄失效,請重新登錄 請稍後 滑動設置 上下滑動切換直播間 - \@用户昵称\t\t你好啊~ - 在线列表 + \@用戶昵稱\t\t你好啊~ + 在線列表 搜索想要@的人 在線觀眾 觀眾 無法@自己 總星值 助力人數 - %s星挑战 + %s星挑戰 恭喜 %s,完成了%s %s星 挑戰,快去一睹主播芳容吧! 小窗播放設置 @@ -966,13 +966,13 @@ APP全應用小窗播放 在其他應用上及所有界面显示小窗\n需打開懸浮窗權限。 前往打開 - 不喜歡小窗播放吗?\n可以在「個人中心」-「設定」中關閉 + 不喜歡小窗播放嗎?\n可以在「個人中心」-「設定」中關閉 去設置 知道了 個人設定 獎勵 修改密碼 - 黑名单 + 黑名單 消息通知 屏蔽直播間禮物特效 屏蔽直播間座駕特效 @@ -988,7 +988,7 @@ 畫質選擇 更多設置 查看更多 - 礼物正在获取中... + 禮物正在獲取中... 開始PK 剩餘次數:%s 是否確認進行多人PK(確認後扣除1點次數)當日剩餘次數: %s @@ -997,9 +997,9 @@ 時間 %s 接受 - 拒绝 - 坚持拒绝 - 随机PK提示 + 拒絕 + 堅持拒絕 + 隨機PK提示 自動發言機器人設置 機器人開關 @@ -1036,7 +1036,7 @@ 堅持選擇 網絡提示 系統監測到您的網絡不穩定,設備內存不足將會影響到您的直播流暢度,因此建議您選擇流暢清晰度。 - 检查新版本 + 檢查新版本 發現新版本,點此更新 已是最新版本 更新中 @@ -1059,7 +1059,7 @@ 關注轉化率 新增粉絲團 粉絲團轉化率 - 加载中… + 加載中… 由於您的系統較老,我們自動為您屏蔽了禮物及座駕特效,可在「設置中心」手動打開。 抱歉!出錯了! @@ -1068,19 +1068,19 @@ 再簽到1天即可獲得額外獎勵。 「簽到中心」 快前往「簽到中心」獲得額外獎勵吧! - 签到中心 - 返回首页 - 前往签到中心 + 簽到中心 + 返回首頁 + 前往簽到中心 確認領取 無法登陸?點此聯繫客服 進入下一步即代表同意 - 用户協議 + 用戶協議 隱私條款 條款和政策 歡迎來到PD LIVE,對於您的個人信息及隱私,我們將採用最高標準對待和保護。 詳情請您閱讀以下安裝應用程序的消息: - 為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDK,Mob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息,以便完成一鍵分享服務。並通過地理位置校準報表數據準確性,提供基礎反作弊服務。為了您的信息安全,我們已與第三方SDK服務商進行數據安全保密約定,這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]采集的數據類型及用途,以及何保護您的個人信息,您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。 + 為了向您提供一鍵分享服務,我們的產品集成Mob+U-Share SDK,Mob+SDK需要收集您的設備Mac地址、唯一設備識別碼(1MEI/android ID/IDFA/OPENUDID/GUID、 SIM卡IMSI信息)以及您需要分享的社交賬號公開信息,以便完成一鍵分享服務。並通過地理位置校準報表數據準確性,提供基礎反作弊服務。為了您的信息安全,我們已與第三方SDK服務商進行數據安全保密約定,這些公司會嚴格遵守我們的數據隱私和安全要求。 除非得到您的同意,我們不會與其共享您的個人身份信息。為便於您更好地了解[Mob+]採集的數據類型及用途,以及何保護您的個人信息,您可以登陸https://www.mob.com/about/policy了解[Mob+]隱私權政)。 同意 點擊同意後即代表您已閱讀並同意以上所有內容。 本應用會收集位置數據以支持登錄和註冊的功能使用。 @@ -1091,7 +1091,7 @@ 女神說 說點什麽吧... - %s 来了 + %s 來了 日心願 周心願 月心願 @@ -1107,8 +1107,8 @@ 重置後將會清空當前心願單列表\n無論心願單是否完成 確定重置 返回列表 - 是否保存当前心愿单 - 当前心愿单未保存 + 是否保存當前心愿單 + 當前心愿單未保存 不保存 您有一張%s,是否使用?使用後開通花費鉆石%s,返還金豆%s @@ -1119,10 +1119,10 @@ 語言設定 繁體中文 添加禮物、貴族、守護心願 - 热度加成 - 最多只能设置10条 + 熱度加成 + 最多只能設置10條 - 默认 + 默認 選擇字號大小 確認 @@ -1139,9 +1139,9 @@ 新活動、系統消息 開播通知 開啟後獲得直播通知 - PK天梯赛 + PK天梯賽 是否確認前往對方直播間? - 充值未到账? + 充值未到賬? 是否刪除賬號 點擊刪除後即刻生效,且不可恢復,您確認要繼續嗎? 確認刪除 @@ -1173,22 +1173,22 @@ 離開會讓您失去獎勵,您確認離開嗎? 愛你,愛你 指導下我好嗎 - 再送%s个必得%s - 已将%s发送至您的个性装扮 + 再送%s個必得%s + 已將%s發送至您的個性裝扮 迷你盲盒 典藏盲盒 PD盲盒 投票創建失敗 - 个性装扮 - 可随机获得,%s - 已获得,%s,%s - 已获得,%s + 個性裝扮 + 可隨機獲得,%s + 已獲得,%s,%s + 已獲得,%s 完成必得 盲盒榜 參與 %s在%s中抽取到了 - %S送给了%s - 超过最大值 + %S送給了%s + 超過最大值 餘額不足,繼續充值 期限禁言 紅包記錄 @@ -1208,7 +1208,7 @@ 攢人氣紅包 紅包專區 攢人氣紅包 - 价值 + 價值 去充值> 共計消耗%s鑚 紅包%s鑚/個 @@ -1217,7 +1217,7 @@ 條件 金額 - 范围区间为[%s] + 範圍區間為[%s] 隨機可得 攢人氣 @@ -1242,8 +1242,8 @@ 與紅包擦肩而過 查看大家手氣 " %s 在 好運紅包 中抽到了 %s" - 数量 - 红包发布成功 + 數量 + 紅包發布成功 選擇系統頭像 該功能需升至Lv.5后使用,請努力升級吧~ 無論你在哪裏,我都在直播間等你~ @@ -1259,7 +1259,7 @@ 未點亮 全服冠名 愛\“禮\”伊始,\“墻\”勢點亮 暫無點亮 - 暂无未点亮礼物哦 + 暫無未點亮禮物哦 立即點亮 榮譽成就 已點亮 @@ -1282,7 +1282,7 @@ 送禮機器:纍計贈送禮物個數達到200、1000、10K、100K、1M時,分別點亮對應的成就; 點燈大師:解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就 規則 - 当前活动暂未送出任何礼物哦 + 當前活動暫未送出任何禮物哦 規則介紹 禮物詳情 虛位以待 @@ -1299,10 +1299,14 @@ 冠名主播: 冠名金主: 冠名 - 请输入自定义数量 - 请在直播间内进行送礼 + 請輸入自定義數量 + 請在直播間內進行送禮 已送出 立即送出 + 最低設置2種類型禮物才能觸發心愿單特效禮物。 + 不再設置 + 去設置 + 重複添加禮物 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index d3e9b1d33..8f022b06e 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -176,7 +176,7 @@ Guard Contribution this week anchor are waiting at your guard! - Let\'s open up a guard for our favorite anchor + Turn on the guard for your favorite anchor! You are the current anchor\'s monthly guard \ n the guard date expires You are the current anchor\'s annual guardian \ n the guardian date expires Special gift for annual guard @@ -1309,5 +1309,9 @@ Limited ride And limited avatar frame Please make gifts in the studio Been sent out Send out + At least 2 types of gifts can be set to trigger the wish list special effect gift. + cancel + settings + Too many gifts diff --git a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java index 5ac18d0af..da661857c 100644 --- a/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java +++ b/live/src/main/java/com/yunbao/live/activity/LiveRyAnchorActivity.java @@ -79,6 +79,7 @@ import com.yunbao.live.bean.LiveGuardInfo; import com.yunbao.live.bean.LiveKsyConfigBean; import com.yunbao.live.bean.LiveReceiveGiftBean; import com.yunbao.live.dialog.FreePkDialogFragment; +import com.yunbao.live.dialog.LiveInputDialogFragment; import com.yunbao.live.dialog.LiveNewFunctionDialogFragment; import com.yunbao.live.dialog.LivePrankDialogFragment; import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience; @@ -1661,6 +1662,22 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl mLiveRoomViewHolder.showGiftWall(event.getUid(),event.isVoicePress(),event.getUname(),event.getAvatar()); } break; + case INPUT_DIALOG: + LiveInputDialogFragment liveInputDialogFragment = new LiveInputDialogFragment(); + Bundle liveInputBundle = new Bundle(); + liveInputBundle.putString(Constants.LIVE_DANMU_PRICE, mDanmuPrice); + liveInputBundle.putString(Constants.COIN_NAME, mCoinName); + liveInputBundle.putString(Constants.LIVE_UID, mLiveUid); + liveInputBundle.putString(Constants.LIVE_STREAM, mStream); + liveInputBundle.putString(Constants.LIVE_UID, mLiveUid); + if (event.getOlineUserlistModel() == null) { + liveInputBundle.putString("TagUser", ""); + } else { + liveInputBundle.putString("TagUser", GsonUtils.toJson(event.getOlineUserlistModel())); + } + liveInputDialogFragment.setArguments(liveInputBundle); + liveInputDialogFragment.show(getSupportFragmentManager(), "LiveInputDialogFragment"); + break; } } @Subscribe(threadMode = ThreadMode.MAIN) diff --git a/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java index e0c8e79dd..e07a3d1a3 100644 --- a/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/GiftWallItemPopup.java @@ -2,6 +2,7 @@ package com.yunbao.live.dialog; import android.content.Context; +import android.graphics.Color; import android.widget.ImageView; import android.widget.TextView; @@ -9,6 +10,7 @@ import androidx.annotation.NonNull; import androidx.cardview.widget.CardView; import com.lxj.xpopup.core.CenterPopupView; +import com.yunbao.common.CommonAppConfig; import com.yunbao.common.R; import com.yunbao.common.bean.GiftWallGiftDetail; import com.yunbao.common.bean.GiftWallModel; @@ -28,6 +30,7 @@ public class GiftWallItemPopup extends CenterPopupView { private GiftWallModel giftWallModel; private boolean unlit; private String mLiveUid, mStream; + private boolean isAnchor = false; public GiftWallItemPopup(@NonNull Context context, GiftWallModel giftWallModel, boolean unlit, String mLiveUid, String mStream) { @@ -36,6 +39,9 @@ public class GiftWallItemPopup extends CenterPopupView { this.unlit = unlit; this.mLiveUid = mLiveUid; this.mStream = mStream; + if (this.mLiveUid.equals(CommonAppConfig.getInstance().getUid())) { + isAnchor = true; + } } @Override @@ -60,6 +66,11 @@ public class GiftWallItemPopup extends CenterPopupView { } else { giftDetailsBtn.setText(getContext().getText(R.string.instant_light)); } + if(isAnchor){ + giftDetailsBtn.setBackgroundResource(R.drawable.background_skip_unselect_button); + giftDetailsBtn.setEnabled(false); + giftDetailsBtn.setTextColor(Color.parseColor("#F2F2F2")); + } ImgLoader.display(getContext(), giftWallModel.getGifticon(), giftImg); giftDetails.setText(giftWallModel.getGiftname()); price.setText(giftWallModel.getNeedcoin()); diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveFansGroupSendGiftDialog.java b/live/src/main/java/com/yunbao/live/dialog/LiveFansGroupSendGiftDialog.java index c75201359..346b57079 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveFansGroupSendGiftDialog.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveFansGroupSendGiftDialog.java @@ -85,9 +85,6 @@ public class LiveFansGroupSendGiftDialog extends AbsDialogCenterPopupWindow { @Override public void onSuccess(List data) { adapter.setList(data); - if (data.size() == 0) { - dismiss(); - } } @Override diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java index d3c6bcdf3..f071d7058 100644 --- a/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java +++ b/live/src/main/java/com/yunbao/live/dialog/LiveGiftPopup.java @@ -89,12 +89,13 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; +import java.util.Locale; /** * 直播间新送礼弹窗 */ public class LiveGiftPopup extends AbsDialogFragment { - private ImageView gitBackground, nobilityIcon, description, iconArrow, operateImage, namingAvatar; + private ImageView gitBackground, nobilityIcon, description, iconArrow, operateImage, namingAvatar, giftItle; private JSONArray liveGiftList; private TextView diamondText, goldText, liveWrap, vipGoldDesc, vipGoldTitle, giftNumber; private RecyclerView giftTitle; @@ -163,6 +164,7 @@ public class LiveGiftPopup extends AbsDialogFragment { vipGoldDesc = mRootView.findViewById(R.id.vipGoldDesc); vipGoldTitle = mRootView.findViewById(R.id.vipGoldTitle); giftNumber = mRootView.findViewById(R.id.gift_number); + giftItle = mRootView.findViewById(R.id.gift_itle); liveGiftSend = mRootView.findViewById(R.id.live_gift_send); giftNumberLayout = mRootView.findViewById(R.id.gift_number_layout); mLianText = mRootView.findViewById(R.id.lian_text); @@ -317,6 +319,11 @@ public class LiveGiftPopup extends AbsDialogFragment { fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment"); } }); + if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) { + ImgLoader.display(mContext, R.mipmap.icon_live_gift_gift_itle, giftItle); + } else { + ImgLoader.display(mContext, R.mipmap.icon_live_gift_gift_itle_en, giftItle); + } } private void initDate() { diff --git a/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java index 542558451..060ab069a 100644 --- a/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java +++ b/live/src/main/java/com/yunbao/live/views/GiftAlreadyWallFragment.java @@ -1,5 +1,6 @@ package com.yunbao.live.views; +import android.graphics.Color; import android.os.Bundle; import android.text.TextUtils; import android.view.LayoutInflater; @@ -11,6 +12,7 @@ import android.widget.TextView; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.yunbao.common.CommonAppConfig; import com.yunbao.common.R; import com.yunbao.common.adapter.GiftAlreadyWallAdapter; import com.yunbao.common.bean.GiftAlreadyWallModel; @@ -60,6 +62,11 @@ public class GiftAlreadyWallFragment extends BaseFragment { alreadyWallAdapter = new GiftAlreadyWallAdapter(); alreadyList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false)); alreadyList.setAdapter(alreadyWallAdapter); + if(mLiveUid.equals(CommonAppConfig.getInstance().getUid())){ + instantLight.setBackgroundResource(R.drawable.background_skip_unselect_button); + instantLight.setEnabled(false); + instantLight.setTextColor(Color.parseColor("#F2F2F2")); + } if (isAnchor) { unlitIconHint.setText(getContext().getString(R.string.unlit_icon_hint)); } else { @@ -82,27 +89,52 @@ public class GiftAlreadyWallFragment extends BaseFragment { @Override protected void loadData() { - LiveNetManager.get(getActivity()). - giftAlreadyWall(mLiveUid, toUid, new HttpCallback() { - @Override - public void onSuccess(GiftAlreadyWallModel data) { - if (data.getGiftWall().size() > 0) { - giftWallNoData.setVisibility(View.GONE); - giftWallData.setVisibility(View.VISIBLE); - alreadyWallAdapter.addAllData(data.getGiftWall()); - litIcon.setText(data.getGiftWallLightenNumber()); - giftAll.setText("/" + data.getGiftWallLightenTotal()); - } else { - giftWallNoData.setVisibility(View.VISIBLE); - giftWallData.setVisibility(View.GONE); + if (isAnchor){ + LiveNetManager.get(getActivity()). + giftAlreadyWall(mLiveUid, toUid, new HttpCallback() { + @Override + public void onSuccess(GiftAlreadyWallModel data) { + if (data.getGiftWall().size() > 0) { + giftWallNoData.setVisibility(View.GONE); + giftWallData.setVisibility(View.VISIBLE); + alreadyWallAdapter.addAllData(data.getGiftWall()); + litIcon.setText(data.getGiftWallLightenNumber()); + giftAll.setText("/" + data.getGiftWallLightenTotal()); + } else { + giftWallNoData.setVisibility(View.VISIBLE); + giftWallData.setVisibility(View.GONE); + } } - } - @Override - public void onError(String error) { + @Override + public void onError(String error) { + + } + }); + }else { + LiveNetManager.get(getActivity()). + giftUserSendWall(mLiveUid, toUid, new HttpCallback() { + @Override + public void onSuccess(GiftAlreadyWallModel data) { + if (data.getGiftWall().size() > 0) { + giftWallNoData.setVisibility(View.GONE); + giftWallData.setVisibility(View.VISIBLE); + alreadyWallAdapter.addAllData(data.getGiftWall()); + litIcon.setText(data.getGiftWallLightenNumber()); + giftAll.setText("/" + data.getGiftWallLightenTotal()); + } else { + giftWallNoData.setVisibility(View.VISIBLE); + giftWallData.setVisibility(View.GONE); + } + } + + @Override + public void onError(String error) { + + } + }); + } - } - }); } public static GiftAlreadyWallFragment newInstance(String mStream, String mLiveUid, String toUid, boolean isAnchor) { diff --git a/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java b/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java index a36e27ca8..8d5168ed4 100644 --- a/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java +++ b/live/src/main/java/com/yunbao/live/views/LiveGiftViewHolder.java @@ -178,7 +178,10 @@ public class LiveGiftViewHolder extends AbsViewHolder { mGiftCount.setText(new LiveTextRender().renderGiftCount(mLianCount)); } mLastGiftKey = bean.getKey(); - if (!TextUtils.equals(bean.getNamingLiveuid(), "0") && !TextUtils.equals(bean.getNamingUid(), "0")) { + if (!TextUtils.isEmpty(bean.getNamingLiveuid()) && + !TextUtils.isEmpty(bean.getNamingUid()) && + !TextUtils.equals(bean.getNamingLiveuid(), "0") && + !TextUtils.equals(bean.getNamingUid(), "0")) { root_back.setBackgroundResource(R.drawable.background_naming); findViewById(R.id.naming_icon).setVisibility(View.VISIBLE); } else { diff --git a/live/src/main/res/layout/dialog_new_guard_list.xml b/live/src/main/res/layout/dialog_new_guard_list.xml index 981a39668..75ca884bc 100644 --- a/live/src/main/res/layout/dialog_new_guard_list.xml +++ b/live/src/main/res/layout/dialog_new_guard_list.xml @@ -133,7 +133,7 @@ android:scrollHorizontally="true" android:singleLine="true" android:textColor="#A281FD" - android:textSize="14sp" /> + android:textSize="11sp" /> diff --git a/live/src/main/res/layout/dialog_new_live_user.xml b/live/src/main/res/layout/dialog_new_live_user.xml index 505984def..62162d177 100644 --- a/live/src/main/res/layout/dialog_new_live_user.xml +++ b/live/src/main/res/layout/dialog_new_live_user.xml @@ -71,7 +71,7 @@ android:layout_marginStart="1dp" android:text="@string/user_card_guard" android:textColor="#FFFFFF" - android:textSize="12sp" /> + android:textSize="10sp" />