6.5.4礼物冠名

This commit is contained in:
18401019693
2023-07-31 18:25:32 +08:00
parent a353e51ba8
commit 54458bd0c0
66 changed files with 2098 additions and 87 deletions

View File

@@ -0,0 +1,43 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftWallModel;
import com.yunbao.common.views.GiftAlreadyWallViewHolder;
import java.util.ArrayList;
import java.util.List;
public class GiftAlreadyWallAdapter extends RecyclerView.Adapter {
private List<GiftWallModel> giftWall = new ArrayList<>();
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_already_wall, parent, false);
return new GiftAlreadyWallViewHolder(herdView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
GiftAlreadyWallViewHolder withoutWallViewHolder = (GiftAlreadyWallViewHolder) holder;
withoutWallViewHolder.showData(giftWall.get(position));
}
@Override
public int getItemCount() {
return giftWall.size();
}
public void addAllData(List<GiftWallModel> mGiftWall) {
giftWall.clear();
giftWall.addAll(mGiftWall);
notifyDataSetChanged();
}
}

View File

@@ -0,0 +1,43 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftWallModel;
import com.yunbao.common.views.GiftWithoutWallViewHolder;
import java.util.ArrayList;
import java.util.List;
public class GiftWithoutWallAdapter extends RecyclerView.Adapter {
private List<GiftWallModel> giftWall = new ArrayList<>();
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View herdView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_gift_without_wall, parent, false);
return new GiftWithoutWallViewHolder(herdView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
GiftWithoutWallViewHolder withoutWallViewHolder = (GiftWithoutWallViewHolder) holder;
withoutWallViewHolder.showData(giftWall.get(position));
}
@Override
public int getItemCount() {
return giftWall.size();
}
public void addAllData(List<GiftWallModel> mGiftWall) {
giftWall.clear();
giftWall.addAll(mGiftWall);
notifyDataSetChanged();
}
}

View File

