1.首页顶部房间列表展示逻辑优化

2.增加ViewBinding相关base类
This commit is contained in:
huangjian
2020-12-21 16:12:22 +08:00
parent 2f3c31fe29
commit 6b06b9162c
11 changed files with 211 additions and 158 deletions

View File

@@ -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(***);
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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()
} }

View File

@@ -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()
}

View File

@@ -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()
}

View File

@@ -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);
} }

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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;
}
} }
}); });
} }