Merge branch 'master' into dev_6.5.5_语聊

# Conflicts:
#	Share/src/main/java/com/yunbao/share/ui/InvitePopDialog.java
#	Share/src/main/java/com/yunbao/share/ui/SharePopDialog.java
#	app/proguard-rules.pro
#	app/src/main/AndroidManifest.xml
#	build.gradle
#	common/build.gradle
#	common/src/main/java/com/yunbao/common/utils/JavascriptInterfaceUtils.java
#	common/src/main/java/com/yunbao/common/utils/ToastUtil.java
#	common/src/main/java/com/yunbao/common/utils/WordUtil.java
#	config.gradle
This commit is contained in:
2023-11-09 15:20:39 +08:00
485 changed files with 19453 additions and 2421 deletions

View File

@@ -1,5 +1,7 @@
package com.yunbao.live.activity;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
@@ -15,6 +17,7 @@ import android.widget.TextView;
import androidx.fragment.app.DialogFragment;
import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.GsonUtils;
@@ -36,11 +39,13 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.KeyBoardHeightChangeListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.KeyBoardHeightUtil2;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.formatBigNum;
import com.yunbao.live.R;
import com.yunbao.live.bean.GuardUserBean;
@@ -898,7 +903,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
public void onClick(View v) {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=task&a=index&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&tabIndex=1";
WebViewActivity.forward(mContext, url,true);
WebViewActivity.forward(mContext, url, true);
dialog.dismiss();
}
});
@@ -924,7 +929,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (!mIsAnchor) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null && u.getLevel() < mDanMuLevel) {
ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel+""));
ToastUtil.show(String.format(mContext.getString(R.string.live_level_danmu_limit), mDanMuLevel + ""));
return;
}
}
@@ -945,7 +950,20 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
onCoinChanged(coin);
}
String[] data = new String[]{obj.getString("barragetoken")};
SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents,obj.getIntValue("level_fans"));
SocketRyChatUtil.sendDanmuMessage(mLiveUid, contents, obj.getIntValue("level_fans"));
} else if (code==1001) {
DialogUitl.showSimpleDialog(mContext, msg, new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
dialog.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
});
} else {
ToastUtil.show(msg);
}
@@ -961,7 +979,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
if (!mIsAnchor) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null && u.getLevel() < mChatLevel) {
ToastUtil.show(String.format(mContext.getString(R.string.live_level_chat_limit), mChatLevel+""));
ToastUtil.show(String.format(mContext.getString(R.string.live_level_chat_limit), mChatLevel + ""));
return;
}
}
@@ -1271,13 +1289,13 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
//粉絲團粉絲團
//不是粉絲
if (LiveAudienceActivity.is_fans != null && LiveAudienceActivity.is_fans.equals("2")) {
bundle.putString(Constants.URL, CommonAppConfig.HOST + "/h5/live/joinFansClub.html" + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + uid);
bundle.putString(Constants.URL, CommonAppConfig.HOST + "/h5/live/joinFansClub.html" + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + uid+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0));
} else {
bundle.putString(Constants.URL, CommonAppConfig.HOST + "/h5/live/fansClub.html" + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + uid);
bundle.putString(Constants.URL, CommonAppConfig.HOST + "/h5/live/fansClub.html" + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + uid+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0));
}
bundle.putString("liveUid",mLiveUid);
bundle.putString("anchorName",mAncherName);
bundle.putString("mStream",mStream);
bundle.putString("liveUid", mLiveUid);
bundle.putString("anchorName", mAncherName);
bundle.putString("mStream", mStream);
fragment.setArguments(bundle);
fragment.show(getSupportFragmentManager(), "LiveGuardDialogFragment");
}
@@ -1313,7 +1331,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
public void onError(String error) {
Log.e("LiveUserMoreDialog", error);
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
} else {
@@ -1452,7 +1470,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
*/
public void openLuckGiftTip() {
UserBean u = CommonAppConfig.getInstance().getUserBean();
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname=" + u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&anchorUid=" + mLiveUid + "&anchorName=" + mAncherName;
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname=" + u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&anchorUid=" + mLiveUid + "&anchorName=" + mAncherName+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
startActivity(new Intent(this, ZhuangBanActivity.class).putExtra("url", url).putExtra("title", ""));
}

View File

@@ -159,7 +159,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
@Override
public void onPushFailed() {
//推流失败回调
ToastUtil.show(R.string.live_push_failed);
ToastUtil.show(mContext.getString(R.string.live_push_failed));
}
});
mLivePushViewHolder.addToParent();
@@ -370,7 +370,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
*/
private void openMusicWindow() {
if (isLinkMicAnchor() || isLinkMicAnchor()) {
ToastUtil.show(R.string.link_mic_not_bgm);
ToastUtil.show(mContext.getString(R.string.link_mic_not_bgm));
return;
}
LiveMusicDialogFragment fragment = new LiveMusicDialogFragment();
@@ -442,7 +442,7 @@ public class LiveAnchorActivity extends LiveActivity implements LiveFunctionClic
*/
private void openGameWindow() {
if (isLinkMic() || isLinkMicAnchor()) {
ToastUtil.show(R.string.live_link_mic_cannot_game);
ToastUtil.show(mContext.getString(R.string.live_link_mic_cannot_game));
return;
}
}

View File

@@ -37,6 +37,7 @@ import com.lxj.xpopup.core.BasePopupView;
import com.lxj.xpopup.enums.PopupPosition;
import com.lxj.xpopup.interfaces.XPopupCallback;
import com.lzf.easyfloat.EasyFloat;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
@@ -44,6 +45,7 @@ import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.AnchorRecommendItemModel;
import com.yunbao.common.bean.AnchorRecommendModel;
import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.bean.CustomSidebarChildModel;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.LinkMicUserBean;
import com.yunbao.common.bean.LiveBean;
@@ -57,13 +59,19 @@ import com.yunbao.common.dialog.EffectsSettingsDialog;
import com.yunbao.common.dialog.FloatSettingsDialog;
import com.yunbao.common.dialog.LiveChargeDialogFragment;
import com.yunbao.common.dialog.SlideSettingsDialog;
import com.yunbao.common.dialog.SudGameListPopup;
import com.yunbao.common.dialog.YoursystemisolderDialog;
import com.yunbao.common.event.CustomDrawerPopupEvent;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.event.GiftWallIlluminateEvent;
import com.yunbao.common.event.HideShowEvent;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.event.LiveErrorEvent;
import com.yunbao.common.event.LiveOpenSudRoomEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.event.LiveSudGamePopupShowOrHideEvent;
import com.yunbao.common.event.NewRoleCustomDrawerPopupEvent;
import com.yunbao.common.event.ShowHideEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
@@ -75,6 +83,7 @@ import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.http.main.MainNetManager;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.OpenAdManager;
import com.yunbao.common.pay.PayCallback;
import com.yunbao.common.pay.PayPresenter;
import com.yunbao.common.utils.Bus;
@@ -87,13 +96,17 @@ import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.CustomDrawerPopupView;
import com.yunbao.common.views.HintCustomPopup;
import com.yunbao.common.views.LiveSudGamePopup;
import com.yunbao.common.views.floatingview.APPEasyFloat;
import com.yunbao.common.views.weight.VerticalViewPager;
import com.yunbao.live.R;
import com.yunbao.live.adapter.VerticalPagerAdapter;
import com.yunbao.live.bean.ImUserBean;
import com.yunbao.live.bean.LiveChatBean;
import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.live.dialog.LiveFansFragment;
import com.yunbao.live.dialog.LiveGameDialogFragment;
import com.yunbao.live.dialog.LiveGiftPopup;
@@ -107,6 +120,7 @@ import com.yunbao.live.event.LinkMicTxAccEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.http.ImHttpUtil;
import com.yunbao.live.views.LiveRoomPlayViewHolder;
import com.yunbao.live.views.LiveRoomViewHolder;
import com.yunbao.live.views.PortraitLiveManager;
import com.yunbao.share.ui.SharePopDialog;
@@ -117,7 +131,9 @@ import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by cxf on 2018/10/10.
@@ -393,9 +409,11 @@ public class LiveAudienceActivity extends LiveActivity {
mLiveTypeVal = 0;
}
mLiveType = liveType;
String giftId = mLiveBean.getGiftId();
String json = GsonUtils.toJson(data);
mLiveBean = GsonUtils.fromJson(json, LiveBean.class);
mLiveBean.setUserNiceName(data.getUserNicename());
mLiveBean.setGiftId(giftId);
mLiveUid = mLiveBean.getUid();
mStream = mLiveBean.getStream();
mAncherName = mLiveBean.getUserNiceName();
@@ -551,20 +569,59 @@ public class LiveAudienceActivity extends LiveActivity {
@Override
public void onBackPressed() {
try {
manager.onBackPressed();
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
manager.micIngTypeOne(mLiveBean, mLiveType, mLiveTypeVal);
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
manager.micIngTypeTwo(mLiveBean, mLiveType, mLiveTypeVal);
} else {
manager.onRemove(true);
if (manager != null && manager.getsudGameMin()) {
new XPopup.Builder(mContext)
.asCustom(new HintCustomPopup(mContext,
mContext.getString(com.yunbao.common.R.string.dialog_tip),
mContext.getString(com.yunbao.common.R.string.the_live_room))
.setLiveOpenOk(mContext.getString(com.yunbao.common.R.string.confirm))
.setLiveOpenCancel(mContext.getString(com.yunbao.common.R.string.cancel))
.setCallBack(new HintCustomPopup.HintCustomCallBack() {
@Override
public void onSure() {
MobclickAgent.onEvent(mContext, "live_room_close", "退出直播间");
OpenAdManager.getInstance().dismiss();
try {
manager.onBackPressed();
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
manager.micIngTypeOne(mLiveBean, mLiveType, mLiveTypeVal);
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
manager.micIngTypeTwo(mLiveBean, mLiveType, mLiveTypeVal);
} else {
manager.onRemove(true);
}
Bus.get().post(new HideShowEvent().setClose(true));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onCancel() {
}
})).show();
} else {
MobclickAgent.onEvent(mContext, "live_room_close", "退出直播间");
OpenAdManager.getInstance().dismiss();
try {
manager.onBackPressed();
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
manager.micIngTypeOne(mLiveBean, mLiveType, mLiveTypeVal);
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
manager.micIngTypeTwo(mLiveBean, mLiveType, mLiveTypeVal);
} else {
manager.onRemove(true);
}
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void end() {
@@ -724,25 +781,36 @@ public class LiveAudienceActivity extends LiveActivity {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveRoomChangeEvent(LiveRoomChangeEvent e) {
if (manager != null && manager.getsudGameMin()) {
ToastUtil.show(WordUtil.isNewZh() ? "小遊戲進行中,無法切換直播間" : "Game in progress, unable to switch to live room");
} else {
LiveBean liveBean = e.getLiveBean();
if (TextUtils.equals(mLiveUid, liveBean.getUid())) {
ToastUtil.show(mContext.getString(R.string.current_live_room));
} else {
if (e.isLiveEnd()) {
manager.removeLiveEnd();
}
if (LiveRoomViewHolder.mHandler != null) {
LiveRoomViewHolder.mHandler.removeCallbacksAndMessages(null);
}
if (liveBean != null) {
LiveHttpUtil.cancel(LiveHttpConsts.CHECK_LIVE);
LiveHttpUtil.cancel(LiveHttpConsts.ENTER_ROOM);
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
manager.onRemove(false);
mLiveType = e.getLiveType();
mLiveTypeVal = e.getLiveTypeVal();
mLiveBean = liveBean;
mLiveUid = liveBean.getUid();
mStream = liveBean.getStream();
mAncherName = liveBean.getUserNiceName();
mAncherIcon = liveBean.getAvatar();
manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK);
}
}
}
LiveBean liveBean = e.getLiveBean();
if (e.isLiveEnd()) {
manager.removeLiveEnd();
}
if (liveBean != null) {
LiveHttpUtil.cancel(LiveHttpConsts.CHECK_LIVE);
LiveHttpUtil.cancel(LiveHttpConsts.ENTER_ROOM);
LiveHttpUtil.cancel(LiveHttpConsts.ROOM_CHARGE);
manager.onRemove(false);
mLiveType = e.getLiveType();
mLiveTypeVal = e.getLiveTypeVal();
mLiveBean = liveBean;
mLiveUid = liveBean.getUid();
mStream = liveBean.getStream();
mAncherName = liveBean.getUserNiceName();
mAncherIcon = liveBean.getAvatar();
manager.onAdd(liveBean, mLiveType, mLiveTypeVal, mLiveSDK);
}
}
@@ -755,10 +823,15 @@ public class LiveAudienceActivity extends LiveActivity {
if (manager != null && !StringUtil.isEmpty(is_fans)) {
if (is_fans.equals("-2")) {
manager.setAttention(0);
mLiveRoomViewHolder.setFansGroup("0");
is_fans = "2";
}
}
GiftCacheUtil.getInstance().restart();
if (manager.isEnterRoom()) {
new Handler(Looper.getMainLooper()).postDelayed(() -> OpenAdManager.getInstance().show(OpenAdManager.TYPE_LIVE,
LiveGuardInfo.isGuard(mLiveGuardInfo)), 400);
}
}
@Override
@@ -888,7 +961,7 @@ public class LiveAudienceActivity extends LiveActivity {
RouteUtil.forwardEditProfileActivity();
} else {
if (!screen) {
ZhuangBanActivity.forward(mContext, htmlUrl, false,1);
ZhuangBanActivity.forward(mContext, htmlUrl, false, 1);
} else {
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl);
@@ -966,6 +1039,23 @@ public class LiveAudienceActivity extends LiveActivity {
.setBean(mLiveBean)
.setType(LiveAudienceEvent.LiveAudienceType.FONT_SIZE));
}
@Override
public void interaction(long interactionID, List<CustomSidebarChildModel> child) {
if (manager != null && manager.getsudGameMin()) {
ToastUtil.show(WordUtil.isNewZh() ? "您已在游戏房间中" : "You are already in the game room");
} else {
new XPopup.Builder(mContext)
.enableDrag(false)
// .dismissOnTouchOutside(false)
// .dismissOnBackPressed(false)
.moveUpToKeyboard(false)
.asCustom(new SudGameListPopup(mContext, interactionID, child, mLiveUid))
.show();
}
}
});
new XPopup.Builder(mContext)
.hasShadowBg(false)
@@ -1061,6 +1151,7 @@ public class LiveAudienceActivity extends LiveActivity {
fragment.setActivityId(6);
fragment.setRoomId(mLiveUid);
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment");
break;
case FAN_CLUB:
@@ -1069,14 +1160,14 @@ public class LiveAudienceActivity extends LiveActivity {
//不是粉絲
if (LiveAudienceActivity.is_fans == null || "2".equals(LiveAudienceActivity.is_fans)) {
bundle.putString(Constants.URL,
CommonAppConfig.HOST + "/h5/live/joinFansClub.html" +
(CommonAppConfig.HOST + "/h5/live/joinFansClub.html" +
"?uid=" + userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid);
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid) + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0));
} else {
bundle.putString(Constants.URL,
CommonAppConfig.HOST + "/h5/live/fansClub.html" +
(CommonAppConfig.HOST + "/h5/live/fansClub.html" +
"?uid=" + userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid);
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid) + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0));
}
bundle.putString("liveUid", mLiveUid);
bundle.putString("anchorName", mAncherName);
@@ -1094,8 +1185,8 @@ public class LiveAudienceActivity extends LiveActivity {
case LIVE_WKS://周星榜
String weeklyStarUrl = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid="
+ userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false,1);
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false, 1);
break;
case NOBLE:
Constants.isTitle = true;
@@ -1104,8 +1195,8 @@ public class LiveAudienceActivity extends LiveActivity {
+ "&token=" + userInfo.getToken()
+ "&anchorUid=" + mLiveBean.getUid()
+ "&ancherName=" + mLiveBean.getUserNiceName()
+ "&uid=" + userInfo.getId();
ZhuangBanActivity.forward(mContext, nobleUrl, false,1);
+ "&uid=" + userInfo.getId() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
ZhuangBanActivity.forward(mContext, nobleUrl, false, 1);
break;
case LIAN_MAI:
if (event.getMicIng() == 1) {
@@ -1133,7 +1224,7 @@ public class LiveAudienceActivity extends LiveActivity {
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveUserMoreDialogFragment");
LiveMicUserDialogFragment.activity = ((LiveAudienceActivity) mContext);
} else {
ToastUtil.show(R.string.no_mic_opn);
ToastUtil.show(mContext.getString(R.string.no_mic_opn));
}
}
});
@@ -1181,7 +1272,7 @@ public class LiveAudienceActivity extends LiveActivity {
case ACTIVITY_CENTER://活动中心
String url = CommonAppConfig.HOST + "/h5/live/hallOfFame/index.html?g=Appapi&m=Turntable&a=tricky";
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
Log.i("tag", url);
Intent intent = new Intent(mContext, ZhuangBanActivity.class);
intent.putExtra("url", url);
@@ -1206,7 +1297,7 @@ public class LiveAudienceActivity extends LiveActivity {
url += "?anchorUid=" + mLiveUid
+ "&stream=" + mStream
+ "&uid=" + CommonAppConfig.getInstance().getUid()
+ "&token=" + CommonAppConfig.getInstance().getToken();
+ "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
LiveHDDialogFragment liveHDDialogFragment = new LiveHDDialogFragment();
bundle.putString("url", url);
bundle.putInt("show_type", 0);
@@ -1274,13 +1365,13 @@ public class LiveAudienceActivity extends LiveActivity {
manager.lucky100(event.getMsgModel());
break;
case LINK_MIC:
if (!StringUtil.isEmpty(((LinkMicUserBean) event.getObject()).getUid())) {
mMicQueueList.put(((LinkMicUserBean) event.getObject()).getUid(), (LinkMicUserBean) event.getObject());
if (!StringUtil.isEmpty(((LinkMicUserBean) event.getObject()).getId())) {
mMicQueueList.put(((LinkMicUserBean) event.getObject()).getId(), (LinkMicUserBean) event.getObject());
}
if (micListener != null) {
micListener.updateMicList(mMicQueueList);
DialogUitl.showSimpleDialog(mContext,
String.format(mContext.getString(R.string.live_mic_user_apply), ((LinkMicUserBean) event.getObject()).getUname()),
String.format(mContext.getString(R.string.live_mic_user_apply), ((LinkMicUserBean) event.getObject()).getUserNicename()),
new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
@@ -1292,7 +1383,7 @@ public class LiveAudienceActivity extends LiveActivity {
}
break;
case LINK_MIC_CANCEL:
mMicQueueList.remove(((LinkMicUserBean) event.getObject()).getUid());
mMicQueueList.remove(((LinkMicUserBean) event.getObject()).getId());
if (micListener != null) {
micListener.updateMicList(mMicQueueList);
}
@@ -1301,8 +1392,8 @@ public class LiveAudienceActivity extends LiveActivity {
List<LinkMicUserBean> list = (List<LinkMicUserBean>) event.getObject();
mMicQueueList.clear();
for (LinkMicUserBean bean : list) {
if (!StringUtil.isEmpty(bean.getUid())) {
mMicQueueList.put(bean.getUid(), bean);
if (!StringUtil.isEmpty(bean.getId())) {
mMicQueueList.put(bean.getId(), bean);
}
}
if (micListener != null) {
@@ -1457,6 +1548,11 @@ public class LiveAudienceActivity extends LiveActivity {
manager.showGiftWall(event.getUid(), event.isVoicePress(), event.getUname(), event.getAvatar());
}
break;
case SUD_GAME_CREATE_ROOM:
if (manager != null) {
manager.setSudName(event.getAvatar(), event.getCreateSudRoomModel());
}
break;
}
@@ -1535,10 +1631,12 @@ public class LiveAudienceActivity extends LiveActivity {
private List<AnchorRecommendItemModel> list = new ArrayList<>();
private void getDrawer() {
Map<String, Object> map = new HashMap<>();
map.put("num", "9");
map.put("live_recommend", "sidebar");
//推荐位
MainNetManager.get(mContext)
.anchorRecommend("9", new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() {
.anchorRecommend(map, new com.yunbao.common.http.base.HttpCallback<AnchorRecommendModel>() {
@Override
public void onSuccess(AnchorRecommendModel anchorRecommendModel) {
list.clear();
@@ -1551,7 +1649,7 @@ public class LiveAudienceActivity extends LiveActivity {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh() ? "抱歉!出錯了!" : "i \\'m sorry! An error occurred");
}
});
@@ -1605,6 +1703,130 @@ public class LiveAudienceActivity extends LiveActivity {
});
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onShowHideEvent(ShowHideEvent event) {
if (manager != null) {
manager.onShowHideEvent();
verticalViewPager.setEnableScroll(false);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onHideShow(HideShowEvent event) {
verticalViewPager.setEnableScroll(true);
}
private LiveSudGamePopup liveSudGamePopupXPopup = null;
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveSudGamePopupShowOrHideEvent(LiveSudGamePopupShowOrHideEvent event) {
switch (event.getType()) {
case 0:
if (liveSudGamePopupXPopup == null) {
liveSudGamePopupXPopup = new LiveSudGamePopup(mContext, event.getCreateSudRoomModel());
new XPopup.Builder(mContext)
.enableDrag(false)
.dismissOnTouchOutside(false)
.dismissOnBackPressed(false)
.asCustom(liveSudGamePopupXPopup).show();
}else {
if (liveSudGamePopupXPopup != null) {
liveSudGamePopupXPopup.dialog.show();
}
}
break;
case 1:
if (liveSudGamePopupXPopup != null) {
liveSudGamePopupXPopup.dialog.hide();
}
break;
case 2:
if (liveSudGamePopupXPopup != null) {
liveSudGamePopupXPopup.BusGetOff();
liveSudGamePopupXPopup.dialog.dismiss();
verticalViewPager.setEnableScroll(true);
liveSudGamePopupXPopup = null;
}
break;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveOpenSudRoomEvent(LiveOpenSudRoomEvent liveOpenSudRoomEvent) {
if (manager != null) {
manager.setCreateSudRoomModel(liveOpenSudRoomEvent.getCreateSudRoomModel());
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onNewRoleCustomDrawerPopupEvent(NewRoleCustomDrawerPopupEvent event) {
//是否关闭弹窗
if (!TextUtils.isEmpty(event.getHtmlUrl())) {
if (TextUtils.equals(event.getHtmlUrl(), "recharge")) {
RouteUtil.forwardMyCoin(mContext);
} else if (TextUtils.equals(event.getHtmlUrl(), "to_me_information")) {
RouteUtil.forwardEditProfileActivity();
} else {
if (!event.isScreen()) {
ZhuangBanActivity.forward(mContext, event.getHtmlUrl(), false, 1);
} else {
Bundle bundle = new Bundle();
bundle.putString("url", event.getHtmlUrl());
LiveHDDialogFragment fragment = new LiveHDDialogFragment();
fragment.setArguments(bundle);
fragment.show(getSupportFragmentManager(), "LiveHDDialogFragment");
}
}
}
if (event.getActivityId() != 0) {
LiveGameDialogFragment fragment = new LiveGameDialogFragment();
fragment.setActivityId(event.getActivityId());
fragment.setRoomId(mLiveUid);
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGameDialogFragment");
}
if (!TextUtils.isEmpty(event.getRightsInterests())) {
//跳转贵族
if (TextUtils.equals(event.getRightsInterests(), getString(com.yunbao.common.R.string.noble))) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.NOBLE));
//跳转守护
} else if (TextUtils.equals(event.getRightsInterests(), getString(com.yunbao.common.R.string.guard_guard))) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.GUARD));
//跳转粉丝团
} else if (TextUtils.equals(event.getRightsInterests(), getString(com.yunbao.common.R.string.fan_club))) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.FAN_CLUB));
}
}
//互动游戏
if (event.isInteraction()) {
// callBack.interaction(event.getInteractionID());
if (manager != null && manager.getsudGameMin()) {
ToastUtil.show(WordUtil.isNewZh() ? "您已在游戏房间中" : "You are already in the game room");
} else {
new XPopup.Builder(mContext)
.enableDrag(false)
// .dismissOnTouchOutside(false)
// .dismissOnBackPressed(false)
.moveUpToKeyboard(false)
.asCustom(new SudGameListPopup(mContext, event.getInteractionID(), event.getChild(), mLiveUid))
.show();
}
}
}
@SuppressLint("SetTextI18n")
public void showMsgRed(int num) {
if (manager == null || manager.mLiveAudienceViewHolder == null || manager.mLiveAudienceViewHolder.mRedPoint == null) {
@@ -1626,7 +1848,12 @@ public class LiveAudienceActivity extends LiveActivity {
if (isShow) {
manager.mLiveAudienceViewHolder.mRedPointPrivilege.setVisibility(View.VISIBLE);
} else {
manager.mLiveAudienceViewHolder.mRedPointPrivilege.setVisibility(View.GONE);
if (IMLoginManager.get(mContext).getRedPoint()) {
manager.mLiveAudienceViewHolder.mRedPointPrivilege.setVisibility(View.VISIBLE);
} else {
manager.mLiveAudienceViewHolder.mRedPointPrivilege.setVisibility(View.GONE);
}
}
}

View File

@@ -104,7 +104,7 @@ public class LiveReportActivity extends AbsActivity implements LiveReportAdapter
// return;
// }
// if (bean == null) {
// ToastUtil.show(R.string.video_report_tip_3);
// ToastUtil.show(mContext.getString(R.string.video_report_tip_3);
// return;
// }
// String content = bean.getName();
@@ -120,7 +120,7 @@ public class LiveReportActivity extends AbsActivity implements LiveReportAdapter
mToUid = "";
}
if (bean == null) {
ToastUtil.show(R.string.video_report_tip_3);
ToastUtil.show(mContext.getString(R.string.video_report_tip_3));
return;
}
String content = "";
@@ -137,7 +137,7 @@ public class LiveReportActivity extends AbsActivity implements LiveReportAdapter
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
ToastUtil.show(R.string.video_report_tip_4);
ToastUtil.show(mContext.getString(R.string.video_report_tip_4));
onBackPressed();
} else {
ToastUtil.show(msg);
@@ -149,7 +149,7 @@ public class LiveReportActivity extends AbsActivity implements LiveReportAdapter
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
ToastUtil.show(R.string.video_report_tip_4);
ToastUtil.show(mContext.getString(R.string.video_report_tip_4));
onBackPressed();
} else {
ToastUtil.show(msg);

View File

@@ -53,13 +53,18 @@ import com.yunbao.common.dialog.NotCancelableDialog;
import com.yunbao.common.event.GiftWallIlluminateEvent;
import com.yunbao.common.event.LoginInvalidEvent;
import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.event.ShowHideEvent;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.IMRTCManager;
import com.yunbao.common.manager.MicUserManager;
import com.yunbao.common.manager.MicedUserManager;
import com.yunbao.common.manager.RandomPkManager;
import com.yunbao.common.utils.BitmapUtil;
import com.yunbao.common.utils.Bus;
@@ -70,6 +75,7 @@ import com.yunbao.common.utils.LogUtil;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.LiveNewWishListPopup;
import com.yunbao.common.views.LiveRobotSettingCustomPopup;
import com.yunbao.faceunity.FaceManager;
@@ -86,8 +92,6 @@ import com.yunbao.live.dialog.LiveWishListDialogFragment4Audience;
import com.yunbao.live.dialog.RandomPkDialogFragment;
import com.yunbao.live.event.LinkMicTxMixStreamEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.interfaces.LiveFunctionClickListener;
import com.yunbao.live.interfaces.LivePushListener;
import com.yunbao.live.music.LiveMusicDialogFragment;
@@ -287,7 +291,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
@Override
public void onPushFailed() {
//推流失败回调
ToastUtil.show(R.string.live_push_failed);
ToastUtil.show(mContext.getString(R.string.live_push_failed));
}
});
@@ -378,7 +382,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
if (isDRPK != 1) {
openMicWindow(1);
} else {
ToastUtil.show("您已在PK中");
ToastUtil.show(WordUtil.isNewZh() ? "您已在PK中" : "You are already in the PK");
}
break;
case Constants.LIVE_FUNC_DR://多人PK
@@ -459,7 +463,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
}
});
} else {
ToastUtil.show("您已在PK中");
ToastUtil.show(WordUtil.isNewZh() ? "您已在PK中" : "You are already in the PK");
}
break;
case Constants.LIVE_FUNC_BEAUTY://美颜
@@ -488,14 +492,14 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
break;
case Constants.LIVE_FUNC_WKS:
String url = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, url, false,0);
ZhuangBanActivity.forward(mContext, url, false, 0);
break;
case Constants.LIVE_FUNC_LINK_MIC://连麦
if (isDRPK != 1) {
//openLinkMicAnchorWindow(false);
openFreePkWindow();
} else {
ToastUtil.show("您已在PK中");
ToastUtil.show(WordUtil.isNewZh() ? "您已在PK中" : "You are already in the PK");
}
break;
case Constants.LIVE_FUNC_WISHLIST://心愿单
@@ -516,7 +520,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
if (isDRPK != 1) {
openRandomPkWindow();
} else {
ToastUtil.show("您已在PK中");
ToastUtil.show(WordUtil.isNewZh() ? "您已在PK中" : "You are already in the PK");
}
break;
default:
@@ -637,7 +641,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
*/
private void openMusicWindow() {
if (isLinkMicAnchor() || isLinkMicAnchor()) {
ToastUtil.show(R.string.link_mic_not_bgm);
ToastUtil.show(mContext.getString(R.string.link_mic_not_bgm));
return;
}
LiveMusicDialogFragment fragment = new LiveMusicDialogFragment();
@@ -735,7 +739,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
*/
private void openGameWindow() {
if (isLinkMic() || isLinkMicAnchor()) {
ToastUtil.show(R.string.live_link_mic_cannot_game);
ToastUtil.show(mContext.getString(R.string.live_link_mic_cannot_game));
return;
}
}
@@ -794,7 +798,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
mLiveRoomViewHolder.startAnchorLight();
//初始化女神说
mLiveRoomViewHolder.initAnchorSay();
mLiveRoomViewHolder.setGiftWall(obj.getString("gift_wall_lighten_number"),obj.getString("gift_wall_lighten_total"));
mLiveRoomViewHolder.setGiftWall(obj.getString("gift_wall_lighten_number"), obj.getString("gift_wall_lighten_total"));
}
if (mLiveAnchorViewHolder == null) {
mLiveAnchorViewHolder = new LiveRyAnchorViewHolder(mContext, mContainer);
@@ -859,6 +863,8 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
mGameList = JSON.parseArray(obj.getString("game_switch"), Integer.class);
}
getAiRobotStatus();
MicedUserManager.get().removeAllMicUserList();
MicUserManager.get().removeAllMicUserList();
}
/**
@@ -868,6 +874,9 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
DialogUitl.showSimpleDialog(mContext, mContext.getString(R.string.live_end_live), new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
MicStatusManager.getInstance().closeMic(mContext);
MicedUserManager.get().removeAllMicUserList();
MicUserManager.get().removeAllMicUserList();
PKing = false;
isDRPK = 0;
endLive();
@@ -1244,7 +1253,11 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
});
//todo 安卓端状态码说明文档https://docs.rongcloud.cn/v4/views/rtc/call/code/android.html
Log.e("ry", rtcErrorCode + "aaaaaa" + CommonAppConfig.getInstance().getUid() + "VDSSSS" + pkUid);
ToastUtil.show("邀请 " + pkUid + " 发送失败 " + rtcErrorCode);
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + pkUid + " 发送失败 " + rtcErrorCode);
} else {
ToastUtil.show("invite " + pkUid + " failed:" + rtcErrorCode);
}
}
});
@@ -1293,7 +1306,11 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
@Override
public void onSuccess() {
if (!extra.equals(SOCKET_LIVE_DRPK_RANDOM)) {
ToastUtil.show("邀请 " + pkUid + " 发送成功");
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + pkUid + " 发送成功");
} else {
ToastUtil.show("invite " + pkUid + " successful");
}
}
runOnUiThread(new Runnable() {
@Override
@@ -1481,8 +1498,8 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
}
//插入盲盒礼物消息
bean.getLiveChatBean().setType(LiveChatBean.BLIND_BOX);
bean.getLiveChatBean().setContent(event.getGiftMsg());
bean.getLiveChatBean().setGiftName(event.getGiftname());
bean.getLiveChatBean().setContent(WordUtil.isNewZh() ? event.getGiftMsg() : event.getGiftMsgen());
bean.getLiveChatBean().setGiftName(WordUtil.isNewZh() ? event.getGiftname() : event.getGiftname_en());
bean.getLiveChatBean().setUserNiceName(event.getUserNiceName());
}
@@ -1539,7 +1556,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
String weeklyStarUrl = CommonAppConfig.HOST + "/h5/activity/weekStar/index.html?&uid="
+ userInfo.getId() +
"&token=" + userInfo.getToken() + "&anchorUid=" + mLiveUid;
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false,0);
ZhuangBanActivity.forward(mContext, weeklyStarUrl, false, 0);
break;
case WISH_LIST:
LiveWishListDialogFragment4Audience fragment4Audience = new LiveWishListDialogFragment4Audience();
@@ -1555,13 +1572,13 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
}
break;
case LINK_MIC:
if (!StringUtil.isEmpty(((LinkMicUserBean) event.getObject()).getUid())) {
mMicQueueList.put(((LinkMicUserBean) event.getObject()).getUid(), (LinkMicUserBean) event.getObject());
if (!StringUtil.isEmpty(((LinkMicUserBean) event.getObject()).getId())) {
mMicQueueList.put(((LinkMicUserBean) event.getObject()).getId(), (LinkMicUserBean) event.getObject());
}
if (micListener != null) {
micListener.updateMicList(mMicQueueList);
DialogUitl.showSimpleDialog(mContext,
String.format(mContext.getString(R.string.live_mic_user_apply), ((LinkMicUserBean) event.getObject()).getUname()),
String.format(mContext.getString(R.string.live_mic_user_apply), ((LinkMicUserBean) event.getObject()).getUserNicename()),
new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
@@ -1573,7 +1590,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
}
break;
case LINK_MIC_CANCEL:
mMicQueueList.remove(((LinkMicUserBean) event.getObject()).getUid());
mMicQueueList.remove(((LinkMicUserBean) event.getObject()).getId());
if (micListener != null) {
micListener.updateMicList(mMicQueueList);
}
@@ -1582,8 +1599,8 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
List<LinkMicUserBean> list = (List<LinkMicUserBean>) event.getObject();
mMicQueueList.clear();
for (LinkMicUserBean bean : list) {
if (!StringUtil.isEmpty(bean.getUid())) {
mMicQueueList.put(bean.getUid(), bean);
if (!StringUtil.isEmpty(bean.getId())) {
mMicQueueList.put(bean.getId(), bean);
}
}
if (micListener != null) {
@@ -1612,6 +1629,10 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
if (mLiveRyLinkMicPkPresenter != null) {
mLiveRyLinkMicPkPresenter.leaveDRRoom();
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.seisShowGif(true);
mLiveRoomViewHolder.endDRGif();
}
// if (mLiveRoomViewHolder != null) {
// mLiveRoomViewHolder.hotAddVisibility(false);
// }
@@ -1620,6 +1641,9 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
if (mLiveRyLinkMicPkPresenter != null) {
mLiveRyLinkMicPkPresenter.upDataPkScore(event.getPkScores(), event.getUid(), event.getTime());
}
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.seisShowGif(true);
}
// if (mLiveRoomViewHolder != null) {
// mLiveRoomViewHolder.hotAddVisibility(true);
// }
@@ -1660,7 +1684,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
break;
case GIFT_WALL:
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.showGiftWall(event.getUid(),event.isVoicePress(),event.getUname(),event.getAvatar());
mLiveRoomViewHolder.showGiftWall(event.getUid(), event.isVoicePress(), event.getUname(), event.getAvatar());
}
break;
case INPUT_DIALOG:
@@ -1681,12 +1705,22 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
break;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void GiftWallIlluminateEvent(GiftWallIlluminateEvent event) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.setGiftWall(String.valueOf(event.getNewNumber()), String.valueOf(event.getMaxNumber()));
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onShowHideEvent(ShowHideEvent event) {
if (mLiveRoomViewHolder != null) {
mLiveRoomViewHolder.onShowHideEvent();
}
}
/**
* 检查指定直播间连麦人数
*
@@ -1764,7 +1798,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh() ? "抱歉!出錯了!" : "i \\'m sorry! An error occurred");
}
});
}

View File

@@ -29,6 +29,7 @@ import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.common.bean.LiveRoomTypeBean;
import com.yunbao.live.dialog.LiveBeautyDialogFragment;
@@ -208,7 +209,7 @@ public class LiveTRTCAnchorActivity extends TRTCBaseActivity {
*/
private void createRoom() {
if (mLiveClassID == 0) {
ToastUtil.show(R.string.live_choose_live_class);
ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
return;
}
String title = mEditTitle.getText().toString().trim();
@@ -343,7 +344,7 @@ public class LiveTRTCAnchorActivity extends TRTCBaseActivity {
@Override
public void onConfirmClick(Dialog dialog, String content) {
if (TextUtils.isEmpty(content)) {
ToastUtil.show(R.string.live_set_pwd_empty);
ToastUtil.show(getString(R.string.live_set_pwd_empty));
} else {
mLiveType = bean.getId();
mLiveTypeTextView.setText(bean.getName());

View File

@@ -211,7 +211,7 @@ public class MedalQuestionWebViewActivity extends AbsActivity {
public static void forward(Context context, String url, boolean addArgs) {
if (addArgs) {
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
}
Intent intent = new Intent(context, MedalQuestionWebViewActivity.class);
intent.putExtra(Constants.URL, url);

View File

@@ -4,6 +4,7 @@ import android.Manifest;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -164,15 +165,22 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
//intoIndex 1=调用相机,2=照片选取,3=视频选取
public void jumpPic(int intoIndex) {
String permission1=Manifest.permission.READ_EXTERNAL_STORAGE;
String permission2= Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permission1=Manifest.permission.READ_MEDIA_IMAGES;
permission2=Manifest.permission.READ_MEDIA_VIDEO;
}
//选择图片
int isPermission1 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int isPermission1 = ContextCompat.checkSelfPermission(mContext, permission1);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, permission2);
if (isPermission1 == PackageManager.PERMISSION_GRANTED && isPermission2 == PackageManager.PERMISSION_GRANTED) {
startActivity(intoIndex);
} else {
//申请权限
ActivityCompat.requestPermissions(mContext, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
ActivityCompat.requestPermissions(mContext, new String[]{permission1,
permission2}, PERMISSION_REQUEST_CODE);
}
}

View File

@@ -51,6 +51,7 @@ import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.share.ui.InvitePopDialog;
@@ -297,7 +298,7 @@ public class ZhuangBanActivity extends AbsActivity {
public static void forward(Context context, String url, boolean addArgs, int isLive) {
if (addArgs) {
url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
url += "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
}
Intent intent = new Intent(context, ZhuangBanActivity.class);
Log.i("tag", url);

View File

@@ -1,6 +1,7 @@
package com.yunbao.live.adapter;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
@@ -20,20 +21,20 @@ import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.API;
import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.manager.MicUserManager;
import com.yunbao.common.manager.MicedUserManager;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.common.bean.MicUserBean;
import com.yunbao.live.interfaces.LiveFunctionClickListener;
import com.yunbao.live.socket.SocketSendBean;
import java.net.MalformedURLException;
@@ -49,7 +50,7 @@ import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.Message;
import io.rong.message.TextMessage;
public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
public class AnchorUserMicInfoAdapter extends RefreshAdapter<UserBean> {
public static final int TYPE_MIC_LIST = 1;//连麦列表
public static final int TYPE_MIC_REQUEST = 2;//请求连麦
public static final int TYPE_MIC_INVITE = 3;//邀请连麦
@@ -116,40 +117,42 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
mBtn = itemView.findViewById(R.id.mic_btn);
mClose = itemView.findViewById(R.id.mic_exit);
mBtn.setOnClickListener(v -> {
if (v.getTag() != null) {
MicUserBean tag = (MicUserBean) v.getTag();
LiveRyAnchorActivity.checkMicUserLength(mLiveUid, new LiveFunctionClickListener() {
@Override
public void onClick(int length) {
//只允许最多3人连麦加主播4人
if (length <= 4) {
if (tag.getType() == TYPE_MIC_REQUEST) {
applyMic(tag, 4, createSocketSendBean());
ToastUtil.show(mContext.getString(R.string.live_mic_request));
} else if (tag.getType() == TYPE_MIC_INVITE) {
SocketSendBean bean = createSocketSendBean().param("targetId", tag.getId());
applyMic(tag, 1, bean);
ToastUtil.show(mContext.getString(R.string.live_mic_invite));
if (MicedUserManager.get().getMicUserList().size() < 3) {
if (v.getTag() != null) {
UserBean tag = (UserBean) v.getTag();
if (tag.getTypeMic() == TYPE_MIC_REQUEST) {
SocketSendBean bean = createSocketSendBean().param("targetId", tag.getId());
applyMic(tag, 1, bean);
ToastUtil.show(mContext.getString(R.string.live_mic_invite));
} else if (tag.getTypeMic() == TYPE_MIC_INVITE) {
applyMic(tag, 4, createSocketSendBean());
ToastUtil.show(mContext.getString(R.string.live_mic_request));
for (int i = 0; i < mList.size(); i++) {
if (TextUtils.equals(mList.get(i).getId(), tag.getId())) {
mList.get(i).setRequest(true);
notifyItemChanged(i);
}
} else {
ToastUtil.show(mContext.getString(R.string.live_mic_max));
}
}
});
}
}
}else {
ToastUtil.show(mContext.getString(R.string.live_mic_max));
}
});
mClose.setOnClickListener(v -> {
if (v.getTag() != null) {
API.get().createPDLiveApi(true)
.killDrLm(((MicUserBean) v.getTag()).getId(), mLiveUid)
API.get().createPDLiveApi(false)
.killDrLm(((UserBean) v.getTag()).getId(), mLiveUid)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(new Consumer<ResponseModel<BaseModel>>() {
@Override
public void accept(ResponseModel<BaseModel> stringResponseModel) throws Exception {
applyMic((MicUserBean) v.getTag(), 8, createSocketSendBean());
applyMic((UserBean) v.getTag(), 8, createSocketSendBean());
ToastUtil.show(mContext.getString(R.string.live_mic_user_down));
refreshView.initData();
}
}, Throwable::printStackTrace).isDisposed();
@@ -167,9 +170,10 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
/**
* 发送IM消息
*
* @param action 4为同意请求1为邀请其余见 {@link com.yunbao.live.socket.SocketRyClient} Constants.LIAN_MAI解析
*/
void applyMic(MicUserBean bean, int action, SocketSendBean msg) {
void applyMic(UserBean bean, int action, SocketSendBean msg) {
msg.param("action", action);
msg.create();
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
@@ -184,9 +188,17 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
@Override
public void onSuccess(io.rong.imlib.model.Message message) {
Log.e("ry", "发送成功");
refreshView.initData();
IMCenter.getInstance().deleteRemoteMessages(Conversation.ConversationType.PRIVATE, message.getTargetId(), new Message[]{message}, null);
IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, message.getTargetId(), null);
if (bean.getTypeMic() == TYPE_MIC_REQUEST) {
MicUserManager.get().removeMiscUser(bean.getId());
}
if (bean.getTypeMic() == TYPE_MIC_LIST && action == 8) {
MicedUserManager.get().removeMiscUser(bean.getId());
}
refreshView.initData();
}
@Override
@@ -197,9 +209,9 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
});
}
void setData(final MicUserBean bean, int position) {
void setData(final UserBean bean, int position) {
itemView.setOnClickListener(new View.OnClickListener() {
mAvatar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
((LiveActivity) mContext).showUserDialog(bean.getId());
@@ -208,7 +220,7 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
});
mClose.setTag(bean);
mBtn.setTag(bean);
switch (bean.getType()) {
switch (bean.getTypeMic()) {
case TYPE_MIC_LIST:
mClose.setVisibility(View.VISIBLE);
mBtn.setVisibility(View.GONE);
@@ -219,23 +231,46 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
mBtn.setVisibility(View.VISIBLE);
break;
}
if (bean.getType() == TYPE_MIC_REQUEST) {
if (bean.getTypeMic() == TYPE_MIC_REQUEST) {
mBtn.setText("同意");
if (!WordUtil.isNewZh()) {
mBtn.setText("agree");
}
mBtn.setBackgroundResource(R.drawable.bg_anchor_mic_info_btn_ok);
} else if (bean.getType() == TYPE_MIC_INVITE) {
mBtn.setText("邀请");
} else if (bean.getTypeMic() == TYPE_MIC_INVITE) {
mBtn.setBackgroundResource(R.drawable.bg_anchor_mic_info_btn_invite);
if (bean.isMicList()) {
mBtn.setEnabled(false);
mBtn.setClickable(false);
mBtn.setSelected(false);
mBtn.setText(WordUtil.isNewZh() ? "連麥中" : "Trung");
} else {
mBtn.setEnabled(true);
mBtn.setClickable(true);
mBtn.setSelected(true);
// if (bean.isRequest()){
// mBtn.setText(WordUtil.isNewZh() ? "已邀请" : "Invited");
// }else {
mBtn.setText(WordUtil.isNewZh() ? "邀请" : "invite");
// }
}
}
ImgLoader.display(mContext, bean.getAvatar(), mAvatar);
if (bean.getDress_avatar() != null) {
if (bean.getDress_avatar().contains("svga")) {
gift_svga.setImageDrawable(null);
if (bean.getDress() != null) {
if (bean.getDress().getAvatar_frame().contains("svga")) {
try {
new SVGAParser(mContext).parse(new URL(bean.getDress_avatar()), new SVGAParser.ParseCompletion() {
new SVGAParser(mContext).parse(new URL(bean.getDress().getAvatar_frame()), new SVGAParser.ParseCompletion() {
@Override
public void onComplete(SVGAVideoEntity videoItem) {
SVGADrawable drawable = new SVGADrawable(videoItem);
gift_svga.setImageDrawable(drawable);
SVGAViewUtils.playEndClear(gift_svga);
SVGAViewUtils.playEndClear(gift_svga, false);
}
@Override
@@ -246,10 +281,9 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
e.printStackTrace();
}
} else {
ImgLoader.display(mContext, bean.getDress_avatar(), gift_svga);
ImgLoader.display2(mContext, bean.getDress().getAvatar_frame(), gift_svga);
}
}
mName.setText(bean.getUserNiceName());
mSex.setImageResource(CommonIconUtil.getSexIcon(bean.getSex()));
@@ -257,8 +291,7 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<MicUserBean> {
if (levelBean != null) {
ImgLoader.display(mContext, levelBean.getThumb(), mLevel);
}
}
}
}

View File

@@ -51,6 +51,7 @@ public class FrameGiftAdapter extends RecyclerView.Adapter {
public void onCallBack(int position, LiveGiftBean model) {
Bus.get().post(new LiveGiftItemEvent().setLiveGiftModel(model));
wishGiftId = null;
giftSelect(model);
}
});
}
@@ -66,4 +67,14 @@ public class FrameGiftAdapter extends RecyclerView.Adapter {
public int getItemCount() {
return giftJson.size();
}
public void refreshWrapListAfterSend(LiveGiftBean model) {
for (int i = 0; i < giftJson.size(); i++) {
if (giftJson.get(i).getId() == model.getId()) {
int giftNum = giftJson.get(i).getBlindBoxTicket();
giftJson.get(i).setBlindBoxTicket(giftNum - 1);
}
}
notifyDataSetChanged();
}
}

View File

@@ -18,6 +18,7 @@ import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.common.http.LiveHttpUtil;
@@ -81,10 +82,17 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
public HeadViewHolder(@NonNull View itemView) {
super(itemView);
}
public void setData(RandomPkUserBean bean, int position) {
if (!WordUtil.isNewZh() && itemView.findViewById(R.id.text1)!=null) {
((TextView) itemView.findViewById(R.id.text1)).setText("number");
((TextView) itemView.findViewById(R.id.text2)).setText("user");
((TextView) itemView.findViewById(R.id.text3)).setText("status");
((TextView) itemView.findViewById(R.id.text4)).setText("Controls");
((TextView) itemView.findViewById(R.id.text5)).setText("follow");
}
}
}
@@ -110,12 +118,12 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
mPkStatus.setOnClickListener(v -> {
RandomPkUserBean bean = (RandomPkUserBean) itemView.getTag();
if (bean.isPk()) {
ToastUtil.show(R.string.free_pk_user_pking);
ToastUtil.show(mContext.getString(R.string.free_pk_user_pking));
return;
}
if (freePkNum == 0 && mDrPkNum == -1) {
ToastUtil.show(R.string.free_pk_num_null);
// return;
ToastUtil.show(mContext.getString(R.string.free_pk_num_null));
// return;
}
LiveHttpUtil.getMicList(LiveRyAnchorActivity.mLiveUid, 0, new com.yunbao.common.http.HttpCallback() {
@@ -125,7 +133,11 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
//非0认为未开通连麦权限
if (code != 0) {
if (mDrPkNum == -1) {
ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功");
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + bean.getUserNiceName() + " 发送成功");
} else {
ToastUtil.show("invite " + bean.getUserNiceName() + " successful");
}
mOnItemClickListener.onItemClick(bean, -1);
((LiveRyAnchorActivity) mContext).linkMicAnchorApply(bean.getId(), bean.getId(),
((LiveRyAnchorActivity) mContext).buildLinkMicJSON().toString()
@@ -133,13 +145,21 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
return;
}
if (mDrPkNum <= 0) {
ToastUtil.show("多人次數已用完");
if (WordUtil.isNewZh()) {
ToastUtil.show("多人次數已用完");
} else {
ToastUtil.show("Multiple times have been used up");
}
return;
}
((LiveRyAnchorActivity) mContext).linkDrMicAnchorApply(bean.getId(), bean.getId());
} else {
ToastUtil.show("請先關閉語言連麥");
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉語音連麥");
} else {
ToastUtil.show("Please disable the voice connection first");
}
}
}
});
@@ -152,10 +172,10 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
public void onSuccess(SetAttentsModel data) {
bean.setAttention(data.getIsattent());
if ("1".equals(data.getIsattent())) {
ToastUtil.show(R.string.following);
ToastUtil.show(mContext.getString(R.string.following));
mOnItemClickListener.onItemClick(bean, 1);
} else {
ToastUtil.show(R.string.unfollow_cancel);
ToastUtil.show(mContext.getString(R.string.unfollow_cancel));
mOnItemClickListener.onItemClick(bean, 0);
}
@@ -163,7 +183,7 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
});
@@ -192,9 +212,15 @@ public class FreePkRecyclerAdapter extends RefreshAdapter<RandomPkUserBean> {
if (bean.isPk()) {
mStatus.setText("PK中");
ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk, mPkStatus);
if (!WordUtil.isNewZh()) {
mStatus.setText("PK");
}
} else {
mStatus.setText("空闲");
ImgLoader.display(mContext, R.mipmap.ic_random_pk_pk_unselect, mPkStatus);
if (!WordUtil.isNewZh()) {
mStatus.setText("free");
}
}
if (bean.isAttention()) {
ImgLoader.display(mContext, R.mipmap.ic_random_pk_like, mFollow);

View File

@@ -39,7 +39,7 @@ public class GiftTitleAdapter extends RecyclerView.Adapter {
notifyDataSetChanged();
}
});
itemViewHolder.selectData(index == position);
itemViewHolder.selectData(index == position,name.get(position).getName());
}
@Override
@@ -57,4 +57,9 @@ public class GiftTitleAdapter extends RecyclerView.Adapter {
index = -1;
notifyDataSetChanged();
}
public void setTitleIndex(int i) {
index=i;
notifyDataSetChanged();
}
}

View File

@@ -137,6 +137,9 @@ public class GuardAdapter extends RefreshAdapter<GuardUserBean> {
mSex = (ImageView) itemView.findViewById(R.id.sex);
mLevel = (ImageView) itemView.findViewById(R.id.level);
mVotes = (TextView) itemView.findViewById(R.id.votes);
if(!WordUtil.isNewZh()) {
((TextView) itemView.findViewById(R.id.votesTitle)).setText("Contribution");
}
}
void setData(GuardUserBean bean) {

View File

@@ -6,6 +6,7 @@ import static com.yunbao.live.bean.LiveChatBean.LUCKY_ANGEL;
import static com.yunbao.live.bean.LiveChatBean.RECOMMEND_CARD_NOTIFY;
import static com.yunbao.live.bean.LiveChatBean.STAR_CHALLENGE_UPGRADE_NOTIFY;
import static com.yunbao.live.bean.LiveChatBean.SYSTEM3_COLOR;
import static com.yunbao.live.bean.LiveChatBean.TYPE_TO_USER_MSG;
import static com.yunbao.live.bean.LiveChatBean.WISH_LIST_PROGRESS;
import static com.yunbao.live.bean.LiveChatBean.XYD_COMPLETE;
@@ -27,7 +28,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
@@ -51,6 +51,7 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ClipPathCircleImage;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
@@ -87,6 +88,12 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
private int mPosition;
private boolean isBottom = false;
private int fountSize = 13;
private String isFans;
public LiveChatAdapter setFans(String fans) {
isFans = fans;
return this;
}
public LiveChatAdapter(Context context) {
mContext = context;
@@ -158,6 +165,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
Log.i(TAG, "onScrolled: " + dy);
mRecyclerViewScrolledDy = dy;
isBottom = false;
}
@Override
@@ -242,7 +250,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (!TextUtils.isEmpty(bean.getId())&&!TextUtils.isEmpty(bean.getUserNiceName())){
if (!TextUtils.isEmpty(bean.getId()) && !TextUtils.isEmpty(bean.getUserNiceName())) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.INPUT_DIALOG)
.setOlineUserlistModel(new OlineUserlistModel().setId(bean.getId()).setUserNicename(bean.getUserNiceName())));
@@ -282,7 +290,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
//点击打开活动
tv_chat_active_into.setOnClickListener(v -> {
String url = CommonAppConfig.HOST + "/" + bean.getContent() + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + LiveRoomViewHolder.mLiveUid;
String url = CommonAppConfig.HOST + "/" + bean.getContent() + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&anchorUid=" + LiveRoomViewHolder.mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
Bundle bundle = new Bundle();
bundle.putString("url", url);
LiveHDDialogFragment fragment = new LiveHDDialogFragment();
@@ -300,8 +308,8 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
}
SpannableStringBuilder builder = new SpannableStringBuilder();
if (bean.getType() == -3) {
String str1 = "整蠱來了! ";
String str2 = "";
String str1 = WordUtil.isNewZh() ? "整蠱來了! " : "Pranks are coming";
String str2 = WordUtil.isNewZh() ? "" : "too";
builder.append(str1);
int length = builder.length();
builder.append(bean.getUserNiceName());
@@ -310,11 +318,11 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
int length2 = builder.length();
builder.append(bean.getAnchorName());
builder.setSpan(new ForegroundColorSpan(0xFF73FFFF), length2, length2 + bean.getAnchorName().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.append("發出了 " + bean.getContent());
builder.append(WordUtil.isNewZh() ? "發出了 " : "Sent out " + bean.getContent());
mTextView.setText(builder);
} else if (bean.getType() == -4) {
String str1 = "成功拯救了 ";
String str2 = "免除了 ";
String str1 = WordUtil.isNewZh() ? "成功拯救了 " : "Succeeded in saving";
String str2 = WordUtil.isNewZh() ? "免除了 " : "Exempt from";
int length = builder.length();
builder.append(bean.getMedal());
builder.setSpan(new ForegroundColorSpan(0xFF73FFFF), length, length + bean.getMedal().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
@@ -322,7 +330,7 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
int length2 = builder.length();
builder.append(bean.getAnchorName());
builder.setSpan(new ForegroundColorSpan(0xFF73FFFF), length2, length2 + bean.getAnchorName().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.append(str2 + bean.getUserNiceName() + "發起的" + bean.getContent());
builder.append(str2 + bean.getUserNiceName() + (WordUtil.isNewZh() ? "發出了 " : "Sent out ") + bean.getContent());
mTextView.setText(builder);
} else if (bean.getType() == -5) {
mBg.setBackground(null);
@@ -339,8 +347,8 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
// mBg.setBackgroundResource(R.drawable.bg_live_chat_item);
new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1);
}
String str1 = "火力四射,魅力無限!感謝";
String str2 = "為本直播間加成熱度";
String str1 = WordUtil.isNewZh() ? "火力四射,魅力無限!感謝" : "Full of firepowerUnlimited charm!";
String str2 = WordUtil.isNewZh() ? "為本直播間加成熱度" : "Thank you for adding popularity to this live room";
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(str1);
int length = builder.length();
@@ -359,8 +367,8 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
// mBg.setBackgroundResource(R.drawable.bg_live_chat_item);
new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1);
}
String str1 = "甜蜜不停,愛意不斷!恭喜";
String str2 = "在甜蜜約會中搶購到了";
String str1 = WordUtil.isNewZh() ? "甜蜜不停,愛意不斷!恭喜" : "Sweetness never stops, love never stops!";
String str2 = WordUtil.isNewZh() ? "在甜蜜約會中搶購到了" : "who is on a sweet date for grabbing ";
String str3 = "!";
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(str1);
@@ -395,6 +403,9 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
mTextView.setTextColor(Color.parseColor("#ffffff"));
new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1);
mTextView.setText(bean.getContent());
} else if (bean.getType() == TYPE_TO_USER_MSG) {
mTextView.setText(Html.fromHtml("<font color='#FBEABF'>@" + bean.getUserNiceName() + "</font> &nbsp;" + bean.getContent()));
new LoadDian9TuUtil().loadDian9TuAssets(mContext, mBg, 1);
}
// else if (bean.getType() == -1) {//自动消息,关注
// boolean isContains = false;
@@ -422,7 +433,12 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
bean.setHeart(position);
ImgLoader.display(mContext, bean.getId(), clipImage2);
attentionLayout.setVisibility(View.VISIBLE);
btnAttention.setVisibility(bean.isAttention() ? View.GONE : View.VISIBLE);
if (TextUtils.isEmpty(isFans)) {
btnAttention.setVisibility(bean.isAttention() ? View.GONE : View.VISIBLE);
} else {
btnAttention.setVisibility(TextUtils.equals(isFans, "1") ? View.GONE : View.VISIBLE);
}
// btnAttention.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
@@ -530,6 +546,10 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
if (bean == null) {
return;
}
if (bean.getType() == LiveChatBean.TYPE_TO_USER_MSG
&& !CommonAppConfig.getInstance().getUid().equals(bean.getAtUserID())) {
return;
}
// Log.i(TAG, "insertItem: " + bean.getContent()+" size = "+(mList.size()+1));
int size = mList.size();
//设置最大展示99条消息
@@ -551,7 +571,9 @@ public class LiveChatAdapter extends RecyclerView.Adapter {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.NEW_MESSAGE_REMINDER));
if (bean.getAtUserID() != null && bean.getAtUserID().contains(String.valueOf(model.getId()))) {
if (bean.getType() != LiveChatBean.TYPE_TO_USER_MSG &&
bean.getAtUserID() != null
&& bean.getAtUserID().contains(String.valueOf(model.getId()))) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.AT_MESSAGE));
mPosition = size;

View File

@@ -174,7 +174,7 @@ public class LiveNewWishListAdapter extends RecyclerView.Adapter<LiveNewWishList
@Override
public void onConfirmClick(Dialog dialog, String content) {
if (TextUtils.isEmpty(content)) {
ToastUtil.show(R.string.live_set_wishlist_num);
ToastUtil.show(mContext.getString(R.string.live_set_wishlist_num));
} else {
int num;
if (StringUtil.isInt(content)) {

View File

@@ -43,6 +43,7 @@ public class LiveParcelItemAdapter extends RecyclerView.Adapter {
@Override
public void onCallBack(int position, LiveGiftBean model) {
Bus.get().post(new LiveGiftItemEvent().setLiveGiftModel(model));
giftSelect(model);
}
});
}

View File

@@ -8,10 +8,14 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.bean.PrankGiftBean;
import com.yunbao.common.bean.PrankTurntableBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
@@ -19,9 +23,7 @@ import com.yunbao.live.R;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.Locale;
public class LivePrankRecyclerAdapter extends RecyclerView.Adapter<LivePrankRecyclerAdapter.PrankRecyclerViewHolder> {
public static final int TYPE_TURNTABLE = 0;
@@ -88,7 +90,7 @@ public class LivePrankRecyclerAdapter extends RecyclerView.Adapter<LivePrankRecy
}
public boolean getViewTypeOfList() {
return viewType==TYPE_TURNTABLE;
return viewType == TYPE_TURNTABLE;
}
public static abstract class PrankRecyclerViewHolder extends RecyclerView.ViewHolder {
@@ -145,33 +147,63 @@ public class LivePrankRecyclerAdapter extends RecyclerView.Adapter<LivePrankRecy
probability = itemView.findViewById(R.id.prank_turntable_probability);
context = itemView.findViewById(R.id.prank_turntable_val);
context.setOnClickListener(v -> {
DialogUitl.showSimpleInputDialog(mContext, "填寫整蠱內容", DialogUitl.INPUT_TYPE_TEXT, 10, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
if(WordUtil.isSpecialChar(content)){
ToastUtil.show("整蠱內容不能包含特殊字符");
return;
}
if (content.length() >= 2 && content.length() <= 10) {
context.setText(content);
onItemClickListener.onItemClick(content, ((PrankTurntableBean)list.get((Integer) itemView.getTag())).getId());
((PrankTurntableBean)list.get((Integer) itemView.getTag())).setContext(content);
dialog.dismiss();
} /*else if (content.length() == 0) {
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
DialogUitl.showSimpleInputDialog(mContext, "填寫整蠱內容", DialogUitl.INPUT_TYPE_TEXT, 10, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
if (WordUtil.isSpecialChar(content)) {
ToastUtil.show("整蠱內容不能包含特殊字符");
return;
}
if (content.length() >= 2 && content.length() <= 10) {
context.setText(content);
onItemClickListener.onItemClick(content, ((PrankTurntableBean) list.get((Integer) itemView.getTag())).getId());
((PrankTurntableBean) list.get((Integer) itemView.getTag())).setContext(content);
dialog.dismiss();
} /*else if (content.length() == 0) {
context.setText("");
onItemClickListener.onItemClick(content, ((PrankTurntableBean)list.get((Integer) itemView.getTag())).getId());
dialog.dismiss();
} */else {
ToastUtil.show("最少2個字最多10個字");
} */ else {
ToastUtil.show("最少2個字最多10個字");
}
}
}
});
});
} else {
DialogUitl.showSimpleInputDialog(mContext, "Fill in the content of the prank", DialogUitl.INPUT_TYPE_TEXT, 10, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
if (WordUtil.isSpecialChar(content)) {
ToastUtil.show("The prank content cannot contain special characters");
return;
}
if (content.length() >= 2 && content.length() <= 10) {
context.setText(content);
onItemClickListener.onItemClick(content, ((PrankTurntableBean) list.get((Integer) itemView.getTag())).getId());
((PrankTurntableBean) list.get((Integer) itemView.getTag())).setContext(content);
dialog.dismiss();
} /*else if (content.length() == 0) {
context.setText("");
onItemClickListener.onItemClick(content, ((PrankTurntableBean)list.get((Integer) itemView.getTag())).getId());
dialog.dismiss();
} */ else {
ToastUtil.show("Fill in a minimum of 2 words and a maximum of 10 words");
}
}
});
}
});
}
public void setDate(PrankTurntableBean bean, int position) {
title.setText("轉盤" + getChineseNum(bean.getId()) + "號位");
probability.setText(getProbability(bean.getId()));
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
title.setText("轉盤" + getChineseNum(bean.getId()) + "號位");
} else {
title.setText("Turntable" + getChineseNum(bean.getId()));
}
probability.setText(getProbability(bean.getId(), mContext));
context.setText(bean.getContext());
itemView.setTag(position);
}
@@ -194,21 +226,39 @@ public class LivePrankRecyclerAdapter extends RecyclerView.Adapter<LivePrankRecy
return "";
}
private String getProbability(int id) {
switch (id) {
case 1:
return "抽取幾率40%";
case 2:
return "抽取幾率30%";
case 3:
return "抽取幾率15%";
case 4:
return "抽取幾率10%";
case 5:
return "抽取幾率4%";
default:
return "抽取幾率1%";
private String getProbability(int id, Context mContext) {
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
switch (id) {
case 1:
return "抽取幾率40%";
case 2:
return "抽取幾率30%";
case 3:
return "抽取幾率15%";
case 4:
return "抽取幾率10%";
case 5:
return "抽取幾率4%";
default:
return "抽取幾率1%";
}
} else {
switch (id) {
case 1:
return "Extraction probability40%";
case 2:
return "Extraction probability30%";
case 3:
return "Extraction probability15%";
case 4:
return "Extraction probability10%";
case 5:
return "Extraction probability4%";
default:
return "Extraction probability1%";
}
}
}
}
}

View File

@@ -14,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.bean.LivePromotionBean;
@@ -75,7 +76,7 @@ public class LivePromotionAdapter extends RefreshAdapter<LivePromotionBean> {
public void onClick(View v) {
String url = CommonAppConfig.HOST + "/" + bean.getActive_src() + "?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()
+ "&anchorUid=" + mLiveUid
+ "&active_id=" + bean.getActive_id();
+ "&active_id=" + bean.getActive_id()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
Bundle bundle = new Bundle();
bundle.putString("url", url);
int show = TextUtils.isEmpty(bean.getShow_type()) ? 0 : Integer.parseInt(bean.getShow_type());

View File

@@ -16,9 +16,11 @@ import com.yunbao.common.bean.LiveClassBean;
import com.yunbao.common.custom.MyRadioButton;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.live.R;
import java.util.List;
import java.util.Locale;
/**
* Created by cxf on 2018/10/7.

View File

@@ -1,9 +1,6 @@
package com.yunbao.live.adapter;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -11,11 +8,14 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.LiveRoomTypeBean;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.live.R;
import com.yunbao.common.bean.LiveRoomTypeBean;
import java.util.ArrayList;
import java.util.Arrays;
@@ -38,21 +38,19 @@ public class LiveRoomTypeAdapter extends RecyclerView.Adapter<LiveRoomTypeAdapte
mCheckedColor = ContextCompat.getColor(context, R.color.global);
mUnCheckedColor = 0xffffffff;
mList = new ArrayList<>();
ConfigBean configBean = CommonAppConfig.getInstance().getConfig();
Log.i("tag",configBean.toString());
if (configBean != null) {
String[][] liveType = configBean.getLiveType();
if (liveType != null) {
Log.i("tag", Arrays.toString(liveType));
List<LiveRoomTypeBean> list = LiveRoomTypeBean.getLiveTypeList(liveType);
mList.addAll(list);
for (LiveRoomTypeBean bean : mList) {
if (bean.getId() == checkedId) {
bean.setChecked(true);
break;
}
String[][] liveType = CommonAppConfig.getInstance().getLiveType();
if (liveType != null) {
Log.i("tag", Arrays.toString(liveType));
List<LiveRoomTypeBean> list = LiveRoomTypeBean.getLiveTypeList(liveType);
mList.addAll(list);
for (LiveRoomTypeBean bean : mList) {
if (bean.getId() == checkedId) {
bean.setChecked(true);
break;
}
}
}
mInflater = LayoutInflater.from(context);
mOnClickListener = new View.OnClickListener() {

View File

@@ -173,7 +173,7 @@ public class LiveWishListAdapter extends RecyclerView.Adapter<LiveWishListAdapte
@Override
public void onConfirmClick(Dialog dialog, String content) {
if (TextUtils.isEmpty(content)) {
ToastUtil.show(R.string.live_set_wishlist_num);
ToastUtil.show(mContext.getString(R.string.live_set_wishlist_num));
} else {
int num;
if (StringUtil.isInt(content)) {

View File

@@ -14,6 +14,7 @@ import android.widget.TextView;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.bean.SystemMessageBean;
import com.yunbao.live.activity.ZhuangBanActivity;
@@ -68,7 +69,7 @@ public class SystemMessageAdapter extends RefreshAdapter<SystemMessageBean> {
@Override
public void onClick(View v) {
if (bean.getLink() != null && !bean.getLink().equals("")) {
startActivity(new Intent(mContext, ZhuangBanActivity.class).putExtra("url", bean.getLink()+ "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()));
startActivity(new Intent(mContext, ZhuangBanActivity.class).putExtra("url", bean.getLink()+ "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0")));
}
}
});

View File

@@ -14,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.ZhuangBanActivity;
import com.yunbao.live.bean.SystemMessageBean;
@@ -71,7 +72,8 @@ public class SystemMessageNewAdapter extends RefreshAdapter<SystemMessageBean> {
.append("&uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken());
.append(userInfo.getToken()) .append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
mContext.startActivity(
new Intent(mContext, ZhuangBanActivity.class)
.putExtra("url", urlBuffer.toString()));

View File

@@ -140,7 +140,7 @@ public class UserMoreInfoAdapter extends RefreshAdapter<UserBean> {
@Override
public void onClick(View v) {
if (bean.isHide() && (type.equals("5") || type.equals("4"))) {
ToastUtil.show(R.string.can_not_go);
ToastUtil.show(mContext.getString(R.string.can_not_go));
} else {
((LiveActivity) mContext).showUserDialog(bean.getId());
fragments.dismiss();

View File

@@ -34,15 +34,20 @@ public class CoinModel extends BaseModel {
public String getCoin() {
long coinMoney = Long.parseLong(coin);
String coinStr = coin;
if (999999999 < coinMoney && coinMoney <= 999999999999L) {
coin = coin.substring(0, coin.length() - 3);
coin = coin + "k";
coinStr = coinStr.substring(0, coinStr.length() - 3);
coinStr = coinStr + "k";
}
if (999999999999L < coinMoney && coinMoney <= 999999999999999L) {
coin = coin.substring(0, coin.length() - 6);
coin = coin + "M";
coinStr = coinStr.substring(0, coinStr.length() - 6);
coinStr = coinStr + "M";
}
return coin;
return coinStr;
}
public Long getCoinLong() {
return Long.parseLong(coin);
}
public CoinModel setCoin(String coin) {

View File

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.annotation.JSONField;
import com.google.gson.annotations.SerializedName;
import com.yunbao.common.bean.AiAutomaticSpeechModel;
import com.yunbao.common.bean.MsgModel;
import com.yunbao.common.utils.WordUtil;
/**
* Created by cxf on 2017/8/22.
@@ -27,6 +28,7 @@ public class LiveChatBean {
public static final int XYD_COMPLETE = 207;//心愿单完成通知
public static final int WISH_LIST_PROGRESS = 307;//心愿单进度通知
public static final int BLIND_BOX = 409;//盲盒礼物消息
public static final int TYPE_TO_USER_MSG=500;//指定信息
private String id;
@@ -53,9 +55,15 @@ public class LiveChatBean {
private String hot_card;
private MsgModel msgModel = new MsgModel();//自定义消息体
private String giftName;
private String giftname_en;
private String toUid;
public int getNORMAL() {
return NORMAL;
}
public String getGiftName() {
return giftName;
return WordUtil.isNewZh()?giftName:giftname_en;
}
public LiveChatBean setGiftName(String giftName) {
@@ -63,6 +71,14 @@ public class LiveChatBean {
return this;
}
public String getToUid() {
return toUid;
}
public void setToUid(String toUid) {
this.toUid = toUid;
}
private AiAutomaticSpeechModel aiAutomaticSpeechModel = new AiAutomaticSpeechModel();//机器人消息体
public AiAutomaticSpeechModel getAiAutomaticSpeechModel() {

View File

@@ -3,6 +3,8 @@ package com.yunbao.live.bean;
import android.os.Parcel;
import android.os.Parcelable;
import com.yunbao.common.Constants;
/**
* Created by cxf on 2018/11/14.
*/
@@ -72,5 +74,8 @@ public class LiveGuardInfo implements Parcelable {
}
};
public static boolean isGuard(LiveGuardInfo info){
return info != null && info.getMyGuardType() != Constants.GUARD_TYPE_NONE;
}
}

View File

@@ -13,6 +13,7 @@ import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.ToastUtil;
@@ -135,6 +136,7 @@ public class BlowkissDialog extends AbsDialogFragment {
btn_confirm.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MobclickAgent.onEvent(mContext, "live_room_follow_sendgif", "弹的关注并送礼的按钮");
follow();
LiveHttpUtil.sendGift("0", mLiveUid, LiveActivity.mStream, gif_id, "1", new HttpCallback() {
@Override

View File

@@ -27,6 +27,7 @@ import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.WordsTypeUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.FreePkRecyclerAdapter;
@@ -128,8 +129,15 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
}
});
if(!WordUtil.isNewZh()){
mPkNumText.setText("Free PK number");
((TextView)findViewById(R.id.tmp_text2)).setText("Updated daily at 6am");
}
if (mDrPkNum != -1) {
mPkNumText.setText("多人PK剩余次數");
if(!WordUtil.isNewZh()){
mPkNumText.setText("multi-user PK number");
}
}
initRecycler();
}
@@ -171,7 +179,7 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.common.R.string.net_error);
ToastUtil.show(mContext.getString(com.yunbao.common.R.string.net_error));
}
});
}
@@ -183,6 +191,10 @@ public class FreePkDialogFragment extends AbsDialogFragment implements View.OnCl
searchTag.setText("主播搜索");
listTag.setTag(TAB_STATUS_FOLLOW);
listTag.setText("關注列表");
if (!WordUtil.isNewZh()) {
searchTag.setText("search");
listTag.setText("follow list");
}
tabLayout.addTab(searchTag);
tabLayout.addTab(listTag);
tabStatus = TAB_STATUS_SEARCH;