@@ -109,6 +109,29 @@ public class EnterRoomInfoModel extends BaseModel {
@SerializedName("red_packet")
private RedPacketModel redPacketModel;
@SerializedName("gift_wall_lighten_number")
private String giftWallLightenNumber;
@SerializedName("gift_wall_lighten_total")
private String giftWallLightenTotal;
public String getGiftWallLightenNumber() {
return giftWallLightenNumber;
}
public EnterRoomInfoModel setGiftWallLightenNumber(String giftWallLightenNumber) {
this.giftWallLightenNumber = giftWallLightenNumber;
return this;
}
public String getGiftWallLightenTotal() {
return giftWallLightenTotal;
}
public EnterRoomInfoModel setGiftWallLightenTotal(String giftWallLightenTotal) {
this.giftWallLightenTotal = giftWallLightenTotal;
return this;
}
public RedPacketModel getRedPacketModel() {
return redPacketModel;
}

View File

@@ -0,0 +1,44 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.List;
/**
* 礼物墙已点亮
*/
public class GiftAlreadyWallModel extends BaseModel {
@SerializedName("gift_wall")
private List<GiftWallModel> giftWall;
@SerializedName("gift_wall_lighten_number")
private String giftWallLightenNumber;
@SerializedName("gift_wall_lighten_total")
private String giftWallLightenTotal;
public List<GiftWallModel> getGiftWall() {
return giftWall;
}
public GiftAlreadyWallModel setGiftWall(List<GiftWallModel> giftWall) {
this.giftWall = giftWall;
return this;
}
public String getGiftWallLightenNumber() {
return giftWallLightenNumber;
}
public GiftAlreadyWallModel setGiftWallLightenNumber(String giftWallLightenNumber) {
this.giftWallLightenNumber = giftWallLightenNumber;
return this;
}
public String getGiftWallLightenTotal() {
return giftWallLightenTotal;
}
public GiftAlreadyWallModel setGiftWallLightenTotal(String giftWallLightenTotal) {
this.giftWallLightenTotal = giftWallLightenTotal;
return this;
}
}

View File

@@ -0,0 +1,336 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class GiftWallModel extends BaseModel {
@SerializedName("id")
private String id;
@SerializedName("sendtype")
private String sendtype;
@SerializedName("type")
private String type;
@SerializedName("name")
private String name;
@SerializedName("release_status")
private String releaseStatus;
@SerializedName("type_sort")
private String typeSort;
@SerializedName("operate_image")
private String operateImage;
@SerializedName("operate_url")
private String operateUrl;
@SerializedName("mark")
private String mark;
@SerializedName("giftname")
private String giftname;
@SerializedName("needcoin")
private String needcoin;
@SerializedName("gifticon")
private String gifticon;
@SerializedName("gift_description")
private String giftDescription;
@SerializedName("corner_mark")
private String cornerMark;
@SerializedName("swf")
private String swf;
@SerializedName("gift_uid")
private String giftUid;
@SerializedName("type_start_time")
private String typeStartTime;
@SerializedName("type_end_time")
private String typeEndTime;
@SerializedName("gift_start_time")
private String giftStartTime;
@SerializedName("gift_end_time")
private String giftEndTime;
@SerializedName("naming_liveuid")
private String namingLiveuid;
@SerializedName("naming_uid")
private String namingUid;
@SerializedName("naming_live_name")
private String namingLiveName;
@SerializedName("naming_user_name")
private String namingUserName;
@SerializedName("naming_live_avatar")
private String namingLiveAvatar;
@SerializedName("naming_user_avatar")
private String namingUserAvatar;
@SerializedName("naming_status")
private String namingStatus;
@SerializedName("naming_coin")
private String namingCoin;
@SerializedName("gifticon_total")
private String gifticonTotal;
@SerializedName("gift_count_number")
private String giftCountNumber;
public String getId() {
return id;
}
public GiftWallModel setId(String id) {
this.id = id;
return this;
}
public String getSendtype() {
return sendtype;
}
public GiftWallModel setSendtype(String sendtype) {
this.sendtype = sendtype;
return this;
}
public String getType() {
return type;
}
public GiftWallModel setType(String type) {
this.type = type;
return this;
}
public String getName() {
return name;
}
public GiftWallModel setName(String name) {
this.name = name;
return this;
}
public String getReleaseStatus() {
return releaseStatus;
}
public GiftWallModel setReleaseStatus(String releaseStatus) {
this.releaseStatus = releaseStatus;
return this;
}
public String getTypeSort() {
return typeSort;
}
public GiftWallModel setTypeSort(String typeSort) {
this.typeSort = typeSort;
return this;
}
public String getOperateImage() {
return operateImage;
}
public GiftWallModel setOperateImage(String operateImage) {
this.operateImage = operateImage;
return this;
}
public String getOperateUrl() {
return operateUrl;
}
public GiftWallModel setOperateUrl(String operateUrl) {
this.operateUrl = operateUrl;
return this;
}
public String getMark() {
return mark;
}
public GiftWallModel setMark(String mark) {
this.mark = mark;
return this;
}
public String getGiftname() {
return giftname;
}
public GiftWallModel setGiftname(String giftname) {
this.giftname = giftname;
return this;
}
public String getNeedcoin() {
return needcoin;
}
public GiftWallModel setNeedcoin(String needcoin) {
this.needcoin = needcoin;
return this;
}
public String getGifticon() {
return gifticon;
}
public GiftWallModel setGifticon(String gifticon) {
this.gifticon = gifticon;
return this;
}
public String getGiftDescription() {
return giftDescription;
}
public GiftWallModel setGiftDescription(String giftDescription) {
this.giftDescription = giftDescription;
return this;
}
public String getCornerMark() {
return cornerMark;
}
public GiftWallModel setCornerMark(String cornerMark) {
this.cornerMark = cornerMark;
return this;
}
public String getSwf() {
return swf;
}
public GiftWallModel setSwf(String swf) {
this.swf = swf;
return this;
}
public String getGiftUid() {
return giftUid;
}
public GiftWallModel setGiftUid(String giftUid) {
this.giftUid = giftUid;
return this;
}
public String getTypeStartTime() {
return typeStartTime;
}
public GiftWallModel setTypeStartTime(String typeStartTime) {
this.typeStartTime = typeStartTime;
return this;
}
public String getTypeEndTime() {
return typeEndTime;
}
public GiftWallModel setTypeEndTime(String typeEndTime) {
this.typeEndTime = typeEndTime;
return this;
}
public String getGiftStartTime() {
return giftStartTime;
}
public GiftWallModel setGiftStartTime(String giftStartTime) {
this.giftStartTime = giftStartTime;
return this;
}
public String getGiftEndTime() {
return giftEndTime;
}
public GiftWallModel setGiftEndTime(String giftEndTime) {
this.giftEndTime = giftEndTime;
return this;
}
public String getNamingLiveuid() {
return namingLiveuid;
}
public GiftWallModel setNamingLiveuid(String namingLiveuid) {
this.namingLiveuid = namingLiveuid;
return this;
}
public String getNamingUid() {
return namingUid;
}
public GiftWallModel setNamingUid(String namingUid) {
this.namingUid = namingUid;
return this;
}
public String getNamingLiveName() {
return namingLiveName;
}
public GiftWallModel setNamingLiveName(String namingLiveName) {
this.namingLiveName = namingLiveName;
return this;
}
public String getNamingUserName() {
return namingUserName;
}
public GiftWallModel setNamingUserName(String namingUserName) {
this.namingUserName = namingUserName;
return this;
}
public String getNamingLiveAvatar() {
return namingLiveAvatar;
}
public GiftWallModel setNamingLiveAvatar(String namingLiveAvatar) {
this.namingLiveAvatar = namingLiveAvatar;
return this;
}
public String getNamingUserAvatar() {
return namingUserAvatar;
}
public GiftWallModel setNamingUserAvatar(String namingUserAvatar) {
this.namingUserAvatar = namingUserAvatar;
return this;
}
public String getNamingStatus() {
return namingStatus;
}
public GiftWallModel setNamingStatus(String namingStatus) {
this.namingStatus = namingStatus;
return this;
}
public String getNamingCoin() {
return namingCoin;
}
public GiftWallModel setNamingCoin(String namingCoin) {
this.namingCoin = namingCoin;
return this;
}
public String getGifticonTotal() {
return gifticonTotal;
}
public GiftWallModel setGifticonTotal(String gifticonTotal) {
this.gifticonTotal = gifticonTotal;
return this;
}
public String getGiftCountNumber() {
return giftCountNumber;
}
public GiftWallModel setGiftCountNumber(String giftCountNumber) {
this.giftCountNumber = giftCountNumber;
return this;
}
}

View File

@@ -0,0 +1,25 @@
package com.yunbao.common.dialog;
import android.content.Context;
import androidx.annotation.NonNull;
import com.lxj.xpopup.core.CenterPopupView;
import com.yunbao.common.R;
public class GiftWallItemPopup extends CenterPopupView {
public GiftWallItemPopup(@NonNull Context context) {
super(context);
}
@Override
protected int getImplLayoutId() {
return R.layout.popup_gift_wall_item;
}
@Override
protected void onCreate() {
super.onCreate();
}
}

View File

@@ -0,0 +1,85 @@
package com.yunbao.common.fragment;
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.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
/**
* 已点亮礼物墙
*/
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);
}
@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

