新增通过后端获取国家地区信息接口

调整送联系方式礼物时,不选择其他礼物
调整联系方式礼物接口
调整在模拟器超大分辨率模式下,信箱ui异常问题
This commit is contained in:
zlzw 2023-04-03 13:28:35 +08:00
parent f55e1b9c05
commit 73c8db8fb4
23 changed files with 395 additions and 99 deletions

View File

@ -1,6 +1,8 @@
package com.yunbao.share.adapters; package com.yunbao.share.adapters;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -29,12 +31,12 @@ public class InviteRewardListAdapter extends RecyclerView.Adapter<InviteRewardLi
@NonNull @NonNull
@Override @Override
public RewardViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { public RewardViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new RewardViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_invite_reward,parent,false)); return new RewardViewHolder(LayoutInflater.from(mContext).inflate(R.layout.item_invite_reward, parent, false));
} }
@Override @Override
public void onBindViewHolder(@NonNull RewardViewHolder holder, int position) { public void onBindViewHolder(@NonNull RewardViewHolder holder, int position) {
holder.setData(list.get(position),position); holder.setData(list.get(position), position);
} }
@Override @Override
@ -48,6 +50,7 @@ public class InviteRewardListAdapter extends RecyclerView.Adapter<InviteRewardLi
private final TextView item2; private final TextView item2;
private final TextView item3; private final TextView item3;
private final TextView item4; private final TextView item4;
private final View divider, divider2;
public RewardViewHolder(@NonNull View itemView) { public RewardViewHolder(@NonNull View itemView) {
super(itemView); super(itemView);
@ -55,6 +58,8 @@ public class InviteRewardListAdapter extends RecyclerView.Adapter<InviteRewardLi
item2 = itemView.findViewById(R.id.item2); item2 = itemView.findViewById(R.id.item2);
item3 = itemView.findViewById(R.id.item3); item3 = itemView.findViewById(R.id.item3);
item4 = itemView.findViewById(R.id.item4); item4 = itemView.findViewById(R.id.item4);
divider = itemView.findViewById(R.id.divider);
divider2 = itemView.findViewById(R.id.divider2);
} }
void setData(InviteRewardBean bean, int position) { void setData(InviteRewardBean bean, int position) {
@ -62,6 +67,36 @@ public class InviteRewardListAdapter extends RecyclerView.Adapter<InviteRewardLi
item2.setText(bean.getInviteTime()); item2.setText(bean.getInviteTime());
item3.setText(bean.getType()); item3.setText(bean.getType());
item4.setText(bean.getReward()); item4.setText(bean.getReward());
if (position != 0) {
divider.setVisibility(View.GONE);
divider2.setVisibility(View.GONE);
setColor("#2F87B2", item1, item2, item3, item4);
setType(Typeface.NORMAL, item1, item2, item3, item4);
} else {
setColor("#236586", item1, item2, item3, item4);
setType(Typeface.BOLD, item1, item2, item3, item4);
}
setSize(13, item1, item2, item3, item4);
}
void setColor(String color, TextView... textView) {
for (TextView view : textView) {
view.setTextColor(Color.parseColor(color));
}
}
void setSize(float size, TextView... textView) {
for (TextView view : textView) {
view.setTextSize(size);
}
}
void setType(int type, TextView... textView) {
for (TextView view : textView) {
view.setTypeface(Typeface.defaultFromStyle(type));
}
} }
} }
} }

View File