View File

@@ -9,6 +9,11 @@ import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
@@ -17,6 +22,7 @@ import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.bean.PrankGiftBean;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
@@ -26,16 +32,10 @@ import com.yunbao.live.adapter.GiftTopAdapter;
import com.yunbao.live.adapter.LiveGiftPagerAdapter;
import com.yunbao.live.adapter.LiveGiftPagerAdapter.ActionListener;
import com.yunbao.live.bean.GiftTopBean;
import com.yunbao.common.http.LiveHttpUtil;
import java.util.ArrayList;
import java.util.List;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListener, View.OnClickListener {
private Context mContext;
@@ -217,7 +217,7 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
for (int i = 0; i < list.size(); i++) {
JSONObject data = list.getJSONObject(i);
GiftTopBean giftTopBean = new GiftTopBean();
giftTopBean.setName(data.getString("name"));
giftTopBean.setName(WordUtil.isNewZh()?data.getString("name"):data.getString("en_name"));
name.add(giftTopBean);
}
@@ -265,17 +265,17 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
public void onClick(View view) {
int id = view.getId();
if (id == R.id.btn_send) {
DialogUitl.showSimpleInputDialog(mContext, "輸入數量", DialogUitl.INPUT_TYPE_NUMBER, new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleInputDialog(mContext, WordUtil.isNewZh() ?"輸入數量":"Input quantity", DialogUitl.INPUT_TYPE_NUMBER, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
try {
prangNum = Integer.parseInt(content);
if (prangNum <= 0) {
ToastUtil.show("數量不能為0或負數");
ToastUtil.show(WordUtil.isNewZh() ?"數量不能為0或負數":"The quantity cannot be zero or negative");
return;
}
if (prangNum > 999) {
ToastUtil.show("數量不能大於999");
ToastUtil.show(WordUtil.isNewZh() ?"數量不能大於999":"The number cannot be greater than 999");
return;
}
mBtnSend.setText(content);
@@ -285,12 +285,12 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
dialog.dismiss();
} catch (Exception e) {
e.printStackTrace();
ToastUtil.show("輸入錯誤");
ToastUtil.show(WordUtil.isNewZh() ? "輸入錯誤":"Input error");
}
}
});
} else if (id == R.id.btn_context) {
DialogUitl.showSimpleInputDialog(mContext, "輸入整蠱內容...", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleInputDialog(mContext, WordUtil.isNewZh() ? "輸入整蠱內容..." : "Enter the prank content...", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
prangContext = content;
@@ -307,29 +307,29 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
});
} else if (id == R.id.gift_btn) {
if (bean == null) {
ToastUtil.show("整蠱禮物不能為空");
ToastUtil.show(WordUtil.isNewZh() ? "整蠱禮物不能為空":"A trick gift can't be empty");
return;
}
if (StringUtil.isEmpty(prangContext) || prangNum == 0) {
ToastUtil.show("整蠱內容或數量不能為空");
ToastUtil.show(WordUtil.isNewZh() ?"整蠱內容或數量不能為空":"The content or number of pranks cannot be empty");
return;
}
if (prangNum >= 999) {
ToastUtil.show("整蠱數量不能過大");
ToastUtil.show(WordUtil.isNewZh() ?"整蠱數量不能過大":"The number of pranks should not be too large");
return;
}
if (WordUtil.isSpecialChar(prangContext)) {
ToastUtil.show("整蠱內容不能包含特殊字符");
ToastUtil.show(WordUtil.isNewZh() ?"整蠱內容不能包含特殊字符":"The prank content must not contain special characters");
return;
}
if (prangContext.length() > 6) {
ToastUtil.show("整蠱內容過長");
ToastUtil.show(WordUtil.isNewZh() ?"整蠱內容過長":"The prank is too long");
return;
}
if (giftBeans != null) {
for (PrankGiftBean giftBean : giftBeans) {
if (giftBean.getGiftId().equals(bean.getId() + "")) {
ToastUtil.show("整蠱禮物已存在");
ToastUtil.show(WordUtil.isNewZh() ?"整蠱禮物已存在":"Prank gifts already exist");
return;
}
}

View File

@@ -13,6 +13,7 @@ import com.yunbao.common.Constants;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.ZhuangBanActivity;
@@ -54,7 +55,7 @@ public class HighNobilityDialog extends AbsDialogFragment {
UserBean u = CommonAppConfig.getInstance().getUserBean();
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname="
+ u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&uid="
+ CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken();
+ CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
ZhuangBanActivity.forward(mContext, url, false,0);
});

View File

@@ -119,11 +119,11 @@ public class LiveAnchorEditCallMeDialog extends AbsDialogPopupWindow {
status.setTag(0);
status.setOnClickListener(v -> {
if (callMeModel.getGiftId() == 0) {
ToastUtil.show(R.string.live_anchor_edit_call_me_not_gift_toash);
ToastUtil.show(mContext.getString(R.string.live_anchor_edit_call_me_not_gift_toash));
return;
}
if (callMeModel.getWechat().getIsShow() == 0 && callMeModel.getLine().getIsShow() == 0 && callMeModel.getWhatsApp().getIsShow() == 0) {
ToastUtil.show(R.string.live_anchor_edit_call_me_not_call_info_toash);
ToastUtil.show(mContext.getString(R.string.live_anchor_edit_call_me_not_call_info_toash));
return;
}
int tag = (int) v.getTag();

View File

@@ -16,6 +16,7 @@ import com.lxj.xpopup.XPopup;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
public class LiveAnchorEditCallMeEditAppDialog extends AbsDialogPopupWindow {
@@ -74,24 +75,24 @@ public class LiveAnchorEditCallMeEditAppDialog extends AbsDialogPopupWindow {
switch (type) {
case TYPE_LETTER:
titleView.setText("填寫信內容");
titleView.setText(WordUtil.isNewZh()?"填寫信內容":"Fill in the letter");
edit.setHint(R.string.live_anchor_edit_call_me_letter_content);
title.setText("信內容");
title.setText(WordUtil.isNewZh()?"信內容":"Content of the letter");
break;
case TYPE_APP_WECHAT:
titleView.setText("填寫聯系方式");
edit.setHint("请输入");
title.setText("Wechat账号");
titleView.setText(WordUtil.isNewZh()?"填寫聯系方式":"Fill in the contact information");
edit.setHint(WordUtil.isNewZh()?"请输入":"Please enter");
title.setText(WordUtil.isNewZh()?"Wechat账号":"Wechat account");
break;
case TYPE_APP_LINE:
titleView.setText("填寫聯系方式");
edit.setHint("请输入");
title.setText("Line账号");
titleView.setText(WordUtil.isNewZh()?"填寫聯系方式":"Fill in the contact information");
edit.setHint(WordUtil.isNewZh()?"请输入":"Please enter");
title.setText(WordUtil.isNewZh()?"Line账号":"Line account");
break;
case TYPE_APP_WHATSAPP:
titleView.setText("填寫聯系方式");
edit.setHint("请输入");
title.setText("WhatsApp账号");
titleView.setText(WordUtil.isNewZh()?"填寫聯系方式":"Fill in the contact information");
edit.setHint(WordUtil.isNewZh()?"请输入":"Please enter");
title.setText(WordUtil.isNewZh()?"WhatsApp账号":"WhatsApp Account");
break;
}
}

View File

@@ -18,6 +18,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.glide.ImgLoader;
@@ -148,6 +149,7 @@ public class LiveContactDetailsSendGiftDialog extends AbsDialogPopupWindow {
}
private void send() {
MobclickAgent.onEvent(mContext, "contact_obtain", "点获取联系方式");
LiveHttpUtil.sendGift("0", mLiveUid, mStream, bean.getId(), "1", 1, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
@@ -164,6 +166,7 @@ public class LiveContactDetailsSendGiftDialog extends AbsDialogPopupWindow {
}
}).build().show();
} else {
MobclickAgent.onEvent(mContext, "contact_obtain_send_gif", "送出联系方式礼物");
dismiss();
}
}

View File

@@ -89,7 +89,7 @@ public class LiveDataInfoDialog extends AbsDialogPopupWindow {
@Override
public void onError(String error) {
ToastUtil.show(com.yunbao.common.R.string.net_error);
ToastUtil.show(mContext.getString(com.yunbao.common.R.string.net_error));
}
});

View File

@@ -23,6 +23,7 @@ import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.event.LiveAudienceEvent;
@@ -131,12 +132,13 @@ public class LiveFansFragment extends AbsDialogFragment {
LiveAudienceActivity.is_fans = "2";
int num = LiveAudienceActivity.fansNum - 1;
LiveRoomViewHolder.setFansNum(num);
ToastUtil.show("退出成功");
ToastUtil.show(WordUtil.isNewZh()?"退出成功":"Exit successfully");
EventBus.getDefault().post("exitFansGroup");
dismiss();
} else if (TextUtils.equals(event.getMethod(), "sendFansCard")) {
if (LiveRoomViewHolder.mBtnFollow != null && LiveRoomViewHolder.mBtnFollow.getVisibility() == View.VISIBLE) {
LiveRoomViewHolder.follow();
ToastUtil.show(R.string.live_fans_follow_toast);
ToastUtil.show(mContext.getString(R.string.live_fans_follow_toast));
}
//点击 开通粉丝勋章,打开礼物列表送礼物
((LiveAudienceActivity) mContext).openGiftWindow(event.getLiveId(), "0");

View File

@@ -23,6 +23,7 @@ import androidx.annotation.Nullable;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.android.material.tabs.TabLayout;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.ActiveModel;
@@ -31,25 +32,28 @@ import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 趣味游戏对话框
@@ -202,7 +206,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
@Override
public void onError(String error) {
Log.i("debug", "onError: " + error);
ToastUtil.show( R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
dismiss();
}
});
@@ -252,6 +256,25 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
if (tab != null) {
tab.select();
ActiveModel model = (ActiveModel) tab.getTag();
Map<String, String> map_ekv = new HashMap<String, String>();
map_ekv.put("link", model.getActiveSrc());
MobclickAgent.onEvent(mContext, "live_room_slide", map_ekv);
switch (model.getActiveName()) {
case "闖關熱戀":
MobclickAgent.onEvent(mContext, "through_index", "进入闯关页面");
break;
case "怪物大作戰":
MobclickAgent.onEvent(mContext, "plant_index", "进入怪物页面");
break;
case "甜蜜約會":
MobclickAgent.onEvent(mContext, "sweet_index", "进入甜蜜页面");
break;
case "娛樂整蠱":
MobclickAgent.onEvent(mContext, "tricky_index", "进入娱乐整蛊页面");
break;
case "幸运天使":
MobclickAgent.onEvent(mContext, "angel_index", "进入幸运天使页面");
break; }
if (model != null) {
if (!StringUtil.isEmpty(model.getBgColor()) && !"#".equals(model.getBgColor())) {
tabLayout.setBackgroundColor(Color.parseColor(model.getBgColor()));
@@ -271,7 +294,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
url += "?";
}
url += "uid=" + CommonAppConfig.getInstance().getUid() + "&token="
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + roomId + "&active_id=" + model.getActiveId();
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + roomId + "&active_id=" + model.getActiveId()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
Log.i("debug", "selectTab: " + url);
mWebView.loadUrl(url);
} else {
@@ -297,7 +320,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
}
@Override
@@ -378,7 +401,7 @@ public class LiveGameDialogFragment extends AbsDialogFragment {
return;
}
if (TextUtils.equals(roomId, event.getLiveId())) {
ToastUtil.show(R.string.current_live_room);
ToastUtil.show(mContext.getString(R.string.current_live_room));
dismiss();
} else {
//看直播

View File

@@ -69,6 +69,7 @@ import com.yunbao.common.utils.NobleUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
@@ -375,7 +376,8 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
.append("/h5/info/index.html?uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken());
.append(userInfo.getToken()) .append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl.toString());
LiveHDDialogFragment fragment = new LiveHDDialogFragment();
@@ -911,7 +913,7 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
}
});
} else {
ToastUtil.show(R.string.only_one);
ToastUtil.show(mContext.getString(R.string.only_one));
}
} else {
if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream) || mLiveGiftBean == null) {
@@ -919,7 +921,7 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
}
if (mLiveGuardInfo != null) {
if (mLiveGiftBean.getMark() == LiveGiftBean2.MARK_GUARD && mLiveGuardInfo.getMyGuardType() != Constants.GUARD_TYPE_YEAR) {
ToastUtil.show(R.string.guard_gift_tip);
ToastUtil.show(mContext.getString(R.string.guard_gift_tip));
return;
}
}
@@ -1237,12 +1239,12 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
}
if (!TextUtils.isEmpty(event.getDressName()) && !TextUtils.isEmpty(event.getDressMsg())) {
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability2), event.getGiftname(), event.getDressName());
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability2), WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en(), event.getDressName());
stringBuilder.append(boxBlindMsg);
int dressNameIndex = boxBlindMsg.indexOf(event.getDressName());
int dressNameSize = event.getDressName().length();
int giftNameIndex = boxBlindMsg.indexOf(event.getGiftname());
int giftNameSize = event.getGiftname().length();
int giftNameIndex = boxBlindMsg.indexOf(WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en());
int giftNameSize = (WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en()).length();
stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getDressColour())),
dressNameIndex,
dressNameIndex + dressNameSize,
@@ -1254,10 +1256,10 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
stringBuilders.add(stringBuilder);
} else {
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability3), event.getGiftname());
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability3),WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en());
stringBuilder.append(boxBlindMsg);
int giftNameIndex = boxBlindMsg.indexOf(event.getGiftname());
int giftNameSize = event.getGiftname().length();
int giftNameIndex = boxBlindMsg.indexOf(WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en());
int giftNameSize = (WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en()).length();
stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getGiftColour())),
giftNameIndex,
giftNameIndex + giftNameSize,