@@ -0,0 +1,79 @@
package com.yunbao.common.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.adapter.GiftWithoutWallAdapter;
import com.yunbao.common.bean.GiftAlreadyWallModel;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
/**
* wei点亮礼物墙
*/
public class GiftWithoutWallFragment extends BaseFragment {
private String mStream, mLiveUid;
private RecyclerView withoutList;
private LinearLayout giftWallNoData;
private GiftWithoutWallAdapter withoutWallAdapter;
@Override
public View createView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
return layoutInflater.inflate(R.layout.fragment_gift_without_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) {
withoutList = contentView.findViewById(R.id.without_list);
giftWallNoData = contentView.findViewById(R.id.gift_wall_no_data);
withoutWallAdapter = new GiftWithoutWallAdapter();
withoutList.setLayoutManager(new GridLayoutManager(getContext(), 3, GridLayoutManager.VERTICAL, false));
withoutList.setAdapter(withoutWallAdapter);
}
@Override
protected void loadData() {
LiveNetManager.get(getActivity()).
giftWithoutWall(mLiveUid, new HttpCallback<GiftAlreadyWallModel>() {
@Override
public void onSuccess(GiftAlreadyWallModel data) {
if (data.getGiftWall().size() > 0) {
giftWallNoData.setVisibility(View.GONE);
withoutList.setVisibility(View.VISIBLE);
withoutWallAdapter.addAllData(data.getGiftWall());
} else {
giftWallNoData.setVisibility(View.VISIBLE);
withoutList.setVisibility(View.GONE);
}
}
@Override
public void onError(String error) {
}
});
}
public static GiftWithoutWallFragment newInstance(String mStream, String mLiveUid) {
GiftWithoutWallFragment liveGiftFragment = new GiftWithoutWallFragment();
Bundle bundle = new Bundle();
bundle.putString("mStream", mStream);
bundle.putString("mLiveUid", mLiveUid);
liveGiftFragment.setArguments(bundle);
return liveGiftFragment;
}
}