@ -6,6 +6,10 @@ import android.app.Dialog;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Shader;
import android.view.ViewTreeObserver;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -15,6 +19,7 @@ import androidx.recyclerview.widget.RecyclerView;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.makeramen.roundedimageview.RoundedImageView; import com.makeramen.roundedimageview.RoundedImageView;
import com.pdlive.shayu.R; import com.pdlive.shayu.R;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.dialog.AbsDialogPopupWindow; import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
@ -31,12 +36,14 @@ public class InvitePopDialog extends AbsDialogPopupWindow {
private RoundedImageView avatar; private RoundedImageView avatar;
private TextView info; private TextView info;
private TextView link; private TextView link;
private TextView title;
private List<ShareBuilder> data; private List<ShareBuilder> data;
private String uid; private String uid;
private String anchorId; private String anchorId;
private String anchorName; private String anchorName;
private String anchorAvatar; private String anchorAvatar;
private String url;
public InvitePopDialog(@NonNull Context context) { public InvitePopDialog(@NonNull Context context) {
super(context); super(context);
@ -78,11 +85,9 @@ public class InvitePopDialog extends AbsDialogPopupWindow {
super.onCreate(); super.onCreate();
findViewById(R.id.close).setOnClickListener(v -> dismiss()); findViewById(R.id.close).setOnClickListener(v -> dismiss());
findViewById(R.id.share_copy).setOnClickListener(v -> copyLink()); findViewById(R.id.share_copy).setOnClickListener(v -> copyLink());
findViewById(R.id.share_title).setOnClickListener(v -> copyLink()); // findViewById(R.id.share_preview).setVisibility(GONE);
findViewById(R.id.share_preview).setVisibility(GONE);
findViewById(R.id.share_dialog).setBackgroundResource(R.mipmap.bg_dialog_inviet); findViewById(R.id.share_dialog).setBackgroundResource(R.mipmap.bg_dialog_inviet);
((TextView) findViewById(R.id.share_title)).setText(R.string.dialog_invite_title); title = findViewById(R.id.share_title);
((TextView) findViewById(R.id.share_title)).setTextColor(R.drawable.bg_invite_title);
list = findViewById(R.id.share_apps_list); list = findViewById(R.id.share_apps_list);
avatar = findViewById(R.id.share_avatar); avatar = findViewById(R.id.share_avatar);
info = findViewById(R.id.share_info); info = findViewById(R.id.share_info);
@ -91,6 +96,28 @@ public class InvitePopDialog extends AbsDialogPopupWindow {
list.setLayoutManager(new GridLayoutManager(getContext(), 3)); list.setLayoutManager(new GridLayoutManager(getContext(), 3));
list.setAdapter(adapter); list.setAdapter(adapter);
initData(); initData();
link.setText(url.substring(0, 40));
info.setText(R.string.dialog_invite_info);
avatar.setImageResource(R.mipmap.ic_launcher);
//title.setTextColor(getContext().getResources().getColorStateList(R.drawable.bg_invite_title));
title.setText(R.string.dialog_invite_title);
title.setOnClickListener(v -> copyLink());
title.getViewTreeObserver().addOnGlobalLayoutListener(this::setTitleColor);
}
private void setTitleColor() {
int[] colors = {
Color.parseColor("#3377FF"),
Color.parseColor("#7F66FF"),
};
float[] position = {
0f,
1.0f
};
float height = title.getMeasuredHeight();
LinearGradient mLinearGradient = new LinearGradient(0, 0, 0, height, colors, position, Shader.TileMode.CLAMP);
title.getPaint().setShader(mLinearGradient);
title.invalidate();
} }
private void initData() { private void initData() {
@ -107,8 +134,8 @@ public class InvitePopDialog extends AbsDialogPopupWindow {
private ShareBuilder builder(int type) { private ShareBuilder builder(int type) {
ShareBuilder builder = ShareBuilder.builder(type); ShareBuilder builder = ShareBuilder.builder(type);
//builder.setText(WordUtil.getString(R.string.dialog_share_info)); builder.setText(WordUtil.getString(R.string.dialog_share_info));
builder.setLink(ShareBuilder.createInviteLink(uid)); builder.setLink(url);
builder.setUid(uid); builder.setUid(uid);
builder.setAnchorId(anchorId); builder.setAnchorId(anchorId);
builder.setAnchorName(anchorName); builder.setAnchorName(anchorName);
@ -118,14 +145,19 @@ public class InvitePopDialog extends AbsDialogPopupWindow {
private void copyLink() { private void copyLink() {
ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE); ClipboardManager cm = (ClipboardManager) getContext().getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", link.getText().toString()); ClipData clipData = ClipData.newPlainText("text", url);
cm.setPrimaryClip(clipData); cm.setPrimaryClip(clipData);
ToastUtil.show(WordUtil.getString(com.yunbao.common.R.string.copy_success)); ToastUtil.show(WordUtil.getString(com.yunbao.common.R.string.copy_success));
DialogUitl.showSimpleDialog(getContext(), ShareBuilder.createInviteLink(uid), new DialogUitl.SimpleCallback() { DialogUitl.showSimpleDialog(getContext(),url, new DialogUitl.SimpleCallback() {
@Override @Override
public void onConfirmClick(Dialog dialog, String content) { public void onConfirmClick(Dialog dialog, String content) {
dialog.dismiss(); dialog.dismiss();
} }
}); });
} }
public InvitePopDialog setUrl(String data) {
this.url = data+"&isGoogle="+ (CommonAppConfig.IS_GOOGLE_PLAY ? "1" : "0");
return this;
}
} }

View File

@ -6,6 +6,9 @@ import android.app.Dialog;
import android.content.ClipData; import android.content.ClipData;
import android.content.ClipboardManager; import android.content.ClipboardManager;
import android.content.Context; import android.content.Context;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Shader;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -19,6 +22,8 @@ import com.yunbao.common.dialog.AbsDialogPopupWindow;
import com.yunbao.common.utils.DialogUitl; import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
import com.yunbao.share.adapters.InviteRewardListAdapter;
import com.yunbao.share.bean.InviteRewardBean;
import com.yunbao.share.bean.ShareBuilder; import com.yunbao.share.bean.ShareBuilder;
import com.yunbao.share.adapters.ShareAppAdapter; import com.yunbao.share.adapters.ShareAppAdapter;
@ -26,13 +31,13 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
public class InviteRewardPopDialog extends AbsDialogPopupWindow { public class InviteRewardPopDialog extends AbsDialogPopupWindow {
private ShareAppAdapter adapter; private InviteRewardListAdapter adapter;
private RecyclerView list; private RecyclerView list;
private RoundedImageView avatar; private RoundedImageView avatar;
private TextView info; private TextView info;
private TextView link; private TextView link;
private List<ShareBuilder> data; private List<InviteRewardBean> data;
private TextView title;
private String uid; private String uid;
private String anchorId; private String anchorId;
private String anchorName; private String anchorName;
@ -78,29 +83,41 @@ public class InviteRewardPopDialog extends AbsDialogPopupWindow {
super.onCreate(); super.onCreate();
findViewById(R.id.close).setOnClickListener(v -> dismiss()); findViewById(R.id.close).setOnClickListener(v -> dismiss());
findViewById(R.id.share_copy).setOnClickListener(v -> copyLink()); findViewById(R.id.share_copy).setOnClickListener(v -> copyLink());
findViewById(R.id.share_title).setOnClickListener(v -> copyLink());
findViewById(R.id.share_preview).setVisibility(GONE); findViewById(R.id.share_preview).setVisibility(GONE);
findViewById(R.id.share_dialog).setBackgroundResource(R.mipmap.bg_dialog_inviet); findViewById(R.id.share_dialog).setBackgroundResource(R.mipmap.bg_dialog_inviet);
((TextView) findViewById(R.id.share_title)).setText(R.string.dialog_invite_title); title = findViewById(R.id.share_title);
((TextView) findViewById(R.id.share_title)).setTextColor(R.drawable.bg_invite_title); title.setOnClickListener(v -> copyLink());
title.setText(R.string.dialog_invite_reward_title);
list = findViewById(R.id.share_apps_list); list = findViewById(R.id.share_apps_list);
avatar = findViewById(R.id.share_avatar); avatar = findViewById(R.id.share_avatar);
info = findViewById(R.id.share_info); info = findViewById(R.id.share_info);
link = findViewById(R.id.share_link); link = findViewById(R.id.share_link);
adapter = new ShareAppAdapter(getContext()); adapter = new InviteRewardListAdapter(getContext());
list.setLayoutManager(new LinearLayoutManager(getContext(),RecyclerView.VERTICAL,false)); list.setLayoutManager(new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false));
list.setAdapter(adapter); list.setAdapter(adapter);
initData(); initData();
title.getViewTreeObserver().addOnGlobalLayoutListener(this::setTitleColor);
}
private void setTitleColor(){
int[] colors = {
Color.parseColor("#3377FF"),
Color.parseColor("#7F66FF"),
};
float[] position = {
0f,
1.0f
};
float height=title.getMeasuredHeight();
LinearGradient mLinearGradient = new LinearGradient(0, 0, 0, height, colors, position, Shader.TileMode.CLAMP);
title.getPaint().setShader(mLinearGradient);
title.invalidate();
} }
private void initData() { private void initData() {
data = new ArrayList<>(); data = new ArrayList<>();
data.add(builder(ShareBuilder.APP_FACEBOOK)); data.add(new InviteRewardBean("標題", "邀請時間", "用戶等級", "獲得獎勵"));
data.add(builder(ShareBuilder.APP_LINE)); for (int i = 0; i < 5; i++) {
data.add(builder(ShareBuilder.APP_TWITTER)); data.add(new InviteRewardBean("用戶" + 1, "時間" + 1, "等級" + 1, "獎勵" + 1));
data.add(builder(ShareBuilder.APP_WHATSAPP)); }
data.add(builder(ShareBuilder.APP_MESSENGER));
// data.add(builder(ShareBuilder.APP_INSTAGRAM));
adapter.setList(data); adapter.setList(data);
} }

View File

@ -2,7 +2,7 @@
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="wrap_content">
<View <View
android:id="@+id/divider" android:id="@+id/divider"
@ -29,6 +29,7 @@
android:id="@+id/item1" android:id="@+id/item1"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textStyle=""
android:layout_weight="1" android:layout_weight="1"
android:gravity="center" android:gravity="center"
android:text="TextView" /> android:text="TextView" />

View File

@ -27,6 +27,7 @@ import com.yunbao.common.Constants;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.event.JavascriptInterfaceEvent; import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.utils.AndroidBug5497Workaround; import com.yunbao.common.utils.AndroidBug5497Workaround;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils; import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfaceUtils; import com.yunbao.common.utils.JavascriptInterfaceUtils;
@ -63,6 +64,7 @@ public class WebViewActivity extends AbsActivity {
protected void main() { protected void main() {
String url = getIntent().getStringExtra(Constants.URL); String url = getIntent().getStringExtra(Constants.URL);
L.e("H5--->" + url); L.e("H5--->" + url);
Bus.getOn(this);
LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView); LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
mProgressBar = (ProgressBar) findViewById(R.id.progressbar); mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
btnEdit = (ImageView) findViewById(R.id.btn_edit); btnEdit = (ImageView) findViewById(R.id.btn_edit);
@ -254,6 +256,7 @@ public class WebViewActivity extends AbsActivity {
Constants.myIntoIndex = 0; Constants.myIntoIndex = 0;
indexInto = 0; indexInto = 0;
Constants.LoginKefu = true; Constants.LoginKefu = true;
Bus.getOff(this);
super.onDestroy(); super.onDestroy();
} }
@ -309,5 +312,16 @@ public class WebViewActivity extends AbsActivity {
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) { public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
indexInto = event.getIndexInto(); indexInto = event.getIndexInto();
if (event.getMethod().equals("androidInviteShare")) {
try {
Class<?> clz = mContext.getClassLoader().loadClass("com.yunbao.share.ui.InvitePopDialog");
Object invite = clz.getConstructor(Context.class).newInstance(mContext);
invite = invite.getClass().getMethod("setUrl", String.class).invoke(invite, event.getData());
assert invite != null;
invite.getClass().getMethod("showDialog").invoke(invite);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
} }
} }

View File

@ -0,0 +1,16 @@
package com.yunbao.common.bean;
public class UserAreaBean extends BaseModel {
private String area;
public UserAreaBean() {
}
public String getArea() {
return area;
}
public void setArea(String area) {
this.area = area;
}
}

View File

@ -37,6 +37,7 @@ import com.yunbao.common.bean.SearchModel;
import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.bean.SlideInBannerModel; import com.yunbao.common.bean.SlideInBannerModel;
import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.StarChallengeStatusModel;
import com.yunbao.common.bean.UserAreaBean;
import com.yunbao.common.bean.VipModel; import com.yunbao.common.bean.VipModel;
import com.yunbao.common.bean.WishListGiftConfModel; import com.yunbao.common.bean.WishListGiftConfModel;
import com.yunbao.common.bean.WishListModel; import com.yunbao.common.bean.WishListModel;
@ -679,4 +680,10 @@ public interface PDLiveApi {
Observable<ResponseModel<List<DiscountsModel>>> getDiscountInfo( Observable<ResponseModel<List<DiscountsModel>>> getDiscountInfo(
@Query("type") int type @Query("type") int type
); );
/**
* 获取地区
*/
@GET("/api/public/?service=User.getUserArea")
Observable<ResponseModel<UserAreaBean>> getUserArea();
} }

View File

@ -34,6 +34,7 @@ import com.yunbao.common.bean.RandomPkUserBean;
import com.yunbao.common.bean.RankPkInfoBean; import com.yunbao.common.bean.RankPkInfoBean;
import com.yunbao.common.bean.SetAttentsModel; import com.yunbao.common.bean.SetAttentsModel;
import com.yunbao.common.bean.StarChallengeStatusModel; import com.yunbao.common.bean.StarChallengeStatusModel;
import com.yunbao.common.bean.UserAreaBean;
import com.yunbao.common.bean.VipModel; import com.yunbao.common.bean.VipModel;
import com.yunbao.common.bean.WishListGiftConfModel; import com.yunbao.common.bean.WishListGiftConfModel;
import com.yunbao.common.bean.WishListModel; import com.yunbao.common.bean.WishListModel;
@ -1379,6 +1380,27 @@ public class LiveNetManager {
} }
}).isDisposed(); }).isDisposed();
} }
public void getUserArea(HttpCallback<UserAreaBean> callback) {
API.get().pdLiveApi(mContext)
.getUserArea()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<ResponseModel<UserAreaBean>>() {
@Override
public void accept(ResponseModel<UserAreaBean> wishListGiftConfModelResponseModel) throws Exception {
if (callback != null) {
callback.onSuccess(wishListGiftConfModelResponseModel.getData().getInfo());
}
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
if (callback != null) {
callback.onError(throwable.getMessage());
}
}
}).isDisposed();
}
/** /**
* 直播间取消网络请求 * 直播间取消网络请求

View File

@ -497,6 +497,12 @@ public class JavascriptInterfaceUtils {
mWebView.setVisibility(View.VISIBLE); mWebView.setVisibility(View.VISIBLE);
}); });
} }
/**
* 社区分享
* @param avatar 头像
* @param link 分享连接
*/
@JavascriptInterface @JavascriptInterface
public void androidCommunityShare(String avatar,String link){ public void androidCommunityShare(String avatar,String link){
JSONObject json=new JSONObject(); JSONObject json=new JSONObject();
@ -506,4 +512,10 @@ public class JavascriptInterfaceUtils {
.setMethod("androidCommunityShare") .setMethod("androidCommunityShare")
.setData(json.toJSONString())); .setData(json.toJSONString()));
} }
@JavascriptInterface
public void androidInviteShare(String url){
Bus.get().post(new JavascriptInterfaceEvent()
.setMethod("androidInviteShare")
.setData(url));
}
} }