View File

@@ -384,7 +384,7 @@ public class LiveGiftDialogFragment4Wishlist extends AbsDialogFragment implement
// }
// if (mLiveGuardInfo != null) {
// if (mLiveGiftBean.getMark() == LiveGiftBean.MARK_GUARD && mLiveGuardInfo.getMyGuardType() != Constants.GUARD_TYPE_YEAR) {
// ToastUtil.show(R.string.guard_gift_tip);
// ToastUtil.show(mContext.getString(R.string.guard_gift_tip);
// return;
// }
// }

View File

@@ -2,7 +2,9 @@ package com.yunbao.live.dialog;
import static com.yunbao.common.CommonAppConfig.isGetNewWrap;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import static com.yunbao.live.views.LiveRoomViewHolder.bean1;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.DialogInterface;
import android.graphics.Color;
@@ -15,6 +17,7 @@ import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
@@ -39,6 +42,7 @@ import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.R;
@@ -55,6 +59,7 @@ import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.AppManager;
@@ -79,7 +84,6 @@ import com.yunbao.live.event.GiftTitleEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.event.LiveGiftItemEvent;
import com.yunbao.live.event.LiveParcelItemRefreshEvent;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.views.LiveGiftFragment;
import com.yunbao.live.views.LiveParcelFragment;
@@ -103,7 +107,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
private TextView diamondText, goldText, liveWrap, vipGoldDesc, vipGoldTitle, giftNumber;
private RecyclerView giftTitle;
private GiftTitleAdapter giftTitleAdapter;
private FrameLayout contextLayoutGift;
private FrameLayout contextLayoutGift, overlay;
private String mStream, mLiveUid;
private FrameLayout blindBox, frameBlindTop, noNobility, giftNumberLayout, giftSendLayout, namingLayout;
private ProgressBar progressBlind, progressBlind1, progressBlind2;
@@ -141,6 +145,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
@SuppressLint("ClickableViewAccessibility")
private void initView() {
gitBackground = mRootView.findViewById(R.id.git_background2);
contextLayoutGift = mRootView.findViewById(R.id.context_layout_gift);
@@ -182,6 +187,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
leaveHint = mRootView.findViewById(R.id.leave_hint);
progressBar = mRootView.findViewById(R.id.progressBar);
levelingLayout = mRootView.findViewById(R.id.leveling_layout);
overlay = mRootView.findViewById(R.id.overlay);
namingLayout.setVisibility(View.GONE);
//设置礼物弹窗背景
ImgLoader.displayBlurLive(getContext(), R.drawable.backgroud_custom_gift2, gitBackground);
@@ -199,10 +205,32 @@ public class LiveGiftPopup extends AbsDialogFragment {
giftDescription.setVisibility(View.GONE);
operateImage.setVisibility(View.GONE);
levelingLayout.setVisibility(View.VISIBLE);
updateOverlayVisibility();
blindBox.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) {
v.performClick();
}
return true;
});
namingLayout.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) {
v.performClick();
}
return true;
});
operateImage.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_UP) {
v.performClick();
}
return true;
});
overlay.setOnClickListener(v -> dismiss());
//点击包裹
ViewClicksAntiShake.clicksAntiShake(liveWrap, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_pack_list", "用户点礼物栏包裹礼物按钮");
giftTitleAdapter.uncheck();
liveWrap.setAlpha(1.0f);
liveWrap.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
@@ -217,6 +245,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
mBtnSendGroup.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MobclickAgent.onEvent(mContext, "gif_list_seed_gif", "用户送礼物");
sendGiftHandler.post(sendGiftRunnble);
}
});
@@ -225,7 +255,37 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(liveGiftSend, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
sendGiftHandler.post(sendGiftRunnble);
MobclickAgent.onEvent(mContext, "gif_list_seed_gif", "用户送礼物");
if (liveGiftModel != null && liveGiftModel.getBlindBoxTicket() > 0) {
BigDecimal needcoin = new BigDecimal(liveGiftModel.getPrice()).multiply(new BigDecimal(mCount));
if (needcoin.longValue() > diamond) {
sendBlindBoxTicket();
} else {
new DialogUitl.Builder(mContext)
.setView(R.layout.dialog_live_unfollow)
.setConfirmString(mContext.getString(R.string.aristocrat_determine))
.setCancelString(mContext.getString(R.string.use_diamonds))
.setContent(mContext.getString(R.string.trial_coupon))
.setClickCallback(new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
sendGiftHandler.post(sendGiftRunnble);
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
sendBlindBoxTicket();
}
}).setCancelable(true).build().show();
}
} else {
sendGiftHandler.post(sendGiftRunnble);
}
}
});
@@ -233,6 +293,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.diamond_linear), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_recharge_list", "用户点礼物栏充值按钮");
forwardMyCoin(0);
}
});
@@ -247,17 +308,23 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(description, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_blind_box_info", "用户点开礼物列表盲盒页面的盲盒说明");
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
StringBuffer htmlUrl = new StringBuffer();
htmlUrl.append(CommonAppConfig.HOST)
.append("/h5/info/index.html?uid=")
.append("/h5/blindBoxInfo/index.html?uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken())
.append("&no_back=1")
;
.append("&type=")
.append(blindBoxType-1)
.append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl.toString());
// System.out.println("盲盒页面 = "+htmlUrl.toString());
LiveHDDialogFragment fragment = new LiveHDDialogFragment();
fragment.setArguments(bundle);
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveHDDialogFragment");
@@ -267,6 +334,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_luck_gift_tip), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_opened_noble", "用户点击开通贵族");
dismiss();
((LiveActivity) mContext).openLuckGiftTip();
}
@@ -275,6 +343,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.leveling_layout), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "gif_list_grade", "用户点击等级页面");
IMLoginModel userInfo = IMLoginManager.get(mContext).getUserInfo();
StringBuffer htmlUrl = new StringBuffer();
htmlUrl.append(CommonAppConfig.HOST)
@@ -316,10 +385,12 @@ public class LiveGiftPopup extends AbsDialogFragment {
StringBuffer htmlUrl = new StringBuffer();
htmlUrl.append(CommonAppConfig.HOST)
.append(liveGiftModel.getOperateUrl())
.append("?uid=")
.append(userInfo.getId())
.append("&token=")
.append(userInfo.getToken())
.append("&for");
.append("&for") .append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
Bundle bundle = new Bundle();
bundle.putString("url", htmlUrl.toString());
bundle.putInt("height", DeviceUtils.getScreenHeight(getActivity()) / 5 * 3);
@@ -328,6 +399,7 @@ 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 {
@@ -379,6 +451,16 @@ public class LiveGiftPopup extends AbsDialogFragment {
GiftTopBean giftTopBean = new GiftTopBean();
giftTopBean.setName(data.getString("name"));
name.add(giftTopBean);
if (bean1 != null && IMLoginManager.get(mContext).isNewUserGif() && (data.getString("name").equals("熱門") || data.getString("name").equals("Hot"))) {
String giftJson = data.getString("giftlist");
List<LiveGiftBean> liveGiftBeans = JSONArray.parseArray(giftJson, LiveGiftBean.class);
liveGiftBeans.add(0, bean1);
if (mWishGiftId == null) {
mWishGiftId = "" + bean1.getId();
}
liveGiftList.getJSONObject(i).put("giftlist", JSONArray.toJSONString(liveGiftBeans));
}
}
giftTitleAdapter.addAllData(name);
if (!TextUtils.isEmpty(mWishGiftId) && liveGiftList.size() > 0) {
@@ -393,6 +475,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
liveGiftList.getJSONObject(i).getString("name"),
mStream, mLiveUid, mWishGiftId));
transaction.commit();
giftTitleAdapter.setTitleIndex(i);
break;
}
}
}
@@ -443,6 +527,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
/**
* 获取砖石和金豆余额
*/
long diamond = 0;
private void getCoin() {
LiveHttpUtil.getCoin(new HttpCallback() {
@Override
@@ -452,6 +538,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
CoinModel coinModel = GsonUtils.fromJson(info[0], CoinModel.class);
goldText.setText(coinModel.getGold());
diamondText.setText(coinModel.getCoin());
diamond = coinModel.getCoinLong();
lvStr.setText("Lv." + coinModel.getUserLevel());
findViewById(R.id.red_point).setVisibility((!TextUtils.isEmpty(coinModel.getUsersPackRedDot())) &&
@@ -460,7 +547,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
int nextLeve = Integer.parseInt(coinModel.getUserNextLevelRewards());
BigDecimal maxLeve = new BigDecimal(coinModel.getUserLevelUpgrades()).add( new BigDecimal(coinModel.getUserLevelCurrentConsumption()));
BigDecimal maxLeve = new BigDecimal(coinModel.getUserLevelUpgrades()).add(new BigDecimal(coinModel.getUserLevelCurrentConsumption()));
try {
String leveNext = String.valueOf(nextLeve);
String userNextLevel = coinModel.getUserLevelUpgrades();
@@ -518,15 +605,102 @@ public class LiveGiftPopup extends AbsDialogFragment {
private Runnable sendGiftRunnble = new Runnable() {
@Override
public void run() {
sendGift();
if (isWrap && liveGiftModel.getType() == 7) {
sendBlindBoxTicket();
} else {
sendGift();
}
}
};
//使用优惠券
public void sendBlindBoxTicket() {
if (TextUtils.isEmpty(mLiveUid) ||
TextUtils.isEmpty(mStream) ||
liveGiftModel == null)
return;
LiveHttpUtil.sendBlindBoxTicket((by != null ? "1" : "0"),
mLiveUid,
mStream,
isWrap ? liveGiftModel.getId() : liveGiftModel.getBlindBoxTicketId(), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
if (liveGiftModel.getSwf().contains("svga")) {
dismiss();
}
if (info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
String coin = obj.getString("coin");
String goldCoin = obj.getString("gold");
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u != null) {
u.setLevel(obj.getIntValue("level"));
//送礼物后更新粉丝徽章等级
u.setMedalLevel(obj.getIntValue("medal_level"));
u.setMedalName(obj.getString("medal_name"));
u.setCoin(coin);
}
if (diamondText != null) {
diamondText.setText(coin);
}
if (goldText != null) {
goldText.setText(goldCoin);
}
if (!isWrap) {
liveGiftModel.setBlindBoxTicket(liveGiftModel.getBlindBoxTicket() - 1);
} else {
for (int i = 0; i < liveGiftList.size(); i++) {
JSONObject data = liveGiftList.getJSONObject(i);
String giftJson = data.getString("giftlist");
List<LiveGiftBean> liveGiftBeans = JSONArray.parseArray(giftJson, LiveGiftBean.class);
List<LiveGiftBean> liveGiftModels = new ArrayList<>();
for (LiveGiftBean model : liveGiftBeans) {
if (model.getBlindBoxTicketId() == liveGiftModel.getId() && model.getBlindBoxTicket() > 0) {
model.setBlindBoxTicket(model.getBlindBoxTicket() - 1);
}
liveGiftModels.add(model);
}
liveGiftList.getJSONObject(i).put("giftlist", JSONArray.toJSONString(liveGiftModels));
}
LiveHttpUtil.getNewGiftList(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
liveGiftList = obj.getJSONArray("listarray");
CommonAppConfig.getInstance().setGiftListJson(obj.getString("listarray"));
}
}
@Override
public void onFinish() {
}
});
}
isGetNewWrap = true;
if (isWrap) {
Bus.get().post(new LiveParcelItemRefreshEvent().setLiveGiftModel(liveGiftModel));
}
}
} else {
ToastUtil.show(msg);
}
}
});
}
/**
* 赠送礼物
*/
public void sendGift() {
if (liveGiftModel == null) return;
if (liveGiftModel.getType() == 7) {
MobclickAgent.onEvent(mContext, "gif_list_blind_box_seed", "用户发送盲盒");
}
if (liveGiftModel.getTag() != null) {
if (mCount.equals("1")) {
LiveHttpUtil.setFrontTask("sendgift", mLiveUid, new HttpCallback() {
@@ -541,7 +715,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
});
} else {
ToastUtil.show(com.yunbao.live.R.string.only_one);
ToastUtil.show(mContext.getString(com.yunbao.live.R.string.only_one));
}
} else {
if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream) || liveGiftModel == null) {
@@ -549,7 +723,7 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
if (mLiveGuardInfo != null) {
if (liveGiftModel.getMark() == LiveGiftBean2.MARK_GUARD && mLiveGuardInfo.getMyGuardType() != Constants.GUARD_TYPE_YEAR) {
ToastUtil.show(com.yunbao.live.R.string.guard_gift_tip);
ToastUtil.show(mContext.getString(com.yunbao.live.R.string.guard_gift_tip));
return;
}
}
@@ -642,39 +816,45 @@ public class LiveGiftPopup extends AbsDialogFragment {
lianSongHandler.removeCallbacks(lianSongRunnable);
mShowLianBtn = false;
getCoin();
LiveNetManager.get(mContext)
.getGiftNamingInfo(liveGiftModel.getId() + "", new com.yunbao.common.http.base.HttpCallback<GiftNamingInfoModel>() {
@Override
public void onSuccess(GiftNamingInfoModel data) {
liveGiftModel = JSONObject.parseObject(GsonUtils.toJson(data), LiveGiftBean.class);
if (!TextUtils.isEmpty(liveGiftModel.getNamingLiveuid()) &&
!TextUtils.isEmpty(liveGiftModel.getNamingUid()) &&
!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") &&
!TextUtils.equals(liveGiftModel.getNamingUid(), "0")) {
namingLayout.setVisibility(View.VISIBLE);
ImgLoader.display(mContext, liveGiftModel.getNamingLiveAvatar(), namingAvatar);
StringBuffer namingNameText = new StringBuffer();
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
namingNameText.append("获取冠名:")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
if (TextUtils.equals(data.getNamingStatus(), "1")) {
liveGiftModel = JSONObject.parseObject(GsonUtils.toJson(data), LiveGiftBean.class);
if (!TextUtils.isEmpty(liveGiftModel.getNamingLiveuid()) &&
!TextUtils.isEmpty(liveGiftModel.getNamingUid()) &&
!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") &&
!TextUtils.equals(liveGiftModel.getNamingUid(), "0")) {
namingLayout.setVisibility(View.VISIBLE);
ImgLoader.display(mContext, liveGiftModel.getNamingLiveAvatar(), namingAvatar);
StringBuffer namingNameText = new StringBuffer();
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
namingNameText.append("获取冠名:")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
} else {
namingNameText.append("Get title: ")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
}
namingNameText.append(mContext.getText(com.yunbao.live.R.string.title_anchor))
.append(liveGiftModel.getNamingLiveName())
.append(" ")
.append(mContext.getText(com.yunbao.live.R.string.the_title_financier))
.append(" ")
.append(liveGiftModel.getNamingUserName());
namingName.setText(namingNameText.toString());
} else {
namingNameText.append("Get title: ")
.append(liveGiftModel.getNamingUserCoin())
.append(" ");
namingLayout.setVisibility(View.GONE);
}
namingNameText.append(mContext.getText(com.yunbao.live.R.string.title_anchor))
.append(liveGiftModel.getNamingLiveName())
.append(" ")
.append(mContext.getText(com.yunbao.live.R.string.the_title_financier))
.append(" ")
.append(liveGiftModel.getNamingUserName());
namingName.setText(namingNameText.toString());
} else {
namingLayout.setVisibility(View.GONE);
}
}
@Override
@@ -731,7 +911,9 @@ public class LiveGiftPopup extends AbsDialogFragment {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveGiftItemEvent(LiveGiftItemEvent event) {
liveGiftModel = event.getLiveGiftModel();
MobclickAgent.onEvent(mContext, "gif_list_choose", "用户选中某个礼物:" + liveGiftModel.getName());
updateOverlayVisibility();
if (!TextUtils.isEmpty(liveGiftModel.getNamingLiveuid()) &&
!TextUtils.isEmpty(liveGiftModel.getNamingUid()) &&
!TextUtils.equals(liveGiftModel.getNamingLiveuid(), "0") &&
@@ -759,8 +941,10 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
if (liveGiftModel.getType() == 7) {
MobclickAgent.onEvent(mContext, "gif_list_blind_box", "用户点开礼物列表盲盒");
iconArrow.setVisibility(View.GONE);
showBlindProgress(liveGiftModel.getBlind_box_type());
description.setTag(liveGiftModel.getBlind_box_type());
} else {
blindBox.setVisibility(View.INVISIBLE);
mCount = DEFAULT_COUNT;
@@ -785,6 +969,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
if (!TextUtils.isEmpty(liveGiftModel.getOperateImage())) {
operateImage.setVisibility(View.VISIBLE);
ImgLoader.display(getContext(), liveGiftModel.getOperateImage(), operateImage);
} else {
operateImage.setVisibility(View.GONE);
}
}
@@ -916,12 +1102,12 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
if (!TextUtils.isEmpty(event.getDressName()) && !TextUtils.isEmpty(event.getDressMsg())) {
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability2), event.getGiftname(), event.getDressName());
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability2), WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en(),WordUtil.isNewZh()? event.getDressName():event.getDress_nameen());
stringBuilder.append(boxBlindMsg);
int dressNameIndex = boxBlindMsg.indexOf(event.getDressName());
int dressNameSize = event.getDressName().length();
int giftNameIndex = boxBlindMsg.indexOf(event.getGiftname());
int giftNameSize = event.getGiftname().length();
int dressNameIndex = boxBlindMsg.indexOf(WordUtil.isNewZh()? event.getDressName():event.getDress_nameen());
int dressNameSize =(WordUtil.isNewZh()? event.getDressName():event.getDress_nameen()).length();
int giftNameIndex = boxBlindMsg.indexOf(WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en());
int giftNameSize = (WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en()).length();
stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getDressColour())),
dressNameIndex,
dressNameIndex + dressNameSize,
@@ -933,14 +1119,17 @@ public class LiveGiftPopup extends AbsDialogFragment {
stringBuilders.add(stringBuilder);
} else {
SpannableStringBuilder stringBuilder = new SpannableStringBuilder();
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability3), event.getGiftname());
String boxBlindMsg = String.format(mContext.getString(R.string.random_availability3), WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en());
stringBuilder.append(boxBlindMsg);
int giftNameIndex = boxBlindMsg.indexOf(event.getGiftname());
int giftNameSize = event.getGiftname().length();
stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getGiftColour())),
giftNameIndex,
giftNameIndex + giftNameSize,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
if (!TextUtils.isEmpty(event.getGiftname_en())){
int giftNameIndex = boxBlindMsg.indexOf(WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en());
int giftNameSize = (WordUtil.isNewZh()?event.getGiftname():event.getGiftname_en()).length();
stringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor(event.getGiftColour())),
giftNameIndex,
giftNameIndex + giftNameSize,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
stringBuilders.add(stringBuilder);
}
@@ -1168,12 +1357,15 @@ public class LiveGiftPopup extends AbsDialogFragment {
if (goldText != null) {
goldText.setText(goldCoin);
}
if (!mGiftBean.getSwf().contains("svga")) {
showLianBtn();
}
if (mGiftBean.getType() == 7) {
showLianBtn();
}
// //刷新包裹列表wrap_gift_num -1:表示数量没有变化
// mObjGiftSendback = obj;
isGetNewWrap = true;
@@ -1231,6 +1423,8 @@ public class LiveGiftPopup extends AbsDialogFragment {
@Override
public void onConfirmClick(Dialog dialog, String content) {
forwardMyCoin(0);
MobclickAgent.onEvent(mContext, "user_to_recharge", "app内任意提示用户余额不足 用户充值点了提示里面的去充值");
}
}).build().show();
} else {
@@ -1240,4 +1434,15 @@ public class LiveGiftPopup extends AbsDialogFragment {
}
}
private void updateOverlayVisibility() {
/* if (
blindBox.getVisibility() == View.VISIBLE ||
operateImage.getVisibility() == View.VISIBLE ||
namingLayout.getVisibility() == View.VISIBLE
) {
overlay.setVisibility(View.VISIBLE);
} else {
overlay.setVisibility(View.GONE);
}*/
}
}

