1.首页顶部房间列表展示逻辑优化
2.增加ViewBinding相关base类
This commit is contained in:
6
app/proguard-rules.pro
vendored
6
app/proguard-rules.pro
vendored
@@ -369,3 +369,9 @@
|
|||||||
-keep class com.meizu.cloud.** {*;}
|
-keep class com.meizu.cloud.** {*;}
|
||||||
|
|
||||||
-keep class com.yizhuan.erban.ui.widget.AppBarLayoutBehavior {*;}
|
-keep class com.yizhuan.erban.ui.widget.AppBarLayoutBehavior {*;}
|
||||||
|
|
||||||
|
#ViewBinding使用的反射生成的对应Binding
|
||||||
|
-keepclassmembers class * implements androidx.viewbinding.ViewBinding {
|
||||||
|
public static ** inflate(***);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -40,10 +40,6 @@ class RedPackageGoRoomDialog : BaseDialog<DialogRedPackageGoRoomBinding>() {
|
|||||||
super.onStart()
|
super.onStart()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun initBinding(inflater: LayoutInflater): DialogRedPackageGoRoomBinding {
|
|
||||||
return DialogRedPackageGoRoomBinding.inflate(inflater)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
AnimationUtils.loadAnimation(context, R.anim.anim_all_red_package).apply {
|
AnimationUtils.loadAnimation(context, R.anim.anim_all_red_package).apply {
|
||||||
binding.clRed.animation = this
|
binding.clRed.animation = this
|
||||||
|
@@ -58,10 +58,6 @@ class RedPackageOpenDialog : BaseDialog<DialogRedPackageOpenBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun initBinding(inflater: LayoutInflater): DialogRedPackageOpenBinding {
|
|
||||||
return DialogRedPackageOpenBinding.inflate(inflater)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
width = WindowManager.LayoutParams.MATCH_PARENT
|
width = WindowManager.LayoutParams.MATCH_PARENT
|
||||||
height = WindowManager.LayoutParams.WRAP_CONTENT
|
height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||||
|
@@ -45,11 +45,6 @@ class RedPackageSendDialog : BaseDialog<DialogRedPackageSendBinding>(), GridPass
|
|||||||
private var isAll = false
|
private var isAll = false
|
||||||
private var isGift = false
|
private var isGift = false
|
||||||
|
|
||||||
|
|
||||||
override fun initBinding(inflater: LayoutInflater): DialogRedPackageSendBinding {
|
|
||||||
return DialogRedPackageSendBinding.inflate(inflater)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
width = WindowManager.LayoutParams.MATCH_PARENT
|
width = WindowManager.LayoutParams.MATCH_PARENT
|
||||||
height = WindowManager.LayoutParams.WRAP_CONTENT
|
height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
package com.yizhuan.erban.base
|
package com.yizhuan.erban.base
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.DialogInterface
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
@@ -10,13 +11,16 @@ import androidx.viewbinding.ViewBinding
|
|||||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||||
import com.trello.rxlifecycle3.components.support.RxDialogFragment
|
import com.trello.rxlifecycle3.components.support.RxDialogFragment
|
||||||
import java.lang.Exception
|
import java.lang.Exception
|
||||||
|
import java.lang.reflect.ParameterizedType
|
||||||
|
|
||||||
abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
|
abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
|
||||||
|
|
||||||
private var _binding: T? = null
|
private var _binding: T? = null
|
||||||
|
private var onDismissListener: (() -> Unit)? = null
|
||||||
val binding get() = _binding!!
|
val binding get() = _binding!!
|
||||||
var width = ScreenUtil.getDialogWidth()
|
var width = ScreenUtil.getDialogWidth()
|
||||||
var height = WindowManager.LayoutParams.WRAP_CONTENT
|
var height = WindowManager.LayoutParams.WRAP_CONTENT
|
||||||
|
var gravity = Gravity.CENTER
|
||||||
|
|
||||||
override fun onStart() {
|
override fun onStart() {
|
||||||
super.onStart()
|
super.onStart()
|
||||||
@@ -27,13 +31,17 @@ abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
|
|||||||
windowParams.width = width
|
windowParams.width = width
|
||||||
windowParams.height = height
|
windowParams.height = height
|
||||||
windowParams.dimAmount = 0.5f
|
windowParams.dimAmount = 0.5f
|
||||||
windowParams.gravity = Gravity.CENTER
|
windowParams.gravity = gravity
|
||||||
window.attributes = windowParams
|
window.attributes = windowParams
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
_binding = initBinding(inflater)
|
//反射没有想象中的那么耗时
|
||||||
|
val type = javaClass.genericSuperclass as ParameterizedType
|
||||||
|
val aClass = type.actualTypeArguments[0] as Class<*>
|
||||||
|
val method = aClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
|
||||||
|
_binding = method.invoke(null, layoutInflater) as T
|
||||||
return binding.root
|
return binding.root
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,12 +58,19 @@ abstract class BaseDialog<T : ViewBinding> : RxDialogFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDismiss(dialog: DialogInterface) {
|
||||||
|
super.onDismiss(dialog)
|
||||||
|
onDismissListener?.invoke()
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setOnDismissListener(onDismissListener: () -> Unit) {
|
||||||
|
this.onDismissListener = onDismissListener
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
_binding = null
|
_binding = null
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract fun initBinding(inflater: LayoutInflater): T
|
|
||||||
|
|
||||||
abstract fun init()
|
abstract fun init()
|
||||||
}
|
}
|
@@ -0,0 +1,24 @@
|
|||||||
|
package com.yizhuan.erban.base
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import androidx.viewbinding.ViewBinding
|
||||||
|
import java.lang.reflect.ParameterizedType
|
||||||
|
|
||||||
|
abstract class BaseViewBindingActivity<T : ViewBinding> : BaseActivity(){
|
||||||
|
|
||||||
|
lateinit var binding : T
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
//反射没有想象中的那么耗时
|
||||||
|
val type = javaClass.genericSuperclass as ParameterizedType
|
||||||
|
val aClass = type.actualTypeArguments[0] as Class<*>
|
||||||
|
val method = aClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
|
||||||
|
binding = method.invoke(null,layoutInflater) as T
|
||||||
|
setContentView(binding.root)
|
||||||
|
init()
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract fun init()
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package com.yizhuan.erban.base
|
||||||
|
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.viewbinding.ViewBinding
|
||||||
|
import java.lang.reflect.ParameterizedType
|
||||||
|
|
||||||
|
abstract class BaseViewBindingFragment<T : ViewBinding> : BaseFragment() {
|
||||||
|
|
||||||
|
private var _binding: T? = null
|
||||||
|
|
||||||
|
val binding get() = _binding!!
|
||||||
|
|
||||||
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
|
//反射没有想象中的那么耗时
|
||||||
|
val type = javaClass.genericSuperclass as ParameterizedType
|
||||||
|
val aClass = type.actualTypeArguments[0] as Class<*>
|
||||||
|
val method = aClass.getDeclaredMethod("inflate", LayoutInflater::class.java)
|
||||||
|
_binding = method.invoke(null, layoutInflater) as T
|
||||||
|
return binding.root
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
init()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onDestroyView() {
|
||||||
|
super.onDestroyView()
|
||||||
|
_binding = null
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract fun init()
|
||||||
|
}
|
@@ -4,7 +4,6 @@ import android.annotation.SuppressLint;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.Rect;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.GradientDrawable;
|
import android.graphics.drawable.GradientDrawable;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -13,7 +12,6 @@ import android.text.Spannable;
|
|||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.style.ForegroundColorSpan;
|
import android.text.style.ForegroundColorSpan;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
@@ -26,7 +24,6 @@ import androidx.core.content.ContextCompat;
|
|||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
|
||||||
|
|
||||||
import com.amap.api.location.AMapLocationClient;
|
import com.amap.api.location.AMapLocationClient;
|
||||||
import com.amap.api.location.AMapLocationClientOption;
|
import com.amap.api.location.AMapLocationClientOption;
|
||||||
@@ -60,7 +57,6 @@ import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
|
|||||||
import com.yizhuan.erban.ui.widget.OnPageSelectedListener;
|
import com.yizhuan.erban.ui.widget.OnPageSelectedListener;
|
||||||
import com.yizhuan.erban.ui.widget.higuide.TuTuGuideHelper;
|
import com.yizhuan.erban.ui.widget.higuide.TuTuGuideHelper;
|
||||||
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
import com.yizhuan.erban.ui.widget.magicindicator.ViewPagerHelper;
|
||||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
|
|
||||||
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
|
import com.yizhuan.erban.ui.widget.magicindicator.buildins.commonnavigator.CommonNavigator;
|
||||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.VerticalDecoration;
|
import com.yizhuan.erban.ui.widget.recyclerview.decoration.VerticalDecoration;
|
||||||
import com.yizhuan.xchat_android_core.UriProvider;
|
import com.yizhuan.xchat_android_core.UriProvider;
|
||||||
@@ -95,7 +91,6 @@ import com.yizhuan.xchat_android_library.utils.SizeUtils;
|
|||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.greenrobot.eventbus.Subscribe;
|
import org.greenrobot.eventbus.Subscribe;
|
||||||
import org.greenrobot.eventbus.ThreadMode;
|
import org.greenrobot.eventbus.ThreadMode;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
|
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -268,7 +263,15 @@ public class GameHomeFragment extends BaseMvpFragment<IMainFragmentView, MainFra
|
|||||||
});
|
});
|
||||||
mBinding.magicIndicatorBottom.onPageSelected(InitialModel.get().getDefaultHomeTab());
|
mBinding.magicIndicatorBottom.onPageSelected(InitialModel.get().getDefaultHomeTab());
|
||||||
mBinding.viewPagerBottom.setCurrentItem(InitialModel.get().getDefaultHomeTab());
|
mBinding.viewPagerBottom.setCurrentItem(InitialModel.get().getDefaultHomeTab());
|
||||||
mBinding.rvFollowRoom.setVisibility(View.VISIBLE);
|
if (needAutoScroll) {
|
||||||
|
needAutoScroll = false;
|
||||||
|
mBinding.coordinatorLayout.post(() -> {
|
||||||
|
int distance = mBinding.rvFollowRoom.getMeasuredHeight();
|
||||||
|
CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) mBinding.appBarLayout.getLayoutParams()).getBehavior();
|
||||||
|
if (behavior != null)
|
||||||
|
behavior.onNestedPreScroll(mBinding.coordinatorLayout, mBinding.appBarLayout, mBinding.rvFollowRoom, 0, distance, new int[]{0, 0}, 0);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -327,7 +330,6 @@ public class GameHomeFragment extends BaseMvpFragment<IMainFragmentView, MainFra
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
ViewPagerHelper.bind(mBinding.magicIndicatorBottom, mBinding.viewPagerBottom);
|
ViewPagerHelper.bind(mBinding.magicIndicatorBottom, mBinding.viewPagerBottom);
|
||||||
|
|
||||||
scrollToView();
|
scrollToView();
|
||||||
@@ -498,15 +500,6 @@ public class GameHomeFragment extends BaseMvpFragment<IMainFragmentView, MainFra
|
|||||||
if (list != null && list.size() > 0) {
|
if (list != null && list.size() > 0) {
|
||||||
mBinding.rvFollowRoom.setVisibility(View.VISIBLE);
|
mBinding.rvFollowRoom.setVisibility(View.VISIBLE);
|
||||||
mFollowRoomsAdapter.setNewData(list);
|
mFollowRoomsAdapter.setNewData(list);
|
||||||
if (needAutoScroll) {
|
|
||||||
needAutoScroll = false;
|
|
||||||
mBinding.rvFollowRoom.post(() -> {
|
|
||||||
int distance = mBinding.rvFollowRoom.getHeight();
|
|
||||||
CoordinatorLayout.Behavior behavior = ((CoordinatorLayout.LayoutParams) mBinding.appBarLayout.getLayoutParams()).getBehavior();
|
|
||||||
if (behavior != null)
|
|
||||||
behavior.onNestedPreScroll(mBinding.coordinatorLayout, mBinding.appBarLayout, mBinding.rvFollowRoom, 0, distance, new int[]{0, 0}, 0);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
mBinding.rvFollowRoom.setVisibility(View.GONE);
|
mBinding.rvFollowRoom.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
@@ -118,7 +118,7 @@
|
|||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/rv_follow_room"
|
android:id="@+id/rv_follow_room"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="80dp"
|
||||||
android:paddingStart="@dimen/dp_15"
|
android:paddingStart="@dimen/dp_15"
|
||||||
android:paddingEnd="@dimen/dp_15"
|
android:paddingEnd="@dimen/dp_15"
|
||||||
android:visibility="visible" />
|
android:visibility="visible" />
|
||||||
|
@@ -3,14 +3,13 @@
|
|||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/container_item_room_history"
|
android:id="@+id/container_item_room_history"
|
||||||
android:layout_width="50dp"
|
android:layout_width="60dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="75dp"
|
||||||
android:paddingBottom="10dp"
|
|
||||||
tools:background="@color/red">
|
tools:background="@color/red">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/fl_room_history_avatar_container"
|
android:id="@+id/fl_room_history_avatar_container"
|
||||||
android:layout_width="50dp"
|
android:layout_width="55dp"
|
||||||
android:layout_height="55dp"
|
android:layout_height="55dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@@ -20,6 +19,7 @@
|
|||||||
android:id="@+id/civ_room_avatar"
|
android:id="@+id/civ_room_avatar"
|
||||||
android:layout_width="50dp"
|
android:layout_width="50dp"
|
||||||
android:layout_height="50dp"
|
android:layout_height="50dp"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
app:cborder_color="@color/appColor"
|
app:cborder_color="@color/appColor"
|
||||||
app:cborder_width="2dp"
|
app:cborder_width="2dp"
|
||||||
tools:src="@drawable/default_avatar" />
|
tools:src="@drawable/default_avatar" />
|
||||||
@@ -27,12 +27,16 @@
|
|||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/iv_living"
|
android:id="@+id/iv_living"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="15dp"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_horizontal|bottom"
|
android:layout_gravity="center_horizontal|bottom"
|
||||||
android:background="@drawable/bg_common_confirm_normal"
|
android:background="@drawable/bg_common_confirm_normal"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingStart="2dp"
|
android:includeFontPadding="false"
|
||||||
android:paddingEnd="2dp"
|
android:lines="1"
|
||||||
|
android:paddingStart="4dp"
|
||||||
|
android:paddingTop="1dp"
|
||||||
|
android:paddingEnd="4dp"
|
||||||
|
android:paddingBottom="1dp"
|
||||||
android:text="直播中"
|
android:text="直播中"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/dp_11"
|
android:textSize="@dimen/dp_11"
|
||||||
@@ -42,14 +46,16 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_room_name"
|
android:id="@+id/tv_room_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:gravity="center"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="12sp"
|
android:textSize="12dp"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@id/fl_room_history_avatar_container"
|
app:layout_constraintTop_toBottomOf="@id/fl_room_history_avatar_container"
|
||||||
tools:text="" />
|
tools:text="66星球66星球" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@@ -2,11 +2,10 @@ package com.yizhuan.xchat_android_core.room.pk.model;
|
|||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
|
import android.util.SparseArray;
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import android.util.SparseArray;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
import com.netease.nimlib.sdk.chatroom.ChatRoomMessageBuilder;
|
||||||
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage;
|
||||||
@@ -70,9 +69,7 @@ import io.reactivex.SingleSource;
|
|||||||
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
||||||
import io.reactivex.disposables.Disposable;
|
import io.reactivex.disposables.Disposable;
|
||||||
import io.reactivex.functions.BiConsumer;
|
import io.reactivex.functions.BiConsumer;
|
||||||
import io.reactivex.functions.Consumer;
|
|
||||||
import io.reactivex.functions.Function;
|
import io.reactivex.functions.Function;
|
||||||
import io.reactivex.functions.Predicate;
|
|
||||||
import retrofit2.http.DELETE;
|
import retrofit2.http.DELETE;
|
||||||
import retrofit2.http.Field;
|
import retrofit2.http.Field;
|
||||||
import retrofit2.http.FormUrlEncoded;
|
import retrofit2.http.FormUrlEncoded;
|
||||||
@@ -110,134 +107,123 @@ public class PkModel extends BaseModel implements IPkModel {
|
|||||||
api = RxNet.create(Api.class);
|
api = RxNet.create(Api.class);
|
||||||
//PK模块需要礼物统计
|
//PK模块需要礼物统计
|
||||||
IMNetEaseManager.get().getChatRoomEventObservable()
|
IMNetEaseManager.get().getChatRoomEventObservable()
|
||||||
.filter(new Predicate<RoomEvent>() {
|
.filter(roomEvent -> curPkInfo != null
|
||||||
@Override
|
&& curPkInfo.getPkStatus() == RoomPkData.PK_STATUS_IN_PK
|
||||||
public boolean test(RoomEvent roomEvent) throws Exception {
|
&& (RoomEvent.RECEIVE_NORMALE_GIFT == roomEvent.getEvent()
|
||||||
|
|| RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT == roomEvent.getEvent()
|
||||||
return curPkInfo != null && curPkInfo.getPkStatus() == RoomPkData.PK_STATUS_IN_PK
|
|| RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT == roomEvent.getEvent()
|
||||||
&&
|
|| RoomEvent.RECEIVED_SINGLE_MAGIC == roomEvent.getEvent()
|
||||||
(RoomEvent.RECEIVE_NORMALE_GIFT == roomEvent.getEvent()
|
|| RoomEvent.RECEIVED_ALL_MIC_MAGIC == roomEvent.getEvent()
|
||||||
|| RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT == roomEvent.getEvent()
|
|| RoomEvent.RECEIVE_LUCKY_GIFT == roomEvent.getEvent()
|
||||||
|| RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT == roomEvent.getEvent()
|
|| RoomEvent.RECEIVE_MULTI_LUCKY_GIFT == roomEvent.getEvent()
|
||||||
|| RoomEvent.RECEIVED_SINGLE_MAGIC == roomEvent.getEvent()
|
|| RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT == roomEvent.getEvent()))
|
||||||
|| RoomEvent.RECEIVED_ALL_MIC_MAGIC == roomEvent.getEvent()
|
.subscribe(roomEvent -> {
|
||||||
|| RoomEvent.RECEIVE_LUCKY_GIFT == roomEvent.getEvent()
|
int teamId = 0;
|
||||||
|| RoomEvent.RECEIVE_MULTI_LUCKY_GIFT == roomEvent.getEvent()
|
switch (roomEvent.getEvent()) {
|
||||||
|| RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT == roomEvent.getEvent());
|
case RoomEvent.RECEIVE_NORMALE_GIFT:
|
||||||
|
GiftReceiveInfo giftReceiveInfo = roomEvent.getGiftReceiveInfo();
|
||||||
}
|
if (giftReceiveInfo == null || !isGoldGift(giftReceiveInfo.getGift())) {
|
||||||
})
|
//钻石礼物才算分数
|
||||||
.subscribe(new Consumer<RoomEvent>() {
|
return;
|
||||||
@Override
|
}
|
||||||
public void accept(RoomEvent roomEvent) throws Exception {
|
teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiveInfo.getTargetUid()));
|
||||||
int teamId = 0;
|
if (teamId != 0) {
|
||||||
switch (roomEvent.getEvent()) {
|
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
||||||
case RoomEvent.RECEIVE_NORMALE_GIFT:
|
addTeamScoreByGiftValue(teamId, giftReceiveInfo.getGiftNum() * giftReceiveInfo.getGift().getGoldPrice());
|
||||||
GiftReceiveInfo giftReceiveInfo = roomEvent.getGiftReceiveInfo();
|
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
||||||
if (giftReceiveInfo == null || !isGoldGift(giftReceiveInfo.getGift())) {
|
addTeamScoreByPeopleCount(teamId, giftReceiveInfo.getUid(), giftReceiveInfo.getTargetUid());
|
||||||
//钻石礼物才算分数
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiveInfo.getTargetUid()));
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT:
|
||||||
|
GiftMultiReceiverInfo giftMultiReceiverInfo = roomEvent.getGiftMultiReceiverInfo();
|
||||||
|
if (giftMultiReceiverInfo == null || !isGoldGift(giftMultiReceiverInfo.getGift())) {
|
||||||
|
//钻石礼物才算分数
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (GiftReceiver giftReceiver : giftMultiReceiverInfo.getTargetUsers()) {
|
||||||
|
teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiver.getUid()));
|
||||||
if (teamId != 0) {
|
if (teamId != 0) {
|
||||||
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
||||||
addTeamScoreByGiftValue(teamId, giftReceiveInfo.getGiftNum() * giftReceiveInfo.getGift().getGoldPrice());
|
addTeamScoreByGiftValue(teamId, giftMultiReceiverInfo.getGiftNum() * giftMultiReceiverInfo.getGift().getGoldPrice());
|
||||||
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
||||||
addTeamScoreByPeopleCount(teamId, giftReceiveInfo.getUid(), giftReceiveInfo.getTargetUid());
|
addTeamScoreByPeopleCount(teamId, giftMultiReceiverInfo.getUid(), giftReceiver.getUid());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case RoomEvent.RECEIVE_MUTLT_NORMALEI_GIFT:
|
case RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT:
|
||||||
GiftMultiReceiverInfo giftMultiReceiverInfo = roomEvent.getGiftMultiReceiverInfo();
|
MultiGiftReceiveInfo multiReceiverInfo = roomEvent.getMultiGiftReceiveInfo();
|
||||||
if (giftMultiReceiverInfo == null || !isGoldGift(giftMultiReceiverInfo.getGift())) {
|
if (multiReceiverInfo == null || !isGoldGift(multiReceiverInfo.getGift())) {
|
||||||
//钻石礼物才算分数
|
//钻石礼物才算分数
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (GiftReceiver giftReceiver : giftMultiReceiverInfo.getTargetUsers()) {
|
for (Long targetUid : multiReceiverInfo.getTargetUids()) {
|
||||||
teamId = getTeamIdInPKMemberList(String.valueOf(giftReceiver.getUid()));
|
teamId = getTeamIdInPKMemberList(String.valueOf(targetUid));
|
||||||
if (teamId != 0) {
|
|
||||||
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
|
||||||
addTeamScoreByGiftValue(teamId, giftMultiReceiverInfo.getGiftNum() * giftMultiReceiverInfo.getGift().getGoldPrice());
|
|
||||||
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
|
||||||
addTeamScoreByPeopleCount(teamId, giftMultiReceiverInfo.getUid(), giftReceiver.getUid());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case RoomEvent.RECEIVE_ALL_MIC__NORMALEI_GIFT:
|
|
||||||
MultiGiftReceiveInfo multiReceiverInfo = roomEvent.getMultiGiftReceiveInfo();
|
|
||||||
if (multiReceiverInfo == null || !isGoldGift(multiReceiverInfo.getGift())) {
|
|
||||||
//钻石礼物才算分数
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (Long targetUid : multiReceiverInfo.getTargetUids()) {
|
|
||||||
teamId = getTeamIdInPKMemberList(String.valueOf(targetUid));
|
|
||||||
if (teamId != 0) {
|
|
||||||
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
|
||||||
addTeamScoreByGiftValue(teamId, multiReceiverInfo.getGiftNum() * multiReceiverInfo.getGift().getGoldPrice());
|
|
||||||
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
|
||||||
addTeamScoreByPeopleCount(teamId, multiReceiverInfo.getUid(), targetUid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
case RoomEvent.RECEIVED_SINGLE_MAGIC:
|
|
||||||
MagicReceivedInfo magicReceivedInfo = roomEvent.getMagicReceivedInfo();
|
|
||||||
teamId = getTeamIdInPKMemberList(String.valueOf(magicReceivedInfo.getTargetUid()));
|
|
||||||
if (teamId != 0) {
|
if (teamId != 0) {
|
||||||
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
||||||
MagicInfo magicInfo = MagicModel.get().getMagicInfo(magicReceivedInfo.getMagicId());
|
addTeamScoreByGiftValue(teamId, multiReceiverInfo.getGiftNum() * multiReceiverInfo.getGift().getGoldPrice());
|
||||||
|
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
||||||
|
addTeamScoreByPeopleCount(teamId, multiReceiverInfo.getUid(), targetUid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RoomEvent.RECEIVED_SINGLE_MAGIC:
|
||||||
|
MagicReceivedInfo magicReceivedInfo = roomEvent.getMagicReceivedInfo();
|
||||||
|
teamId = getTeamIdInPKMemberList(String.valueOf(magicReceivedInfo.getTargetUid()));
|
||||||
|
if (teamId != 0) {
|
||||||
|
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
||||||
|
MagicInfo magicInfo = MagicModel.get().getMagicInfo(magicReceivedInfo.getMagicId());
|
||||||
|
if (magicInfo != null) {
|
||||||
|
addTeamScoreByGiftValue(teamId, (int) (magicReceivedInfo.getNumber() * magicInfo.getPrice()));
|
||||||
|
}
|
||||||
|
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
||||||
|
addTeamScoreByPeopleCount(teamId, magicReceivedInfo.getUid(), magicReceivedInfo.getTargetUid());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
case RoomEvent.RECEIVED_ALL_MIC_MAGIC:
|
||||||
|
MultiMagicReceivedInfo multiMagicReceivedInfo = roomEvent.getMultiMagicReceivedInfo();
|
||||||
|
for (Long aLong : multiMagicReceivedInfo.getTargetUids()) {
|
||||||
|
teamId = getTeamIdInPKMemberList(String.valueOf(aLong));
|
||||||
|
if (teamId != 0) {
|
||||||
|
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
||||||
|
MagicInfo magicInfo = MagicModel.get().getMagicInfo(multiMagicReceivedInfo.getMagicId());
|
||||||
if (magicInfo != null) {
|
if (magicInfo != null) {
|
||||||
addTeamScoreByGiftValue(teamId, (int) (magicReceivedInfo.getNumber() * magicInfo.getPrice()));
|
addTeamScoreByGiftValue(teamId, (int) (multiMagicReceivedInfo.getNumber() * magicInfo.getPrice()));
|
||||||
}
|
}
|
||||||
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
||||||
addTeamScoreByPeopleCount(teamId, magicReceivedInfo.getUid(), magicReceivedInfo.getTargetUid());
|
addTeamScoreByPeopleCount(teamId, multiMagicReceivedInfo.getUid(), aLong);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case RoomEvent.RECEIVED_ALL_MIC_MAGIC:
|
case RoomEvent.RECEIVE_LUCKY_GIFT:
|
||||||
MultiMagicReceivedInfo multiMagicReceivedInfo = roomEvent.getMultiMagicReceivedInfo();
|
case RoomEvent.RECEIVE_MULTI_LUCKY_GIFT:
|
||||||
for (Long aLong : multiMagicReceivedInfo.getTargetUids()) {
|
case RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT:
|
||||||
teamId = getTeamIdInPKMemberList(String.valueOf(aLong));
|
LuckyBagGifts luckyBagGifts = roomEvent.getLuckygiftMultiReceiverInfo();
|
||||||
if (teamId != 0) {
|
teamId = getTeamIdInPKMemberList(String.valueOf(luckyBagGifts.getTargetUid()));
|
||||||
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
if (teamId != 0) {
|
||||||
MagicInfo magicInfo = MagicModel.get().getMagicInfo(multiMagicReceivedInfo.getMagicId());
|
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
||||||
if (magicInfo != null) {
|
int totalPrice = 0;
|
||||||
addTeamScoreByGiftValue(teamId, (int) (multiMagicReceivedInfo.getNumber() * magicInfo.getPrice()));
|
for (GiftList giftList : luckyBagGifts.getGiftList()) {
|
||||||
}
|
GiftInfo giftInfo = GiftModel.get().findGiftInfoById(giftList.getGiftId());
|
||||||
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
if (giftInfo != null) {
|
||||||
addTeamScoreByPeopleCount(teamId, multiMagicReceivedInfo.getUid(), aLong);
|
totalPrice += giftList.getGiftNum() * giftInfo.getGoldPrice();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
addTeamScoreByGiftValue(teamId, totalPrice);
|
||||||
|
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
||||||
|
addTeamScoreByPeopleCount(teamId, luckyBagGifts.getUid(), luckyBagGifts.getTargetUid());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case RoomEvent.RECEIVE_LUCKY_GIFT:
|
|
||||||
case RoomEvent.RECEIVE_MULTI_LUCKY_GIFT:
|
|
||||||
case RoomEvent.RECEIVE_ALL_MIC_LUCKY_GIFT:
|
|
||||||
LuckyBagGifts luckyBagGifts = roomEvent.getLuckygiftMultiReceiverInfo();
|
|
||||||
teamId = getTeamIdInPKMemberList(String.valueOf(luckyBagGifts.getTargetUid()));
|
|
||||||
if (teamId != 0) {
|
|
||||||
if (curPkInfo.getVoteMode() == PK_VOTE_MODE_GIFT_VALUE) {
|
|
||||||
int totalPrice = 0;
|
|
||||||
for (GiftList giftList : luckyBagGifts.getGiftList()) {
|
|
||||||
GiftInfo giftInfo = GiftModel.get().findGiftInfoById(giftList.getGiftId());
|
|
||||||
if (giftInfo != null) {
|
|
||||||
totalPrice += giftList.getGiftNum() * giftInfo.getGoldPrice();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
addTeamScoreByGiftValue(teamId, totalPrice);
|
|
||||||
} else if (curPkInfo.getVoteMode() == PK_VOTE_MODE_PEOPLE_COUNT) {
|
|
||||||
addTeamScoreByPeopleCount(teamId, luckyBagGifts.getUid(), luckyBagGifts.getTargetUid());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user