View File

@ -177,6 +177,7 @@ public class LiveAnchorEditCallMeAdapter extends RecyclerView.Adapter<LiveAnchor
} }
}) })
.setShowNumber(false) .setShowNumber(false)
.setOldGiftList(true)
.setTitle(WordUtil.getString(R.string.live_anchor_edit_call_me_select_gift)) .setTitle(WordUtil.getString(R.string.live_anchor_edit_call_me_select_gift))
.showDialog() .showDialog()
; ;

View File

@ -54,6 +54,11 @@ public class LiveGiftAdapter extends RecyclerView.Adapter<LiveGiftAdapter.Vh> {
private ScaleAnimation mAnimation; private ScaleAnimation mAnimation;
private View mAnimView; private View mAnimView;
private String mName1, mName2; private String mName1, mName2;
boolean isTouch=true;
public void setTouch(boolean touch) {
isTouch = touch;
}
public LiveGiftAdapter(Context context, LayoutInflater inflater, List<LiveGiftBean> list, String coinName) { public LiveGiftAdapter(Context context, LayoutInflater inflater, List<LiveGiftBean> list, String coinName) {
mContext = context; mContext = context;
@ -65,6 +70,9 @@ public class LiveGiftAdapter extends RecyclerView.Adapter<LiveGiftAdapter.Vh> {
mOnClickListener = new View.OnClickListener() { mOnClickListener = new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if(!isTouch){
return;
}
Object tag = v.getTag(); Object tag = v.getTag();
if (tag != null) { if (tag != null) {
int position = (int) tag; int position = (int) tag;

View File

@ -7,6 +7,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -83,6 +84,7 @@ public class LiveGiftPagerAdapter extends PagerAdapter {
/** /**
* 刷新指定礼物id的item 界面 * 刷新指定礼物id的item 界面
*
* @param giftId * @param giftId
*/ */
public void refreshId(int giftId) { public void refreshId(int giftId) {
@ -90,7 +92,7 @@ public class LiveGiftPagerAdapter extends PagerAdapter {
RecyclerView.Adapter<?> adapter = recyclerView.getAdapter(); RecyclerView.Adapter<?> adapter = recyclerView.getAdapter();
if (adapter instanceof LiveGiftAdapter) { if (adapter instanceof LiveGiftAdapter) {
for (int i = 0; i < ((LiveGiftAdapter) adapter).getList().size(); i++) { for (int i = 0; i < ((LiveGiftAdapter) adapter).getList().size(); i++) {
if(((LiveGiftAdapter) adapter).getList().get(i).getId()==giftId){ if (((LiveGiftAdapter) adapter).getList().get(i).getId() == giftId) {
adapter.notifyItemChanged(i); adapter.notifyItemChanged(i);
return; return;
} }
@ -157,6 +159,23 @@ public class LiveGiftPagerAdapter extends PagerAdapter {
} }
} }
/**
* 禁止用户点击更换礼物
*/
public void disTouch(int giftId) {
for (RecyclerView recyclerView : mViewList) {
RecyclerView.Adapter<?> adapter = recyclerView.getAdapter();
if (adapter instanceof LiveGiftAdapter) {
for (int i = 0; i < ((LiveGiftAdapter) adapter).getList().size(); i++) {
if (((LiveGiftAdapter) adapter).getList().get(i).getId() == giftId) {
((LiveGiftAdapter) adapter).setTouch(false);
return;
}
}
}
}
}
public interface ActionListener { public interface ActionListener {
void onItemChecked(LiveGiftBean bean); void onItemChecked(LiveGiftBean bean);
} }

View File

@ -0,0 +1,40 @@
package com.yunbao.live.custom;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.viewpager.widget.ViewPager;
public class GiftViewPager extends ViewPager {
boolean isTouch=true;
public GiftViewPager(@NonNull Context context) {
super(context);
}
public GiftViewPager(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public void setTouch(boolean touch) {
isTouch = touch;
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
if(!isTouch){
return false;
}
return super.onTouchEvent(ev);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if(!isTouch){
return false;
}
return super.onInterceptTouchEvent(ev);
}
}

View File

@ -65,6 +65,7 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
private View numberView; private View numberView;
private String title; private String title;
private TextView mTitle; private TextView mTitle;
private boolean isOldGiftList = false;
public GiftPopDialog(@NonNull Context context) { public GiftPopDialog(@NonNull Context context) {
@ -159,7 +160,33 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
return this; return this;
} }
public GiftPopDialog setOldGiftList(boolean oldGiftList) {
isOldGiftList = oldGiftList;
return this;
}
private void initDate() { private void initDate() {
if (isOldGiftList) {
LiveHttpUtil.getGiftList(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
obj.put("listarray", obj.getJSONArray("giftlist"));
JSONArray list = obj.getJSONArray("listarray");
setDate(list);
}
}
@Override
public void onFinish() {
if (mLoading != null) {
mLoading.setVisibility(View.INVISIBLE);
}
}
});
} else {
LiveHttpUtil.getNewGiftList(new HttpCallback() { LiveHttpUtil.getNewGiftList(new HttpCallback() {
@Override @Override
public void onSuccess(int code, String msg, String[] info) { public void onSuccess(int code, String msg, String[] info) {
@ -179,6 +206,7 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
} }
}); });
} }
}
private void setDate(JSONArray list) { private void setDate(JSONArray list) {
List<GiftTopBean> name = new ArrayList<>(); List<GiftTopBean> name = new ArrayList<>();
@ -190,7 +218,10 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
} }
giftTopAdapter.setList(name); giftTopAdapter.setList(name);
if(isOldGiftList){
showGiftList(JSON.parseArray(list.toJSONString(), LiveGiftBean.class));
return;
}
JSONObject obj2 = list.getJSONObject(type); JSONObject obj2 = list.getJSONObject(type);
String giftJson = obj2.getString("giftlist"); String giftJson = obj2.getString("giftlist");
@ -198,7 +229,6 @@ public class GiftPopDialog extends AbsDialogPopupWindow implements ActionListene
} }
private void showGiftList(List<LiveGiftBean> list) { private void showGiftList(List<LiveGiftBean> list) {
mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list); mLiveGiftPagerAdapter = new LiveGiftPagerAdapter(mContext, list);
mLiveGiftPagerAdapter.setActionListener(this); mLiveGiftPagerAdapter.setActionListener(this);

View File

@ -26,16 +26,11 @@ import android.widget.RadioButton;
import android.widget.RadioGroup; import android.widget.RadioGroup;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.alibaba.android.arouter.launcher.ARouter; import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
@ -54,6 +49,7 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil; import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.GiftCacheUtil; import com.yunbao.common.utils.GiftCacheUtil;
import com.yunbao.common.utils.NobleUtil; import com.yunbao.common.utils.NobleUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.R; import com.yunbao.live.R;
import com.yunbao.live.activity.LiveActivity; import com.yunbao.live.activity.LiveActivity;
@ -62,6 +58,7 @@ import com.yunbao.live.adapter.LiveGiftCountAdapter;
import com.yunbao.live.adapter.LiveGiftPagerAdapter; import com.yunbao.live.adapter.LiveGiftPagerAdapter;
import com.yunbao.live.bean.GiftTopBean; import com.yunbao.live.bean.GiftTopBean;
import com.yunbao.live.bean.LiveGuardInfo; import com.yunbao.live.bean.LiveGuardInfo;
import com.yunbao.live.custom.GiftViewPager;
import com.yunbao.live.http.LiveHttpConsts; import com.yunbao.live.http.LiveHttpConsts;
import com.yunbao.live.http.LiveHttpUtil; import com.yunbao.live.http.LiveHttpUtil;
import com.yunbao.live.utils.ToolsButton; import com.yunbao.live.utils.ToolsButton;
@ -84,8 +81,8 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
private TextView mCoin; private TextView mCoin;
private TextView mTvGoldCoin; private TextView mTvGoldCoin;
private TextView mTvGoCharge; private TextView mTvGoCharge;
private GiftViewPager mViewPager;
private ViewPager mViewPager, mVPWrapList; private ViewPager mVPWrapList;
private RadioGroup mRadioGroup, mRGroupWrap; private RadioGroup mRadioGroup, mRGroupWrap;
private View mLoading; private View mLoading;
private View mArrow; private View mArrow;
@ -199,7 +196,7 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
mLianText = (TextView) mRootView.findViewById(R.id.lian_text); mLianText = (TextView) mRootView.findViewById(R.id.lian_text);
mDrawable1 = ContextCompat.getDrawable(mContext, R.drawable.bg_live_gift_send); mDrawable1 = ContextCompat.getDrawable(mContext, R.drawable.bg_live_gift_send);
mDrawable2 = ContextCompat.getDrawable(mContext, R.drawable.bg_live_gift_send_2); mDrawable2 = ContextCompat.getDrawable(mContext, R.drawable.bg_live_gift_send_2);
mViewPager = (ViewPager) mRootView.findViewById(R.id.viewPager); mViewPager = (GiftViewPager) mRootView.findViewById(R.id.viewPager);
mVPWrapList = (ViewPager) mRootView.findViewById(R.id.vpWrapList); mVPWrapList = (ViewPager) mRootView.findViewById(R.id.vpWrapList);
final LinearLayoutManager manager = new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false); final LinearLayoutManager manager = new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false);
items.setLayoutManager(manager); items.setLayoutManager(manager);
@ -303,6 +300,10 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
mWishGiftId = bundle.getString(Constants.LIVE_WISH_GIFTID); mWishGiftId = bundle.getString(Constants.LIVE_WISH_GIFTID);
by = bundle.getString("by"); by = bundle.getString("by");
isContactGift = bundle.getBoolean("isContactGift", false) ? 1 : 0; isContactGift = bundle.getBoolean("isContactGift", false) ? 1 : 0;
if (isContactGift == 1) {
mViewPager.setTouch(false);
findViewById(R.id.gift_tab_layout).setVisibility(View.GONE);
}
} }
loadGiftListData(); loadGiftListData();
loadUserVip(); loadUserVip();
@ -339,7 +340,7 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
//根据变量判断是否取缓存 //根据变量判断是否取缓存
if (isGetNewWrap) { if (isGetNewWrap) {
isGetNewWrap = false; isGetNewWrap = false;
} else { } else if (isContactGift == 0) {
String giftListJson = CommonAppConfig.getInstance().getGiftListJson(); String giftListJson = CommonAppConfig.getInstance().getGiftListJson();
if (!TextUtils.isEmpty(giftListJson)) { if (!TextUtils.isEmpty(giftListJson)) {
try { try {
@ -351,6 +352,32 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
} }
} }
if (list == null) { if (list == null) {
if (isContactGift == 1) {
LiveHttpUtil.getGiftList(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
JSONObject obj = JSON.parseObject(info[0]);
obj.put("listarray", obj.getJSONArray("giftlist"));
list = obj.getJSONArray("listarray");
Log.i("tttts", obj.getString("giftlist") + "");
List<LiveGiftBean> _list = JSON.parseArray(obj.getJSONArray("giftlist").toJSONString(), LiveGiftBean.class);
showGiftList(_list);
mGiftPackage.setTextColor(Color.parseColor("#FFFFFF"));
mCoin.setText(obj.getString("coin"));
mTvGoldCoin.setText(obj.getString("gold"));
Bus.getOn(LiveGiftDialogFragment.this);
}
}
@Override
public void onFinish() {
if (mLoading != null) {
mLoading.setVisibility(View.INVISIBLE);
}
}
});
} else {
LiveHttpUtil.getNewGiftList(new HttpCallback() { LiveHttpUtil.getNewGiftList(new HttpCallback() {
@Override @Override
public void onSuccess(int code, String msg, String[] info) { public void onSuccess(int code, String msg, String[] info) {
@ -374,6 +401,7 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
} }
} }
}); });
}
} else { } else {
mLoading.setVisibility(View.INVISIBLE); mLoading.setVisibility(View.INVISIBLE);
upData(); upData();
@ -467,7 +495,10 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
mBeanFromWish = bean; mBeanFromWish = bean;
bean.setChecked(true); bean.setChecked(true);
itemCheckOp(bean); itemCheckOp(bean);
mViewPager.setCurrentItem(i / 10); mViewPager.setCurrentItem(i / 8);
if (isContactGift == 1) {
mLiveGiftPagerAdapter.disTouch(bean.getId());
}
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -689,6 +720,9 @@ public class LiveGiftDialogFragment extends AbsDialogFragment implements View.On
} }
} }
SendGiftCallback callback = new SendGiftCallback(mLiveGiftBean); SendGiftCallback callback = new SendGiftCallback(mLiveGiftBean);
if (!StringUtil.isEmpty(mWishGiftId) && mLiveGiftBean.getId() != Integer.parseInt(mWishGiftId)) {
isContactGift = 0;
}
if (by != null) { if (by != null) {
LiveHttpUtil.sendGift("1", mLiveUid, mStream, mLiveGiftBean.getId(), mCount, isContactGift, callback); LiveHttpUtil.sendGift("1", mLiveUid, mStream, mLiveGiftBean.getId(), mCount, isContactGift, callback);
} else { } else {

View File

@ -135,7 +135,7 @@
android:gravity="bottom" android:gravity="bottom"
android:orientation="vertical"> android:orientation="vertical">
<androidx.viewpager.widget.ViewPager <com.yunbao.live.custom.GiftViewPager
android:id="@+id/viewPager" android:id="@+id/viewPager"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"

View File

@ -9,7 +9,7 @@
android:id="@+id/bg_top" android:id="@+id/bg_top"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:scaleType="fitEnd" android:scaleType="fitStart"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@ -19,8 +19,8 @@
android:id="@+id/textView10" android:id="@+id/textView10"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="85dp" android:layout_marginStart="62dp"
android:layout_marginTop="45dp" android:layout_marginTop="8dp"
android:text="@string/dialog_live_mailbox_title" android:text="@string/dialog_live_mailbox_title"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="14sp" android:textSize="14sp"

View File

@ -9,7 +9,7 @@
android:id="@+id/bg_top" android:id="@+id/bg_top"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:scaleType="fitEnd" android:scaleType="fitStart"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
@ -19,9 +19,9 @@
android:id="@+id/title" android:id="@+id/title"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="85dp" android:layout_marginStart="62dp"
android:layout_marginTop="50dp" android:layout_marginTop="8dp"
android:text="信件欄" android:text="@string/dialog_live_mailbox_title"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="14sp" android:textSize="14sp"
android:textStyle="bold" android:textStyle="bold"

View File

@ -3,18 +3,9 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:background="@mipmap/bg_live_user_mailbox"
android:layout_height="235dp">
<ImageView
android:id="@+id/bg"
android:layout_width="wrap_content"
android:layout_height="235dp"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/bg_live_user_mailbox" />
<TextView <TextView
android:id="@+id/top_text" android:id="@+id/top_text"
@ -65,7 +56,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="40dp" android:layout_marginStart="40dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="24dp"
android:gravity="start" android:gravity="start"
android:textColor="#FFFFFF" android:textColor="#FFFFFF"
android:textSize="14sp" android:textSize="14sp"
@ -78,15 +69,15 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="32dp" android:layout_marginEnd="32dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="24dp"
android:background="@drawable/bg_item_live_user_mailbox_info_text" android:background="@drawable/bg_item_live_user_mailbox_info_text"
android:paddingStart="10dp" android:paddingStart="10dp"
android:paddingTop="4dp" android:paddingTop="4dp"
android:paddingEnd="10dp" android:paddingEnd="10dp"
android:paddingBottom="4dp" android:paddingBottom="4dp"
android:text="@string/live_user_mailbox_more_text"
android:textColor="#3399FF" android:textColor="#3399FF"
android:textSize="10sp" android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent" />
android:text="@string/live_user_mailbox_more_text" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View File

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -14,7 +14,6 @@ import android.util.Log;
import android.view.View; import android.view.View;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.EditText; import android.widget.EditText;
import android.widget.Toast;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
@ -36,12 +35,14 @@ import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.IMLoginModel; import com.yunbao.common.bean.IMLoginModel;
import com.yunbao.common.bean.LiveBean; import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.LoginData; import com.yunbao.common.bean.LoginData;
import com.yunbao.common.bean.UserAreaBean;
import com.yunbao.common.bean.UserBean; import com.yunbao.common.bean.UserBean;
import com.yunbao.common.http.CommonHttpConsts; import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.HttpClient; import com.yunbao.common.http.HttpClient;
import com.yunbao.common.http.JsonBean; import com.yunbao.common.http.JsonBean;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.CommonCallback; import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.NoviceInstructorManager; import com.yunbao.common.manager.NoviceInstructorManager;
@ -100,6 +101,7 @@ public class LoginActivity extends AbsActivity {
@Override @Override
protected void main() { protected void main() {
EventBus.getDefault().register(this); EventBus.getDefault().register(this);
initUserArea();
mRoot = findViewById(R.id.root); mRoot = findViewById(R.id.root);
Contexts = this; Contexts = this;
activity = this; activity = this;
@ -364,6 +366,19 @@ public class LoginActivity extends AbsActivity {
mUuidDevice = DeviceUtils.getUniqueDeviceId(); mUuidDevice = DeviceUtils.getUniqueDeviceId();
} }
private void initUserArea(){
LiveNetManager.get(mContext).getUserArea(new com.yunbao.common.http.base.HttpCallback<UserAreaBean>() {
@Override
public void onSuccess(UserAreaBean data) {
IMLoginManager.get(mContext).put("sys_user_area",data.getArea());
}
@Override
public void onError(String error) {
}
});
}
@Override @Override
protected void onDestroy() { protected void onDestroy() {

View File

@ -192,7 +192,9 @@ public class RegisterActivity extends AbsActivity {
allCountries.clear(); allCountries.clear();
allCountries.addAll(Country.getAll(mContext, null)); allCountries.addAll(Country.getAll(mContext, null));
String ct = Locale.getDefault().getCountry(); //String ct = Locale.getDefault().getCountry();
String ct = IMLoginManager.get(mContext).getString("sys_user_area");
ToastUtil.show("地区:"+ct);
ct = TextUtils.equals("CN", ct) ? "HK" : ct; ct = TextUtils.equals("CN", ct) ? "HK" : ct;
for (int i = 0; i < allCountries.size(); i++) { for (int i = 0; i < allCountries.size(); i++) {
if (allCountries.get(i).locale.equals(ct)) { if (allCountries.get(i).locale.equals(ct)) {