View File

@@ -31,6 +31,7 @@ import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.adapter.GuardRightAdapter;
@@ -260,10 +261,10 @@ public class LiveGuardBuyDialogFragment extends AbsDialogFragment implements Vie
DialogUitl.showSimpleTipDialog(mContext,mContext.getString(R.string.guard_buy_tip));
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_YEAR && mTargetBuyBean.getType() == Constants.GUARD_TYPE_DAY) {
DialogUitl.showSimpleTipDialog(mContext, "您為當前主播的年守護無法開通周守護");
DialogUitl.showSimpleTipDialog(mContext, WordUtil.isNewZh()?"您為當前主播的年守護無法開通周守護":"Your annual guardian for the current anchor cannot be opened weekly guardian");
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_YEAR && mTargetBuyBean.getType() == Constants.GUARD_TYPE_MONTH) {
DialogUitl.showSimpleTipDialog(mContext, "您為當前主播的年守護無法開通月守護");
DialogUitl.showSimpleTipDialog(mContext, WordUtil.isNewZh()?"您為當前主播的年守護無法開通月守護":"The year guard for your current anchor cannot be opened");
return;
} else {
if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_MONTH
@@ -277,7 +278,7 @@ public class LiveGuardBuyDialogFragment extends AbsDialogFragment implements Vie
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_DAY
&& mTargetBuyBean.getType() == Constants.GUARD_TYPE_MONTH) {
DialogUitl.showSimpleDialog(mContext, "您為當前主播的周守護,開通月守護將覆蓋您的周守護時長,是否開通?", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh()?"您為當前主播的周守護,開通月守護將覆蓋您的周守護時長,是否開通?":"You are the weekly guardian of the current anchor. Opening the monthly guardian will cover your weekly guardian time. Is it open?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
doBuyGuard();
@@ -286,7 +287,7 @@ public class LiveGuardBuyDialogFragment extends AbsDialogFragment implements Vie
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_DAY
&& mTargetBuyBean.getType() == Constants.GUARD_TYPE_YEAR) {
DialogUitl.showSimpleDialog(mContext, "您為當前主播的周守護,開通年守護將覆蓋您的周守護時長,是否開通?", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh()?"您為當前主播的周守護,開通年守護將覆蓋您的周守護時長,是否開通?":"You are the weekly guardian of the current anchor, and the opening year guardian will cover your weekly guardian time. Is it open?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
doBuyGuard();
@@ -307,7 +308,7 @@ public class LiveGuardBuyDialogFragment extends AbsDialogFragment implements Vie
return;
}
DialogUitl.showSimpleDialog(mContext,
String.format(mContext.getString(R.string.guard_buy_tip_3), mTargetBuyBean.getCoin(), mCoinName, mTargetBuyBean.getShopName(getContext())),
String.format(WordUtil.isNewZh()?"您將花費%1$s%2$s為主播開通%3$s":"You will spend%1$s%2$s to open%3$s for the anchor", mTargetBuyBean.getCoin(), mCoinName, mTargetBuyBean.getShopName(getContext())),
new DialogUitl.SimpleCallback() {
@Override

View File

@@ -45,6 +45,7 @@ import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
@@ -190,7 +191,8 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
mWebView.setLayoutParams(params);
}
String url = bundle.getString("url");
url += "&anchorUid=" + mLiveUid+"&stream="+mStream;
url += "&anchorUid=" + mLiveUid+"&stream="+mStream+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
Log.e("H5--半屏",url);
mWebView.loadUrl(url);
mWebView.setWebViewClient(new WebViewClient() {
@Override
@@ -348,7 +350,7 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
return;
}
if (TextUtils.equals(roomId, event.getLiveId())) {
ToastUtil.show(R.string.current_live_room);
ToastUtil.show(mContext.getString(R.string.current_live_room));
dismiss();
} else {
//看直播
@@ -370,7 +372,7 @@ public class LiveHDDialogFragment extends AbsDialogFragment {
UserBean u = CommonAppConfig.getInstance().getUserBean();
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname="
+ u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&uid="
+ CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&active=" + event.getData() + "&anchorUid=" + mLiveUid;
+ CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&active=" + event.getData() + "&anchorUid=" + mLiveUid+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
ZhuangBanActivity.forward(mContext, url, false,0);
}

View File

@@ -27,6 +27,7 @@ import android.widget.RadioGroup;
import androidx.fragment.app.FragmentActivity;
import com.blankj.utilcode.util.GsonUtils;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.NobleTrumpetModel;
@@ -39,6 +40,7 @@ import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.AtTextWatcher;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
@@ -143,6 +145,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
MobclickAgent.onEvent(mContext, "chat_btn_enter", "用户输入文字");
if (s.length() == 0) {
mMyRadioButton.doChecked(false);
} else {
@@ -190,6 +193,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
ViewClicksAntiShake.clicksAntiShake(mRootView.findViewById(R.id.ai_te), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "chat_btn_at", "用户点聊天框上的艾特");
Intent intent = new Intent(getActivity(), OlineListActivity.class);
intent.putExtra("liveID", mLiveUid);
intent.putExtra("stream", bundle.getString(Constants.LIVE_STREAM));
@@ -211,6 +215,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onClick(View v) {
MobclickAgent.onEvent(mContext, "chat_btn_seed_msg", "用户点发送按钮");
sendMessage();
}
@@ -218,7 +223,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
private void sendMessage() {
String content = mInput.getText().toString().trim();
if (TextUtils.isEmpty(content)) {
ToastUtil.show(R.string.cannot_be_empty);
ToastUtil.show(mContext.getString(R.string.cannot_be_empty));
return;
}
switch (messageType) {
@@ -240,7 +245,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
}
});
} else {
ToastUtil.show(R.string.enough_speakers);
ToastUtil.show(mContext.getString(R.string.enough_speakers));
// dismiss();
}
@@ -318,10 +323,12 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
mInput.setHint(mHint2);
messageType = SendMessageType.GENERALMESSAGE;
} else if (radioButton.getId() == R.id.btn_1) {
MobclickAgent.onEvent(mContext, "chat_btn_wind", "用户点输入框上飘屏按钮");
radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(popupScreenP, null, null, null);
mInput.setHint(mHint1);
messageType = SendMessageType.POPUPSCREEN;
} else {
MobclickAgent.onEvent(mContext, "chat_btn_trumpet", "用户点输入框上全站喇叭按钮");
radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(worldHornP, null, null, null);
mInput.setHint(String.format(mContext.getString(R.string.whole_station_horn_hint), trumpetNum + ""));
messageType = SendMessageType.WORLDHORN;
@@ -378,7 +385,7 @@ public class LiveInputDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
}

View File

@@ -302,7 +302,7 @@ public class LiveLinkMicListDialogFragment extends AbsDialogFragment implements
private void searchOnLineAnchor() {
String key = mEditText.getText().toString().trim();
if (TextUtils.isEmpty(key)) {
ToastUtil.show(R.string.content_empty);
ToastUtil.show(mContext.getString(R.string.content_empty));
return;
}
LiveHttpUtil.cancel(LiveHttpConsts.LIVE_PK_SEARCH_ANCHOR);

View File

@@ -4,6 +4,7 @@ import android.app.ActionBar;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
@@ -20,22 +21,23 @@ import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.LinkMicUserBean;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.http.API;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.ResponseModel;
import com.yunbao.common.manager.MicUserManager;
import com.yunbao.common.manager.MicedUserManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.adapter.AnchorUserMicInfoAdapter;
import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.common.bean.LiveUserGiftBean;
import com.yunbao.common.bean.MicUserBean;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.utils.LiveImDeletUtil;
import com.yunbao.common.utils.MicStatusManager;
import java.util.ArrayList;
import java.util.Arrays;
@@ -57,19 +59,15 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
private AnchorUserMicInfoAdapter userMicInfoAdapter;
private String mLiveUid;
private String stream;
private LiveGuardInfo mLiveGuardInfo;
public static LiveActivity activity = null;
public eightbitlab.com.blurview.BlurView blurView;
public TextView listMicbtn, requestMicBtn, inviteMicBtn, mDisconnectMic;
private TextView mNoMoreDesc;
private String Tips = "1";
private String type = "guanzhong";
View mOpenMicLayout, no_more;
View mOpenMicBtn;
private TreeMap<String, LinkMicUserBean> mMicQueueList = new TreeMap<>();
private List<LiveUserGiftBean> mAudienceList = new ArrayList<>();
private LiveImDeletUtil liveImDeletUtil;
private OnMicListener micListener;
@Override
@@ -96,9 +94,6 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
window.setAttributes(params);
}
public void setLiveGuardInfo(LiveGuardInfo info) {
mLiveGuardInfo = info;
}
public void setMicQueueList(TreeMap<String, LinkMicUserBean> mMicQueueList) {
this.mMicQueueList = mMicQueueList;
@@ -141,8 +136,6 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
if (bundle == null) {
return;
}
liveImDeletUtil = new LiveImDeletUtil();
mLiveUid = bundle.getString(Constants.LIVE_UID);
stream = bundle.getString(Constants.STREAM);
listMicbtn = mRootView.findViewById(R.id.audience_btn);
@@ -151,36 +144,46 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
mOpenMicBtn = mRootView.findViewById(R.id.open_mic);
mNoMoreDesc = mRootView.findViewById(R.id.no_more_desc);
Tips = bundle.getString("By");
requestMicBtn = mRootView.findViewById(R.id.guard_btn);
mDisconnectMic = mRootView.findViewById(R.id.apply_btn);
inviteMicBtn = mRootView.findViewById(R.id.fans_btn);
if (!WordUtil.isNewZh()) {
listMicbtn.setText("connection");
requestMicBtn.setText("apply list");
mDisconnectMic.setText("apply");
inviteMicBtn.setText("invite");
((TextView) mRootView.findViewById(R.id.title)).setText("Open the voice permission");
((TextView) mRootView.findViewById(R.id.des)).setText("fan level 5 or above can apply for voice");
}
listMicbtn.setOnClickListener(view -> {
if (!MicStatusManager.getInstance().isAnchorOpenRoom()) {
return;
}
Tips = "1";
//
userMicInfoAdapter.clearData();
Up();
type = "guanzhong";
mRefreshView.initData();
});
requestMicBtn = mRootView.findViewById(R.id.guard_btn);
requestMicBtn.setOnClickListener(view -> {
if (!MicStatusManager.getInstance().isAnchorOpenRoom()) {
return;
}
Tips = "2";
Up();
type = "guard";
mRefreshView.initData();
});
inviteMicBtn = mRootView.findViewById(R.id.fans_btn);
inviteMicBtn.setVisibility(View.VISIBLE);
inviteMicBtn.setOnClickListener(view -> {
if (!MicStatusManager.getInstance().isAnchorOpenRoom()) {
return;
}
Tips = "3";
Up();
type = "fans";
mRefreshView.initData();
Up();
});
mOpenMicBtn.setOnClickListener(v -> {
API.get().pdLiveApi(mContext)
@@ -194,7 +197,7 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
mRefreshView.setVisibility(View.VISIBLE);
mDisconnectMic.setVisibility(View.VISIBLE);
MicStatusManager.getInstance().setAnchorOpenRoom(true);
mRefreshView.initData();
// mRefreshView.initData();
}
}, Throwable::printStackTrace)
.isDisposed();
@@ -202,17 +205,20 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
mRefreshView = mRootView.findViewById(R.id.refreshView);
view_no = mRootView.findViewById(R.id.view_no);
mDisconnectMic = mRootView.findViewById(R.id.apply_btn);
mDisconnectMic.setBackgroundResource(R.drawable.background_eb6877);
mDisconnectMic.setText(R.string.close_mic);
mDisconnectMic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogUitl.showSimpleDialog(mContext, "是否確認關閉語音連麥", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh() ? "是否確認關閉語音連麥" : "Whether to disable the voice", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
MicStatusManager.getInstance().closeMic(mContext);
MicUserManager.get().removeAllMicUserList();
LiveMicAnchorDialogFragment.this.dismiss();
MicedUserManager.get().removeAllMicUserList();
MicUserManager.get().removeAllMicUserList();
}
});
}
@@ -221,10 +227,11 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
userMicInfoAdapter.setLiveUid(mLiveUid);
userMicInfoAdapter.setRefreshView(mRefreshView);
Up();
mRefreshView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
mRefreshView.setDataHelper(new CommonRefreshView.DataHelper<MicUserBean>() {
mRefreshView.setDataHelper(new CommonRefreshView.DataHelper<UserBean>() {
@Override
public RefreshAdapter<MicUserBean> getAdapter() {
public RefreshAdapter<UserBean> getAdapter() {
userMicInfoAdapter.notifyDataSetChanged();
return userMicInfoAdapter;
}
@@ -232,70 +239,109 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
@Override
public void loadData(int p, HttpCallback callback) {
Log.e("tag111", p + "ssss");
LiveHttpUtil.getMicList(mLiveUid, p, callback);
LiveHttpUtil.getUserList(mLiveUid, stream, "guanzhong", p, callback);
pg = p;
if (p == 1) {
no_more.setVisibility(View.VISIBLE);
mRefreshView.setVisibility(View.GONE);
}
}
@Override
public List<MicUserBean> processData(String[] info) {
public List<UserBean> processData(String[] info) {
Log.e("tag222", Tips + "ssss" + MicStatusManager.getInstance().toString());
JSONObject obj = JSON.parseObject(info[0]);
List<MicUserBean> data = new ArrayList<>();
List<UserBean> data = new ArrayList<>();
if (TextUtils.equals(Tips, "2")) {
if (Tips.equals("2")) {
for (String uid : mMicQueueList.keySet()) {
LinkMicUserBean userBean = mMicQueueList.get(uid);
MicUserBean bean = new MicUserBean();
bean.setAvatar(userBean.getAvatar());
bean.setId(uid);
bean.setUserNiceName(userBean.getUname());
bean.setSex(userBean.getSex());
bean.setDress_avatar(userBean.getDress_avatar());
bean.setLevel(userBean.getLevel());
bean.setType(AnchorUserMicInfoAdapter.TYPE_MIC_REQUEST);
data.add(bean);
}
} else if ("3".equals(Tips)) {
for (LiveUserGiftBean userBean : mAudienceList) {
MicUserBean bean = new MicUserBean();
bean.setAvatar(userBean.getAvatar());
bean.setId(userBean.getId());
bean.setUserNiceName(userBean.getUserNiceName());
bean.setSex(userBean.getSex());
bean.setDress_avatar(userBean.getDress().getAvatar_frame());
bean.setLevel(userBean.getLevel());
bean.setType(AnchorUserMicInfoAdapter.TYPE_MIC_INVITE);
data.add(bean);
}
mRefreshView.setNotLoadMore();
} else {
data = JSON.parseArray(obj.getString("userlist"), MicUserBean.class);
for (MicUserBean bean : data) {
bean.setType(AnchorUserMicInfoAdapter.TYPE_MIC_LIST);
}
if (data.size() != 0) {
data.remove(0);
}
}
if (data.size() > 0 && pg == 1) {
nums = 0;
view_no.setVisibility(View.GONE);
if (nums == 0) {
view_no.setVisibility(View.VISIBLE);
userMicInfoAdapter.clearData();
data = MicUserManager.get().getMicUserList();
if (data.size() == 0) {
no_more.setVisibility(View.VISIBLE);
mRefreshView.setVisibility(View.GONE);
}else {
mRefreshView.setVisibility(View.VISIBLE);
no_more.setVisibility(View.GONE);
}
mRefreshView.mRecyclerView.getRecycledViewPool().setMaxRecycledViews(0, data.size());
} else if (TextUtils.equals(Tips, "3")) {
data = JSON.parseArray(obj.getString("userlist"), UserBean.class);
for (UserBean bean : data) {
bean.setTypeMic(AnchorUserMicInfoAdapter.TYPE_MIC_INVITE);
for (UserBean model : MicedUserManager.get().getMicUserList()) {
if (!bean.isMicList() && TextUtils.equals(bean.getId(), model.getId())) {
bean.setMicList(true);
}
}
}
if (pg == 1 && data.size() == 0) {
no_more.setVisibility(View.VISIBLE);
mRefreshView.setVisibility(View.GONE);
}
if (data.size() > 0 && pg == 1) {
nums = 0;
view_no.setVisibility(View.GONE);
if (nums == 0) {
view_no.setVisibility(View.VISIBLE);
}
mRefreshView.mRecyclerView.getRecycledViewPool().setMaxRecycledViews(0, data.size());
mRefreshView.setVisibility(View.VISIBLE);
no_more.setVisibility(View.GONE);
}
} else if (TextUtils.equals(Tips, "1")) {
userMicInfoAdapter.clearData();
data = MicedUserManager.get().getMicUserList();
if (data.size() == 0) {
no_more.setVisibility(View.VISIBLE);
mRefreshView.setVisibility(View.GONE);
}else {
mRefreshView.setVisibility(View.VISIBLE);
no_more.setVisibility(View.GONE);
}
mRefreshView.mRecyclerView.getRecycledViewPool().setMaxRecycledViews(0, data.size());
mRefreshView.setVisibility(View.VISIBLE);
no_more.setVisibility(View.GONE);
}
// if (Tips.equals("2")) {
// for (String uid : mMicQueueList.keySet()) {
// LinkMicUserBean userBean = mMicQueueList.get(uid);
// MicUserBean bean = new MicUserBean();
// bean.setAvatar(userBean.getAvatar());
// bean.setId(uid);
// bean.setUserNiceName(userBean.getUname());
// bean.setSex(userBean.getSex());
// bean.setDress_avatar(userBean.getDress_avatar());
// bean.setLevel(userBean.getLevel());
// bean.setType(AnchorUserMicInfoAdapter.TYPE_MIC_REQUEST);
// data.add(bean);
// }
// } else if ("3".equals(Tips)) {
// for (LiveUserGiftBean userBean : mAudienceList) {
// MicUserBean bean = new MicUserBean();
// bean.setAvatar(userBean.getAvatar());
// bean.setId(userBean.getId());
// bean.setUserNiceName(userBean.getUserNiceName());
// bean.setSex(userBean.getSex());
// bean.setDress_avatar(userBean.getDress().getAvatar_frame());
// bean.setLevel(userBean.getLevel());
// bean.setType(AnchorUserMicInfoAdapter.TYPE_MIC_INVITE);
// data.add(bean);
// }
// mRefreshView.setNotLoadMore();
// } else {
// if (data.size() != 0) {
// data.remove(0);
// }
// }
return data;
}
@Override
public void onRefreshSuccess(List<MicUserBean> list, int listCount) {
public void onRefreshSuccess(List<UserBean> list, int listCount) {
}
@@ -305,7 +351,7 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
}
@Override
public void onLoadMoreSuccess(List<MicUserBean> loadItemList, int loadItemCount) {
public void onLoadMoreSuccess(List<UserBean> loadItemList, int loadItemCount) {
Log.e("tag333", "" + nums);
}
@@ -313,7 +359,9 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
public void onLoadMoreFailure() {
}
});
initData();
}
@Override
@@ -323,7 +371,6 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
@Override
public void onDestroy() {
mLiveGuardInfo = null;
LiveHttpUtil.cancel("getUserLists");
super.onDestroy();
}
@@ -334,19 +381,22 @@ public class LiveMicAnchorDialogFragment extends AbsDialogFragment implements Vi
requestMicBtn.setTextColor(Color.parseColor("#ff646464"));
inviteMicBtn.setTextColor(Color.parseColor("#ff646464"));
mNoMoreDesc.setText(R.string.no_more_mic);
type = "guanzhong";
} else if (Tips.equals("2")) {
listMicbtn.setTextColor(Color.parseColor("#ff646464"));
requestMicBtn.setTextColor(Color.parseColor("#fff6f7fb"));
inviteMicBtn.setTextColor(Color.parseColor("#ff646464"));
mNoMoreDesc.setText("當前沒有人申請");
type = "guard";
if (!WordUtil.isNewZh()) {
mNoMoreDesc.setText("No one has applied at the moment");
}
} else if (Tips.equals("3")) {
listMicbtn.setTextColor(Color.parseColor("#ff646464"));
requestMicBtn.setTextColor(Color.parseColor("#ff646464"));
inviteMicBtn.setTextColor(Color.parseColor("#fff6f7fb"));
mNoMoreDesc.setText("當前沒有觀眾");
type = "fans";
if (!WordUtil.isNewZh()) {
mNoMoreDesc.setText("No audience at the moment");
}
}
}

View File

@@ -4,6 +4,7 @@ import android.Manifest;
import android.app.ActionBar;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
@@ -27,6 +28,7 @@ import com.yunbao.common.http.HttpClient;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
@@ -149,23 +151,32 @@ public class LiveMicUserDialogFragment extends AbsDialogFragment implements View
apply_btn = mRootView.findViewById(R.id.apply_btn);
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_DEFAULT) {
apply_btn.setBackgroundResource(R.drawable.background_0fdab8);
apply_btn.setText(R.string.apply_for_lianmai);
apply_btn.setText(mContext.getString(R.string.apply_for_lianmai));
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_REQUEST) {
apply_btn.setBackgroundResource(R.drawable.background_00a0e9);
apply_btn.setText(R.string.cancel_application);
apply_btn.setText(mContext.getString(R.string.cancel_application));
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
apply_btn.setBackgroundResource(R.drawable.background_eb6877);
apply_btn.setText(R.string.quit_mic);
apply_btn.setText(mContext.getString(R.string.quit_mic));
}
apply_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_DEFAULT) {
LiveAudienceActivity.mProcessResultUtil.requestPermissions(new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO
}, new Runnable() {
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permissions=new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.RECORD_AUDIO
};
}else{
permissions=new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO
};
}
LiveAudienceActivity.mProcessResultUtil.requestPermissions(permissions, new Runnable() {
@Override
public void run() {
@@ -267,8 +278,12 @@ public class LiveMicUserDialogFragment extends AbsDialogFragment implements View
});
} else if (MicStatusManager.getInstance().getMicStatus() == MicStatusManager.MIC_TYPE_OPEN) {
String content="連麥中,退出將斷開語音連麥!";
if(!WordUtil.isNewZh()){
content="Connect, exit will disconnect voice connect!";
}
//退出连麦
DialogUitl.showSimpleDialog(mContext, "連麥中,退出將斷開語音連麥!", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext,content , new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
Log.e("ry", "退出112");

View File

@@ -25,16 +25,21 @@ import android.widget.TextView;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.LiveAnchorSayModel;
import com.yunbao.common.bean.CustomSidebarInfoModel;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.dialog.SudGameListPopup;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.LiveAnchorMessageCustomPopup;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.interfaces.LiveFunctionClickListener;
import java.util.List;
/**
* Created by cxf on 2018/10/9.
*/
@@ -121,13 +126,14 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
findViewById(R.id.live_tool_call_me).setOnClickListener(this);
findViewById(R.id.live_tool_anchor_say).setOnClickListener(this);
findViewById(R.id.live_tool_qa).setOnClickListener(this);
findViewById(R.id.live_tool_game).setOnClickListener(this);
if (leave == 0) {
((ImageView) mLeaveView.findViewById(R.id.live_tool_leave_img)).setImageResource(R.mipmap.icon_leave);
((TextView) mLeaveView.findViewById(R.id.live_tool_leave_text)).setText(R.string.live_zslk);
((TextView) mLeaveView.findViewById(R.id.live_tool_leave_text)).setText(mContext.getString(R.string.live_zslk));
} else {
((ImageView) mLeaveView.findViewById(R.id.live_tool_leave_img)).setImageResource(R.mipmap.icon_leave_p);
((TextView) mLeaveView.findViewById(R.id.live_tool_leave_text)).setText(R.string.live_zslk1);
((TextView) mLeaveView.findViewById(R.id.live_tool_leave_text)).setText(mContext.getString(R.string.live_zslk1));
}
mLiveRoomHandler = new LiveRoomHandler();
mLiveTimeTextView.setText(StringUtil.getDurationText(mAnchorLiveTime));
@@ -164,7 +170,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
mFunctionClickListener.onClick(LIVE_FUNC_CAMERA);
} else if (id == R.id.live_tool_leave) {
if (isPk) {
ToastUtil.show("PK中禁止离开");
ToastUtil.show(WordUtil.isNewZh()?"PK中禁止离开":"Do not leave in PK");
return;
}
mFunctionClickListener.onClick(LIVE_FUNC_ZSLK);
@@ -202,6 +208,32 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
-> mLiveRoomHandler.postDelayed(() -> ((LiveRyAnchorActivity) (mContext)).mLiveRoomViewHolder.initAnchorSayData(), 1000)).showDialog();
} else if (id == R.id.live_tool_qa) {
new LiveAnchorCreateQADialog(mContext).setLiveUid(liveUid).showDialog();
} else if (id == R.id.live_tool_game) {
LiveNetManager.get(mContext)
.getCustomSidebarInfo("1", new HttpCallback<List<CustomSidebarInfoModel>>() {
@Override
public void onSuccess(List<CustomSidebarInfoModel> data) {
for (CustomSidebarInfoModel datum : data) {
if (datum.getType().equals("6")) {
new XPopup.Builder(mContext)
.enableDrag(false)
.moveUpToKeyboard(false)
// .dismissOnTouchOutside(false)
// .dismissOnBackPressed(false)
.asCustom(new SudGameListPopup(mContext, 0, datum.getChild(), liveUid))
.show();
return;
}
}
}
@Override
public void onError(String error) {
}
});
dismiss();
}
}