View File

@@ -12,6 +12,7 @@ import com.yunbao.common.bean.CustomSidebarInfoModel;
import com.yunbao.common.bean.DiscountsModel;
import com.yunbao.common.bean.EnterRoomNewModel;
import com.yunbao.common.bean.FaceBookUpModel;
import com.yunbao.common.bean.GiftAlreadyWallModel;
import com.yunbao.common.bean.HourRank;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.IMLoginModel;
@@ -830,4 +831,20 @@ public interface PDLiveApi {
@Query("red_packet_id") String redPacketId
);
/**
* 礼物墙已点亮
*/
@GET("/api/public/?service=Gift.giftAlreadyWall")
Observable<ResponseModel<GiftAlreadyWallModel>> giftAlreadyWall(
@Query("liveuid") String liveUid
);
/**
* 礼物墙未点亮
*/
@GET("/api/public/?service=Gift.giftWithoutWall")
Observable<ResponseModel<GiftAlreadyWallModel>> giftWithoutWall(
@Query("liveuid") String liveUid
);
}

View File

@@ -13,6 +13,7 @@ import com.yunbao.common.bean.CheckLiveModel;
import com.yunbao.common.bean.CustomSidebarInfoModel;
import com.yunbao.common.bean.DiscountsModel;
import com.yunbao.common.bean.EnterRoomNewModel;
import com.yunbao.common.bean.GiftAlreadyWallModel;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.LinkMicUserBean;
import com.yunbao.common.bean.LinkMicUserBeanV2;
@@ -1796,6 +1797,49 @@ public class LiveNetManager {
}).isDisposed();
}
public void giftAlreadyWall(String liveUid, HttpCallback<GiftAlreadyWallModel> callback) {
API.get().pdLiveApi(mContext)
.giftAlreadyWall(liveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<GiftAlreadyWallModel>>() {
@Override
public void accept(ResponseModel<GiftAlreadyWallModel> giftAlreadyWallModelResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(giftAlreadyWallModelResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
public void giftWithoutWall(String liveUid, HttpCallback<GiftAlreadyWallModel> callback) {
API.get().pdLiveApi(mContext)
.giftWithoutWall(liveUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<GiftAlreadyWallModel>>() {
@Override
public void accept(ResponseModel<GiftAlreadyWallModel> giftAlreadyWallModelResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(giftAlreadyWallModelResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(mContext.getString(R.string.net_error));
}
}
}).isDisposed();
}
/**
* 直播间取消网络请求
*/

View File

@@ -0,0 +1,28 @@
package com.yunbao.common.views;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftWallModel;
import com.yunbao.common.glide.ImgLoader;
public class GiftAlreadyWallViewHolder extends RecyclerView.ViewHolder {
private ImageView giftImg;
private TextView giftTitle;
public GiftAlreadyWallViewHolder(@NonNull View itemView) {
super(itemView);
giftImg = itemView.findViewById(R.id.gift_img);
giftTitle = itemView.findViewById(R.id.gift_title);
}
public void showData(GiftWallModel giftWallModel) {
giftTitle.setText(giftWallModel.getGiftname());
ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg);
}
}

View File

@@ -0,0 +1,39 @@
package com.yunbao.common.views;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.R;
import com.yunbao.common.bean.GiftWallModel;
import com.yunbao.common.dialog.GiftWallItemPopup;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
public class GiftWithoutWallViewHolder extends RecyclerView.ViewHolder {
private ImageView giftImg;
private TextView giftTitle;
public GiftWithoutWallViewHolder(@NonNull View itemView) {
super(itemView);
giftImg = itemView.findViewById(R.id.gift_img);
giftTitle = itemView.findViewById(R.id.gift_title);
}
public void showData(GiftWallModel giftWallModel) {
giftTitle.setText(giftWallModel.getGiftname());
ImgLoader.display(itemView.getContext(), giftWallModel.getGifticon(), giftImg);
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
new XPopup.Builder(itemView.getContext())
.asCustom(new GiftWallItemPopup(itemView.getContext()))
.show();
}
});
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:angle="90"
android:endColor="#FFF6FF"
android:startColor="#E6F3FC" />
<corners
android:topLeftRadius="15dp"
android:topRightRadius="15dp" />
</shape>

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

View File

@@ -0,0 +1,14 @@
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:gravity="center_horizontal">
<shape>
<corners android:radius="3dp" />
<size
android:width="14dp"
android:height="4dp" />
<gradient
android:angle="180"
android:endColor="#807CFF"
android:startColor="#A183FF" />
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="MissingDefaultResource">
<LinearLayout
android:id="@+id/gift_wall_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:visibility="gone">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="14dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lit_icon"
android:textColor="#807CFF"
android:textSize="13sp" />
<TextView
android:id="@+id/lit_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="7dp"
android:text="12"
android:textColor="#FE4311"
android:textSize="13sp" />
<TextView
android:id="@+id/gift_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/49"
android:textColor="#807CFF"
android:textSize="13sp" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/already_list"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
<LinearLayout
android:id="@+id/gift_wall_no_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="140dp"
android:layout_height="95dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="80dp"
android:background="@drawable/icon_gift_wall_no_data" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="11dp"
android:text="@string/unlit_icon_hint"
android:textColor="#99000000"
android:textSize="12sp" />
<TextView
android:layout_width="100dp"
android:layout_height="28dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="40dp"
android:background="@drawable/background_skip_button"
android:gravity="center"
android:text="@string/instant_light"
android:textColor="#F16D00"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/without_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="5dp"
android:paddingTop="15dp"
android:paddingEnd="5dp"
android:paddingBottom="15dp"
android:visibility="gone" />
<LinearLayout
android:id="@+id/gift_wall_no_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:layout_width="140dp"
android:layout_height="95dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="80dp"
android:background="@drawable/icon_gift_wall_no_data" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="11dp"
android:text="@string/lit_icon_hint"
android:textColor="#99000000"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="132dp"
android:layout_margin="5dp"
android:background="@mipmap/background_gift_already_wall"
android:orientation="vertical">
<ImageView
android:id="@+id/gift_img"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" />
<TextView
android:id="@+id/gift_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:text="@string/instant_light"
android:textColor="#54618F"
android:textSize="14sp" />
</LinearLayout>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="132dp"
android:layout_margin="5dp"
android:background="@mipmap/background_gift_without_wall"
android:orientation="vertical">
<ImageView
android:id="@+id/gift_img"
android:layout_width="65dp"
android:layout_height="65dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp" />
<TextView
android:id="@+id/gift_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:text="@string/instant_light"
android:textColor="#54618F"
android:textSize="14sp" />
</LinearLayout>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
app:cardCornerRadius="10dp"
app:cardElevation="0dp"
android:layout_width="315dp"
android:layout_height="315dp"
android:orientation="vertical">
</androidx.cardview.widget.CardView>

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 165 B

After

Width:  |  Height:  |  Size: 165 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1251,8 +1251,37 @@ Limited ride And limited avatar frame</string>
<string name="red_envelope_released_successfully">Red successfully</string>
<string name="leveling_points">%s experience upgrade,%s receive rewards</string>
<string name="reach_the_top">You have reached the highest level!</string>
<string name="nothing_in_the_package_yet">There\\\'s nothing in the package yet</string>
<string name="nothing_in_the_package_yet">There\'s nothing in the package yet</string>
<string name="custom_quantity">Custom quantity</string>
<string name="gift_wall">Gift wall</string>
<string name="has_been_lit">%s has been lit</string>
<string name="codex">Illustrated book</string>
<string name="unlit_icon">unlit</string>
<string name="all_service_champion">All service</string>
<string name="unlit_icon_hint">Love \\ \"ceremony \\\" at the beginning, \\ \"wall \\\" potential light temporarily no light</string>
<string name="lit_icon_hint">No unlit gifts yet</string>
<string name="instant_light">Instant light</string>
<string name="honorary_achievement">Honorary achievement</string>
<string name="lit_icon">Lit</string>
<string name="gift_wall_entrance">Gift Wall Entrance</string>
<string name="gift_wall_entrance1">Personal profile card, personal homepage, live streaming room header button, and by clickingView personal and person\'s profile cards and homepage.</string>
<string name="gift_wall_entrance2">Lighting up gifts</string>
<string name="gift_wall_entrance3">On the gift panel and click on the gift wall of the recipient to light up the gift for gifting, Illuminate the corresponding gift icon in the recipient\'s gift wall. Only diamond gifts Can light up gifts. When the gifts in the event are compared to the gifts in the gift wall and guidebook When the same, give the same gift, first light up the event, gift wall, and picture guide A gift for.</string>
<string name="gift_wall_entrance4">Named gift</string>
<string name="gift_wall_entrance5">Within each cycle, if a certain amount of diamonds are given as a single or cumulative gift Display the most gifts given to a recipient on the gift icon Gift person avatar, clicking on the avatar can also directly reach the giver\'s homepage of the named gift.</string>
<string name="gift_wall_entrance6">When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement</string>
<string name="gift_wall_entrance7">Medal of Achievement</string>
<string name="gift_wall_entrance8_1">Medal of achievement</string>
<string name="gift_wall_entrance8_2">Currently, there are three achievements, namely A cloud of good friendsVery rich</string>
<string name="gift_wall_entrance8_3">A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou</string>
<string name="gift_wall_entrance8_4">A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement;</string>
<string name="gift_wall_entrance8_5">Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated.</string>
<string name="gift_wall_entrance8_6">The current user has a total of 4 achievements, namely being rich and capricious, sharing rain and dew, and giving gifts Gift machines, lighting masters.</string>
<string name="gift_wall_entrance8_7">Rich and capricious: Accumulated gifts worth 50K, 2M10M, 100M, 300M, light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_8">Rain and dew evenly: the cumulative Style quantity of gifts given to anchors reaches 10, 20, 50, 100200, can achieve success;</string>
<string name="gift_wall_entrance8_9">gift machine: The cumulative number of gifts given reaches 200, 1000, 10K100K1M,light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_10">lighting master: The number of unlocked Gift Walls has reached 10, 30, 50 At 100 and 200, light up the corresponding achievements separately.</string>
<string name="regular_bubble">rule</string>
</resources>

View File

@@ -1248,4 +1248,33 @@
<string name="reach_the_top">恭喜,你已達到最高等級</string>
<string name="nothing_in_the_package_yet">包裹中暫無物品哦</string>
<string name="custom_quantity">自定義數量</string>
<string name="gift_wall">禮物墻</string>
<string name="has_been_lit">已點亮%s個</string>
<string name="codex">圖鑒</string>
<string name="honorary_achievement">榮譽成就</string>
<string name="lit_icon">已點亮</string>
<string name="unlit_icon">未點亮</string>
<string name="all_service_champion">全服冠軍</string>
<string name="unlit_icon_hint">愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮</string>
<string name="lit_icon_hint">暂无未点亮礼物哦</string>
<string name="instant_light">立即點亮</string>
<string name="gift_wall_entrance">禮物墻入口</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance2">點亮禮物</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。</string>
<string name="gift_wall_entrance4">冠名禮物</string>
<string name="gift_wall_entrance5">每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。</string>
<string name="gift_wall_entrance6">當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。</string>
<string name="gift_wall_entrance7">榮譽成就</string>
<string name="gift_wall_entrance8_1">成就勳章</string>
<string name="gift_wall_entrance8_2">當前主播共有3個成就分別是勝友如雲、富甲一方、腰纏萬貫。</string>
<string name="gift_wall_entrance8_3">勝友如雲當收到的禮物款數達到20、30、50、100、200款時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_4">富甲一方收到的單款禮物價格超過50000鑽時即可點亮該成就</string>
<string name="gift_wall_entrance8_5">腰纏萬貫當收到100款價格超過3000鑽的禮物時即可點亮該成就。</string>
<string name="gift_wall_entrance8_6">當前用戶共有4個成就分別是有錢任性、雨露均沾、送禮機器、點燈大師。</string>
<string name="gift_wall_entrance8_7">有錢任性纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_8">雨露均沾纍計送禮給主播人數達到10、20、50、100、200時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_9">送禮機器纍計贈送禮物個數達到200、1000、10K、00K、1M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就</string>
<string name="regular_bubble">規則</string>
</resources>

View File

@@ -1247,4 +1247,33 @@
<string name="reach_the_top">恭喜,你已達到最高等級</string>
<string name="nothing_in_the_package_yet">包裹中暫無物品哦</string>
<string name="custom_quantity">自定義數量</string>
<string name="gift_wall">禮物墻</string>
<string name="has_been_lit">已點亮%s個</string>
<string name="codex">圖鑒</string>
<string name="honorary_achievement">榮譽成就</string>
<string name="lit_icon">已點亮</string>
<string name="unlit_icon">未點亮</string>
<string name="all_service_champion">全服冠軍</string>
<string name="unlit_icon_hint">愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮</string>
<string name="lit_icon_hint">暂无未点亮礼物哦</string>
<string name="instant_light">立即點亮</string>
<string name="gift_wall_entrance">禮物墻入口</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance2">點亮禮物</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。</string>
<string name="gift_wall_entrance4">冠名禮物</string>
<string name="gift_wall_entrance5">每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。</string>
<string name="gift_wall_entrance6">當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。</string>
<string name="gift_wall_entrance7">榮譽成就</string>
<string name="gift_wall_entrance8_1">成就勳章</string>
<string name="gift_wall_entrance8_2">當前主播共有3個成就分別是勝友如雲、富甲一方、腰纏萬貫。</string>
<string name="gift_wall_entrance8_3">勝友如雲當收到的禮物款數達到20、30、50、100、200款時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_4">富甲一方收到的單款禮物價格超過50000鑽時即可點亮該成就</string>
<string name="gift_wall_entrance8_5">腰纏萬貫當收到100款價格超過3000鑽的禮物時即可點亮該成就。</string>
<string name="gift_wall_entrance8_6">當前用戶共有4個成就分別是有錢任性、雨露均沾、送禮機器、點燈大師。</string>
<string name="gift_wall_entrance8_7">有錢任性纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_8">雨露均沾纍計送禮給主播人數達到10、20、50、100、200時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_9">送禮機器纍計贈送禮物個數達到200、1000、10K、00K、1M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就</string>
<string name="regular_bubble">規則</string>
</resources>

View File

@@ -1248,6 +1248,35 @@
<string name="reach_the_top">恭喜,你已達到最高等級</string>
<string name="nothing_in_the_package_yet">包裹中暫無物品哦</string>
<string name="custom_quantity">自定義數量</string>
<string name="gift_wall">禮物墻</string>
<string name="has_been_lit">已點亮%s個</string>
<string name="codex">圖鑒</string>
<string name="unlit_icon">未點亮</string>
<string name="all_service_champion">全服冠軍</string>
<string name="unlit_icon_hint">愛\\“禮\\”伊始,\\“墻\\”勢點亮 暫無點亮</string>
<string name="lit_icon_hint">暂无未点亮礼物哦</string>
<string name="instant_light">立即點亮</string>
<string name="honorary_achievement">榮譽成就</string>
<string name="lit_icon">已點亮</string>
<string name="gift_wall_entrance">禮物墻入口</string>
<string name="gift_wall_entrance1">個人資料卡片、個人主頁、直播間頭部按鈕及通過點擊 自己與TA人的資料卡和主頁查看。</string>
<string name="gift_wall_entrance2">點亮禮物</string>
<string name="gift_wall_entrance3">在禮物面板和點擊收禮人禮物牆待點亮的禮物進行送禮, 即點亮收禮人禮物牆中對應的禮物圖標。只有鑽石送禮可點亮禮物。當活動中的禮物與禮物牆和圖鑒中的禮物相同時,則的禮物。</string>
<string name="gift_wall_entrance4">冠名禮物</string>
<string name="gift_wall_entrance5">每個週期內單個或累計送同一禮物達一定數量鑽石,會在該禮物圖標上顯示對於某位收禮人而言送出最多的送禮人頭像,點擊頭像還可直達冠名禮物的送禮人主頁。</string>
<string name="gift_wall_entrance6">當圖鑒的禮物與禮物牆中的禮物相同時,則送同一個禮物,先點禮物牆的禮物,之後再點亮圖鑒的禮物。</string>
<string name="gift_wall_entrance7">榮譽成就</string>
<string name="gift_wall_entrance8_1">成就勳章</string>
<string name="gift_wall_entrance8_2">當前主播共有3個成就分別是勝友如雲、富甲一方、腰纏萬貫。</string>
<string name="gift_wall_entrance8_3">勝友如雲當收到的禮物款數達到20、30、50、100、200款時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_4">富甲一方收到的單款禮物價格超過50000鑽時即可點亮該成就</string>
<string name="gift_wall_entrance8_5">腰纏萬貫當收到100款價格超過3000鑽的禮物時即可點亮該成就。</string>
<string name="gift_wall_entrance8_6">當前用戶共有4個成就分別是有錢任性、雨露均沾、送禮機器、點燈大師。</string>
<string name="gift_wall_entrance8_7">有錢任性纍計送出禮物價值鉆石數量達到50K、2M、10M、100M、300M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_8">雨露均沾纍計送禮給主播人數達到10、20、50、100、200時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_9">送禮機器纍計贈送禮物個數達到200、1000、10K、00K、1M時分別點亮對應的成就</string>
<string name="gift_wall_entrance8_10">點燈大師解鎖【禮物墻】的數量達到10、30、50、100、200時,分別點亮對應的成就</string>
<string name="regular_bubble">規則</string>
</resources>

View File

@@ -1251,7 +1251,37 @@ Limited ride And limited avatar frame</string>
<string name="lucky_red_envelope_amount">number</string>
<string name="red_envelope_released_successfully">>Red successfully</string>
<string name="leveling_points">%s experience upgrade,%s receive rewards</string>
<string name="nothing_in_the_package_yet">There\\\'s nothing in the package yet</string>
<string name="nothing_in_the_package_yet">There\'s nothing in the package yet</string>
<string name="reach_the_top">You have reached the highest level!</string>
<string name="custom_quantity">Custom quantity</string>
<string name="gift_wall">Gift wall</string>
<string name="has_been_lit">%s has been lit</string>
<string name="unlit_icon">unlit</string>
<string name="all_service_champion">All service</string>
<string name="unlit_icon_hint">Love \\ \"ceremony \\\" at the beginning, \\ \"wall \\\" potential light temporarily no light</string>
<string name="lit_icon_hint">No unlit gifts yet</string>
<string name="instant_light">Instant light</string>
<string name="gift_wall_entrance">Gift Wall Entrance</string>
<string name="gift_wall_entrance1">Personal profile card, personal homepage, live streaming room header button, and by clicking</string>
<string name="gift_wall_entrance2">Lighting up gifts</string>
<string name="gift_wall_entrance3">On the gift panel and click on the gift wall of the recipient to light up the gift for gifting, Illuminate the corresponding gift icon in the recipient\'s gift wall. Only diamond gifts Can light up gifts. When the gifts in the event are compared to the gifts in the gift wall and guidebook When the same, give the same gift, first light up the event, gift wall, and picture guide A gift for.</string>
<string name="gift_wall_entrance4">Named gift</string>
<string name="gift_wall_entrance5">Within each cycle, if a certain amount of diamonds are given as a single or cumulative gift Display the most gifts given to a recipient on the gift icon Gift person avatar, clicking on the avatar can also directly reach the giver\'s homepage of the named gift.</string>
<string name="gift_wall_entrance6">When the gift in the guidebook is the same as the gift in the gift wall, give the same gift Objects, first point the gift on the gift wall, and then light up the gift in the guidebook. Honor achievement</string>
<string name="gift_wall_entrance7">Medal of Achievement</string>
<string name="gift_wall_entrance8_1">Medal of achievement</string>
<string name="gift_wall_entrance8_2">Currently, there are three achievements, namely A cloud of good friendsVery rich</string>
<string name="gift_wall_entrance8_3">A cloud of good friends: When the number of gifts received reaches 20, 30, 50, 100When it comes to 200 models, light up the corresponding achievements separately;Rich and capriciou</string>
<string name="gift_wall_entrance8_4">A rich party: When the price of a single gift received exceeds 50000 diamonds, it is sufficient Illuminate the achievement;</string>
<string name="gift_wall_entrance8_5">Very rich: When receiving 100 gifts priced over 3000 diamonds, i.e This achievement can be illuminated.</string>
<string name="gift_wall_entrance8_6">The current user has a total of 4 achievements, namely being rich and capricious, sharing rain and dew, and giving gifts Gift machines, lighting masters.</string>
<string name="gift_wall_entrance8_7">Rich and capricious: Accumulated gifts worth 50K, 2M10M, 100M, 300M, light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_8">Rain and dew evenly: the cumulative Style quantity of gifts given to anchors reaches 10, 20, 50, 100200, can achieve success;</string>
<string name="gift_wall_entrance8_9">gift machine: The cumulative number of gifts given reaches 200, 1000, 10K100K1M,light up the corresponding achievements separately;</string>
<string name="gift_wall_entrance8_10">lighting master: The number of unlocked Gift Walls has reached 10, 30, 50 At 100 and 200, light up the corresponding achievements separately.</string>
<string name="regular_bubble">rule</string>
<string name="codex">Illustrated book</string>
<string name="honorary_achievement">Honorary achievement</string>
<string name="lit_icon">Lit</string>
</resources>