6.5.4礼物冠名

This commit is contained in:
18401019693
2023-08-02 13:23:37 +08:00
parent 54458bd0c0
commit 5afa3bd30b
31 changed files with 1034 additions and 45 deletions

View File

@@ -16,7 +16,9 @@ import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.Constants;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.fragment.GiftAlreadyWallFragment;
import com.yunbao.common.event.GiftWallItemEvent;
import com.yunbao.common.fragment.AllServiceChampionFragment;
import com.yunbao.live.views.GiftAlreadyWallFragment;
import com.yunbao.common.fragment.GiftWithoutWallFragment;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
@@ -26,8 +28,8 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.event.GiftTitleEvent;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.event.LiveGiftDialogEvent;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -97,6 +99,10 @@ public class GiftWallDialog extends AbsDialogFragment {
@Override
public void onViewClicks() {
selectTab(textAllServiceChampion, viewAllServiceChampion);
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
transaction.replace(R.id.context_layout_gift, AllServiceChampionFragment.newInstance(mStream, mLiveUid));
transaction.commit();
}
});
ViewClicksAntiShake.clicksAntiShake(attention, new ViewClicksAntiShake.ViewClicksCallBack() {
@@ -196,7 +202,14 @@ public class GiftWallDialog extends AbsDialogFragment {
* 关于点击礼物分类的通知
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void onGiftTitleEvent(GiftTitleEvent event) {
public void onGiftWallItemEvent(GiftWallItemEvent event) {
new XPopup.Builder(getActivity())
.asCustom(new GiftWallItemPopup(getActivity(), event.getGiftWallModel(), event.isUnlit(), mLiveUid, mStream))
.show();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveGiftDialogEvent(LiveGiftDialogEvent event) {
dismiss();
}
}

View File

@@ -0,0 +1,110 @@
package com.yunbao.live.dialog;
import android.content.Context;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import com.lxj.xpopup.core.CenterPopupView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftWallGiftDetail;
import com.yunbao.common.bean.GiftWallModel;
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.Bus;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.event.LiveAudienceEvent;
import com.yunbao.live.event.LiveGiftDialogEvent;
public class GiftWallItemPopup extends CenterPopupView {
private CardView layout;
private ImageView giftImg, avatar;
private TextView price, giftDetailsBtn, distanceNaming, vacantPositionAwaits, giftDetails, vacantPosition;
private GiftWallModel giftWallModel;
private boolean unlit;
private String mLiveUid, mStream;
public GiftWallItemPopup(@NonNull Context context, GiftWallModel giftWallModel,
boolean unlit, String mLiveUid, String mStream) {
super(context);
this.giftWallModel = giftWallModel;
this.unlit = unlit;
this.mLiveUid = mLiveUid;
this.mStream = mStream;
}
@Override
protected int getImplLayoutId() {
return R.layout.popup_gift_wall_item;
}
@Override
protected void onCreate() {
super.onCreate();
layout = findViewById(R.id.layout);
giftImg = findViewById(R.id.gift_img);
price = findViewById(R.id.price);
giftDetails = findViewById(R.id.gift_details);
giftDetailsBtn = findViewById(R.id.gift_details_btn);
distanceNaming = findViewById(R.id.distance_naming);
vacantPositionAwaits = findViewById(R.id.vacant_position_awaits);
vacantPosition = findViewById(R.id.vacant_position);
avatar = findViewById(R.id.avatar);
if (unlit) {
giftDetailsBtn.setText(getContext().getText(R.string.send_hem));
} else {
giftDetailsBtn.setText(getContext().getText(R.string.instant_light));
}
ImgLoader.display(getContext(), giftWallModel.getGifticon(), giftImg);
giftDetails.setText(giftWallModel.getGiftname());
price.setText(giftWallModel.getNeedcoin());
loadData();
ViewClicksAntiShake.clicksAntiShake(giftDetailsBtn, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP)
.setmLiveUid(mLiveUid)
.setmStream(mStream)
.setmWishGiftId(giftWallModel.getId()));
Bus.get().post(new LiveGiftDialogEvent());
dialog.dismiss();
}
});
}
public void loadData() {
LiveNetManager.get(getContext()).
giftDetail(mLiveUid, String.valueOf(giftDetails.getId()), new HttpCallback<GiftWallGiftDetail>() {
@Override
public void onSuccess(GiftWallGiftDetail data) {
if (data.getUid() == 0) {
ImgLoader.display(getContext(), R.mipmap.icon_vacant_position_awaits, avatar);
vacantPositionAwaits.setText(getContext().getText(R.string.vacant_position_awaits));
vacantPosition.setText("?");
} else {
ImgLoader.display(getContext(), data.getAvatar(), avatar);
vacantPositionAwaits.setText(data.getUserNicename());
vacantPosition.setText(giftWallModel.getGiftname());
}
if (data.getNamingCoin() == 0) {
distanceNaming.setVisibility(GONE);
} else {
distanceNaming.setVisibility(VISIBLE);
distanceNaming.setText(String.format(getContext().getString(R.string.distance_naming), String.valueOf(data.getNamingCoin())));
}
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}

View File

@@ -2,17 +2,24 @@ package com.yunbao.live.dialog;
import android.content.Context;
import android.graphics.Color;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.widget.TextView;
import androidx.annotation.NonNull;
import com.lxj.xpopup.impl.FullScreenPopupView;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.R;
import com.yunbao.live.utils.LinearGradientFontSpan;
/**
* 礼物冠名规则
*/
public class RegularIntroducePopup extends FullScreenPopupView {
private TextView regularTitle;
public RegularIntroducePopup(@NonNull Context context) {
super(context);
}
@@ -25,6 +32,13 @@ public class RegularIntroducePopup extends FullScreenPopupView {
@Override
protected void onCreate() {
super.onCreate();
regularTitle = findViewById(R.id.regular_title);
String title = getContext().getString(R.string.rule_introduction);
SpannableStringBuilder builder = new SpannableStringBuilder();
builder.append(title);
builder.setSpan(new LinearGradientFontSpan(Color.parseColor("#ffffff"),
Color.parseColor("#F7FDFF")), 0, title.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
regularTitle.setText(builder);
//初始化
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.close_btn), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override

View File

@@ -0,0 +1,101 @@
package com.yunbao.live.views;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.adapter.GiftAlreadyWallAdapter;
import com.yunbao.common.bean.GiftAlreadyWallModel;
import com.yunbao.common.fragment.BaseFragment;
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.event.LiveAudienceEvent;
import com.yunbao.live.event.LiveGiftDialogEvent;
/**
* 已点亮礼物墙
*/
public class GiftAlreadyWallFragment extends BaseFragment {
private String mStream, mLiveUid;
private LinearLayout giftWallNoData, giftWallData;
private RecyclerView alreadyList;
private GiftAlreadyWallAdapter alreadyWallAdapter;
private TextView litIcon, giftAll;
@Override
public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
return layoutInflater.inflate(R.layout.fragment_gift_already_wall, viewGroup, false);
}
@Override
protected void initVariables(Bundle bundle) {
mStream = bundle.getString("mStream");
mLiveUid = bundle.getString("mLiveUid");
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
giftWallNoData = contentView.findViewById(R.id.gift_wall_no_data);
giftWallData = contentView.findViewById(R.id.gift_wall_data);
alreadyList = contentView.findViewById(R.id.already_list);
litIcon = contentView.findViewById(R.id.lit_icon);
giftAll = contentView.findViewById(R.id.gift_all);
alreadyWallAdapter = new GiftAlreadyWallAdapter();
alreadyList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false));
alreadyList.setAdapter(alreadyWallAdapter);
ViewClicksAntiShake.clicksAntiShake(contentView.findViewById(R.id.instant_light), new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
Bus.get().post(new LiveAudienceEvent()
.setType(LiveAudienceEvent.LiveAudienceType.GIFT_POPUP)
.setmLiveUid(mLiveUid)
.setmStream(mStream));
Bus.get().post(new LiveGiftDialogEvent());
}
});
}
@Override
protected void loadData() {
LiveNetManager.get(getActivity()).
giftAlreadyWall(mLiveUid, new HttpCallback<GiftAlreadyWallModel>() {
@Override
public void onSuccess(GiftAlreadyWallModel data) {
if (data.getGiftWall().size() > 0) {
giftWallNoData.setVisibility(View.GONE);
giftWallData.setVisibility(View.VISIBLE);
alreadyWallAdapter.addAllData(data.getGiftWall());
litIcon.setText(data.getGiftWallLightenNumber());
giftAll.setText("/" + data.getGiftWallLightenTotal());
} else {
giftWallNoData.setVisibility(View.VISIBLE);
giftWallData.setVisibility(View.GONE);
}
}
@Override
public void onError(String error) {
}
});
}
public static GiftAlreadyWallFragment newInstance(String mStream, String mLiveUid) {
GiftAlreadyWallFragment liveGiftFragment = new GiftAlreadyWallFragment();
Bundle bundle = new Bundle();
bundle.putString("mStream", mStream);
bundle.putString("mLiveUid", mLiveUid);
liveGiftFragment.setArguments(bundle);
return liveGiftFragment;
}
}

View File

@@ -173,18 +173,22 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dp"
android:text="@string/gift_wall_entrance8_10"
android:textColor="#7480FF"
android:layout_marginBottom="20dp"
android:textSize="13sp" />
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<TextView
android:id="@+id/regular_title"
android:layout_width="142dp"
android:layout_height="42dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="28dp"
android:background="@mipmap/background_regular_title" />
android:background="@mipmap/background_regular_title"
android:gravity="center"
android:textSize="16sp"
android:textStyle="bold" />
</FrameLayout>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 28 KiB