View File

@@ -1,5 +1,7 @@
package com.yunbao.live.dialog;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.app.Dialog;
import android.os.Bundle;
import android.text.Html;
@@ -19,6 +21,7 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.makeramen.roundedimageview.RoundedImageView;
@@ -30,10 +33,13 @@ import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -42,8 +48,6 @@ import com.yunbao.live.adapter.LiveNewGuardBuyItemsAdapter;
import com.yunbao.live.bean.GuardBuyBean;
import com.yunbao.live.bean.GuardRightBean;
import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import java.util.ArrayList;
import java.util.List;
@@ -141,7 +145,6 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
mBack = mRootView.findViewById(R.id.guard_back);
relativeLayout = mRootView.findViewById(R.id.guard_relativeLayout);
//iconCover.setImageResource(R.drawable.guardian_img_wings);
mBtnBuy.setOnClickListener(this);
submit.setOnClickListener(this);
@@ -172,7 +175,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
mAncherIcon = bundle.getString(Constants.LIVE_ANCHER_ICON);
mUserIcon = bundle.getString(Constants.USER_ICON);
showBuyView = bundle.getBoolean("showBuyView", true);
String coinName =mContext.getString(R.string.diamond);
String coinName = mContext.getString(R.string.diamond);
mCoinName = coinName;
isEmpty = bundle.getBoolean("guard", true);
// mCoinNameTextView.setText(mContext.getString(R.string.guard_my) + coinName + ":");
@@ -197,13 +200,13 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
mGuardRightAdapter.setList(mRightList);
buyItemsAdapter.notifyDataSetChanged();
if(bundle.getString("by")!=null){
if (bundle.getString("by") != null) {
// if(bundle.getString("by").equals("1")){
// refreshList(Integer.parseInt(bundle.getString("by")));
// }else {
refreshList(Integer.parseInt(bundle.getString("by")));
refreshList(Integer.parseInt(bundle.getString("by")));
// }
}else{
} else {
refreshList(1);
}
@@ -222,7 +225,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
int guardType = mLiveGuardInfo.getMyGuardType();
if (guardType == Constants.GUARD_TYPE_NONE) {
if (isEmpty) {
iconCover.setImageResource(R.drawable.guardian_img_wings);
iconCover.setImageResource(R.mipmap.guardian_img_wings);
userIconOne.setVisibility(View.GONE);
userIconTwo.setVisibility(View.GONE);
} else {
@@ -233,9 +236,6 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
userIconTwo.setVisibility(View.VISIBLE);
}
// iconCover.setBackgroundResource(R.drawable.guardian_img_wings);
buy1.setVisibility(View.VISIBLE);
buy2.setVisibility(View.GONE);
} else {
@@ -325,18 +325,18 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
}
Log.d("ffffff", "" + mLiveGuardInfo.getMyGuardType() + " " + mTargetBuyBean.getType());
if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_MONTH && mTargetBuyBean.getType() == Constants.GUARD_TYPE_DAY) {
DialogUitl.showSimpleTipDialog(mContext,mContext.getString(R.string.guard_buy_tip));
DialogUitl.showSimpleTipDialog(mContext, mContext.getString(R.string.guard_buy_tip));
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_YEAR && mTargetBuyBean.getType() == Constants.GUARD_TYPE_DAY) {
DialogUitl.showSimpleTipDialog(mContext, "您為當前主播的年守護無法開通周守護");
DialogUitl.showSimpleTipDialog(mContext, WordUtil.isNewZh() ? "您為當前主播的年守護無法開通周守護" : "Your annual guardian for the current anchor cannot be opened weekly guardian");
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_YEAR && mTargetBuyBean.getType() == Constants.GUARD_TYPE_MONTH) {
DialogUitl.showSimpleTipDialog(mContext, "您為當前主播的年守護無法開通月守護");
DialogUitl.showSimpleTipDialog(mContext, WordUtil.isNewZh() ? "您為當前主播的年守護無法開通月守護" : "The year guard for your current anchor cannot be opened");
return;
} else {
if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_MONTH
&& mTargetBuyBean.getType() == Constants.GUARD_TYPE_YEAR) {
DialogUitl.showSimpleDialog(mContext,mContext.getString(R.string.guard_buy_tip_2), new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, mContext.getString(R.string.guard_buy_tip_2), new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
doBuyGuard();
@@ -345,7 +345,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_DAY
&& mTargetBuyBean.getType() == Constants.GUARD_TYPE_MONTH) {
DialogUitl.showSimpleDialog(mContext, "您為當前主播的周守護,開通月守護將覆蓋您的周守護時長,是否開通?", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh() ? "您為當前主播的周守護,開通月守護將覆蓋您的周守護時長,是否開通?" : "You are the weekly guardian of the current anchor. Opening the monthly guardian will cover your weekly guardian time. Is it open?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
doBuyGuard();
@@ -354,7 +354,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
return;
} else if (mLiveGuardInfo.getMyGuardType() == Constants.GUARD_TYPE_DAY
&& mTargetBuyBean.getType() == Constants.GUARD_TYPE_YEAR) {
DialogUitl.showSimpleDialog(mContext, "您為當前主播的周守護,開通年守護將覆蓋您的周守護時長,是否開通?", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh() ? "您為當前主播的周守護,開通年守護將覆蓋您的周守護時長,是否開通?" : "You are the weekly guardian of the current anchor, and the opening year guardian will cover your weekly guardian time. Is it open?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
doBuyGuard();
@@ -417,7 +417,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
bean = datum;
}
}
String str = String.format(mContext.getString(R.string.live_use_discount_content),
String str = String.format(WordUtil.getNewString(R.string.live_use_discount_content),
bean.getName(),
"###",//占位符
"###"
@@ -462,7 +462,7 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
private void buy() {
DialogUitl.showSimpleDialog(mContext,
String.format(mContext.getString(R.string.guard_buy_tip_3), mTargetBuyBean.getCoin(), mCoinName, mTargetBuyBean.getShopName(getContext())),
String.format(WordUtil.isNewZh() ? "您將花費%1$s%2$s為主播開通%3$s" : "You will spend%1$s%2$s to open%3$s for the anchor", mTargetBuyBean.getCoin() + "", mCoinName, mTargetBuyBean.getShopName(getContext())),
new DialogUitl.SimpleCallback() {
@Override
@@ -499,6 +499,20 @@ public class LiveNewGuardBuyDialogFragment extends AbsDialogFragment implements
}
((LiveActivity) mContext).sendBuyGuardMessage2(votes, guardNum, guardType, ancherName, liveuid);
dismiss();
} else if (code == 1002) {
DialogUitl.showSimpleDialog(mContext, msg, new DialogUitl.SimpleCallback2() {
@Override
public void onCancelClick() {
}
@Override
public void onConfirmClick(Dialog dialog, String content) {
dialog.dismiss();
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
});
return;
}
ToastUtil.show(msg);
}

View File

@@ -189,7 +189,7 @@ public class LiveNewGuardListDialogFragment extends AbsDialogFragment implements
userLayout.setVisibility(View.INVISIBLE);
}else {
GuardUserBean bean = list.get(0);
giftSvga.setImageResource(R.drawable.guardian_img_wings_p);
giftSvga.setImageResource(R.mipmap.guardian_img_wings_p);
ImgLoader.display(mContext, bean.getAvatar(), guardIcon);
guardIcon.setVisibility(View.VISIBLE);
userName.setText(bean.getUserNiceName());

View File

@@ -64,13 +64,7 @@ public class LiveNewRoomClassDialogFragment extends AbsDialogFragment implements
if (configBean != null) {
List<LiveClassBean> list1 = configBean.getLiveClass();
for (int i = 0; i < list1.size(); i++) {
if (!list1.get(i).getName().equals("New") &&
!list1.get(i).getName().equals("新秀") &&
!list1.get(i).getName().equals("熱門") &&
!list1.get(i).getName().equals("Hot") &&
!list1.get(i).getName().equals("男神") &&
!list1.get(i).getName().equals("Mr.Right")
) {
if(list1.get(i).getChannel_show()==1){
list.add(list1.get(i));
}
}

View File

@@ -12,14 +12,12 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.LiveRoomTypeBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.common.bean.LiveRoomTypeBean;
import java.util.ArrayList;
import java.util.Arrays;
@@ -81,15 +79,15 @@ public class LiveNewRoomTypeDialogFragment extends AbsDialogFragment implements
pwd.setOnClickListener(view -> select(false));
submit.setOnClickListener(view -> {
if (isSelectPublic) {
LiveRoomTypeBean bean = new LiveRoomTypeBean(0,mContext.getString(R.string.live_room_public));
if(mCallback!=null) {
LiveRoomTypeBean bean = new LiveRoomTypeBean(0, mContext.getString(R.string.live_room_public));
if (mCallback != null) {
mCallback.callback(bean);
}
} else {
for (LiveRoomTypeBean bean : mList) {
if (bean.getId() == Constants.LIVE_TYPE_PWD) {
bean.setChecked(true);
if(mCallback!=null) {
if (mCallback != null) {
mCallback.callback(bean);
}
break;
@@ -103,9 +101,8 @@ public class LiveNewRoomTypeDialogFragment extends AbsDialogFragment implements
private void initData() {
mList = new ArrayList<>();
ConfigBean configBean = CommonAppConfig.getInstance().getConfig();
Log.i("tag", configBean.toString());
String[][] liveType = configBean.getLiveType();
String[][] liveType = CommonAppConfig.getInstance().getLiveType();
if (liveType != null) {
Log.i("tag", Arrays.toString(liveType));
List<LiveRoomTypeBean> list = LiveRoomTypeBean.getLiveTypeList(liveType);

View File

@@ -22,6 +22,7 @@ import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -118,7 +119,7 @@ public class LiveNewWishListDialogFragment extends AbsDialogFragment implements
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
ToastUtil.show("修改成功");
ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
dismiss();
} else {
ToastUtil.show("修改失败" + (msg.isEmpty() ? "" : msg));

View File

@@ -31,12 +31,16 @@ import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.ToastUtil;
@@ -45,11 +49,10 @@ import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveReportActivity;
import com.yunbao.live.bean.ImpressBean;
import com.yunbao.live.custom.MyTextView;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.live.utils.LiveTextRender;
import org.greenrobot.eventbus.EventBus;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@@ -137,43 +140,7 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
DialogUitl.showSimpleDialog(mContext, "是否確認前往對方直播間?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
RongChatRoomClient.getInstance().quitChatRoom("g" + mLiveUid, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功");
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
}
});
V2TIMManager.getInstance().quitGroup("g" + mLiveUid, new V2TIMCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功" + mLiveUid);
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(int code, String desc) {
Log.i("tx", "退出失败");
}
});
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
@@ -182,7 +149,11 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
if (liveBean == null) {
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
dismiss();
}
@Override
@@ -457,7 +428,7 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
}
mFollowing = obj.getIntValue("isattention") == 1;
if (mFollowText != null) {
mFollowText.setText(mFollowing ?mContext.getString(R.string.following) :mContext.getString(R.string.follow));
mFollowText.setText(mFollowing ? mContext.getString(R.string.following) : mContext.getString(R.string.follow));
}
if (mFollowImage != null) {
mFollowImage.setImageDrawable(mFollowing ? mFollowDrawable : mUnFollowDrawable);
@@ -570,7 +541,7 @@ public class LiveOldUserDialogFragment extends AbsDialogFragment implements View
}
if (isAttention == 1 && mLiveUid.equals(mToUid)) {//关注了主播
((LiveActivity) mContext).sendSystemMessage(
CommonAppConfig.getInstance().getUserBean().getUserNiceName() +mContext.getString(R.string.live_follow_anchor));
CommonAppConfig.getInstance().getUserBean().getUserNiceName() + mContext.getString(R.string.live_follow_anchor));
}
}
};

View File

@@ -1,7 +1,6 @@
package com.yunbao.live.dialog;
import android.app.Dialog;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
@@ -15,7 +14,6 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.tabs.TabLayout;
import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.bean.PrankGiftBean;
import com.yunbao.common.bean.PrankHttpTurntableBean;
import com.yunbao.common.bean.PrankTurntableBean;
@@ -23,15 +21,18 @@ import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.adapter.LivePrankRecyclerAdapter;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
public class LivePrankDialogFragment extends AbsDialogFragment implements View.OnClickListener {
private TabLayout mTabLayout;
@@ -96,6 +97,11 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
mPrankRecyclerView.setAdapter(recyclerAdapter);
mCoinTextView.setOnClickListener(this);
mTurntableConfigImageView.setOnClickListener(this);
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
mPrankBtn.setText("保存設置");
} else {
mPrankBtn.setText("Save Settings");
}
recyclerAdapter.setOnItemClickListener(new OnItemClickListener<String>() {
@Override
public void onItemClick(String bean, int position) {
@@ -138,10 +144,17 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
mPrankBtn.setOnClickListener(view -> {
if ((int) view.getTag() == 1) {
if (giftBeans != null && giftBeans.size() >= 20) {
ToastUtil.show("可添加禮物數量達到上限");
if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
ToastUtil.show("可添加禮物數量達到上限");
}else {
ToastUtil.show("The maximum number of gifts that can be added has been ");
}
return;
}
GiftPopDialog dialog = new GiftPopDialog(mContext, new GiftPopDialog.ActionListener() {
GiftPopDialog dialog = new GiftPopDialog(mContext, new GiftPopDialog.ActionListener() {
@Override
public void onSelectGift(PrankGiftBean bean) {
@@ -167,8 +180,14 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
private void initTab() {
TabLayout.Tab turntable = mTabLayout.newTab();
TabLayout.Tab gift = mTabLayout.newTab();
turntable.setText("轉盤整蠱");
gift.setText("禮物整蠱");
if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
turntable.setText("轉盤整蠱");
gift.setText("禮物整蠱");
}else {
turntable.setText("Turntable prank");
gift.setText("Gift prank");
}
turntable.setTag(0);
gift.setTag(1);
mTabLayout.addTab(turntable);
@@ -185,14 +204,24 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
mGiftNotDate.setVisibility(View.GONE);
recyclerAdapter.setViewType(LivePrankRecyclerAdapter.TYPE_TURNTABLE);
mPrankBtn.setBackgroundResource(R.drawable.bg_live_prank_turntable_save);
mPrankBtn.setText("保存設置");
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
mPrankBtn.setText("保存設置");
} else {
mPrankBtn.setText("Save Settings");
}
mPrankBtn.setTag(0);
recyclerAdapter.clearList();
initTurntableData();
} else {
mTurntableConfigLayout.setVisibility(View.GONE);
mPrankBtn.setBackgroundResource(R.drawable.bg_live_prank_gift_set);
mPrankBtn.setText("添加禮物");
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
mPrankBtn.setText("添加禮物");
} else {
mPrankBtn.setText("Add gift");
}
mPrankBtn.setTag(1);
recyclerAdapter.clearList();
mGiftNotDate.setVisibility(View.VISIBLE);
@@ -217,7 +246,7 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onSuccess(PrankHttpTurntableBean data) {
setDate(data);
mCoinTextView.setText(data.getCoin()+"");
mCoinTextView.setText(data.getCoin() + "");
}
@Override
@@ -260,7 +289,7 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
}
@@ -296,8 +325,13 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
}
private void setPrankConfig() {
if(StringUtil.isEmpty(bean.getTurntable1(),bean.getTurntable2(), bean.getTurntable3(),bean.getTurntable4(),bean.getTurntable5(),bean.getTurntable6())){
ToastUtil.show("保存失败:所有转盘位置必填" );
if (StringUtil.isEmpty(bean.getTurntable1(), bean.getTurntable2(), bean.getTurntable3(), bean.getTurntable4(), bean.getTurntable5(), bean.getTurntable6())) {
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
ToastUtil.show("保存失败:所有转盘位置必填");
} else {
ToastUtil.show("Save failed: all turntable positions must be filled in");
}
return;
}
LiveNetManager.get(mContext).setAnchorPrankTurntable(
@@ -313,12 +347,21 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
new HttpCallback<Object>() {
@Override
public void onSuccess(Object data) {
ToastUtil.show("保存成功");
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
ToastUtil.show("保存成功");
} else {
ToastUtil.show("Save success");
}
}
@Override
public void onError(String error) {
ToastUtil.show("保存失败:" + error);
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
ToastUtil.show("保存失败:" + error);
} else {
ToastUtil.show("Save failed" + error);
}
}
}
);
@@ -335,23 +378,44 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
mTurntableConfigImageView.setImageResource(R.mipmap.special_icon_off);
}
} else if (id == R.id.switch2_btn) {
DialogUitl.showSimpleInputDialog(mContext, "請輸入數量", DialogUitl.INPUT_TYPE_NUMBER, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
try {
int coin = Integer.parseInt(content);
if (coin < 1000) {
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
DialogUitl.showSimpleInputDialog(mContext, "請輸入數量", DialogUitl.INPUT_TYPE_NUMBER, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
try {
int coin = Integer.parseInt(content);
if (coin < 1000) {
ToastUtil.show("最少1000鑽石");
return;
}
setCoin(Long.parseLong(content));
dialog.dismiss();
} catch (Exception e) {
e.printStackTrace();
ToastUtil.show("最少1000鑽石");
return;
}
setCoin(Long.parseLong(content));
dialog.dismiss();
} catch (Exception e) {
e.printStackTrace();
ToastUtil.show("最少1000鑽石");
}
}
});
});
} else {
DialogUitl.showSimpleInputDialog(mContext, "Please enter the quantity", DialogUitl.INPUT_TYPE_NUMBER, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
try {
int coin = Integer.parseInt(content);
if (coin < 1000) {
ToastUtil.show("Minimum requirement of 1000 diamonds");
return;
}
setCoin(Long.parseLong(content));
dialog.dismiss();
} catch (Exception e) {
e.printStackTrace();
ToastUtil.show("Minimum requirement of 1000 diamonds");
}
}
});
}
}
}
}

View File

@@ -223,11 +223,11 @@ public class LiveRedPackSendDialogFragment extends AbsDialogFragment implements
count = mEditCountPj.getText().toString().trim();
}
if (TextUtils.isEmpty(coin)) {
ToastUtil.show(R.string.red_pack_7);
ToastUtil.show(mContext.getString(R.string.red_pack_7));
return;
}
if (TextUtils.isEmpty(count)) {
ToastUtil.show(R.string.red_pack_8);
ToastUtil.show(mContext.getString(R.string.red_pack_8));
return;
}
String title = mEditTitle.getText().toString().trim();

View File

@@ -174,7 +174,7 @@ public class LiveTaskDialog extends AbsDialogPopupWindow {
if (loadDialog != null) {
loadDialog.dismiss();
}
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
}

View File

@@ -93,7 +93,7 @@ public class LiveTotalDialog extends AbsDialogFragment {
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
ToastUtil.show( mContext.getString(R.string.net_error));
}
});
} else {

View File

@@ -12,6 +12,7 @@ import com.yunbao.common.Constants;
import com.yunbao.common.bean.JsWishBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.views.WishlistWebViewHolder;
@@ -64,7 +65,7 @@ public class LiveTrickeryDialogFragment4Audience extends AbsDialogFragment {
if (mWishWebViewHolder == null) {
String url= CommonAppConfig.HOST + "/index.php?g=Appapi&m=Turntable&a=prank";
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
+ CommonAppConfig.getInstance().getToken() + "&anchor_id="+mLiveUid;
+ CommonAppConfig.getInstance().getToken() + "&anchor_id="+mLiveUid+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
Log.i("tag",url);
mWishWebViewHolder = new WishlistWebViewHolder(mContext, rlWebview, url);
mWishWebViewHolder.subscribeActivityLifeCycle();

View File

@@ -24,6 +24,7 @@ import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity;
import com.tencent.imsdk.v2.V2TIMCallback;
import com.tencent.imsdk.v2.V2TIMManager;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.FansModel;
@@ -32,14 +33,17 @@ import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.OlineUserlistModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.NobleUtil;
import com.yunbao.common.utils.RouteUtil;
@@ -52,9 +56,6 @@ import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveReportActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.live.utils.LiveTextRender;
import org.greenrobot.eventbus.EventBus;
@@ -249,7 +250,18 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
mLvVal = mRootView.findViewById(R.id.user_card_lv_val);
mNobleIconLayout.setOnClickListener(this);
mSetting.setOnClickListener(this);
mHonorLayout.setOnClickListener(v -> forwardHomePage());
mHonorLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!isAnchor) {
MobclickAgent.onEvent(mContext, "user_avatar_honor", "荣誉墙按钮");
} else {
MobclickAgent.onEvent(mContext, "anchor_avatar_honor", "主播荣誉墙");
}
forwardHomePage();
}
});
//用户名片连点三次粉丝弹出视频debug窗
/*mFansVal.setOnClickListener(new View.OnClickListener() {
@@ -610,6 +622,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
* 跳转到个人主页
*/
private void forwardHomePage() {
dismiss();
Constants.mStream = mStream;
RouteUtil.forwardUserHome(mContext, mToUid, true, mLiveUid, 0);
@@ -627,44 +640,8 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
DialogUitl.showSimpleDialog(mContext, mContext.getString(R.string.party_studio), new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveUserDialogFragment.this.dismiss();
RongChatRoomClient.getInstance().quitChatRoom("g" + mLiveUid, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功");
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
}
});
V2TIMManager.getInstance().quitGroup("g" + mLiveUid, new V2TIMCallback() {
@Override
public void onSuccess() {
Log.i("tx", "退出成功" + mLiveUid);
//连接socket
LiveHttpUtil.qBackRoom(mLiveUid, mStream, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
@Override
public void onError(int code, String desc) {
Log.i("tx", "退出失败");
}
});
LiveHttpUtil.getLiveInfo(live_id, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
@@ -681,6 +658,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
return;
}
EventBus.getDefault().post(new LiveRoomChangeEvent(liveBean, liveType, Integer.parseInt(liveTypeVal)).setLiveEnd(true));
}
@Override
@@ -702,14 +680,30 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
public void onClick(View v) {
int i = v.getId();
if (i == R.id.btn_follow) {
if (isAnchor) {
MobclickAgent.onEvent(mContext, "anchor_avatar_follow", "点关注主播");
} else {
MobclickAgent.onEvent(mContext, "user_avatar_follow", "点关注用户");
}
setAttention();
} else if (i == R.id.btn_home_page) {
if (isAnchor) {
MobclickAgent.onEvent(mContext, "anchor_avatar_index", "点主播主页");
} else {
MobclickAgent.onEvent(mContext, "user_avatar_index", "主页按钮");
}
forwardHomePage();
} else if (i == R.id.btn_report) {
report();
} else if (i == R.id.avatar) {
if (isAnchor) {
MobclickAgent.onEvent(mContext, "anchor_avatar_btn", "点主播头像");
}
forwardHomePage();
} else if (i == R.id.btn_guard) {
MobclickAgent.onEvent(mContext, "anchor_avatar_guard", "守护按钮");
((LiveActivity) mContext).openNewGuardListWindow(mContext instanceof LiveRyAnchorActivity, mToUid);
} else if (i == R.id.btn_live) {
gotoLive(mToUid);
@@ -718,6 +712,7 @@ public class LiveUserDialogFragment extends AbsDialogFragment implements View.On
dismiss();
((LiveActivity) mContext).openFansWindow(mToUid);
} else {
MobclickAgent.onEvent(mContext, "user_avatar_noble", "贵族按钮");
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.NOBLE));
}

View File

@@ -18,6 +18,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAnchorActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -117,7 +118,7 @@ public class LiveWishListDialogFragment extends AbsDialogFragment implements OnI
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
ToastUtil.show("修改成功");
ToastUtil.show(WordUtil.isNewZh()?"修改成功":"Success");
dismiss();
} else {
ToastUtil.show("修改失败" + (msg.isEmpty() ? "" : msg));

View File

@@ -16,6 +16,7 @@ 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.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.activity.ZhuangBanActivity;
@@ -110,7 +111,8 @@ public class MedalAchievementPopup extends BottomPopupView {
.append("&token=")
.append(userInfo.getToken())
.append("&uid=")
.append(userInfo.getId());
.append(userInfo.getId()) .append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
ZhuangBanActivity.forward(getContext(), htmlUrl.toString(), false,0);
}
});

View File

