VIP坑位不能显示表情和光圈bug fix

This commit is contained in:
huangjian
2022-05-13 21:01:14 +08:00
parent 325c0fd615
commit 1a75aee327

View File

@@ -13,6 +13,7 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGADrawable;
@@ -22,14 +23,11 @@ import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yizhuan.erban.R; import com.yizhuan.erban.R;
import com.yizhuan.erban.avroom.adapter.BaseMicroViewAdapter; import com.yizhuan.erban.avroom.adapter.BaseMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.DatingMicroViewAdapter; import com.yizhuan.erban.avroom.adapter.DatingMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.GameMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.GameMiniMicroViewAdapter;
import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener; import com.yizhuan.erban.avroom.adapter.OnMicroItemClickListener;
import com.yizhuan.erban.ui.anim.AnimFactory; import com.yizhuan.erban.ui.anim.AnimFactory;
import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil;
import com.yizhuan.erban.ui.widget.recyclerview.decoration.DatingItemDecoration; import com.yizhuan.erban.ui.widget.recyclerview.decoration.DatingItemDecoration;
import com.yizhuan.xchat_android_core.bean.RoomQueueInfo; import com.yizhuan.xchat_android_core.bean.RoomQueueInfo;
import com.yizhuan.xchat_android_core.im.custom.bean.FaceAttachment;
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; import com.yizhuan.xchat_android_core.manager.IMNetEaseManager;
import com.yizhuan.xchat_android_core.manager.RoomEvent; import com.yizhuan.xchat_android_core.manager.RoomEvent;
@@ -199,14 +197,7 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
int pos = positions.get(i) + 1; int pos = positions.get(i) + 1;
if (pos >= count && pos != AvRoomDataManager.POSITION_VIP_MIC + 1) continue; if (pos >= count && pos != AvRoomDataManager.POSITION_VIP_MIC + 1) continue;
final SVGAImageView speakState; final SVGAImageView speakState = findItemView(pos, R.id.iv_halo);
//相亲模式VIP位置光圈
if (pos == AvRoomDataManager.POSITION_VIP_MIC + 1) {
speakState = ((RecyclerView) findItemView(pos).findViewById(R.id.rv_vip))
.getChildAt(0).findViewById(R.id.iv_halo);
} else {
speakState = findItemView(pos).findViewById(R.id.iv_halo);
}
if (speakState != null) { if (speakState != null) {
RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().getRoomQueueMemberInfoByMicPosition(positions.get(i)); RoomQueueInfo roomQueueInfo = AvRoomDataManager.get().getRoomQueueMemberInfoByMicPosition(positions.get(i));
@@ -273,12 +264,17 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
} }
} }
private View findItemView(int pos) { @Nullable
RecyclerView.ViewHolder viewHolder = recyclerView.findViewHolderForLayoutPosition(pos); private <T extends View> T findItemView(int pos, int viewId) {
if (viewHolder != null) { if (pos == AvRoomDataManager.POSITION_VIP_MIC + 1) {
return viewHolder.itemView; return ((RecyclerView) recyclerView.getChildAt(0).findViewById(R.id.rv_vip))
.getChildAt(0).findViewById(viewId);
} else {
RecyclerView.ViewHolder viewHolder = recyclerView.findViewHolderForLayoutPosition(pos);
if (viewHolder == null) return null;
return viewHolder.itemView.findViewById(viewId);
} }
return recyclerView.getChildAt(pos);
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
@@ -309,12 +305,7 @@ public class MicroView extends LinearLayout implements View.OnLayoutChangeListen
if (isDragon) { if (isDragon) {
return; return;
} else { } else {
if (position == AvRoomDataManager.POSITION_VIP_MIC + 1) { imageView = findItemView(position + 1, R.id.iv_face);
imageView = ((RecyclerView) findItemView(position + 1).findViewById(R.id.rv_vip))
.getChildAt(0).findViewById(R.id.iv_face);
} else {
imageView = findItemView(position + 1).findViewById(R.id.iv_face);
}
} }
if (imageView == null) continue; if (imageView == null) continue;
AnimFactory.getFaceAnimation(faceReceiveInfo, mContext, imageView.getWidth(), imageView.getHeight(), needAnim, needResult, needGone) AnimFactory.getFaceAnimation(faceReceiveInfo, mContext, imageView.getWidth(), imageView.getHeight(), needAnim, needResult, needGone)