add[主播端,整蛊礼物,待完成项完成]
This commit is contained in:
parent
0425b56106
commit
f131fcf546
@ -1243,4 +1243,17 @@ public interface PDLiveApi {
|
|||||||
@Query("to_uid")String toUid,
|
@Query("to_uid")String toUid,
|
||||||
@Query("payload")String payload
|
@Query("payload")String payload
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param anchor_id
|
||||||
|
* @param gift_id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GET("/api/public/?service=Prank.anchorClickFinish")
|
||||||
|
Observable<ResponseModel<List<BaseModel>>> anchorClickFinish(
|
||||||
|
@Query("anchor_id")String anchor_id,
|
||||||
|
@Query("gift_id")String gift_id
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
@ -3189,6 +3189,31 @@ public class LiveNetManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void anchorClickFinish(String mLiveId, String giftId, HttpCallback<List<BaseModel>>callback) {
|
||||||
|
API.get().pdLiveApi(mContext)
|
||||||
|
.anchorClickFinish(mLiveId, giftId)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Consumer<ResponseModel<List<BaseModel>>>() {
|
||||||
|
@Override
|
||||||
|
public void accept(ResponseModel<List<BaseModel>> listResponseModel) throws Exception {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onSuccess(listResponseModel.getData().getInfo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, new Consumer<Throwable>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Throwable throwable) throws Exception {
|
||||||
|
throwable.printStackTrace();
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(mContext.getString(R.string.net_error));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).isDisposed();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void updateFile(File file, HttpCallback<AvatarBean> callback) {
|
public void updateFile(File file, HttpCallback<AvatarBean> callback) {
|
||||||
MultipartBody.Part uploadFile = createUploadFile(file);
|
MultipartBody.Part uploadFile = createUploadFile(file);
|
||||||
API.get().pdLiveApi(mContext)
|
API.get().pdLiveApi(mContext)
|
||||||
|
5
common/src/main/res/drawable/live_room_menu_red.xml
Normal file
5
common/src/main/res/drawable/live_room_menu_red.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<corners android:radius="320dp" />
|
||||||
|
<solid android:color="#FD2D48" />
|
||||||
|
</shape>
|
@ -182,10 +182,34 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<ImageView
|
<RelativeLayout
|
||||||
android:layout_width="40dp"
|
android:layout_width="40dp"
|
||||||
android:layout_height="40dp"
|
android:layout_height="40dp">
|
||||||
android:src="@mipmap/icon_zhenggu" />
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="40dp"
|
||||||
|
android:layout_height="40dp"
|
||||||
|
android:src="@mipmap/icon_zhenggu" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/red_menu"
|
||||||
|
android:layout_width="6dp"
|
||||||
|
android:layout_height="6dp"
|
||||||
|
android:layout_marginTop="5dp"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:background="@drawable/live_room_menu_red"
|
||||||
|
android:gravity="center"
|
||||||
|
android:includeFontPadding="false"
|
||||||
|
android:minWidth="14dp"
|
||||||
|
android:paddingLeft="3dp"
|
||||||
|
android:paddingRight="3dp"
|
||||||
|
android:textColor="#fff"
|
||||||
|
android:textSize="10sp"
|
||||||
|
android:translationY="-4dp"
|
||||||
|
android:visibility="gone" />
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
@ -1499,4 +1499,5 @@
|
|||||||
<string name="dragon_rule6">2.用戶關注主播並參與活動,將在倒計時五分鐘結束後瓜分活動金豆;</string>
|
<string name="dragon_rule6">2.用戶關注主播並參與活動,將在倒計時五分鐘結束後瓜分活動金豆;</string>
|
||||||
<string name="dragon_rule7">3.此活動的最終解釋權歸PDLIVE所有。</string>
|
<string name="dragon_rule7">3.此活動的最終解釋權歸PDLIVE所有。</string>
|
||||||
<string name="main_type_theater">短劇</string>
|
<string name="main_type_theater">短劇</string>
|
||||||
|
<string name="prank_complete">完成*1</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1498,4 +1498,5 @@
|
|||||||
<string name="dragon_rule6">2.用戶關注主播並參與活動,將在倒計時五分鐘結束後瓜分活動金豆;</string>
|
<string name="dragon_rule6">2.用戶關注主播並參與活動,將在倒計時五分鐘結束後瓜分活動金豆;</string>
|
||||||
<string name="dragon_rule7">3.此活動的最終解釋權歸PDLIVE所有。</string>
|
<string name="dragon_rule7">3.此活動的最終解釋權歸PDLIVE所有。</string>
|
||||||
<string name="main_type_theater">短劇</string>
|
<string name="main_type_theater">短劇</string>
|
||||||
|
<string name="prank_complete">完成*1</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1495,5 +1495,6 @@
|
|||||||
<string name="dragon_rule6">2.用戶關注主播並參與活動,將在倒計時五分鐘結束後瓜分活動金豆;</string>
|
<string name="dragon_rule6">2.用戶關注主播並參與活動,將在倒計時五分鐘結束後瓜分活動金豆;</string>
|
||||||
<string name="dragon_rule7">3.此活動的最終解釋權歸PDLIVE所有。</string>
|
<string name="dragon_rule7">3.此活動的最終解釋權歸PDLIVE所有。</string>
|
||||||
<string name="main_type_theater">短劇</string>
|
<string name="main_type_theater">短劇</string>
|
||||||
|
<string name="prank_complete">完成*1</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -1504,4 +1504,5 @@ Limited ride And limited avatar frame</string>
|
|||||||
<string name="dragon_rule6">2.Users who follow the anchor and participate in the activity will divide the gold beans of the activity after the countdown of five minutes ends;</string>
|
<string name="dragon_rule6">2.Users who follow the anchor and participate in the activity will divide the gold beans of the activity after the countdown of five minutes ends;</string>
|
||||||
<string name="dragon_rule7">3.The final interpretation of this activity belongs to PDLIVE.</string>
|
<string name="dragon_rule7">3.The final interpretation of this activity belongs to PDLIVE.</string>
|
||||||
<string name="main_type_theater" >Theater</string>
|
<string name="main_type_theater" >Theater</string>
|
||||||
|
<string name="prank_complete">once</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -27,6 +27,6 @@ ext {
|
|||||||
//是否上报异常日志
|
//是否上报异常日志
|
||||||
isUploadLog : true,
|
isUploadLog : true,
|
||||||
//是否打包成插件包模式
|
//是否打包成插件包模式
|
||||||
isPluginModel : true,
|
isPluginModel : false,
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -300,8 +300,6 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
ToastUtil.show(mContext.getString(R.string.live_push_failed));
|
ToastUtil.show(mContext.getString(R.string.live_push_failed));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initFaceManager() {
|
private void initFaceManager() {
|
||||||
@ -380,8 +378,17 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
case Constants.LIVE_FUNC_ZG://zg
|
case Constants.LIVE_FUNC_ZG://zg
|
||||||
// ToastUtil.show("開發中,敬請期待");
|
// ToastUtil.show("開發中,敬請期待");
|
||||||
LivePrankDialogFragment fragment = new LivePrankDialogFragment();
|
LivePrankDialogFragment fragment = new LivePrankDialogFragment();
|
||||||
|
fragment.setOnPrankResultListener(new LivePrankDialogFragment.onPrankResultListener() {
|
||||||
|
@Override
|
||||||
|
public void OpenAndCloseListener() {
|
||||||
|
if(mLiveRoomViewHolder!=null){
|
||||||
|
mLiveRoomViewHolder.initPrankProgress();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
fragment.setmLiveUid(mLiveUid);
|
fragment.setmLiveUid(mLiveUid);
|
||||||
fragment.show(getSupportFragmentManager(), "LivePrankDialogFragment");
|
fragment.show(getSupportFragmentManager(), "LivePrankDialogFragment");
|
||||||
|
mLiveAnchorViewHolder.closeMenuRed();
|
||||||
break;
|
break;
|
||||||
case Constants.LIVE_FUNC_MIC://語音
|
case Constants.LIVE_FUNC_MIC://語音
|
||||||
//ToastUtil.show("開發中,敬請期待");
|
//ToastUtil.show("開發中,敬請期待");
|
||||||
@ -700,6 +707,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
bundle.putBoolean("isPk", isDRPK == 1 || PKing || mLivePushViewHolder.isPking());
|
bundle.putBoolean("isPk", isDRPK == 1 || PKing || mLivePushViewHolder.isPking());
|
||||||
bundle.putLong("liveTime", mLiveAnchorViewHolder.getmAnchorLiveTime());
|
bundle.putLong("liveTime", mLiveAnchorViewHolder.getmAnchorLiveTime());
|
||||||
bundle.putBoolean(Constants.OPEN_FLASH, mLivePushViewHolder != null && mLivePushViewHolder.isFlashOpen());
|
bundle.putBoolean(Constants.OPEN_FLASH, mLivePushViewHolder != null && mLivePushViewHolder.isFlashOpen());
|
||||||
|
bundle.putBoolean("isShowZgRed",mLiveAnchorViewHolder.isShowMenuRed());
|
||||||
fragment.setArguments(bundle);
|
fragment.setArguments(bundle);
|
||||||
fragment.setFunctionClickListener(this);
|
fragment.setFunctionClickListener(this);
|
||||||
fragment.show(getSupportFragmentManager(), "LiveFunctionDialogFragment");
|
fragment.show(getSupportFragmentManager(), "LiveFunctionDialogFragment");
|
||||||
@ -871,6 +879,10 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
getAiRobotStatus();
|
getAiRobotStatus();
|
||||||
MicedUserManager.get().removeAllMicUserList();
|
MicedUserManager.get().removeAllMicUserList();
|
||||||
MicUserManager.get().removeAllMicUserList();
|
MicUserManager.get().removeAllMicUserList();
|
||||||
|
//加载整蛊
|
||||||
|
if(mLiveRoomViewHolder!=null){
|
||||||
|
mLiveRoomViewHolder.initPrankProgress();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1454,7 +1466,9 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onUpdatePrankProgress(String prankString) {
|
public void onUpdatePrankProgress(String prankString) {
|
||||||
|
if (mLiveRoomViewHolder != null){
|
||||||
|
mLiveRoomViewHolder.refreshPrank(prankString);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@ -14,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
import com.yunbao.common.bean.PrankProgressBean;
|
import com.yunbao.common.bean.PrankProgressBean;
|
||||||
import com.yunbao.common.glide.ImgLoader;
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
import com.yunbao.common.utils.WordUtil;
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
import com.yunbao.common.views.weight.MarqueeTextView;
|
||||||
import com.yunbao.live.R;
|
import com.yunbao.live.R;
|
||||||
import com.yunbao.live.views.LiveRoomViewHolder;
|
import com.yunbao.live.views.LiveRoomViewHolder;
|
||||||
|
|
||||||
@ -25,6 +27,8 @@ public class PrankAdapter extends RecyclerView.Adapter<PrankAdapter.MyViewHolder
|
|||||||
private List<PrankProgressBean.PrankList> mList = new ArrayList<>();
|
private List<PrankProgressBean.PrankList> mList = new ArrayList<>();
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
|
private boolean isAn;
|
||||||
|
|
||||||
public PrankAdapter(Context context){
|
public PrankAdapter(Context context){
|
||||||
mContext = context;
|
mContext = context;
|
||||||
}
|
}
|
||||||
@ -35,6 +39,13 @@ public class PrankAdapter extends RecyclerView.Adapter<PrankAdapter.MyViewHolder
|
|||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showAnView(List<PrankProgressBean.PrankList> list,boolean isAn){
|
||||||
|
this.isAn = isAn;
|
||||||
|
mList.clear();
|
||||||
|
mList.addAll(list);
|
||||||
|
notifyDataSetChanged();
|
||||||
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
@ -54,6 +65,22 @@ public class PrankAdapter extends RecyclerView.Adapter<PrankAdapter.MyViewHolder
|
|||||||
ImgLoader.display(mContext,data.getGift_icon(),holder.prank_item_icon);
|
ImgLoader.display(mContext,data.getGift_icon(),holder.prank_item_icon);
|
||||||
holder.prank_item_progress.setMax(data.getGift_num());
|
holder.prank_item_progress.setMax(data.getGift_num());
|
||||||
holder.prank_item_progress.setProgress(data.getSend_num());
|
holder.prank_item_progress.setProgress(data.getSend_num());
|
||||||
|
holder.an_prank_name.setText(WordUtil.isNewZh() ? data.getGift_name() : data.getGift_name_en());
|
||||||
|
holder.an_prank_remove.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
onItemClickListener.onItemDel(data.getGift_id());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(isAn){
|
||||||
|
holder.anLayout.setVisibility(View.VISIBLE);
|
||||||
|
holder.progressLayout.setVisibility(View.GONE);
|
||||||
|
holder.nameLayout.setVisibility(View.GONE);
|
||||||
|
}else{
|
||||||
|
holder.anLayout.setVisibility(View.GONE);
|
||||||
|
holder.progressLayout.setVisibility(View.VISIBLE);
|
||||||
|
holder.nameLayout.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -65,6 +92,11 @@ public class PrankAdapter extends RecyclerView.Adapter<PrankAdapter.MyViewHolder
|
|||||||
private TextView prank_item_subscript,prank_item_prank_name,prank_item_gift_name,prank_item_now_progress,prank_item_total_progress;
|
private TextView prank_item_subscript,prank_item_prank_name,prank_item_gift_name,prank_item_now_progress,prank_item_total_progress;
|
||||||
private ImageView prank_item_icon;
|
private ImageView prank_item_icon;
|
||||||
private ProgressBar prank_item_progress;
|
private ProgressBar prank_item_progress;
|
||||||
|
private LinearLayout anLayout;
|
||||||
|
private MarqueeTextView an_prank_name;
|
||||||
|
private TextView an_prank_remove;
|
||||||
|
private LinearLayout progressLayout;
|
||||||
|
private LinearLayout nameLayout;
|
||||||
public MyViewHolder(@NonNull View itemView) {
|
public MyViewHolder(@NonNull View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
prank_item_subscript = itemView.findViewById(R.id.prank_item_subscript);
|
prank_item_subscript = itemView.findViewById(R.id.prank_item_subscript);
|
||||||
@ -74,6 +106,13 @@ public class PrankAdapter extends RecyclerView.Adapter<PrankAdapter.MyViewHolder
|
|||||||
prank_item_total_progress = itemView.findViewById(R.id.prank_item_total_progress);
|
prank_item_total_progress = itemView.findViewById(R.id.prank_item_total_progress);
|
||||||
prank_item_icon = itemView.findViewById(R.id.prank_item_icon);
|
prank_item_icon = itemView.findViewById(R.id.prank_item_icon);
|
||||||
prank_item_progress = itemView.findViewById(R.id.prank_item_progress);
|
prank_item_progress = itemView.findViewById(R.id.prank_item_progress);
|
||||||
|
|
||||||
|
nameLayout = itemView.findViewById(R.id.nameLayout);
|
||||||
|
progressLayout = itemView.findViewById(R.id.progressLayout);
|
||||||
|
//主播
|
||||||
|
anLayout = itemView.findViewById(R.id.anLayout);
|
||||||
|
an_prank_name = itemView.findViewById(R.id.an_prank_name);
|
||||||
|
an_prank_remove = itemView.findViewById(R.id.an_prank_remove);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +120,8 @@ public class PrankAdapter extends RecyclerView.Adapter<PrankAdapter.MyViewHolder
|
|||||||
|
|
||||||
public interface OnItemClickListener {
|
public interface OnItemClickListener {
|
||||||
void onItemClick(View view,int giftId);
|
void onItemClick(View view,int giftId);
|
||||||
|
|
||||||
|
void onItemDel(int giftId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addOnItemClickListener(OnItemClickListener onItemClickListener){
|
public void addOnItemClickListener(OnItemClickListener onItemClickListener){
|
||||||
|
@ -55,7 +55,10 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
|||||||
|
|
||||||
private String liveUid;
|
private String liveUid;
|
||||||
|
|
||||||
|
private TextView red_menu;
|
||||||
|
|
||||||
// boolean isRy = false;
|
// boolean isRy = false;
|
||||||
|
private boolean isShowRed;
|
||||||
@Override
|
@Override
|
||||||
protected int getLayoutId() {
|
protected int getLayoutId() {
|
||||||
return R.layout.dialog_live_new_function;
|
return R.layout.dialog_live_new_function;
|
||||||
@ -96,6 +99,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
|||||||
// isRy = bundle.getBoolean("isRy", false);
|
// isRy = bundle.getBoolean("isRy", false);
|
||||||
mAnchorLiveTime = bundle.getLong("liveTime");
|
mAnchorLiveTime = bundle.getLong("liveTime");
|
||||||
liveUid = bundle.getString("liveUid");
|
liveUid = bundle.getString("liveUid");
|
||||||
|
isShowRed = bundle.getBoolean("isShowZgRed");
|
||||||
}
|
}
|
||||||
mWishView = findViewById(R.id.live_tool_wish);
|
mWishView = findViewById(R.id.live_tool_wish);
|
||||||
mPrankView = findViewById(R.id.live_tool_prank);
|
mPrankView = findViewById(R.id.live_tool_prank);
|
||||||
@ -108,6 +112,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
|||||||
mMicView = findViewById(R.id.live_tool_mic);
|
mMicView = findViewById(R.id.live_tool_mic);
|
||||||
mRandomPk = findViewById(R.id.live_tool_random_pk);
|
mRandomPk = findViewById(R.id.live_tool_random_pk);
|
||||||
mLiveTimeTextView = (TextView) findViewById(R.id.live_time);
|
mLiveTimeTextView = (TextView) findViewById(R.id.live_time);
|
||||||
|
red_menu = (TextView) findViewById(R.id.red_menu);
|
||||||
mWishView.setOnClickListener(this);
|
mWishView.setOnClickListener(this);
|
||||||
mPrankView.setOnClickListener(this);
|
mPrankView.setOnClickListener(this);
|
||||||
mWksView.setOnClickListener(this);
|
mWksView.setOnClickListener(this);
|
||||||
@ -138,6 +143,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
|||||||
mLiveRoomHandler = new LiveRoomHandler();
|
mLiveRoomHandler = new LiveRoomHandler();
|
||||||
mLiveTimeTextView.setText(StringUtil.getDurationText(mAnchorLiveTime));
|
mLiveTimeTextView.setText(StringUtil.getDurationText(mAnchorLiveTime));
|
||||||
startAnchorLiveTime();
|
startAnchorLiveTime();
|
||||||
|
red_menu.setVisibility(isShowRed?View.VISIBLE:View.GONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setFunctionClickListener(LiveFunctionClickListener functionClickListener) {
|
public void setFunctionClickListener(LiveFunctionClickListener functionClickListener) {
|
||||||
@ -162,6 +168,7 @@ public class LiveNewFunctionDialogFragment extends AbsDialogFragment implements
|
|||||||
mFunctionClickListener.onClick(LIVE_FUNC_WISHLIST);
|
mFunctionClickListener.onClick(LIVE_FUNC_WISHLIST);
|
||||||
} else if (id == R.id.live_tool_prank) {
|
} else if (id == R.id.live_tool_prank) {
|
||||||
mFunctionClickListener.onClick(LIVE_FUNC_ZG);
|
mFunctionClickListener.onClick(LIVE_FUNC_ZG);
|
||||||
|
red_menu.setVisibility(View.GONE);
|
||||||
} else if (id == R.id.live_tool_wks) {
|
} else if (id == R.id.live_tool_wks) {
|
||||||
mFunctionClickListener.onClick(LIVE_FUNC_WKS);
|
mFunctionClickListener.onClick(LIVE_FUNC_WKS);
|
||||||
} else if (id == R.id.live_tool_beauty) {
|
} else if (id == R.id.live_tool_beauty) {
|
||||||
|
@ -71,6 +71,12 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
private Button mBtnAddGift;
|
private Button mBtnAddGift;
|
||||||
private ImageView help;
|
private ImageView help;
|
||||||
|
|
||||||
|
private onPrankResultListener onPrankResultListener;
|
||||||
|
|
||||||
|
public void setOnPrankResultListener(LivePrankDialogFragment.onPrankResultListener onPrankResultListener) {
|
||||||
|
this.onPrankResultListener = onPrankResultListener;
|
||||||
|
}
|
||||||
|
|
||||||
public void setmLiveUid(String mLiveUid) {
|
public void setmLiveUid(String mLiveUid) {
|
||||||
this.mLiveUid = mLiveUid;
|
this.mLiveUid = mLiveUid;
|
||||||
}
|
}
|
||||||
@ -226,7 +232,6 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
} else {
|
} else {
|
||||||
setGiftBean(recyclerAdapter.getList());
|
setGiftBean(recyclerAdapter.getList());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_clear), new ViewClicksAntiShake.ViewClicksCallBack() {
|
ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_clear), new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||||
@ -414,6 +419,10 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
} else {
|
} else {
|
||||||
ToastUtil.show("successful");
|
ToastUtil.show("successful");
|
||||||
}
|
}
|
||||||
|
//通知主播刷新整蛊信息、
|
||||||
|
if(onPrankResultListener!=null){
|
||||||
|
onPrankResultListener.OpenAndCloseListener();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -601,4 +610,8 @@ public class LivePrankDialogFragment extends AbsDialogFragment implements View.O
|
|||||||
livePrankExplainDialog.showDialog();
|
livePrankExplainDialog.showDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public interface onPrankResultListener{
|
||||||
|
void OpenAndCloseListener();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -296,8 +296,10 @@ public class SocketRyClient {
|
|||||||
|
|
||||||
case Constants.PrankSendData:
|
case Constants.PrankSendData:
|
||||||
//整蛊礼物刷新
|
//整蛊礼物刷新
|
||||||
|
L.e("整蛊礼物刷新 整蛊礼物刷新 整蛊礼物刷新");
|
||||||
if (map.getIntValue("action") == 13 && map.getString("msgtype").equals("4")){
|
if (map.getIntValue("action") == 13 && map.getString("msgtype").equals("4")){
|
||||||
String ctString = map.getString("ct");
|
String ctString = map.getString("ct");
|
||||||
|
L.e("整蛊礼物刷新 整蛊礼物刷新 整蛊礼物刷新 "+ctString);
|
||||||
JsonElement jsonElement = JsonParser.parseString(ctString);
|
JsonElement jsonElement = JsonParser.parseString(ctString);
|
||||||
if (jsonElement == null) break;
|
if (jsonElement == null) break;
|
||||||
// LogUtils.e("yqw=====>整蛊礼物列表:"+ctString);
|
// LogUtils.e("yqw=====>整蛊礼物列表:"+ctString);
|
||||||
|
@ -54,6 +54,9 @@ import com.bumptech.glide.load.resource.gif.GifDrawable;
|
|||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.Target;
|
import com.bumptech.glide.request.target.Target;
|
||||||
|
import com.google.gson.Gson;
|
||||||
|
import com.google.gson.JsonArray;
|
||||||
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
import com.lxj.xpopup.XPopup;
|
import com.lxj.xpopup.XPopup;
|
||||||
import com.makeramen.roundedimageview.RoundedImageView;
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
@ -66,6 +69,7 @@ import com.opensource.svgaplayer.SVGAImageView;
|
|||||||
import com.opensource.svgaplayer.SVGAParser;
|
import com.opensource.svgaplayer.SVGAParser;
|
||||||
import com.opensource.svgaplayer.SVGAVideoEntity;
|
import com.opensource.svgaplayer.SVGAVideoEntity;
|
||||||
import com.yunbao.common.bean.PrankProgressBean;
|
import com.yunbao.common.bean.PrankProgressBean;
|
||||||
|
import com.yunbao.common.utils.L;
|
||||||
import com.yunbao.common.utils.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
@ -406,12 +410,15 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
|
|
||||||
//整蛊进度列表功能
|
//整蛊进度列表功能
|
||||||
private View prank_group;
|
private View prank_group;
|
||||||
private TextView prank_group_title,prank_group_turntable;
|
public TextView prank_group_title,prank_group_turntable;
|
||||||
private RecyclerView recycler_prank;
|
private RecyclerView recycler_prank;
|
||||||
private ImageView prank_group_bottom_icon,prank_group_turntable_icon,prank_small_icon;
|
private ImageView prank_group_bottom_icon,prank_group_turntable_icon,prank_small_icon;
|
||||||
private PrankAdapter prankAdapter;
|
private PrankAdapter prankAdapter;
|
||||||
private ComboAdapter comboAdapter;
|
private ComboAdapter comboAdapter;
|
||||||
private List<PrankProgressBean.PrankList> prankAndComboList = new ArrayList<>();
|
private List<PrankProgressBean.PrankList> prankAndComboList = new ArrayList<>();
|
||||||
|
private JsonElement completedList = new JsonArray();
|
||||||
|
|
||||||
|
private boolean prankAnisShow;
|
||||||
|
|
||||||
public LiveRoomViewHolder setGuardType(int guardType) {
|
public LiveRoomViewHolder setGuardType(int guardType) {
|
||||||
this.guardType = guardType;
|
this.guardType = guardType;
|
||||||
@ -1650,10 +1657,21 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
prank_group_bottom_icon = (ImageView) findViewById(R.id.prank_group_bottom_icon);//收起icon
|
prank_group_bottom_icon = (ImageView) findViewById(R.id.prank_group_bottom_icon);//收起icon
|
||||||
prank_group_turntable_icon = (ImageView) findViewById(R.id.prank_group_turntable_icon);//转盘图标
|
prank_group_turntable_icon = (ImageView) findViewById(R.id.prank_group_turntable_icon);//转盘图标
|
||||||
prank_small_icon = (ImageView) findViewById(R.id.prank_small_icon);//收起后图标
|
prank_small_icon = (ImageView) findViewById(R.id.prank_small_icon);//收起后图标
|
||||||
|
|
||||||
//点击文字转盘整蛊(跳转转盘整蛊)
|
//点击文字转盘整蛊(跳转转盘整蛊)
|
||||||
prank_group_turntable.setOnClickListener(v->{
|
prank_group_turntable.setOnClickListener(v->{
|
||||||
|
prankAnisShow = !prankAnisShow;
|
||||||
|
List<PrankProgressBean.PrankList> tempList = new ArrayList<>();
|
||||||
|
for (int i = 0; i <prankAndComboList.size(); i++) {
|
||||||
|
if(prankAndComboList.get(i).getCompleted_num()!=0){
|
||||||
|
tempList.add(prankAndComboList.get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(prankAnisShow){
|
||||||
|
prankAdapter.showAnView(tempList,prankAnisShow);
|
||||||
|
}else{
|
||||||
|
prankAdapter.showAnView(prankAndComboList,prankAnisShow);
|
||||||
|
}
|
||||||
|
L.e("prankAnisShow:"+prankAnisShow);
|
||||||
});
|
});
|
||||||
|
|
||||||
//点击收起
|
//点击收起
|
||||||
@ -1680,9 +1698,27 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
comboAdapter = new ComboAdapter(mContext);
|
comboAdapter = new ComboAdapter(mContext);
|
||||||
|
|
||||||
//整蛊礼物点击
|
//整蛊礼物点击
|
||||||
prankAdapter.addOnItemClickListener((view, giftId) -> {
|
prankAdapter.addOnItemClickListener(new PrankAdapter.OnItemClickListener() {
|
||||||
// LogUtils.e("yqw=====>点击整蛊礼物:"+giftId);
|
@Override
|
||||||
openGiftDialog(String.valueOf(giftId));
|
public void onItemClick(View view, int giftId) {
|
||||||
|
openGiftDialog(String.valueOf(giftId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onItemDel(int giftId) {
|
||||||
|
LiveNetManager.get(mContext).anchorClickFinish(mLiveUid, String.valueOf(giftId), new com.yunbao.common.http.base.HttpCallback<List<BaseModel>>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(List<BaseModel> data) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
L.e("onItemDel:"+giftId);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//连击投票礼物点击
|
//连击投票礼物点击
|
||||||
@ -1692,6 +1728,8 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//初始化整蛊列表进度
|
//初始化整蛊列表进度
|
||||||
public void initPrankProgress(){
|
public void initPrankProgress(){
|
||||||
// LogUtils.e("yqw=====>主播id:"+mLiveUid);
|
// LogUtils.e("yqw=====>主播id:"+mLiveUid);
|
||||||
@ -1715,8 +1753,6 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//刷新整蛊礼物列表
|
//刷新整蛊礼物列表
|
||||||
public void refreshPrank(String newPrankData){
|
public void refreshPrank(String newPrankData){
|
||||||
try {
|
try {
|
||||||
@ -1765,6 +1801,11 @@ public class LiveRoomViewHolder extends AbsViewHolder implements View.OnClickLis
|
|||||||
sortByCompletionRate(prankAndComboList);
|
sortByCompletionRate(prankAndComboList);
|
||||||
prankAdapter.setList(prankAndComboList);
|
prankAdapter.setList(prankAndComboList);
|
||||||
recycler_prank.setAdapter(prankAdapter);
|
recycler_prank.setAdapter(prankAdapter);
|
||||||
|
if(CommonAppConfig.getInstance().getUid().equals(mLiveUid)){
|
||||||
|
prank_group_turntable.setVisibility(View.VISIBLE);
|
||||||
|
}else{
|
||||||
|
prank_group_turntable.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}else {
|
}else {
|
||||||
sortBySendNum(prankAndComboList);
|
sortBySendNum(prankAndComboList);
|
||||||
comboAdapter.setList(prankAndComboList);
|
comboAdapter.setList(prankAndComboList);
|
||||||
|
@ -85,6 +85,7 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
|
|||||||
private TextView mLiveTimeTextView;//主播的直播时长
|
private TextView mLiveTimeTextView;//主播的直播时长
|
||||||
private long mAnchorLiveTime;//主播直播时间
|
private long mAnchorLiveTime;//主播直播时间
|
||||||
private LiveRoomHandler mLiveRoomHandler;
|
private LiveRoomHandler mLiveRoomHandler;
|
||||||
|
private TextView menuRed;
|
||||||
|
|
||||||
public LiveRyAnchorViewHolder(Context context, ViewGroup parentView) {
|
public LiveRyAnchorViewHolder(Context context, ViewGroup parentView) {
|
||||||
super(context, parentView);
|
super(context, parentView);
|
||||||
@ -187,6 +188,8 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
|
|||||||
mLiveTimeTextView = (TextView) findViewById(R.id.live_time);
|
mLiveTimeTextView = (TextView) findViewById(R.id.live_time);
|
||||||
mLiveTimeTextView.setVisibility(View.VISIBLE);
|
mLiveTimeTextView.setVisibility(View.VISIBLE);
|
||||||
mLiveRoomHandler = new LiveRoomHandler();
|
mLiveRoomHandler = new LiveRoomHandler();
|
||||||
|
|
||||||
|
menuRed = (TextView) findViewById(R.id.red_menu);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, String> yaoqing = new HashMap<>();
|
private Map<String, String> yaoqing = new HashMap<>();
|
||||||
@ -649,4 +652,12 @@ public class LiveRyAnchorViewHolder extends AbsLiveViewHolder {
|
|||||||
}
|
}
|
||||||
return now + time + -now % 1000;
|
return now + time + -now % 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void closeMenuRed(){
|
||||||
|
menuRed.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isShowMenuRed(){
|
||||||
|
return menuRed.getVisibility()==View.VISIBLE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
5
live/src/main/res/drawable/bg_prank_an_once.xml
Normal file
5
live/src/main/res/drawable/bg_prank_an_once.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<corners android:radius="5dp"/>
|
||||||
|
<solid android:color="#FFF6E1"/>
|
||||||
|
</shape>
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<corners android:radius="6dp"/>
|
<corners android:radius="6dp"/>
|
||||||
<solid android:color="#8065615A"/>
|
<solid android:color="#FFC949"/>
|
||||||
</shape>
|
</shape>
|
@ -83,7 +83,7 @@
|
|||||||
android:drawableEnd="@mipmap/ic_prank_gift_add_gift_to"
|
android:drawableEnd="@mipmap/ic_prank_gift_add_gift_to"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:gravity="start|center"
|
android:gravity="start|center"
|
||||||
android:hint="@string/diamonds_every_time_requirement_of_hint"
|
android:hint="@string/live_prank_gift_add_gift_select"
|
||||||
android:paddingStart="12dp"
|
android:paddingStart="12dp"
|
||||||
android:paddingEnd="12dp"
|
android:paddingEnd="12dp"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
@ -20,7 +20,10 @@
|
|||||||
android:textSize="8sp"/>
|
android:textSize="8sp"/>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/nameLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
android:visibility="visible"
|
||||||
|
tools:visibility="gone"
|
||||||
android:layout_height="16dp"
|
android:layout_height="16dp"
|
||||||
android:layout_marginStart="4dp"
|
android:layout_marginStart="4dp"
|
||||||
android:layout_marginEnd="4dp"
|
android:layout_marginEnd="4dp"
|
||||||
@ -63,9 +66,12 @@
|
|||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
android:id="@+id/progressLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="3dp"
|
android:layout_marginStart="3dp"
|
||||||
|
android:visibility="visible"
|
||||||
|
tools:visibility="gone"
|
||||||
android:layout_marginEnd="3dp"
|
android:layout_marginEnd="3dp"
|
||||||
android:orientation="horizontal">
|
android:orientation="horizontal">
|
||||||
|
|
||||||
@ -101,4 +107,39 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/anLayout"
|
||||||
|
android:layout_margin="5dp"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
tools:visibility="visible"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<com.yunbao.common.views.weight.MarqueeTextView
|
||||||
|
android:id="@+id/an_prank_name"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="marquee"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:marqueeRepeatLimit="marquee_forever"
|
||||||
|
android:fontFamily="sans-serif-condensed-medium"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="8sp"
|
||||||
|
android:text="跳舞跳舞跳"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/an_prank_remove"
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:text="@string/prank_complete"
|
||||||
|
android:layout_marginLeft="5dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingBottom="1dp"
|
||||||
|
android:textColor="#372B2B"
|
||||||
|
android:background="@drawable/bg_prank_an_once"
|
||||||
|
android:textSize="6dp"
|
||||||
|
android:layout_height="wrap_content"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -2400,6 +2400,7 @@
|
|||||||
<include
|
<include
|
||||||
android:id="@+id/prank_group"
|
android:id="@+id/prank_group"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible"
|
||||||
layout="@layout/view_prank_group"/>
|
layout="@layout/view_prank_group"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
|
@ -53,6 +53,7 @@
|
|||||||
android:background="@drawable/bg_prank_bottom_detail"
|
android:background="@drawable/bg_prank_bottom_detail"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:padding="3dp"
|
android:padding="3dp"
|
||||||
|
tools:visibility="visible"
|
||||||
android:textSize="8sp"
|
android:textSize="8sp"
|
||||||
android:ellipsize="end"
|
android:ellipsize="end"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
|
@ -250,5 +250,24 @@
|
|||||||
app:dt_left_drawable="@drawable/bg_push_time_point"
|
app:dt_left_drawable="@drawable/bg_push_time_point"
|
||||||
app:dt_left_height="4dp"
|
app:dt_left_height="4dp"
|
||||||
app:dt_left_width="4dp" />
|
app:dt_left_width="4dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/red_menu"
|
||||||
|
android:layout_width="6dp"
|
||||||
|
android:layout_height="6dp"
|
||||||
|
android:layout_alignTop="@id/btn_function"
|
||||||
|
android:layout_alignRight="@id/btn_function"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginRight="8dp"
|
||||||
|
android:background="@drawable/live_room_menu_red"
|
||||||
|
android:gravity="center"
|
||||||
|
android:includeFontPadding="false"
|
||||||
|
android:minWidth="14dp"
|
||||||
|
android:paddingLeft="3dp"
|
||||||
|
android:paddingRight="3dp"
|
||||||
|
android:textColor="#fff"
|
||||||
|
android:textSize="10sp"
|
||||||
|
android:translationY="-4dp"
|
||||||
|
android:visibility="visible" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -134,6 +134,7 @@
|
|||||||
<string name="live_prank_gift_tips">You can add up to 6, and it is recommended to add 4.</string>
|
<string name="live_prank_gift_tips">You can add up to 6, and it is recommended to add 4.</string>
|
||||||
<string name="live_prank_gift_add_title">Add gift</string>
|
<string name="live_prank_gift_add_title">Add gift</string>
|
||||||
<string name="live_prank_gift_add_gift">Gift</string>
|
<string name="live_prank_gift_add_gift">Gift</string>
|
||||||
|
<string name="live_prank_gift_add_gift_select">Choose a gift</string>
|
||||||
<string name="live_prank_gift_add_gift_number">Quantity</string>
|
<string name="live_prank_gift_add_gift_number">Quantity</string>
|
||||||
<string name="live_prank_gift_add_gift_number_select">Fill in the number</string>
|
<string name="live_prank_gift_add_gift_number_select">Fill in the number</string>
|
||||||
<string name="live_prank_gift_add_gift_content">Content</string>
|
<string name="live_prank_gift_add_gift_content">Content</string>
|
||||||
|
@ -136,7 +136,7 @@
|
|||||||
<string name="live_prank_gift_dialog_number_btn">+ 設置其他數量(最多9999)</string>
|
<string name="live_prank_gift_dialog_number_btn">+ 設置其他數量(最多9999)</string>
|
||||||
|
|
||||||
<string name="prank_progress">整蠱進度</string>
|
<string name="prank_progress">整蠱進度</string>
|
||||||
<string name="turntable_prank">轉盤整蠱</string>
|
<string name="turntable_prank">待完成整蠱</string>
|
||||||
<string name="details">詳情></string>
|
<string name="details">詳情></string>
|
||||||
<string name="combo_vote">連擊投票</string>
|
<string name="combo_vote">連擊投票</string>
|
||||||
<string name="combo_vote_more">連擊最多優先</string>
|
<string name="combo_vote_more">連擊最多優先</string>
|
||||||
|
Loading…
Reference in New Issue
Block a user