@@ -3,6 +3,7 @@ package com.yunbao.live.dialog;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
@@ -162,15 +163,21 @@ public class PDLIiveChatConversationFragment extends AbsDialogFragment implement
//intoIndex 1=调用相机,2=照片选取,3=视频选取
public void jumpPic(int intoIndex) {
String permission1=Manifest.permission.READ_EXTERNAL_STORAGE;
String permission2= Manifest.permission.WRITE_EXTERNAL_STORAGE;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permission1=Manifest.permission.READ_MEDIA_IMAGES;
permission2=Manifest.permission.READ_MEDIA_IMAGES;
}
//选择图片
int isPermission1 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, Manifest.permission.WRITE_EXTERNAL_STORAGE);
int isPermission1 = ContextCompat.checkSelfPermission(mContext, permission1);
int isPermission2 = ContextCompat.checkSelfPermission(mContext, permission2);
if (isPermission1 == PackageManager.PERMISSION_GRANTED && isPermission2 == PackageManager.PERMISSION_GRANTED) {
startActivity(intoIndex);
} else {
//申请权限
ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE);
ActivityCompat.requestPermissions(getActivity(), new String[]{permission1,
permission2}, PERMISSION_REQUEST_CODE);
}
}

View File

@@ -19,6 +19,7 @@ import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.common.manager.RandomPkManager;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -196,7 +197,7 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
}
@@ -223,7 +224,13 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
if (data.getCode() == 0) {
setSwitchBtn(!(boolean) mRandomPkSwitch.getTag());
} else if (data.getCode() == 500) {
DialogUitl.showSimpleDialog(mContext, "您因拒绝随机PK被限制关闭", "随机PK可打开时间" + data.getMsg(), false, new DialogUitl.SimpleCallback() {
String title="您因拒絕隨機PK被限制關閉";
String content="隨機PK可打開時間";
if(!WordUtil.isNewZh()){
title="You are restricted for refusing random PK";
content="Random PK can open time:";
}
DialogUitl.showSimpleDialog(mContext,title , content + data.getMsg(), false, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
dialog.dismiss();
@@ -248,7 +255,12 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
*/
private void randomPk() {
if (mRandomPkSwitch.getTag() == null || !(boolean) mRandomPkSwitch.getTag()) {
ToastUtil.show("未开启随机PK开关");
if (WordUtil.isNewZh()) {
ToastUtil.show("未開啟隨機PK開關");
} else {
ToastUtil.show("The random PK switch is not enabled");
}
return;
}
if ((mPkBtn.getTag() != null && (boolean) mPkBtn.getTag()) || RandomPkManager.getInstance().isRequestPk()) {
@@ -267,7 +279,11 @@ public class RandomPkDialogFragment extends AbsDialogFragment implements View.On
mPkBtn.setTag(true);
}
} else {
ToastUtil.show("請先關閉語言連麥");
if (WordUtil.isNewZh()) {
ToastUtil.show("請先關閉語音連麥");
} else {
ToastUtil.show("Please disable the voice connection first");
}
}
}
});

View File

@@ -25,6 +25,7 @@ import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.TimeUtils;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.CircleProgress;
import com.yunbao.common.views.weight.ClipPathCircleImage;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -46,10 +47,13 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
private ImageView isAttention;
private RedPacketInfoModel redPacketInfoModel;
private boolean isSuperJackpot;
private boolean isFans = false;
public ReceiveRendPacketPopup(@NonNull Context context, int time, String mLiveUid, String stream,
String redPacketId, RedPacketInfoModel redPacketInfoModel,
boolean isSuperJackpot) {
boolean isSuperJackpot,
boolean isFans
) {
super(context);
this.time = time;
@@ -58,7 +62,7 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
this.redPacketId = redPacketId;
this.redPacketInfoModel = redPacketInfoModel;
this.isSuperJackpot = isSuperJackpot;
this.isFans = isFans;
}
// 返回自定义弹窗的布局离开
@@ -95,6 +99,7 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
}
userID = redPacketInfoModel.getUserId();
}
private Handler timeHandler = new Handler();
@@ -102,7 +107,7 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
private Runnable timeRunnable = new Runnable() {
@Override
public void run() {
if (time > 0) {
if (time > 1) {
circleProgress.setCurrent(time--);
timeHandler.postDelayed(timeRunnable, 1000);
String countdown = TimeUtils.getTime(time);
@@ -149,6 +154,11 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
redPacketTimeLayout.setVisibility(GONE);
redPacketOpen.setVisibility(VISIBLE);
}
ViewClicksAntiShake.clicksAntiShake(redPacketTimeLayout, () -> {
if (!isFans && redPacketInfoModel.getIsFans()) {
ToastUtil.show(getContext().getString(R.string.live_rad_pack_join_fans_group_click_tip));
}
});
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.red_packet_open), () -> {
if (isSuperJackpot) {
@@ -179,6 +189,10 @@ public class ReceiveRendPacketPopup extends CenterPopupView {
}
});
} else {
if (!isFans && redPacketInfoModel.getIsFans()) {
ToastUtil.show(getContext().getString(R.string.live_rad_pack_join_fans_group_click_tip));
return;
}
if (TextUtils.equals(redPacketInfoModel.getConditions(), "1") && LiveAudienceActivity.isattention == 0) {
LiveRoomViewHolder.follow();
}

View File

@@ -154,7 +154,7 @@ public class ResultRendPacketPopup extends CenterPopupView {
}
} else {
ToastUtil.show(R.string.no_data);
ToastUtil.show(getContext().getString(R.string.no_data));
}
}
});

View File

