diff --git a/common/src/main/java/com/yunbao/common/dialog/SlideSettingsDialog.java b/common/src/main/java/com/yunbao/common/dialog/SlideSettingsDialog.java
new file mode 100644
index 000000000..99538ac1b
--- /dev/null
+++ b/common/src/main/java/com/yunbao/common/dialog/SlideSettingsDialog.java
@@ -0,0 +1,83 @@
+package com.yunbao.common.dialog;
+
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.ImageView;
+
+import com.yunbao.common.R;
+import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.views.weight.ViewClicksAntiShake;
+
+/**
+ * 滑动设置
+ */
+public class SlideSettingsDialog extends AbsDialogFragment {
+ private ImageView slideSwitch;
+ private boolean slide;
+
+ @Override
+ protected int getLayoutId() {
+ return R.layout.view_slide_settings;
+ }
+
+ @Override
+ protected int getDialogStyle() {
+ return R.style.dialog2;
+ }
+
+ @Override
+ protected boolean canCancel() {
+ return true;
+ }
+
+
+ @Override
+ protected void setWindowAttributes(Window window) {
+ window.setWindowAnimations(R.style.bottomToTopAnim);
+ WindowManager.LayoutParams params = window.getAttributes();
+ params.width = WindowManager.LayoutParams.MATCH_PARENT;
+ params.height = WindowManager.LayoutParams.WRAP_CONTENT;
+ params.gravity = Gravity.BOTTOM;
+ window.setAttributes(params);
+ }
+
+ @Override
+ public void onActivityCreated(Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ slideSwitch = (ImageView) findViewById(R.id.slide_switch);
+ slide = IMLoginManager.get(getActivity()).isSlide();
+ if (slide) {
+ ImgLoader.display(getContext(), R.mipmap.special_icon_on, slideSwitch);
+ } else {
+ ImgLoader.display(getContext(), R.mipmap.special_icon_off, slideSwitch);
+ }
+ //滑动设置
+ ViewClicksAntiShake.clicksAntiShake(slideSwitch, () -> {
+ slide = !slide;
+ if (slide) {
+ ImgLoader.display(getContext(), R.mipmap.special_icon_on, slideSwitch);
+ } else {
+ ImgLoader.display(getContext(), R.mipmap.special_icon_off, slideSwitch);
+ }
+ //滑动设置
+ IMLoginManager.get(getContext()).initSlide(slide);
+ if (callBack != null) {
+ callBack.initSlide(slide);
+ }
+ });
+ }
+
+ private SlideSettingsCallBack callBack;
+
+ public SlideSettingsDialog setCallBack(SlideSettingsCallBack callBack) {
+ this.callBack = callBack;
+ return this;
+ }
+
+ public interface SlideSettingsCallBack {
+ void initSlide(boolean slide);
+ }
+}
diff --git a/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java b/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java
index 576350fb8..ef6fc179c 100644
--- a/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java
@@ -30,6 +30,7 @@ public class IMLoginManager extends BaseCacheManager {
private final static String GiftEffect = "giftEffect";
private final static String MountEffect = "mountEffect";
private final static String IS_CHAT = "isChat";
+ private final static String IS_SLIDE = "isSlide";
/**
* @param isChat 是否隐藏聊天列表 is_chat 1:开启 0:关闭
@@ -38,6 +39,24 @@ public class IMLoginManager extends BaseCacheManager {
put(IS_CHAT, isChat);
}
+ /**
+ * 设置直播间是否滚动
+ *
+ * @param isSlide 滚动
+ */
+ public void initSlide(boolean isSlide) {
+ put(IS_SLIDE, isSlide);
+ }
+
+ /**
+ * 获取之比肩是否滚动
+ *
+ * @return
+ */
+ public boolean isSlide() {
+ return getBoolean(IS_SLIDE, true);
+ }
+
/**
* 是否隐藏聊天列表
*
diff --git a/common/src/main/res/layout/view_live_total.xml b/common/src/main/res/layout/view_live_total.xml
index 5e7855974..5ffcfb799 100644
--- a/common/src/main/res/layout/view_live_total.xml
+++ b/common/src/main/res/layout/view_live_total.xml
@@ -245,6 +245,28 @@
android:textSize="12sp" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/src/main/res/mipmap-xxhdpi/live_more_icon_sliding.png b/common/src/main/res/mipmap-xxhdpi/live_more_icon_sliding.png
new file mode 100644
index 000000000..a5eaa1edd
Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/live_more_icon_sliding.png differ
diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index 99bf1b7c7..676a36515 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -912,6 +912,8 @@
订单查询中
订单无异常
登錄失效,請重新登錄
+ 滑動設置
+ 上下滑動切換直播間
diff --git a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java
index e9215006a..230613930 100644
--- a/live/src/main/java/com/yunbao/live/activity/LiveActivity.java
+++ b/live/src/main/java/com/yunbao/live/activity/LiveActivity.java
@@ -152,7 +152,7 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
mCoinName = CommonAppConfig.getInstance().getCoinName();
mIsAnchor = this instanceof LiveAnchorActivity;
- mPageContainer = (ViewGroup) findViewById(R.id.page_container);
+ mPageContainer = findViewById(R.id.page_container);
EventBus.getDefault().register(this);
mDialogFragmentSet = new HashSet<>();
//解压 美颜模型
@@ -270,7 +270,6 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
@Override
public void onEnterRoom(LiveEnterRoomBean bean) {
if (mLiveRoomViewHolder != null) {
- LiveUserGiftBean u = bean.getUserBean();
if (!bean.getUserBean().getCar().getWords().equals("")) {
bean.getLiveChatBean().setContent(bean.getUserBean().getCar().getWords());
}
@@ -285,9 +284,6 @@ public abstract class LiveActivity extends AbsActivity implements SocketMessageL
*/
@Override
public void onLeaveRoom(UserBean bean) {
- if (mLiveRoomViewHolder != null) {
-// mLiveRoomViewHolder.removeUser(bean.getId());
- }
if (mLiveLinkMicPresenter != null) {
mLiveLinkMicPresenter.onAudienceLeaveRoom(bean);
}
diff --git a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
index 1cb2b35f2..d09ee190c 100644
--- a/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
+++ b/live/src/main/java/com/yunbao/live/activity/LiveAudienceActivity.java
@@ -1,5 +1,7 @@
package com.yunbao.live.activity;
+import static com.yunbao.live.views.LivePlayRyViewHolder.Micing;
+
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
@@ -35,6 +37,7 @@ import com.yunbao.common.bean.SlideInfoModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.dialog.EffectsSettingsDialog;
import com.yunbao.common.dialog.LiveChargeDialogFragment;
+import com.yunbao.common.dialog.SlideSettingsDialog;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
@@ -80,8 +83,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import static com.yunbao.live.views.LivePlayRyViewHolder.Micing;
-
/**
* Created by cxf on 2018/10/10.
* 看直播
@@ -160,6 +161,9 @@ public class LiveAudienceActivity extends LiveActivity {
private void initView() {
// 竖直滑动 ViewPager
verticalViewPager = findViewById(R.id.view_pager);
+
+ verticalViewPager.setEnableScroll(IMLoginManager.get(mContext).isSlide());
+
}
public void setBackIndex(int backIndex) {
@@ -197,7 +201,9 @@ public class LiveAudienceActivity extends LiveActivity {
manager.micIngTypeTwo(mLiveBean, mLiveType, mLiveTypeVal);
} else {
- verticalViewPager.setEnableScroll(true);
+ if (IMLoginManager.get(mContext).isSlide()){
+ verticalViewPager.setEnableScroll(true);
+ }
mCurrentItem = position;
Log.e(TAG, "mCurrentItem:" + mCurrentItem);
if (mCurrentItem == itemModelList.size() - 1) {
@@ -331,19 +337,17 @@ public class LiveAudienceActivity extends LiveActivity {
* 打开礼物窗口
*/
public void openGiftWindow() {
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- public void run() {
- if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream)) {
- return;
- }
- LiveGiftDialogFragment fragment = new LiveGiftDialogFragment();
- fragment.setLiveGuardInfo(mLiveGuardInfo);
- Bundle bundle = new Bundle();
- bundle.putString(Constants.LIVE_UID, mLiveUid);
- bundle.putString(Constants.LIVE_STREAM, mStream);
- fragment.setArguments(bundle);
- fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment");
+ new Handler(Looper.getMainLooper()).post(() -> {
+ if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream)) {
+ return;
}
+ LiveGiftDialogFragment fragment = new LiveGiftDialogFragment();
+ fragment.setLiveGuardInfo(mLiveGuardInfo);
+ Bundle bundle = new Bundle();
+ bundle.putString(Constants.LIVE_UID, mLiveUid);
+ bundle.putString(Constants.LIVE_STREAM, mStream);
+ fragment.setArguments(bundle);
+ fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment");
});
}
@@ -365,20 +369,18 @@ public class LiveAudienceActivity extends LiveActivity {
if (TextUtils.isEmpty(mLiveUid) || TextUtils.isEmpty(mStream)) {
return;
}
- new Handler(Looper.getMainLooper()).post(new Runnable() {
- public void run() {
- LiveGiftDialogFragment fragment = new LiveGiftDialogFragment();
- fragment.setLiveGuardInfo(mLiveGuardInfo);
- Bundle bundle = new Bundle();
- bundle.putString(Constants.LIVE_UID, mLiveUid);
- bundle.putString(Constants.LIVE_STREAM, mStream);
- bundle.putString(Constants.LIVE_WISH_GIFTID, giftId);
- if (for_by.equals("1")) {
- bundle.putString("by", "1");
- }
- fragment.setArguments(bundle);
- fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment");
+ new Handler(Looper.getMainLooper()).post(() -> {
+ LiveGiftDialogFragment fragment = new LiveGiftDialogFragment();
+ fragment.setLiveGuardInfo(mLiveGuardInfo);
+ Bundle bundle = new Bundle();
+ bundle.putString(Constants.LIVE_UID, mLiveUid);
+ bundle.putString(Constants.LIVE_STREAM, mStream);
+ bundle.putString(Constants.LIVE_WISH_GIFTID, giftId);
+ if (for_by.equals("1")) {
+ bundle.putString("by", "1");
}
+ fragment.setArguments(bundle);
+ fragment.show(((LiveAudienceActivity) mContext).getSupportFragmentManager(), "LiveGiftDialogFragment");
});
}
@@ -485,6 +487,7 @@ public class LiveAudienceActivity extends LiveActivity {
super.onPause();
manager.onPause();
}
+
/**
* 点亮
*/
@@ -815,6 +818,16 @@ public class LiveAudienceActivity extends LiveActivity {
manager.onChat(chatBean, 1);
break;
+ case SLIDE_SETTINGS:
+ SlideSettingsDialog slideSettingsDialog = new SlideSettingsDialog();
+ slideSettingsDialog.show(getSupportFragmentManager(), "SlideSettingsDialog");
+ slideSettingsDialog.setCallBack(new SlideSettingsDialog.SlideSettingsCallBack() {
+ @Override
+ public void initSlide(boolean slide) {
+ verticalViewPager.setEnableScroll(slide);
+ }
+ });
+ break;
}
@@ -890,7 +903,6 @@ public class LiveAudienceActivity extends LiveActivity {
}
-
/**
* 获取侧边栏数据
*/
diff --git a/live/src/main/java/com/yunbao/live/dialog/LiveTotalDialog.java b/live/src/main/java/com/yunbao/live/dialog/LiveTotalDialog.java
index b680d8eea..2dd565291 100644
--- a/live/src/main/java/com/yunbao/live/dialog/LiveTotalDialog.java
+++ b/live/src/main/java/com/yunbao/live/dialog/LiveTotalDialog.java
@@ -9,13 +9,13 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
-import com.yunbao.live.adapter.FunGamesAdapter;
import com.yunbao.common.bean.ActiveModel;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
+import com.yunbao.live.adapter.FunGamesAdapter;
import com.yunbao.live.bean.LiveBean;
import com.yunbao.live.event.LiveAudienceEvent;
@@ -144,6 +144,11 @@ public class LiveTotalDialog extends AbsDialogFragment {
.setType(LiveAudienceEvent.LiveAudienceType.ONLINE));
dismiss();
});
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.slide_settings_layout), () -> {
+ Bus.get().post(new LiveAudienceEvent()
+ .setType(LiveAudienceEvent.LiveAudienceType.SLIDE_SETTINGS));
+ dismiss();
+ });
}
@Override
diff --git a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java
index 58b195025..eee6cca27 100644
--- a/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java
+++ b/live/src/main/java/com/yunbao/live/event/LiveAudienceEvent.java
@@ -130,7 +130,9 @@ public class LiveAudienceEvent extends BaseModel {
NOTICE(18, "系统通知"),
ONLINE(19, "在线客服"),
TRUMPET_NOTIFY(20, "全服喇叭"),
- RECOMMEND_CARD_NOTIFY(21, "贵族推荐通知");
+ RECOMMEND_CARD_NOTIFY(21, "贵族推荐通知"),
+ SLIDE_SETTINGS(22, "滑動設置")
+ ;
private int type;
private String name;