@@ -16,6 +16,7 @@ import androidx.annotation.NonNull;
import com.alibaba.android.arouter.launcher.ARouter;
import com.lxj.xpopup.core.CenterPopupView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.ToastUtil;
@@ -24,7 +25,7 @@ import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
public class SendRendPacketPopup extends CenterPopupView {
private Button thereIsNo, followingAnchor;
private Button thereIsNo, followingAnchor, joinFansGroup;
private TextView redEnvelopeRill, totalConsumptionOfDrill;
private TextView rill, total;
private FrameLayout redPacketIllustrate;
@@ -58,6 +59,7 @@ public class SendRendPacketPopup extends CenterPopupView {
redPacketIllustrate = findViewById(R.id.red_packet_illustrate);
illustrateClose = findViewById(R.id.illustrate_close);
iconInstructions = findViewById(R.id.icon_instructions);
joinFansGroup = findViewById(R.id.fans_group);
rill = findViewById(R.id.rill);
total = findViewById(R.id.total);
selectText(thereIsNo, true);
@@ -65,13 +67,21 @@ public class SendRendPacketPopup extends CenterPopupView {
ViewClicksAntiShake.clicksAntiShake(thereIsNo, () -> {
selectText(thereIsNo, true);
selectText(followingAnchor, false);
selectText(joinFansGroup, false);
conditions = "0";
});
ViewClicksAntiShake.clicksAntiShake(followingAnchor, () -> {
selectText(thereIsNo, false);
selectText(joinFansGroup, false);
selectText(followingAnchor, true);
conditions = "1";
});
ViewClicksAntiShake.clicksAntiShake(joinFansGroup, () -> {
selectText(thereIsNo, false);
selectText(joinFansGroup, true);
selectText(followingAnchor, false);
conditions = "0";
});
redEnvelopeRill.setText(String.format(getContext().getString(R.string.red_envelope_rill), "0"));
totalConsumptionOfDrill.setText(String.format(getContext().getString(R.string.total_consumption_of_drill), "0"));
rill.addTextChangedListener(new TextWatcher() {
@@ -156,7 +166,13 @@ public class SendRendPacketPopup extends CenterPopupView {
//红包初始数量
rill.setText("200");
total.setText("10");
ViewClicksAntiShake.clicksAntiShake(iconInstructions, () -> redPacketIllustrate.setVisibility(VISIBLE));
ViewClicksAntiShake.clicksAntiShake(iconInstructions, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(getContext(), "gif_list_redpk_info", "用户点开礼物列表红包页面的红包说明");
redPacketIllustrate.setVisibility(VISIBLE);
}
});
ViewClicksAntiShake.clicksAntiShake(illustrateClose, () -> redPacketIllustrate.setVisibility(GONE));
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.top_up_now), () -> {
//我们的
@@ -198,9 +214,13 @@ public class SendRendPacketPopup extends CenterPopupView {
.createRedPacket(mLiveID,
rillNumber,
number,
conditions, new HttpCallback<String>() {
conditions,
joinFansGroup.getTag() != null && (boolean) joinFansGroup.getTag(),
new HttpCallback<String>() {
@Override
public void onSuccess(String data) {
MobclickAgent.onEvent(getContext(), "gif_list_redpk_seed", "用户发送红包");
ToastUtil.show(getContext().getString(R.string.red_envelope_released_successfully));
dismiss();
}
@@ -214,10 +234,10 @@ public class SendRendPacketPopup extends CenterPopupView {
}
});
if(WordUtil.isNewZh()){
((ImageView)findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_zh);
}else{
((ImageView)findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_en);
if (WordUtil.isNewZh()) {
((ImageView) findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_zh);
} else {
((ImageView) findViewById(R.id.red_packet_info_img)).setImageResource(R.mipmap.bg_red_packet_info_en);
}
}
@@ -225,8 +245,10 @@ public class SendRendPacketPopup extends CenterPopupView {
textView.setSelected(select);
if (select) {
textView.setTextColor(Color.parseColor("#E12801"));
textView.setTag(true);
} else {
textView.setTextColor(Color.parseColor("#FDD04A"));
textView.setTag(false);
}
}

View File

@@ -5,11 +5,13 @@ import com.yunbao.common.bean.ActiveModel;
import com.yunbao.common.bean.AiAutomaticSpeechModel;
import com.yunbao.common.bean.AnchorRecommendItemModel;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.CreateSudRoomModel;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.MsgModel;
import com.yunbao.common.bean.OlineUserlistModel;
import com.yunbao.common.bean.RedPacketInfoModel;
import com.yunbao.common.bean.RedPacketModel;
import com.yunbao.common.bean.SudGameDateModel;
import com.yunbao.common.bean.WishModel;
import com.yunbao.common.bean.XydCompleteModel;
import com.yunbao.common.event.AllServerNotifyEvent;
@@ -54,8 +56,27 @@ public class LiveAudienceEvent extends BaseModel {
private String mWishGiftId;
private boolean isContactGift;
private boolean isPk;
public String mStream;
public String mLiveUid,giftId;
public String mStream;
public String mLiveUid, giftId;
public SudGameDateModel createSudRoomModel;
public SudGameDateModel getCreateSudRoomModel() {
return createSudRoomModel;
}
public LiveAudienceEvent setCreateSudRoomModel(SudGameDateModel createSudRoomModel) {
this.createSudRoomModel = createSudRoomModel;
return this;
}
public boolean isContactGift() {
return isContactGift;
}
public LiveAudienceEvent setContactGift(boolean contactGift) {
isContactGift = contactGift;
return this;
}
public String getGiftId() {
return giftId;
@@ -463,9 +484,10 @@ public class LiveAudienceEvent extends BaseModel {
RED_PACKET(69, "RedPacket"),
RED_PACKET_SUPER_JACKPOT(70, "超级红包"),
INPUT_DIALOG(71, "输入框"),
IS_ATTENTION(72,"是否关注主播"),
GIFT_WALL(73,"礼物墙"),
UPDATE_FANS_TASK_STATUS(74,"更新粉丝任务状态");
IS_ATTENTION(72, "是否关注主播"),
GIFT_WALL(73, "礼物墙"),
UPDATE_FANS_TASK_STATUS(74, "更新粉丝任务状态"),
SUD_GAME_CREATE_ROOM(75, "主播创建sud游戏");
private int type;
private String name;

View File

@@ -0,0 +1,17 @@
package com.yunbao.live.event;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.LiveGiftBean;
public class LiveGiftItemRefreshEvent extends BaseModel {
private LiveGiftBean liveGiftModel;
public LiveGiftBean getLiveGiftModel() {
return liveGiftModel;
}
public LiveGiftItemRefreshEvent setLiveGiftModel(LiveGiftBean liveGiftModel) {
this.liveGiftModel = liveGiftModel;
return this;
}
}

View File

@@ -255,7 +255,7 @@ public class LiveMusicDialogFragment extends AbsDialogFragment implements View.O
});
}
} else {
ToastUtil.show(R.string.music_url_empty);
ToastUtil.show(mContext.getString(R.string.music_url_empty));
}
} else {
ToastUtil.show(msg);

View File

@@ -53,6 +53,7 @@ import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.bean.LiveGiftPrizePoolWinBean;
import com.yunbao.live.bean.LiveLuckGiftWinBean;
@@ -403,7 +404,7 @@ public class LiveGiftAnimPresenter {
String uid = mTempGifGiftBean.getUid();
String userId = CommonAppConfig.getInstance().getUid();
if (userId.equals(uid)) {
ToastUtil.show("已在当前直播间");
ToastUtil.show(WordUtil.isNewZh()?"已在当前直播间":"Already in the current studio");
return;
}
}

View File

@@ -128,7 +128,7 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
playUrl = mPlayUrl;
}
SocketLinkMicAnchorUtil.linkMicAnchorApply(mSocketClient, playUrl, stream, pkUid);
ToastUtil.show(R.string.link_mic_apply);
ToastUtil.show(mContext.getString(R.string.link_mic_apply));
}
/**
@@ -198,7 +198,7 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
}
if (mAcceptLinkMic) {
if (((LiveActivity) mContext).isGamePlaying()) {
ToastUtil.show(R.string.live_game_cannot_link_mic);
ToastUtil.show(mContext.getString(R.string.live_game_cannot_link_mic));
SocketLinkMicAnchorUtil.linkMicPlayGaming(mSocketClient, mApplyUid);
} else {
LiveHttpUtil.livePkCheckLive(mApplyUid, mApplyStream, mSelfStream, new HttpCallback() {
@@ -330,7 +330,7 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
mLiveLinkMicPlayViewHolder.addToParent();
mLiveLinkMicPlayViewHolder.play(playUrl);
if (mIsAnchor) {
ToastUtil.show(R.string.link_mic_anchor_accept_2);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_accept_2));
((LiveAnchorActivity) mContext).setPkBtnVisible(true);
if (mLiveSdk == Constants.LIVE_SDK_TX) {
//主播混流
@@ -376,7 +376,7 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
mApplyUid = null;
mApplyStream = null;
mPkUid = null;
ToastUtil.show(R.string.link_mic_anchor_close);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_close));
if (mIsAnchor) {
((LiveAnchorActivity) mContext).setPkBtnVisible(false);
if (mLiveSdk == Constants.LIVE_SDK_TX) {
@@ -390,7 +390,7 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
*/
public void onLinkMicAnchorRefuse() {
mLastApplyLinkMicTime = 0;
ToastUtil.show(R.string.link_mic_refuse_2);
ToastUtil.show(mContext.getString(R.string.link_mic_refuse_2));
}
/**
@@ -398,7 +398,7 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
*/
public void onLinkMicNotResponse() {
mLastApplyLinkMicTime = 0;
ToastUtil.show(R.string.link_mic_anchor_not_response_2);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_not_response_2));
}
/**
@@ -406,7 +406,7 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
*/
public void onLinkMicAnchorBusy() {
mLastApplyLinkMicTime = 0;
ToastUtil.show(R.string.link_mic_anchor_busy_2);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_busy_2));
}
public void pause() {
@@ -442,15 +442,15 @@ public class LiveLinkMicAnchorPresenter implements View.OnClickListener {
*/
public boolean canOpenLinkMicAnchor() {
if (((LiveActivity) mContext).isGamePlaying()) {
ToastUtil.show(R.string.live_game_cannot_link_mic);
ToastUtil.show(mContext.getString(R.string.live_game_cannot_link_mic));
return false;
}
if (mIsLinkMic || ((LiveActivity) mContext).isLinkMic()) {
ToastUtil.show(mIsAnchor ? R.string.live_link_mic_cannot_link_2 : R.string.live_link_mic_cannot_link);
ToastUtil.show(mIsAnchor ? mContext.getString(R.string.live_link_mic_cannot_link_2) : mContext.getString(R.string.live_link_mic_cannot_link));
return false;
}
if (System.currentTimeMillis() - mLastApplyLinkMicTime < 11000) {
ToastUtil.show(R.string.link_mic_apply_waiting);
ToastUtil.show(mContext.getString(R.string.link_mic_apply_waiting));
return false;
}
return true;

View File

@@ -320,16 +320,16 @@ public class LiveLinkMicPkPresenter implements View.OnClickListener {
*/
public void applyLinkMicPk(String pkUid, String stream) {
if (mPkSend) {
ToastUtil.show(R.string.link_mic_apply_waiting);
ToastUtil.show(mContext.getString(R.string.link_mic_apply_waiting));
return;
}
if (mIsPk) {
ToastUtil.show(R.string.live_link_mic_cannot_pk);
ToastUtil.show(mContext.getString(R.string.live_link_mic_cannot_pk));
return;
}
mPkSend = true;
SocketLinkMicPkUtil.linkMicPkApply(mSocketClient, pkUid, stream);
ToastUtil.show(R.string.link_mic_apply_pk);
ToastUtil.show(mContext.getString(R.string.link_mic_apply_pk));
if (mLiveLinkMicPkViewHolder == null) {
mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
@@ -1119,7 +1119,7 @@ public class LiveLinkMicPkPresenter implements View.OnClickListener {
if (mIsAnchor) {
((LiveAnchorActivity) mContext).setPkBtnVisible(true);
}
ToastUtil.show(R.string.link_mic_refuse_pk);
ToastUtil.show(mContext.getString(R.string.link_mic_refuse_pk));
}
/**
@@ -1130,7 +1130,7 @@ public class LiveLinkMicPkPresenter implements View.OnClickListener {
if (mIsAnchor) {
((LiveAnchorActivity) mContext).setPkBtnVisible(true);
}
ToastUtil.show(R.string.link_mic_anchor_not_response_2);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_not_response_2));
}
/**
@@ -1141,7 +1141,7 @@ public class LiveLinkMicPkPresenter implements View.OnClickListener {
if (mIsAnchor) {
((LiveAnchorActivity) mContext).setPkBtnVisible(true);
}
ToastUtil.show(R.string.link_mic_anchor_busy_2);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_busy_2));
}

View File

@@ -5,6 +5,7 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
@@ -253,11 +254,11 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
public void onAnchorAcceptLinkMic() {
if (!mIsAnchor) {
mLastApplyLinkMicTime = 0;
ToastUtil.show(R.string.link_mic_anchor_accept);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_accept));
mIsLinkMic = true;
mLinkMicUid = CommonAppConfig.getInstance().getUid();
if (mLinkMicTip != null) {
mLinkMicTip.setText(R.string.live_link_mic_3);
mLinkMicTip.setText(mContext.getString(R.string.live_link_mic_3));
}
LiveHttpUtil.getLinkMicStream(new HttpCallback() {
@Override
@@ -303,7 +304,7 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
*/
public void onAnchorRefuseLinkMic() {
mLastApplyLinkMicTime = 0;
ToastUtil.show(R.string.link_mic_refuse);
ToastUtil.show(mContext.getString(R.string.link_mic_refuse));
}
/**
@@ -410,7 +411,7 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
*/
public void onAnchorNotResponse() {
mLastApplyLinkMicTime = 0;
ToastUtil.show(R.string.link_mic_anchor_not_response);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_not_response));
}
/**
@@ -418,7 +419,7 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
*/
public void onAnchorBusy() {
mLastApplyLinkMicTime = 0;
ToastUtil.show(R.string.link_mic_anchor_busy);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_busy));
}
/**
@@ -508,11 +509,11 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
private void onLinkMicBtnClick() {
if (((LiveActivity) mContext).isGamePlaying()) {
ToastUtil.show(R.string.live_game_cannot_link_mic);
ToastUtil.show(mContext.getString(R.string.live_game_cannot_link_mic));
return;
}
if (((LiveActivity) mContext).isLinkMicAnchor()) {
ToastUtil.show(R.string.live_link_mic_cannot_link);
ToastUtil.show(mContext.getString(R.string.live_link_mic_cannot_link));
return;
}
if (mIsLinkMic) {
@@ -579,7 +580,7 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
private void audienceApplyLinkMic() {
long curTime = System.currentTimeMillis();
if (curTime - mLastApplyLinkMicTime < 11000) {//时间间隔11秒
ToastUtil.show(R.string.link_mic_apply_waiting);
ToastUtil.show(mContext.getString(R.string.link_mic_apply_waiting));
} else {
mLastApplyLinkMicTime = curTime;
//请求权限
@@ -587,16 +588,26 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
if (processResultUtil == null) {
return;
}
processResultUtil.requestPermissions(new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
}, new Runnable() {
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permissions=new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO,
};
}else{
permissions=new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO
};
}
processResultUtil.requestPermissions(permissions, new Runnable() {
@Override
public void run() {
SocketLinkMicUtil.audienceApplyLinkMic(mSocketClient);
ToastUtil.show(R.string.link_mic_apply);
ToastUtil.show(mContext.getString(R.string.link_mic_apply));
}
});
}
@@ -637,12 +648,12 @@ public class LiveLinkMicPresenter implements View.OnClickListener {
}
if (mAcceptLinkMic) {
if (((LiveActivity) mContext).isGamePlaying()) {
ToastUtil.show(R.string.live_game_cannot_link_mic);
ToastUtil.show(mContext.getString(R.string.live_game_cannot_link_mic));
SocketLinkMicUtil.anchorRefuseLinkMic(mSocketClient, mApplyUid);
return;
}
if (((LiveActivity) mContext).isLinkMicAnchor()) {
ToastUtil.show(R.string.live_link_mic_cannot_link_2);
ToastUtil.show(mContext.getString(R.string.live_link_mic_cannot_link_2));
return;
}
SocketLinkMicUtil.anchorAcceptLinkMic(mSocketClient, mApplyUid);

View File

@@ -57,6 +57,7 @@ import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -488,16 +489,16 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
*/
public void applyLinkMicPk(String pkUid, String stream) {
if (mPkSend) {
ToastUtil.show(R.string.link_mic_apply_waiting);
ToastUtil.show(mContext.getString(R.string.link_mic_apply_waiting));
return;
}
if (mIsPk) {
ToastUtil.show(R.string.live_link_mic_cannot_pk);
ToastUtil.show(mContext.getString(R.string.live_link_mic_cannot_pk));
return;
}
mPkSend = true;
SocketRyLinkMicPkUtil.linkMicPkApply(mSocketRyClient, pkUid, stream);
ToastUtil.show(R.string.link_mic_apply_pk);
ToastUtil.show(mContext.getString(R.string.link_mic_apply_pk));
if (mLiveLinkMicPkViewHolder == null) {
mLiveLinkMicPkViewHolder = new LiveLinkMicPkViewHolder(mContext, mPkContainer);
@@ -642,6 +643,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -768,6 +770,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -855,7 +858,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onSuccess(RCRTCOtherRoom rcrtcOtherRoom) {
rcrtcOtherRoom.registerOtherRoomEventsListener(otherRoomEventsListener);
ToastUtil.show("接受成功");
ToastUtil.show(WordUtil.isNewZh()?"接受成功":"Success");
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
for (int i = 0; i < rcrtcOtherRoom.getRemoteUsers().size(); i++) {
@@ -924,6 +927,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode);
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -973,7 +977,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onSuccess(RCRTCOtherRoom rcrtcOtherRoom) {
rcrtcOtherRoom.registerOtherRoomEventsListener(otherRoomEventsListener);
ToastUtil.show("接受成功");
ToastUtil.show(WordUtil.isNewZh()?"接受成功":"Success");
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
Log.e("ry", liveid + "来了!!!!" + rcrtcOtherRoom.getRemoteUsers().size());
@@ -1000,6 +1004,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "订阅资源失败: " + rtcErrorCode);
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1655,7 +1660,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
}
Log.e("ry", "多人接受成功" + mApplyUid);
ToastUtil.show("接受成功");
ToastUtil.show(WordUtil.isNewZh()?"接受成功":"Success");
//遍历远端用户列表
for (int i = 0; i < rcrtcOtherRoom.getRemoteUsers().size(); i++) {
Log.e("ry", rcrtcOtherRoom.getRemoteUsers().get(i).getUserId() + "收到rcrtcOtherRoom" + rcrtcOtherRoom.getRemoteUsers().size());
@@ -1692,7 +1697,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
@@ -1773,6 +1778,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
//2. 合流画布设置
@@ -1963,6 +1969,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.i("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
@@ -2422,7 +2429,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
if (mIsAnchor) {
((LiveRyAnchorActivity) mContext).setPkBtnVisible(true);
}
ToastUtil.show(R.string.link_mic_refuse_pk);
ToastUtil.show(mContext.getString(R.string.link_mic_refuse_pk));
}
/**
@@ -2433,7 +2440,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
if (mIsAnchor) {
((LiveRyAnchorActivity) mContext).setPkBtnVisible(true);
}
ToastUtil.show(R.string.link_mic_anchor_not_response_2);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_not_response_2));
}
/**
@@ -2444,7 +2451,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
if (mIsAnchor) {
((LiveRyAnchorActivity) mContext).setPkBtnVisible(true);
}
ToastUtil.show(R.string.link_mic_anchor_busy_2);
ToastUtil.show(mContext.getString(R.string.link_mic_anchor_busy_2));
}
@@ -2493,6 +2500,7 @@ public class LiveRyLinkMicPkPresenter implements View.OnClickListener {
* 更新Pk分数
*/
public void upDataPkScore(JSONArray pkScores, String uid, int time) {
String userID1 = (String) imageGrade1.getTag();
String userID2 = (String) imageGrade2.getTag();
String userID4 = (String) imageGrade4.getTag();

View File

@@ -62,7 +62,7 @@ public class UserHomeSharePresenter {
ClipboardManager cm = (ClipboardManager) mContext.getSystemService(Context.CLIPBOARD_SERVICE + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
ClipData clipData = ClipData.newPlainText("text", link);
cm.setPrimaryClip(clipData);
ToastUtil.show(R.string.copy_success);
ToastUtil.show(mContext.getString(com.yunbao.common.R.string.copy_success));
}

View File

@@ -11,8 +11,8 @@ import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.live.R;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.live.R;
/**
* Created by cxf on 2018/10/9.
@@ -321,7 +321,7 @@ public class SocketChatUtil {
.param("uid", u.getId())
.param("touid", toUid)
.param("toname", toName)
.param("ct", toName +CommonAppContext.sInstance.getBaseContext().getString(R.string.live_kicked));
.param("ct", toName + CommonAppContext.sInstance.getBaseContext().getString(R.string.live_kicked));
msg.create();
V2TIMManager.getInstance().sendGroupTextMessage(msg.mResult.toString(), "g" + mLiveUid, V2TIMMessage.V2TIM_PRIORITY_NORMAL, new V2TIMSendCallback<V2TIMMessage>() {
@Override
@@ -364,7 +364,7 @@ public class SocketChatUtil {
.param("uid", u.getId())
.param("touid", toUid)
.param("toname", toName)
.param("ct", toName +CommonAppContext.sInstance.getBaseContext().getString(type == 0 ? R.string.live_shut : R.string.live_shut_2));
.param("ct", toName + (type == 0 ? "被永久禁言(Forbidden forever)" : "被本場禁言(Forbidden by this scene)"));
msg.create();
V2TIMManager.getInstance().sendGroupTextMessage(msg.mResult.toString(), "g" + mLiveUid, V2TIMMessage.V2TIM_PRIORITY_NORMAL, new V2TIMSendCallback<V2TIMMessage>() {
@Override
@@ -396,7 +396,7 @@ public class SocketChatUtil {
if (u == null) {
return;
}
String s = action == 1 ?CommonAppContext.sInstance.getBaseContext().getString(R.string.live_set_admin) :CommonAppContext.sInstance.getBaseContext().getString(R.string.live_set_admin_cancel);
String s = action == 1 ? "被設為管理員(Set as Administrator)": "被取消管理員(Cancelled administrator)";
final SocketSendBean msg = new SocketSendBean()
.param("_method_", Constants.SOCKET_SET_ADMIN)
.param("action", action)
@@ -644,7 +644,7 @@ public class SocketChatUtil {
.param("msgtype", 0)
.param("uid", u.getId())
.param("uname", u.getUserNiceName())
.param("ct",CommonAppContext.sInstance.getBaseContext().getString(R.string.red_pack_22)
.param("ct", CommonAppContext.sInstance.getBaseContext().getString(R.string.red_pack_22)
);
msg.create();
V2TIMManager.getInstance().sendGroupTextMessage(msg.mResult.toString(), "g" + mLiveUid, V2TIMMessage.V2TIM_PRIORITY_NORMAL, new V2TIMSendCallback<V2TIMMessage>() {

View File

@@ -25,6 +25,7 @@ import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.bean.LiveBuyGuardMsgBean;
@@ -409,7 +410,7 @@ public class SocketClient {
String msgtype = map.getString("msgtype");
if ("2".equals(msgtype)) {//发言,点亮
if ("409002".equals(received.getRetcode())) {
ToastUtil.show(R.string.live_you_are_shut);
ToastUtil.show(WordUtil.isNewZh()?"你已經被禁言":"You\'ve been banned");
return;
}

View File

@@ -9,10 +9,11 @@ import com.yunbao.common.Constants;
import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.common.http.LiveHttpUtil;
import org.greenrobot.eventbus.EventBus;
@@ -133,7 +134,7 @@ public class SocketRyChatUtil {
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
Log.e("tx", "aaa" + errorCode.toString());
if (errorCode.code == 23408) {
ToastUtil.show(R.string.live_ban_tip);
ToastUtil.show(WordUtil.isNewZh() ? "您已被禁言" : "You have been banned");
} else {
ToastUtil.show(errorCode.code + ":" + errorCode.msg);
}
@@ -168,7 +169,7 @@ public class SocketRyChatUtil {
.param("medal_name", u.getMedalName())
.param("medal_level", u.getMedalLevel())
.param("good_num", u.getGoodnum())
.param("ct", CommonAppContext.sInstance.getBaseContext().getString(R.string.live_lighted));
.param("ct", WordUtil.getNewString(R.string.live_lighted));
msg.create();
String targetId = "g" + mLiveUid;
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
@@ -215,9 +216,10 @@ public class SocketRyChatUtil {
* 发送弹幕消息
*/
public static void sendDanmuMessage(String mLiveUid, String danmuToken) {
sendDanmuMessage(mLiveUid,danmuToken,0);
sendDanmuMessage(mLiveUid, danmuToken, 0);
}
public static void sendDanmuMessage(String mLiveUid, String danmuToken,int fansLevel) {
public static void sendDanmuMessage(String mLiveUid, String danmuToken, int fansLevel) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
if (u == null) {
return;
@@ -230,7 +232,7 @@ public class SocketRyChatUtil {
.param("uname", u.getUserNiceName())
.param("uid", u.getId())
.param("uhead", u.getAvatar())
.param("fansLevel",fansLevel)
.param("fansLevel", fansLevel)
.param("ct", danmuToken);
msg.create();
String targetId = "g" + mLiveUid;
@@ -256,7 +258,7 @@ public class SocketRyChatUtil {
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
Log.e("tx", "aaa" + errorCode.toString());
if (errorCode.code == 23408) {
ToastUtil.show(R.string.live_ban_tip);
ToastUtil.show(WordUtil.isNewZh() ? "您已被禁言" : "You have been banned");
} else {
ToastUtil.show(errorCode.code + ":" + errorCode.msg);
}
@@ -368,7 +370,7 @@ public class SocketRyChatUtil {
.param("uid", u.getId())
.param("touid", toUid)
.param("toname", toName)
.param("ct", toName + CommonAppContext.sInstance.getBaseContext().getString(R.string.live_kicked));
.param("ct", toName + "被踢出房間(Kicked out of the room)");
msg.create();
String targetId = "g" + mLiveUid;
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
@@ -418,13 +420,13 @@ public class SocketRyChatUtil {
String ct = "";
switch (type) {
case 0:
ct = CommonAppContext.sInstance.getBaseContext().getString(R.string.live_shut);
ct = "被永久禁言(Forbidden forever)";
break;
case 1:
ct = CommonAppContext.sInstance.getBaseContext().getString(R.string.live_shut_2);
ct = "被本場禁言(Forbidden by this scene)";
break;
case 2:
ct = String.format(CommonAppContext.sInstance.getBaseContext().getString(R.string.live_shut_3), time + "");
ct = String.format("被禁言%s分鐘", time + "") + "(" + String.format("Forbidden by %s min", time + "") + ")";
break;
}
@@ -475,7 +477,7 @@ public class SocketRyChatUtil {
if (u == null) {
return;
}
String s = action == 1 ? CommonAppContext.sInstance.getBaseContext().getString(R.string.live_set_admin) : CommonAppContext.sInstance.getBaseContext().getString(R.string.live_set_admin_cancel);
String s = action == 1 ? "被設為管理員(Set as Administrator)": "被取消管理員(Cancelled administrator)";
final SocketSendBean msg = new SocketSendBean()
.param("_method_", Constants.SOCKET_SET_ADMIN)
.param("action", action)

View File

@@ -2,6 +2,7 @@ package com.yunbao.live.socket;
import static com.blankj.utilcode.util.SnackbarUtils.dismiss;
import static com.blankj.utilcode.util.ViewUtils.runOnUiThread;
import static com.yunbao.common.Constants.SOCKET_LIVE_MSG_TO_USER;
import static com.yunbao.live.activity.LiveRyAnchorActivity.isDRPK;
import static com.yunbao.live.views.LiveRoomViewHolder.getIsHot;
@@ -22,7 +23,6 @@ import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.AiAutomaticSpeechModel;
import com.yunbao.common.bean.FansMedalBean;
import com.yunbao.common.bean.FansModel;
import com.yunbao.common.bean.LinkMicUserBean;
import com.yunbao.common.bean.LiveUserGiftBean;
@@ -31,6 +31,7 @@ import com.yunbao.common.bean.PkRankBean;
import com.yunbao.common.bean.RedPacketInfoModel;
import com.yunbao.common.bean.RedPacketModel;
import com.yunbao.common.bean.SocketModel;
import com.yunbao.common.bean.SudGameDateModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.WishModel;
import com.yunbao.common.bean.XydCompleteModel;
@@ -41,11 +42,14 @@ import com.yunbao.common.event.SendBlindGiftEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.manager.IMRTCManager;
import com.yunbao.common.manager.MicUserManager;
import com.yunbao.common.manager.MicedUserManager;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.manager.RandomPkManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -100,7 +104,11 @@ public class SocketRyClient {
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
Log.i("tx", "加入" + "失败" + coreErrorCode);
ToastUtil.show("網絡不佳無法連接,請重新進入");
if (WordUtil.isNewZh()) {
ToastUtil.show("網絡不佳無法連接,請重新進入");
} else {
ToastUtil.show("The network is not connected, please re-enter");
}
}
});
@@ -193,24 +201,35 @@ public class SocketRyClient {
.setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_UPDATE_MIC_LIST)
.setObject(JSONArray.parseArray(mic_data.getJSONArray("userlist").toString(), LinkMicUserBean.class))
);
MicedUserManager.get().upDataMicUserList(JSONArray.parseArray(mic_data.getJSONArray("userlist").toString(), LinkMicUserBean.class));
} else if (actions == 6) {
ToastUtil.show("主播已關閉當前語音連麥功能");
if (WordUtil.isNewZh()) {
ToastUtil.show("主播已關閉當前語音連麥功能");
} else {
ToastUtil.show("The host has disabled the voice connection function");
}
EventBus.getDefault().post("endMic");
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_CLOSE)
.setObject(map.toJavaObject(LinkMicUserBean.class)));
} else if (actions == 8) {
ToastUtil.show("您已被移出多人語音連麥");
if (WordUtil.isNewZh()) {
ToastUtil.show("您已被移出多人語音連麥");
} else {
ToastUtil.show("You have been removed from Multi-Voice Connection");
}
EventBus.getDefault().post("endMic");
} else if (actions == 3) {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC)
.setObject(map.toJavaObject(LinkMicUserBean.class))
);
MicUserManager.get().upDataMicUser(map);
} else if (actions == 7) {//取消连麦
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LINK_MIC_CANCEL)
);
MicUserManager.get().removeMiscUser(map);
}
break;
case Constants.UP_USER_LIST:
@@ -235,6 +254,13 @@ public class SocketRyClient {
if (map.getString("ct").contains("堅決維護青少年群體精神文明健康") || map.getString("ct").contains("click to register if you like. pdlive conducts")) {
systemChatMessage(map.getString("ct"));
} else {
if (!WordUtil.isNewZh() && map.getString("ct").contains("退出比賽") && map.getString("ct").contains("獲得勝利")) {
String ctTmp = map.getString("ct");
ctTmp = ctTmp.replace("由於", "Due to")
.replace("退出比賽", "withdrawing from the competition")
.replace("獲得勝利", "won");
map.put("ct", ctTmp);
}
systemChatMessage2(map.getString("ct"));
}
@@ -370,20 +396,30 @@ public class SocketRyClient {
} else if (action2 == 66) {//购买贵族
buyVipByNotify(map);
} else if (action2 == 88) {
JSONObject mCt = map.getJSONObject("ct");
String boxType = map.getString("box_type");
String boxTypeName = "";
if (TextUtils.equals(boxType, "1")) {
boxTypeName = WordUtil.isNewZh() ? "迷你盲盒" : "Mini blind box";
} else if (TextUtils.equals(boxType, "2")) {
boxTypeName = WordUtil.isNewZh() ? "典藏盲盒" : "Collection blind box";
} else {
boxTypeName = WordUtil.isNewZh() ? "PD盲盒" : "PD blind box";
}
AllServerNotifyEvent allServerNotifyEvent
= new AllServerNotifyEvent()
.setBlindBoxId(map.getString("blind_box_id"))
.setBoxType(map.getString("box_type"))
.setBoxTypeName(map.getString("box_type_name"))
.setDressName(map.getString("dress_name"))
.setBoxType(boxType)
.setBoxTypeName(map.getString(boxTypeName))
.setDressName(WordUtil.isNewZh() ? map.getString("dress_name") : TextUtils.isEmpty(map.getString("dress_nameen")) ? map.getString("dress_name") : map.getString("dress_nameen"))
.setGiftNotification(map.getString("gift_notification"))
.setGiftName(map.getString("giftname"))
.setGiftName(WordUtil.isNewZh() ? mCt.getString("giftname") : mCt.getString("giftnameen"))
.setUserNiceName(map.getString("uname"))
.setGiftIcon(map.getString("gifticon"))
.setAnchorName(map.getString("ancherName"))
.setDisplaySrc(map.getString("display_src"));
Log.e("AllServerNotifyEvent", allServerNotifyEvent.toString());
Log.e("AllServerNotifyEvent", map.toJSONString());
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.BLIND_BOX)
.setAllServerNotifyEvent(allServerNotifyEvent));
@@ -392,7 +428,7 @@ public class SocketRyClient {
AllServerNotifyEvent allServerNotifyEvent
= new AllServerNotifyEvent()
.setUserNiceName(mCt.getString("user_nicename"))
.setGiftName(mCt.getString("giftname"))
.setGiftName(WordUtil.isNewZh() ? map.getString("giftname") : map.getString("giftname_en"))
.setGiftIcon(mCt.getString("gifticon"))
.setRedPacket(true);
Bus.get().post(new LiveAudienceEvent()
@@ -629,6 +665,7 @@ public class SocketRyClient {
pkRankBean.setId(Integer.parseInt(item.getString("new_rank_id")));
pkRankBean.setName(item.getString("new_rank_name"));
pkRankBean.setImg(item.getString("new_rank_img"));
pkRankBean.setNewRankNameEn(item.getString("new_rank_name_en"));
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.PK_RANK_UPDATE)
.setObject(pkRankBean));
@@ -650,7 +687,7 @@ public class SocketRyClient {
break;
case Constants.WISH_LIST_PROGRESS:
StringBuffer conString = new StringBuffer();
conString.append(map.getString("msg"));
conString.append(WordUtil.isNewZh() ? map.getString("msg") : map.getString("msg_en"));
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.WISH_LIST_PROGRESS)
.setWishListProgress(new WishModel()
@@ -716,6 +753,15 @@ public class SocketRyClient {
.setNewNumber(map.getInteger("new_number"))
.setMaxNumber(map.getInteger("max_number")));
break;
case SOCKET_LIVE_MSG_TO_USER:
sendToUserMsg(map);
break;
case "SudGameCreateRoom":
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.SUD_GAME_CREATE_ROOM)
.setAvatar(WordUtil.isNewZh() ? map.getString("sud_game_name") : map.getString("sud_game_name_en"))
.setCreateSudRoomModel(GsonUtils.fromJson(map.toString(), SudGameDateModel.class)));
break;
}
}
@@ -817,11 +863,25 @@ public class SocketRyClient {
}
}
/**
* 七日留存新用户主播端弹幕显示接口
*/
private void sendToUserMsg(JSONObject map) {
LiveChatBean bean = new LiveChatBean();
bean.setId(map.getString("uid"));
bean.setAtUserID(map.getString("toUserID"));
bean.setContent(map.getString("ct"));
bean.setType(LiveChatBean.TYPE_TO_USER_MSG);
bean.setUserNiceName(map.getString("user_nicename"));
bean.setToUid(CommonAppConfig.getInstance().getUid());
mListener.onChat(bean, 1);
}
private void wordLightEnterRoom(JSONObject map, SocketReceiveBean received) {
String msgtype = map.getString("msgtype");
if ("2".equals(msgtype)) {//发言,点亮
if ("409002".equals(received.getRetcode())) {
ToastUtil.show(R.string.live_you_are_shut);
ToastUtil.show(WordUtil.isNewZh() ? "你已經被禁言" : "You\'ve been banned");
return;
}
@@ -1053,7 +1113,7 @@ public class SocketRyClient {
receiveGiftBean.setmLiveUId(mLiveUid);
receiveGiftBean.setmTypeBuyGuard(false);
receiveGiftBean.setAllServerNotify(false);
sendBlindGiftEvent.setGiftname_en(map.getString("giftname_en"));
//获取PK排名数据
LivePKUserListBean livePKUserListBean = JSON.parseObject(receiveGiftBean.getPkTopUsers(), LivePKUserListBean.class);
@@ -1073,7 +1133,7 @@ public class SocketRyClient {
chatBean.setGuardType(map.getInteger("guard_type"));
}
if (CommonAppContext.lang.equals("chinese")) {
if (WordUtil.isNewZh()) {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + receiveGiftBean.getGiftCount() + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftName());
} else {
chatBean.setContent(mContext.getString(R.string.live_send_gift_1) + " " + +receiveGiftBean.getGiftCount() + " " + mContext.getString(R.string.live_send_gift_2) + receiveGiftBean.getGiftnameen());
@@ -1315,7 +1375,11 @@ public class SocketRyClient {
IMRTCManager.getInstance().requestJoinOtherRoom(map.getString("uid"), true, msg1.toString(), new IRCRTCResultCallback() {
@Override
public void onSuccess() {
ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功");
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + map.getString("uid") + " 发送成功");
} else {
ToastUtil.show("invite " + map.getString("uid") + " successful");
}
runOnUiThread(new Runnable() {
@Override
public void run() {
@@ -1334,7 +1398,11 @@ public class SocketRyClient {
});
//todo 安卓端状态码说明文档https://docs.rongcloud.cn/v4/views/rtc/call/code/android.html
Log.e("ry", rtcErrorCode + "aaaaaa" + CommonAppConfig.getInstance().getUid() + "VDSSSS" + map.getString("uid"));
ToastUtil.show("邀请 " + map.getString("uid") + " 发送失败 " + rtcErrorCode);
if (WordUtil.isNewZh()) {
ToastUtil.show("邀请 " + map.getString("uid") + " 发送失败 " + rtcErrorCode);
} else {
ToastUtil.show("invite " + map.getString("uid") + " lose " + rtcErrorCode);
}
}
});
break;

View File

@@ -235,26 +235,29 @@ public class AllMsgTextRender {
}
private void blind(SpannableStringBuilder spannableStringBuilder, TextView textView, AllServerNotifyEvent serverNotifyEvent, int giftNameIndex, int endName) {
switch (Integer.parseInt(serverNotifyEvent.getBoxType())) {
case 1:
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#336DF7")),
giftNameIndex,
endName,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
case 2:
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#FD5A9D")),
giftNameIndex,
endName,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
default:
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#FCB514")),
giftNameIndex,
endName,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
if (giftNameIndex>0){
switch (Integer.parseInt(serverNotifyEvent.getBoxType())) {
case 1:
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#336DF7")),
giftNameIndex,
endName,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
case 2:
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#FD5A9D")),
giftNameIndex,
endName,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
default:
spannableStringBuilder.setSpan(new ForegroundColorSpan(Color.parseColor("#FCB514")),
giftNameIndex,
endName,
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
}
}
textView.setText(spannableStringBuilder);
}

View File

@@ -1,10 +1,12 @@
package com.yunbao.live.utils;
import android.content.Context;
import android.graphics.Color;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -18,9 +20,14 @@ import com.google.android.exoplayer2.analytics.AnalyticsListener;
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
import com.google.android.exoplayer2.ui.StyledPlayerView;
import com.google.android.exoplayer2.video.VideoSize;
import com.lzf.easyfloat.EasyFloat;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R;
import java.util.Timer;
import java.util.TimerTask;
/**
* 直播间播放器管理器
* 通过预加载子播放器来实现无缝切换分辨率功能
@@ -40,6 +47,9 @@ public class LiveExoPlayerManager {
private static double log_buffer_time = 0, log_buffer_max_time;
private String url = "";
private Context mContext;
private TimerTask task;
TextView debugText;
public LiveExoPlayerManager(Context mContext) {
this.mContext = mContext;
@@ -59,6 +69,109 @@ public class LiveExoPlayerManager {
handler = new Handler(Looper.getMainLooper());
setListener();
setAnalyticsListener();
// createDeBugDialog();
}
int index = 0;
private void createTask() {
if (task != null) {
return;
}
task = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
@Override
public void run() {
try {
if (index > 5 && !player1.isPlaying() && !player2.isPlaying()) {
index = 0;
Log.i(TAG, "5秒内播放器没有播放重新播放");
ToastUtil.showDebug("强制重播");
handler.removeCallbacks(buffRunnable);
replay();
cancel();
} else if (player1.isPlaying() || player2.isPlaying()) {
index = 0;
} else {
index++;
}
} catch (Exception e) {
e.printStackTrace();
cancel();
task = null;
}
}
});
}
};
new Timer().schedule(task, 0, 1000);
}
private TimerTask debugTask;
private void createDeBugDialog() {
debugText = new TextView(mContext);
debugText.setText(getDebugText());
debugText.setBackgroundColor(Color.WHITE);
debugText.setTextColor(Color.BLACK);
EasyFloat.with(mContext)
.setTag("debug")
.setLayout(debugText)
.show();
debugTask = new TimerTask() {
@Override
public void run() {
updateDebug();
}
};
new Timer().schedule(debugTask, 0, 500);
}
private String getDebugText() {
StringBuilder sb = new StringBuilder();
try {
sb.append("player1: ").append(getPlayStateText(player1)).append("|").append(player1.isPlaying()).append("\n");
sb.append("player2: ").append(getPlayStateText(player2)).append("|").append(player2.isPlaying()).append("\n");
sb.append("卡顿计数器:").append(playBufferIndex).append("\n");
sb.append("强制播放计时器:").append(index).append("\n");
} catch (Exception e) {
e.printStackTrace();
EasyFloat.dismiss("debug");
debugTask.cancel();
}
return sb.toString();
}
private void updateDebug() {
handler.post(new Runnable() {
@Override
public void run() {
debugText.setText(getDebugText());
}
});
}
private String getPlayStateText(ExoPlayer player) {
switch (player.getPlaybackState()) {
case Player.STATE_READY:
return "STATE_READY";
case Player.STATE_BUFFERING:
return "STATE_BUFFERING";
case Player.STATE_ENDED:
return "STATE_ENDED";
case Player.STATE_IDLE:
return "STATE_IDLE";
default:
return player.getPlaybackState() + "";
}
}
@@ -171,6 +284,7 @@ public class LiveExoPlayerManager {
if (listener != null) {
listener.onIsPlayingChanged(true);
}
createTask();
}
}
@@ -245,6 +359,7 @@ public class LiveExoPlayerManager {
if (listener != null) {
listener.onIsPlayingChanged(true);
}
createTask();
}
}
@@ -279,7 +394,12 @@ public class LiveExoPlayerManager {
* @param url 地址
*/
public void startUrl(String url) {
if (url != null && url.equals(this.url)) return;
if (!StringUtil.isEmpty(url) && url.equals(this.url)) return;
if (task != null) {
task.cancel();
task = null;
}
Log.i(TAG, "startUrl: " + url + " > " + mainView.getResizeMode());
handler.removeCallbacks(buffRunnable);
this.url = url;
@@ -302,15 +422,22 @@ public class LiveExoPlayerManager {
* @param url 地址
*/
public void switchUrl(String url) {
if (url != null && url.equals(this.url)) return;
if (!StringUtil.isEmpty(url) && url.equals(this.url)) return;
if (task != null) {
task.cancel();
task = null;
}
Log.i(TAG, "switchUrl: " + url + " src : " + this.url);
this.url = url;
playBufferIndex = 0;
isSwitchUrl = true;
log_buffer_time = System.currentTimeMillis();
mainView.setKeepContentOnPlayerReset(true);
getNextPlayer().setMediaItem(createMediaItem(url));
getNextPlayer().prepare();
if (getNextPlayer() != null) {
getNextPlayer().setMediaItem(createMediaItem(url));
getNextPlayer().prepare();
}
}
private MediaItem createMediaItem(String url) {
@@ -321,7 +448,12 @@ public class LiveExoPlayerManager {
* 获取当前播放器
*/
public ExoPlayer getNowPlayer() {
return status == MODEL_PLAY1 ? player1 : player2;
if (player1 == null && player2 == null) {
return null;
} else {
return status == MODEL_PLAY1 ? player1 : player2;
}
}
/**
@@ -351,6 +483,10 @@ public class LiveExoPlayerManager {
if (getNextPlayer() != null && getNextPlayer().isPlaying()) {
getNextPlayer().stop();
}
if (task != null) {
task.cancel();
task = null;
}
clearUrl();
}
@@ -358,7 +494,10 @@ public class LiveExoPlayerManager {
* 开始播放
*/
public void play() {
getNowPlayer().play();
if (getNowPlayer() != null) {
getNowPlayer().play();
}
}
public void replay() {
@@ -369,6 +508,14 @@ public class LiveExoPlayerManager {
if (getNextPlayer() != null) {
getNextPlayer().stop();
}
if (listener != null) {
listener.onPlaybackStateChanged(Player.STATE_IDLE);
}
handler.removeCallbacks(buffRunnable);
if (task != null) {
task.cancel();
task = null;
}
String tmp = url;
url = null;
startUrl(tmp);
@@ -394,6 +541,13 @@ public class LiveExoPlayerManager {
player2.clearVideoSurface();
player2.release();
}
if (task != null) {
task.cancel();
task = null;
}
if (debugTask != null) {
debugTask.cancel();
}
player1 = null;
player2 = null;
mainView.setKeepContentOnPlayerReset(false);

View File

@@ -43,6 +43,7 @@ import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.bean.LiveChatBean;
@@ -90,12 +91,21 @@ public class LiveTextRender {
String chatMsg = bean.getContent();
int userNiceNameIndex = chatMsg.indexOf(bean.getUserNiceName());
int userNiceNameSize = bean.getUserNiceName().length();
int giftNameIndex = chatMsg.indexOf(bean.getGiftName());
int giftNameSize = bean.getGiftName().length();
int giftNameIndex = -1;
int giftNameSize = -1;
if (!TextUtils.isEmpty(chatMsg) && !TextUtils.isEmpty(bean.getGiftName()) && chatMsg.contains(bean.getGiftName())) {
giftNameIndex = chatMsg.indexOf(bean.getGiftName());
giftNameSize = bean.getGiftName().length();
}
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(chatMsg);
builder.setSpan(new ForegroundColorSpan(Color.parseColor("#78FEFF")), userNiceNameIndex, userNiceNameIndex + userNiceNameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF86C")), giftNameIndex, giftNameIndex + giftNameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
if (giftNameIndex != -1) {
builder.setSpan(new ForegroundColorSpan(Color.parseColor("#FFF86C")), giftNameIndex, giftNameIndex + giftNameSize, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
textView.setText(builder);
}
@@ -786,7 +796,7 @@ public class LiveTextRender {
public SpannableStringBuilder renderGiftInfo2(String giftName) {
SpannableStringBuilder builder = new SpannableStringBuilder();
String s1 = CommonAppContext.sInstance.getBaseContext().getString(R.string.live_send_gift_1);
String s1 = WordUtil.isNewZh() ? "" : "sent";
String content = s1 + " " + giftName;
int index1 = s1.length();
builder.append(content);

View File

@@ -5,6 +5,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
@@ -37,8 +38,10 @@ public abstract class AbsLiveViewHolder extends AbsViewHolder implements View.On
public void onClick(View v) {
int i = v.getId();
if (i == R.id.btn_msg) {
MobclickAgent.onEvent(mContext, "live_room_envelope", "直播间信封按钮");
((LiveActivity) mContext).openChatListWindow();
} else if (i == R.id.et_input) {
MobclickAgent.onEvent(mContext, "live_room_chat_btn", "直播间点开最下面的聊天按钮");
((LiveActivity) mContext).openChatWindow();
}
}

View File

@@ -19,6 +19,7 @@ import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.AbsMainViewHolder;
import com.yunbao.live.R;
import com.yunbao.live.activity.MyTUIConversationFragment;
@@ -180,7 +181,7 @@ public class ChatListViewHolder extends AbsMainViewHolder implements View.OnClic
mSystemMsgRedPoint.setVisibility(View.INVISIBLE);
}
// ImMessageUtil.getInstance().markAllConversationAsRead();
ToastUtil.show(R.string.im_msg_ignore_unread_2);
ToastUtil.show(WordUtil.isNewZh()?"已忽略未讀消息":"Unread message ignored");
}
}

View File

@@ -12,6 +12,7 @@ import com.bumptech.glide.Glide;
import com.ms.banner.holder.BannerViewHolder;
import com.yunbao.common.bean.BannerBean;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ProgressView;
import com.yunbao.live.R;
@@ -37,6 +38,7 @@ public class CustomViewHolder implements BannerViewHolder<BannerBean> {
TextView targetAssist = contextView.findViewById(R.id.target_assist_num);
TextView currentAssist = contextView.findViewById(R.id.current_assist_num);
TextView title = contextView.findViewById(R.id.title);
if (data.isStart()) {
startContext.setVisibility(View.VISIBLE);
Glide.with(context).load(R.mipmap.start_level).into(bannerBack);
@@ -63,6 +65,11 @@ public class CustomViewHolder implements BannerViewHolder<BannerBean> {
targetAssist.setText("/" + targetAssistNum);
currentAssist.setText(String.valueOf(currentAssistNum));
title.setText(String.format(context.getString(R.string.star_change),data.getModel().getTaskNum()));
if(!WordUtil.isNewZh()){
((TextView)contextView.findViewById(R.id.total_star_value)).setText(context.getString(R.string.total_star_value));
((TextView)contextView.findViewById(R.id.number_of_people_assisted)).setText(context.getString(R.string.number_of_people_assisted));
}
} else {
if(data!=null&&!StringUtil.isEmpty(data.getImageUrl())) {
String imagerUrl = data.getImageUrl().replace("qny", "downs");

View File

@@ -19,6 +19,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.event.LiveGiftDialogEvent;
import com.yunbao.common.glide.ImgLoader;
@@ -150,6 +151,7 @@ public class FrameGiftViewHolder extends RecyclerView.ViewHolder {
@Override
public void onViewClicks() {
if (model.getType() == 9999999) {
MobclickAgent.onEvent(mContext, "gif_list_redpk", "用户点开礼物列表红包");
Bus.get().post(new LiveGiftDialogEvent());
new XPopup.Builder(mContext)
.asCustom(new SendRendPacketPopup(mContext, mLiveUid))

View File

@@ -6,6 +6,7 @@ import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.custom.DrawableTextView;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
@@ -34,8 +35,33 @@ public class GiftTitleViewHolder extends RecyclerView.ViewHolder {
});
}
public void selectData(boolean isSelect) {
public void selectData(boolean isSelect, String typeName) {
if (isSelect) {
switch (typeName) {
case "熱門":
case "Hot":
MobclickAgent.onEvent(itemView.getContext(), "gif_list_hot_list", "用户点礼物栏热门礼物按钮");
break;
case "貴族":
case "Aristocrats":
MobclickAgent.onEvent(itemView.getContext(), "gif_list_noble_list", "用户点礼物栏贵族礼物按钮");
break;
case "守護":
case "Guard":
MobclickAgent.onEvent(itemView.getContext(), "gif_list_guard_list", "用户点礼物栏守护礼物按钮");
break;
case "粉絲團":
case "Fans":
MobclickAgent.onEvent(itemView.getContext(), "gif_list_fan_list", "用户点礼物栏粉丝团礼物按钮");
break;
case "專屬":
case "exclusive":
MobclickAgent.onEvent(itemView.getContext(), "gif_list_exclusive_list", "用户点礼物栏专属礼物按钮");
break;
default:
MobclickAgent.onEvent(itemView.getContext(), "gif_list_other_list", "用户点礼物栏其他新配置的礼物分类按钮:"+typeName);
break;
}
name.setAlpha(1.0f);
name.setTypeface(Typeface.SANS_SERIF, Typeface.BOLD);
} else {

View File

@@ -66,7 +66,7 @@ public class LiveAddImpressViewHolder extends AbsLivePageViewHolder {
addId(mtv.getBean().getId());
mChanged = true;
} else {
ToastUtil.show(R.string.impress_add_max);
ToastUtil.show(mContext.getString(R.string.impress_add_max));
}
} else {
removeId(mtv.getBean().getId());
@@ -168,11 +168,11 @@ public class LiveAddImpressViewHolder extends AbsLivePageViewHolder {
private void save() {
if (mLinkedList.size() == 0) {
ToastUtil.show(R.string.impress_please_choose);
ToastUtil.show(mContext.getString(R.string.impress_please_choose));
return;
}
if (!mChanged) {
ToastUtil.show(R.string.impress_not_changed);
ToastUtil.show(mContext.getString(R.string.impress_not_changed));
return;
}
String ids = "";

View File

@@ -25,19 +25,22 @@ import android.widget.ViewFlipper;
import androidx.fragment.app.FragmentActivity;
import com.lxj.xpopup.XPopup;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.NewPeopleInfo;
import com.yunbao.common.dialog.LiveNewRolePopup;
import com.yunbao.common.event.MessageIMEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.API;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.ProcessResultUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.dialog.LiveGiftPopup;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
@@ -46,7 +49,6 @@ import com.yunbao.live.bean.LiveChatBean;
import com.yunbao.live.dialog.LiveHDDialogFragment;
import com.yunbao.live.dialog.LiveMicUserDialogFragment;
import com.yunbao.live.dialog.LivePromotionDialogFragment;
import com.yunbao.live.dialog.LiveRoleDialogFragment;
import com.yunbao.live.dialog.TextHintDialog;
import com.yunbao.live.dialog.VoiceDialog;
import com.yunbao.live.event.LiveAudienceEvent;
@@ -140,7 +142,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveUserMoreDialogFragment");
LiveMicUserDialogFragment.activity = ((LiveAudienceActivity) mContext);
} else {
ToastUtil.show(R.string.no_mic_opn);
ToastUtil.show(mContext.getString(R.string.no_mic_opn));
}
}
});
@@ -161,6 +163,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.total_image), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "live_room_more_sett", "直播间侧边栏更多设置");
Bus.get().post(new LiveAudienceEvent()
.setActivity(false)
.setType(LiveAudienceEvent.LiveAudienceType.BOTTOM_COLLECTION));
@@ -181,6 +184,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.live_cheat), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
MobclickAgent.onEvent(mContext, "live_room_h5_game", "直播间下面鼓掌按钮");
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.WE_CHEAT));
@@ -206,6 +210,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
// ImgLoader.display(mContext, TextUtils.equals(language, "zh") ? R.mipmap.live_icon_cheat : R.mipmap.live_icon_cheat_en, mCheat);
voiceButton.setOnTouchListener((v, event) -> {
MobclickAgent.onEvent(mContext, "live_room_voice_chat_btn", "直播间点开最下面的语音输入的聊天按钮");
if (event.getAction() == MotionEvent.ACTION_DOWN) {
downY = event.getY();
if (mProcessResultUtil.checkPermissions(new String[]{Manifest.permission.RECORD_AUDIO})) {
@@ -384,6 +389,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
} else if (i == R.id.live_new_people) {
openNewPeopleDialog();
} else if (i == R.id.live_privilege) {
MobclickAgent.onEvent(mContext, "live_room_privilege", "直播间下面打开皇冠按钮");
openRoleDialog();
} else if (i == R.id.live_cheat) {
@@ -404,7 +410,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
Bundle bundle = new Bundle();
String url = newPeopleUrl + (newPeopleUrl.contains("?") ? "&" : "?") + "g=Appapi&m=Turntable&a=tricky";
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
bundle.putString("url", url);
bundle.putInt("show_type", 0);
//bundle.putInt("height", DpUtil.dp2px(1));
@@ -443,7 +449,7 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
public void openZGListWindow() {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Turntable&a=tricky";
url += "&uid=" + CommonAppConfig.getInstance().getUid() + "&token="
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid;
+ CommonAppConfig.getInstance().getToken() + "&anchorUid=" + mLiveUid + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
Log.i("tag", url);
Bundle bundle1 = new Bundle();
bundle1.putString("url", url);
@@ -456,11 +462,17 @@ public class LiveAudienceViewHolder extends AbsLiveViewHolder {
* 身份特权
*/
public void openRoleDialog() {
LiveRoleDialogFragment fragment = new LiveRoleDialogFragment();
Bundle bundle = new Bundle();
bundle.putBoolean("showRed", mRedPointPrivilege.getVisibility() == View.VISIBLE);
fragment.setArguments(bundle);
fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveRoleDialogFragment");
IMLoginManager.get(mContext).setRedPoint();
// LiveRoleDialogFragment fragment = new LiveRoleDialogFragment();
// Bundle bundle = new Bundle();
// bundle.putBoolean("showRed", mRedPointPrivilege.getVisibility() == View.VISIBLE);
// fragment.setArguments(bundle);
// fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveRoleDialogFragment");
new XPopup.Builder(mContext)
.enableDrag(false)
.asCustom(new LiveNewRolePopup(mContext, mRedPointPrivilege.getVisibility() == View.VISIBLE))
.show();
mRedPointPrivilege.setVisibility(View.GONE);
}

View File

@@ -30,6 +30,7 @@ import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.common.views.weight.ClipPathCircleImage;
import com.yunbao.live.R;
@@ -47,6 +48,13 @@ import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.HashMap;
import java.util.Map;
import io.rong.imlib.IRongCoreCallback;
import io.rong.imlib.IRongCoreEnum;
import io.rong.imlib.chatroom.base.RongChatRoomClient;
/**
* Created by cxf on 2018/10/9.
*/
@@ -66,10 +74,13 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
private RecyclerView likeList;
private SearchRecommendBodyAdapter adapter;
private IMLoginModel model = null;
private String live_id;
private String leaveStream, leaveGroupId;
public LiveEndViewHolder(Context context, ViewGroup parentView, String uid) {
super(context, parentView);
model = IMLoginManager.get(mContext).getUserInfo();
this.live_id = uid;
if (TextUtils.equals(model.getId() + "", uid)) {
type = LiveOfType.ANCHOR;
} else {
@@ -77,6 +88,14 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
}
}
public void setLeaveStream(String leaveStream) {
this.leaveStream = leaveStream;
}
public void setLeaveGroupId(String leaveGroupId) {
this.leaveGroupId = leaveGroupId;
}
@Override
protected int getLayoutId() {
return R.layout.view_live_end;
@@ -91,6 +110,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
if (type == LiveOfType.USER) {
initViewOfUser();
initDataOfUser();
endLive();
anchorLiveEnd.setVisibility(View.GONE);
} else {
userLiveEnd.setVisibility(View.GONE);
@@ -99,12 +119,67 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
}
private void endLive() {
RongChatRoomClient.getInstance().quitChatRoom("g" + live_id, new IRongCoreCallback.OperationCallback() {
@Override
public void onSuccess() {
try {
Log.i("tx", "退出成功" + live_id);
LiveNetManager.get(mContext)
.leaveRoomNew(leaveStream, leaveGroupId, new com.yunbao.common.http.base.HttpCallback<String>() {
@Override
public void onSuccess(String data) {
}
@Override
public void onError(String error) {
}
});
leaveStream = "";
leaveGroupId = "";
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onError(IRongCoreEnum.CoreErrorCode coreErrorCode) {
try {
Log.i("tx", "退出成功" + live_id);
LiveNetManager.get(mContext)
.leaveRoomNew(leaveStream, leaveGroupId, new com.yunbao.common.http.base.HttpCallback<String>() {
@Override
public void onSuccess(String data) {
}
@Override
public void onError(String error) {
}
});
leaveStream = "";
leaveGroupId = "";
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* 加载用户猜你喜欢数据
*/
private void initDataOfUser() {
Map<String, Object> map = new HashMap<>();
map.put("num", "3");
map.put("live_recommend", "sidebar");
MainNetManager.get((Activity) mContext)
.anchorRecommend("3", new HttpCallback<AnchorRecommendModel>() {
.anchorRecommend(map, new HttpCallback<AnchorRecommendModel>() {
@Override
public void onSuccess(AnchorRecommendModel data) {
if (((Activity) mContext).isFinishing()) return;
@@ -132,7 +207,7 @@ public class LiveEndViewHolder extends AbsViewHolder implements View.OnClickList
@Override
public void onError(String error) {
ToastUtil.show( R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
}

View File

@@ -1,5 +1,7 @@
package com.yunbao.live.views;
import static com.yunbao.live.views.LiveRoomViewHolder.bean1;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
@@ -14,8 +16,10 @@ import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import com.alibaba.fastjson.JSON;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.bean.LiveGiftBean;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.live.R;
import com.yunbao.live.adapter.LiveGiftFragmentPagerAdapter;
@@ -50,6 +54,12 @@ public class LiveGiftFragment extends BaseFragment {
wishGiftId = bundle.getString("wishGiftId");
mLiveUid = bundle.getString("mLiveUid");
type = bundle.getString("type");
// if (bean1 != null && IMLoginManager.get(getContext()).isNewUserGif() && (TextUtils.equals(type, "熱門") || TextUtils.equals(type, "Hot"))) {
// giftJson.add(0, bean1);
// if (wishGiftId == null) {
// wishGiftId = "" + bean1.getId();
// }
// }
pageCount = giftJson.size() / GIFT_COUNT;
if (giftJson.size() % GIFT_COUNT > 0) {
pageCount++;
@@ -117,6 +127,7 @@ public class LiveGiftFragment extends BaseFragment {
@Override
public void onPageSelected(int position) {
MobclickAgent.onEvent(getContext(), "gif_list_slide", "用户左右滑动礼物列表");
if (mRadioGroup != null && mRadioGroup.getChildAt(position) != null) {
((RadioButton) mRadioGroup.getChildAt(position)).setChecked(true);
}
@@ -146,4 +157,6 @@ public class LiveGiftFragment extends BaseFragment {
liveGiftFragment.setArguments(bundle);
return liveGiftFragment;
}
}

View File

@@ -17,6 +17,7 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.live.R;
import com.yunbao.live.adapter.FrameGiftAdapter;
import com.yunbao.live.event.LiveGiftItemEvent;
import com.yunbao.live.event.LiveGiftItemRefreshEvent;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -77,6 +78,10 @@ public class LiveGiftItemFragment extends BaseFragment {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveGiftItemEvent(LiveGiftItemEvent event) {
frameGiftAdapter.giftSelect(event.getLiveGiftModel());
// frameGiftAdapter.giftSelect(event.getLiveGiftModel());
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveGiftItemRefreshEvent(LiveGiftItemRefreshEvent event) {
frameGiftAdapter.refreshWrapListAfterSend(event.getLiveGiftModel());
}
}

View File

@@ -18,6 +18,7 @@ import android.widget.TextView;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.live.R;
import com.yunbao.live.bean.LiveReceiveGiftBean;
@@ -153,7 +154,7 @@ public class LiveGiftViewHolder extends AbsViewHolder {
}
if (TextUtils.isEmpty(mLastGiftKey) || !mLastGiftKey.equals(bean.getKey())) {
ImgLoader.display(mContext, bean.getGiftIcon(), mGiftIcon);
mContent.setText(new LiveTextRender().renderGiftInfo2(bean.getGiftName()));
mContent.setText(new LiveTextRender().renderGiftInfo2(WordUtil.isNewZh()?bean.getGiftName():bean.getGiftnameen()));
if (bean.getGiftCount() > 1) {
mGiftGroupCount.setText("x" + bean.getGiftCount());
mMulSign.setText(R.string.live_gift_send_lian_3);

View File

@@ -157,7 +157,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
Log.i("女神说", "倒计时状态:" + s);
if (mTime.getVisibility() == View.VISIBLE) {
if (mTime.getVisibility() == View.VISIBLE && !s.toString().contains(mContext.getString(R.string.live_pk_time_2))) {
EventBus.getDefault().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING));
}
@@ -218,7 +218,7 @@ public class LiveLinkMicPkViewHolder extends AbsViewHolder {
if (mTime != null) {
Log.i("vvvs", content);
if (content.trim().equals("00:00")) {
mTime.setText("結算中");
mTime.setText(WordUtil.isNewZh()?"結算中":"waiting");
} else {
mTime.setText(content);
}

View File

@@ -108,12 +108,12 @@ public class LiveLinkMicPushTxViewHolder extends AbsLiveLinkMicPushViewHolder im
@Override
public void onPushEvent(int e, Bundle bundle) {
if (e == TXLiveConstants.PUSH_ERR_OPEN_CAMERA_FAIL) {
ToastUtil.show(R.string.live_push_failed_1);
ToastUtil.show(mContext.getString(R.string.live_push_failed_1));
if (mLivePushListener != null) {
mLivePushListener.onPushFailed();
}
} else if (e == TXLiveConstants.PUSH_ERR_OPEN_MIC_FAIL) {
ToastUtil.show(R.string.live_push_failed_1);
ToastUtil.show(mContext.getString(R.string.live_push_failed_1));
if (mLivePushListener != null) {
mLivePushListener.onPushFailed();
}

View File

@@ -35,6 +35,8 @@ import com.yunbao.common.bean.UserBean;
import com.yunbao.common.event.LivePushRyEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.interfaces.ImageResultCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
@@ -46,6 +48,7 @@ import com.yunbao.common.utils.ProcessImageUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.AbsViewHolder;
import com.yunbao.common.views.LiveClarityCustomPopup;
import com.yunbao.common.views.LiveNewWishListPopup;
@@ -63,8 +66,6 @@ import com.yunbao.live.dialog.LiveNewRoomClassDialogFragment;
import com.yunbao.live.dialog.LiveNewRoomTypeDialogFragment;
import com.yunbao.live.dialog.LiveTimeDialogFragment;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -387,11 +388,11 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
chooseLiveType();
} else if (i == R.id.btn_start_live) {
if (!selector) {
ToastUtil.show(R.string.anchor_agreement_hint);
ToastUtil.show(mContext.getString(R.string.anchor_agreement_hint));
return;
}
if (mLiveClassID == 0) {
ToastUtil.show(R.string.live_choose_live_class);
ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
return;
}
// startLive();
@@ -582,7 +583,8 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
url.append("&uid=")
.append(model.getId())
.append("&token=")
.append(model.getToken());
.append(model.getToken()).append("&isZh=")
.append(WordUtil.isNewZh() ? "1" : 0);
RouteUtil.forwardLiveZhuangBanActivity(url.toString(), false);
} else if (i == R.id.btn_live_anchor_say) {
openAnchorSayDialog();
@@ -760,7 +762,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
/**
* 选择直播类型
*/
private LiveRoomTypeBean liveRoomTypeBean = new LiveRoomTypeBean(0,mContext.getString(R.string.live_room_public));
private LiveRoomTypeBean liveRoomTypeBean = new LiveRoomTypeBean(0, mContext.getString(R.string.live_room_public));
private void chooseLiveType() {
Bundle bundle = new Bundle();
@@ -807,14 +809,14 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
* 密码房间
*/
private void onLiveTypePwd(final LiveRoomTypeBean bean) {
DialogUitl.showSimpleInputDialog(mContext,mContext.getString(R.string.live_set_pwd), DialogUitl.INPUT_TYPE_NUMBER_PASSWORD, 8, new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleInputDialog(mContext, mContext.getString(R.string.live_set_pwd), DialogUitl.INPUT_TYPE_NUMBER_PASSWORD, 8, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
if (TextUtils.isEmpty(content)) {
ToastUtil.show(R.string.live_set_pwd_empty);
ToastUtil.show(mContext.getString(R.string.live_set_pwd_empty));
} else {
mLiveType = bean.getId();
mLiveTypeTextView.setText(bean.getName());
mLiveTypeTextView.setText(WordUtil.isNewZh() ? "密碼房" : "password room");
if (StringUtil.isInt(content)) {
mLiveTypeVal = Integer.parseInt(content);
}
@@ -829,11 +831,11 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
* 付费房间
*/
private void onLiveTypePay(final LiveRoomTypeBean bean) {
DialogUitl.showSimpleInputDialog(mContext,mContext.getString(R.string.live_set_fee), DialogUitl.INPUT_TYPE_NUMBER, 8, new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleInputDialog(mContext, mContext.getString(R.string.live_set_fee), DialogUitl.INPUT_TYPE_NUMBER, 8, new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
if (TextUtils.isEmpty(content)) {
ToastUtil.show(R.string.live_set_fee_empty);
ToastUtil.show(mContext.getString(R.string.live_set_fee_empty));
} else {
mLiveType = bean.getId();
mLiveTypeTextView.setText(bean.getName());
@@ -890,7 +892,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
// return;
// }
if (mLiveClassID == 0) {
ToastUtil.show(R.string.live_choose_live_class);
ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
return;
}
createRoom();
@@ -905,7 +907,7 @@ public class LiveNewReadyRyViewHolder extends AbsViewHolder implements View.OnCl
if (!isHttpBack) {
isHttpBack = true;
if (mLiveClassID == 0) {
ToastUtil.show(R.string.live_choose_live_class);
ToastUtil.show(WordUtil.getNewString(R.string.live_choose_live_class));
return;
}
String title = mEditTitle.getText().toString().trim();

View File

@@ -7,6 +7,7 @@ import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.media.AudioManager;
import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils;
@@ -43,6 +44,7 @@ import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.ScreenDimenUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.LiveClarityCustomPopup;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
@@ -677,6 +679,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
mVideoView.requestLayout();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onUpdata(String str) {
if ("UsertoRY".equals(str)) {
@@ -684,23 +687,42 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onConfirmClick(Dialog dialog, String content) {
UsertoRY();
dialog = null;
}
});
} else if ("inviteMic".equals(str)) {
String content = "邀請您進行語音連麥";
String confirm = "接受";
String cancel = "拒絕";
if (!WordUtil.isNewZh()) {
content = "You are invited to join the voice connection";
confirm = "accept";
cancel = "cancel";
}
DialogUitl.Builder builder = new DialogUitl.Builder(mContext)
.setContent("邀請您進行語音連麥")
.setContent(content)
.setTitle(mLiveBean.getUserNiceName())
.setConfirmString("接受")
.setCancelString("拒絕")
.setConfirmString(confirm)
.setCancelString(cancel)
.setView(R.layout.dialog_live_mic_invite)
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
LiveAudienceActivity.mProcessResultUtil.requestPermissions(new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO
}, new Runnable() {
String[] permissions;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
permissions = new String[]{
Manifest.permission.READ_MEDIA_IMAGES,
Manifest.permission.RECORD_AUDIO
};
} else {
permissions = new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.RECORD_AUDIO
};
}
LiveAudienceActivity.mProcessResultUtil.requestPermissions(permissions, new Runnable() {
@Override
public void run() {
UsertoRY();
@@ -751,18 +773,26 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
Log.e("ry", "退出多人房间成功");
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
mPlayer.play();
Log.e("ry", mPlayer.isPlaying() + "purl" + purl);
if (!mPlayer.isPlaying()) {
mPlayer.switchUrl(purl);
if (WordUtil.isNewZh()) {
ToastUtil.show("已成功退出語音連麥");
} else {
ToastUtil.show("You have successfully exited the voice connection");
}
ry_view.removeAllViews();
ry_view.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
onPrepared();
rcrtcRoom = null;
MicStatusManager.getInstance().clear();
ToastUtil.show("已成功退出語音連麥");
resumePlay();
if (mPlayer.getNowPlayer() != null) {
mPlayer.play();
Log.e("ry", mPlayer.isPlaying() + "purl" + purl);
if (!mPlayer.isPlaying()) {
mPlayer.switchUrl(purl);
}
ry_view.removeAllViews();
ry_view.getLayoutParams().height = ViewGroup.LayoutParams.WRAP_CONTENT;
onPrepared();
rcrtcRoom = null;
MicStatusManager.getInstance().clear();
resumePlay();
}
if (onMicCallback != null) {
onMicCallback.onMikUpdate();
}
@@ -844,8 +874,13 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
}
private void showToast() {
DialogUitl.showToast(mContext, "設置成功\n" +
"正在為你轉換中", 3000);
if (WordUtil.isNewZh()) {
DialogUitl.showToast(mContext, "設置成功\n" +
"正在為你轉換中", 3000);
} else {
DialogUitl.showToast(mContext, "successful\n" +
"It's being converted for you", 3000);
}
}
@Override
@@ -979,7 +1014,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry", userinputStreamList.size() + LiveActivity.mLiveUid + "订阅失败" + errorCode.toString());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
@Override
@@ -1017,6 +1052,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "远端失败" + list.size());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1070,10 +1106,37 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
RCRTCEngine.getInstance().getDefaultAudioStream().setAudioQuality(RCRTCParamsType.AudioQuality.MUSIC, RCRTCParamsType.AudioScenario.MUSIC_CLASSROOM);
userinputStreamList1.clear();
userinputStreamList2.clear();
RCRTCParamsType.RCRTCVideoResolution rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
int minRate = 200;
int maxRate = 900;
switch (IMLoginManager.get(mContext).getSelectClarity()) {
case 0:
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_848;
minRate = 200;
maxRate = 900;
break;
case 1:
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_720_1280;
minRate = 250;
maxRate = 2200;
break;
case 2:
rcrtcVideoResolution = RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_1080_1920;
minRate = 400;
maxRate = 4000;
break;
}
// 示例代码使用480x640分辨率演示
RCRTCVideoStreamConfig config = RCRTCVideoStreamConfig
.Builder.create()
.setVideoResolution(RCRTCParamsType.RCRTCVideoResolution.RESOLUTION_480_640)
//设置分辨率
.setVideoResolution(rcrtcVideoResolution)
//设置帧率
.setVideoFps(RCRTCParamsType.RCRTCVideoFps.Fps_24)
//设置最小码率480P下推荐200
.setMinRate(minRate)
//设置最大码率480P下推荐900
.setMaxRate(maxRate)
.build();
RCRTCEngine.getInstance().getDefaultVideoStream().setVideoConfig(config);
// 创建视图渲染视图
@@ -1115,6 +1178,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
Log.e("ry", i + "收到" + stream.getMediaType() + "实打实打算" + rcrtcRoom.getRemoteUsers().get(i).getUserId());
if (stream.getMediaType() == RCRTCMediaType.VIDEO) {
if (userinputStreamList1.size() == 0) {
//如果远端用户发布的是视频流创建显示视图RCRTCVideoView并添加到布局中显示
RCRTCVideoView remoteView = new RCRTCVideoView(contexts);
((RCRTCVideoInputStream) stream).setStreamType(RCRTCStreamType.NORMAL);
@@ -1122,12 +1186,12 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
((RCRTCVideoInputStream) stream).setVideoFrameListener(new IRCRTCVideoInputFrameListener() {
@Override
public void onFrame(RCRTCRemoteVideoFrame videoFrame) {
String debugText = "视频类型:" + videoFrame.getFrameType().name() + "\n" +
String debugText = " 2、安卓主播开播 安卓用户申请连麦后 ,安卓用户这边底部画面不全 :" + videoFrame.getFrameType().name() + "\n" +
"rotation:" + videoFrame.getRotation() + "\n" +
"timestampNs:" + videoFrame.getTimestampNs() + "\n" +
"分辨率:" + videoFrame.getBuffer().getHeight() + "x" + videoFrame.getBuffer().getWidth() + "\n" +
"当前时间:" + new SimpleDateFormat("HH:mm:ss", Locale.CHINA).format(new Date()) + "\n";
Log.d("ry", "onFrame: " + debugText);
//Log.d("ry", "onFrame: " + debugText);
new Handler(Looper.getMainLooper()).post(() -> {
debugView.setText(debugText);
@@ -1136,8 +1200,8 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
});
//todo 本demo只演示添加1个远端用户的视图
ry_view.removeAllViews();
remoteView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
remoteView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FIT);
remoteView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
remoteView.setScalingType(RendererCommon.ScalingType.SCALE_ASPECT_FILL);
ry_view.addView(remoteView);
}
userinputStreamList1.add(stream);
@@ -1169,6 +1233,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "订阅资源失败: " + rtcErrorCode.getReason());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -1243,11 +1308,11 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
Player.Listener.super.onPlaybackStateChanged(playbackState);
if (playbackState == Player.STATE_BUFFERING) {
//showLoadingDialog();
//mLoading.setVisibility(View.VISIBLE);
mLoading.setVisibility(View.VISIBLE);
OkDownload.getInstance().pauseAll();
Log.i(TAG, "onPlaybackStateChanged: 缓存中");
} else {
//mLoading.setVisibility(View.INVISIBLE);
mLoading.setVisibility(View.INVISIBLE);
Log.i(TAG, "onPlaybackStateChanged: 播放中");
}
}
@@ -1257,6 +1322,7 @@ public class LivePlayRyViewHolder extends LiveRoomPlayViewHolder {
Player.Listener.super.onIsPlayingChanged(isPlaying);
if (isPlaying) {
hideCover();
mLoading.setVisibility(View.INVISIBLE);
Log.i(TAG, "onIsPlayingChanged: 开始播放 | waitNextUrl = " + waitNextUrl);
OkDownload.getInstance().startAll();
if (loadingListener != null) {

View File

@@ -265,7 +265,7 @@ public class LivePlayTxViewHolder_backup extends LiveRoomPlayViewHolder implemen
playType = TXLivePlayer.PLAY_TYPE_VOD_MP4;
}
if (playType == -1) {
ToastUtil.show(R.string.live_play_error_2);
ToastUtil.show(mContext.getString(R.string.live_play_error_2));
return;
}
if (mPlayer != null) {

View File

@@ -4,8 +4,11 @@ import static com.lzy.okgo.utils.HttpUtils.runOnUiThread;
import static com.yunbao.common.Constants.SOCKET_LINK_MIC_PK;
import static com.yunbao.common.Constants.SOCKET_LIVE_DRPK;
import static com.yunbao.live.activity.LiveActivity.mLiveRyLinkMicPkPresenter;
import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.LIVE_PK_END;
import static com.yunbao.live.event.LiveAudienceEvent.LiveAudienceType.LIVE_PK_ING;
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.inputStreamList;
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.inputStreamList1;
import static com.yunbao.live.presenter.LiveRyLinkMicPkPresenter.mPkUid;
import static cn.rongcloud.rtc.base.RCRTCLiveRole.BROADCASTER;
import android.app.Dialog;
@@ -48,6 +51,7 @@ import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveRyAnchorActivity;
@@ -72,6 +76,7 @@ import cn.rongcloud.rtc.api.RCRTCMixConfig;
import cn.rongcloud.rtc.api.RCRTCRemoteUser;
import cn.rongcloud.rtc.api.RCRTCRoom;
import cn.rongcloud.rtc.api.RCRTCRoomConfig;
import cn.rongcloud.rtc.api.callback.IRCRTCEngineEventListener;
import cn.rongcloud.rtc.api.callback.IRCRTCResultCallback;
import cn.rongcloud.rtc.api.callback.IRCRTCResultDataCallback;
import cn.rongcloud.rtc.api.callback.IRCRTCRoomEventsListener;
@@ -81,6 +86,7 @@ import cn.rongcloud.rtc.api.stream.RCRTCVideoStreamConfig;
import cn.rongcloud.rtc.api.stream.RCRTCVideoView;
import cn.rongcloud.rtc.base.RCRTCParamsType;
import cn.rongcloud.rtc.base.RCRTCRoomType;
import cn.rongcloud.rtc.base.RCRTCVideoEventCode;
import cn.rongcloud.rtc.base.RTCErrorCode;
import cn.rongcloud.rtc.core.CameraVideoCapturer;
import cn.rongcloud.rtc.core.RendererCommon;
@@ -118,6 +124,8 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
private TextView tv_avatarOther_name;
private ImageView avatarOther;
private LinearLayout goto_room_view;
private boolean isPk = false;
private boolean isNeedOpenCamera = false;
//修改上面主播的头像
@Subscribe(threadMode = ThreadMode.MAIN)
@@ -126,6 +134,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
if (e != null) {
if (!e.isClear()) {
tv_avatarOther_name.setText(e.getUserNiceName());
tv_avatarOther_name.setTag(e.getUserNiceName());
ImgLoader.displayAvatar(mContext, e.getAvatar(), avatarOther);
goto_room_view.setVisibility(View.VISIBLE);
} else {
@@ -169,7 +178,8 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onFailed(RTCErrorCode rtcErrorCode) {
Log.e("ry", "远端失败" + list.size());
Log.e("ry", "远端失败" + list.size() + "|errorCode:" + rtcErrorCode.toString());
ToastUtil.show(mContext.getString(R.string.live_pk_link_error));
}
});
}
@@ -229,49 +239,49 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
//收到邀请这个时候正在PK或连麦中 自动拒绝对方
if (isPking() == true) {
rtcRoom.getLocalUser().responseJoinOtherRoom(userBean.getId(), userBean.getId(), false, false, "extra", new IRCRTCResultCallback() {
rtcRoom.getLocalUser().responseJoinOtherRoom(userBean.getId(), userBean.getId(), false, false, "extra", new IRCRTCResultCallback() {
@Override
public void onFailed(RTCErrorCode errorCode) {
@Override
public void onFailed(RTCErrorCode errorCode) {
}
}
@Override
public void onSuccess() {
final SocketSendBean msg1 = new SocketSendBean()
.param("_method_", SOCKET_LINK_MIC_PK)
.param("action", 8);
msg1.create();
@Override
public void onSuccess() {
final SocketSendBean msg1 = new SocketSendBean()
.param("_method_", SOCKET_LINK_MIC_PK)
.param("action", 8);
msg1.create();
String targetId = userBean.getId();
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, conversationType, messageContent);
String targetId = userBean.getId();
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(targetId, conversationType, messageContent);
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
@Override
public void onAttached(io.rong.imlib.model.Message message) {
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
@Override
public void onAttached(io.rong.imlib.model.Message message) {
}
@Override
public void onSuccess(io.rong.imlib.model.Message message) {
Log.e("ry", "发送成功");
if (SocketRyClient.mSocketHandler != null) {
SocketRyClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + "");
}
}
@Override
public void onSuccess(io.rong.imlib.model.Message message) {
@Override
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
Log.e("ry", "发送失敗" + userBean.getId());
}
});
}
});
Log.e("ry", "发送成功");
if (SocketRyClient.mSocketHandler != null) {
SocketRyClient.mSocketHandler.processBroadcast(msg1.mResult.toString() + "");
}
}
@Override
public void onError(io.rong.imlib.model.Message message, RongIMClient.ErrorCode errorCode) {
Log.e("ry", "发送失敗" + userBean.getId());
}
});
}
});
}else if (extra.equals(SOCKET_LIVE_DRPK)) {
} else if (extra.equals(SOCKET_LIVE_DRPK)) {
//收到多人PK申请
if (mLiveRyLinkMicPkPresenter != null) {
mLiveRyLinkMicPkPresenter.onLinkDRMicPkApply(userBean);
@@ -404,7 +414,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onError(String error) {
ToastUtil.show(R.string.net_error);
ToastUtil.show(WordUtil.isNewZh()?"抱歉!出錯了!":"i \\'m sorry! An error occurred");
}
});
@@ -431,16 +441,16 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onFinishOtherRoom(String roomId, String userId) {
super.onFinishOtherRoom(roomId, userId);
Log.e("ry",roomId+"房间是"+userId);
Log.e("ry", roomId + "房间是" + userId);
RCRTCEngine.getInstance().leaveOtherRoom(roomId, true, new IRCRTCResultCallback() {
@Override
public void onSuccess() {
Log.e("ry",roomId+"退出啊房间成功"+userId);
Log.e("ry", roomId + "退出啊房间成功" + userId);
}
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.e("ry",roomId+"退出啊房间失败"+userId);
Log.e("ry", roomId + "退出啊房间失败" + userId);
}
});
@@ -488,9 +498,11 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
btn_close.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
DialogUitl.showSimpleDialog(mContext, "是否要斷開連麥?", new DialogUitl.SimpleCallback() {
DialogUitl.showSimpleDialog(mContext, WordUtil.isNewZh() ? "是否要斷開連麥?" : "Do you want to disconnect Link?", new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
Log.i("PK----->", "updateSub: " + isPk + "|");
aheadOfScheduleEndPK(mPkUid, CommonAppConfig.getInstance().getUserBean().getUserNiceName(), (String) tv_avatarOther_name.getTag());
//断开连麦
LiveRyAnchorActivity.isDRPK = 0;
HttpClient.getInstance().post("livepk.setliveuserout", "livepk.setliveuserout")
@@ -597,6 +609,8 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
}
});
}
});
}
@@ -684,10 +698,34 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
//设置摄像头最大缩放比例
boolean zoom = RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(1.0f);
// ToastUtil.show("设置比例="+zoom);
Log.i("摄像头", "onSuccess: 打开摄像头");
isNeedOpenCamera = false;
}
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
}
});
RCRTCEngine.getInstance().registerEventListener(new IRCRTCEngineEventListener() {
@Override
public void onKicked(String roomId, RCRTCParamsType.RCRTCKickedReason kickedReason) {
}
@Override
public void onError(RTCErrorCode errorCode) {
super.onError(errorCode);
Log.i("摄像头", "onError: 错误码" + errorCode);
}
@Override
public void onLocalVideoEventNotify(RCRTCVideoEventCode event) {
super.onLocalVideoEventNotify(event);
Log.i("摄像头", "onLocalVideoEventNotify: 本地视频事件" + event.code);
if (event.code == 3) {
isNeedOpenCamera = true;
}
}
});
//设置摄像头最大缩放比例
@@ -796,7 +834,7 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void toggleFlash() {
if (mCameraFront) {
ToastUtil.show(R.string.live_open_flash);
ToastUtil.show(mContext.getString(R.string.live_open_flash));
return;
}
@@ -907,6 +945,24 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onResume() {
mPaused = false;
Log.i("摄像头", "onResume: " + isNeedOpenCamera);
if(isNeedOpenCamera){
RCRTCEngine.getInstance().getDefaultVideoStream().startCamera(new IRCRTCResultDataCallback<Boolean>() {
@Override
public void onSuccess(Boolean data) {
//设置摄像头最大缩放比例
boolean zoom = RCRTCEngine.getInstance().getDefaultVideoStream().setCameraZoomFactor(1.0f);
// ToastUtil.show("设置比例="+zoom);
Log.i("摄像头", "onSuccess: 打开摄像头");
isNeedOpenCamera = false;
}
@Override
public void onFailed(RTCErrorCode errorCode) {
Log.i("摄像头", "onFailed: 打开摄像头失败 " + errorCode);
}
});
}
}
@Override
@@ -943,10 +999,10 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
@Override
public void onPushEvent(int e, Bundle bundle) {
if (e == TXLiveConstants.PUSH_ERR_OPEN_CAMERA_FAIL) {
ToastUtil.show(R.string.live_push_failed_1);
ToastUtil.show(mContext.getString(R.string.live_push_failed_1));
} else if (e == TXLiveConstants.PUSH_ERR_OPEN_MIC_FAIL) {
ToastUtil.show(R.string.live_push_failed_2);
ToastUtil.show(mContext.getString(R.string.live_push_failed_2));
} else if (e == TXLiveConstants.PUSH_ERR_NET_DISCONNECT || e == TXLiveConstants.PUSH_ERR_INVALID_ADDRESS) {
L.e(TAG, "网络断开,推流失败------>");
@@ -975,6 +1031,38 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
}
private void aheadOfScheduleEndPK(String pkUid, String uname, String pkname) {
if (!isPk) {
return;
}
String ct = "由於 " + uname + " 退出比賽," + pkname + " 獲得勝利";
SocketSendBean seed_msg = new SocketSendBean()
.param("_method_", Constants.SOCKET_SYSTEM)
.param("action", 1)
.param("ct", ct);
seed_msg.create();
HttpClient.getInstance().get("Tx.sendmsgzs2", "Tx.sendmsgzs2")
.params("GroupId", "g" + pkUid)
.params("jsonstr", seed_msg.mResult.toString())
.execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
HttpClient.getInstance().post("Tx.sendmsgzs2", "Tx.sendmsgzs2")
.params("GroupId", "g" + CommonAppConfig.getInstance().getUid())
.params("jsonstr", seed_msg.mResult.toString())
.execute(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
}
});
}
});
}
private Bitmap decodeResource(Resources resources, int id) {
TypedValue value = new TypedValue();
resources.openRawResource(id, value);
@@ -1006,4 +1094,14 @@ public class LivePushRyViewHolder extends AbsRyLivePushViewHolder implements ITX
}
});
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void updateSub(LiveAudienceEvent event) {
if (event.getType() == LIVE_PK_END) {
isPk = false;
} else if (event.getType() == LIVE_PK_ING) {
isPk = true;
}
Log.i("PK----->", "updateSub: " + isPk + "|" + event.getType());
}
}

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