Merge branch 'master' into pdlive_samsung

# Conflicts:
#	config.gradle
#	live/src/main/java/com/yunbao/live/views/SystemMessageViewHolder.java
This commit is contained in:
hch
2024-01-18 14:56:27 +08:00
294 changed files with 11538 additions and 1647 deletions

View File

@@ -158,6 +158,7 @@
android:screenOrientation="portrait" />
<activity android:name=".activity.UserAvatarSelectActivity"
android:screenOrientation="portrait" />
<activity android:name=".activity.BattlePassActivity" />
</application>
</manifest>

View File

@@ -0,0 +1,257 @@
package com.yunbao.main.activity;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.bean.BattlePassUserInfoBean;
import com.yunbao.common.bean.LiveBattlePassRewardsBean;
import com.yunbao.common.dialog.ActivateEliteBattleOrderPopupWindow;
import com.yunbao.common.dialog.ActivityEndPopupWindow;
import com.yunbao.common.dialog.LiberalBattlePassPopupWindow;
import com.yunbao.common.dialog.PromotionElitePopupWindow;
import com.yunbao.common.dialog.RuleOfWarPopupWindow;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R;
import com.yunbao.main.event.BattlePassTypeEvent;
import com.yunbao.main.fragment.BattlePassExchangeFragment;
import com.yunbao.main.fragment.BattlePassMissionFragment;
import com.yunbao.main.fragment.BattlePassRewardFragment;
import com.yunbao.main.interfaces.BattlePassUserInfoListener;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
/**
* 战令
*/
@Route(path = RouteUtil.PATH_BattlePassActivity)
public class BattlePassActivity extends AbsActivity {
ImageView rule, tab1, tab2, tab3;
ViewPager2 viewPager;
List<BaseFragment> fragments;
TextView sessionView;
TextView timeView;
TextView levelView;
TextView expText;
ProgressBar levelProgressView;
TextView integralView;
Button moreIntegralButton;
String enjoySpendMoney = "";
String quintessenceSpendMoney = "";
BattlePassUserInfoBean data;
@Override
protected int getLayoutId() {
return R.layout.activity_battlepass;
}
@Override
protected void main(Bundle savedInstanceState) {
super.main(savedInstanceState);
Bus.getOn(this);
initView();
initData();
}
@Override
protected void onDestroy() {
super.onDestroy();
Bus.getOff(this);
}
private void initView() {
fragments = new ArrayList<>();
rule = findViewById(R.id.rule);
tab1 = findViewById(R.id.tab_1);
tab2 = findViewById(R.id.tab_2);
tab3 = findViewById(R.id.tab_3);
expText = findViewById(R.id.exp_text);
viewPager = findViewById(R.id.context_layout);
fragments.add(new BattlePassRewardFragment(() -> data));
fragments.add(new BattlePassMissionFragment(() -> data));
fragments.add(new BattlePassExchangeFragment(() -> data));
viewPager.setAdapter(new FragmentStateAdapter(this) {
@NonNull
@Override
public Fragment createFragment(int position) {
return fragments.get(position);
}
@Override
public int getItemCount() {
return fragments.size();
}
});
viewPager.setUserInputEnabled(false);
ViewClicksAntiShake.clicksAntiShake(tab1, () -> clickView(0));
ViewClicksAntiShake.clicksAntiShake(tab2, () -> clickView(1));
ViewClicksAntiShake.clicksAntiShake(tab3, () -> clickView(2));
sessionView = findViewById(R.id.session);
timeView = findViewById(R.id.time);
levelView = findViewById(R.id.level);
levelProgressView = findViewById(R.id.level_progress);
integralView = findViewById(R.id.integral);
moreIntegralButton = findViewById(R.id.more_integral);
ViewClicksAntiShake.clicksAntiShake(moreIntegralButton, () -> {
new XPopup.Builder(mContext)
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight(mContext) - DpUtil.dp2px(34))
.asCustom(new PromotionElitePopupWindow(mContext,
enjoySpendMoney,
quintessenceSpendMoney,
new LiberalBattlePassPopupWindow.LiberalBattlePassCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 1001) {
new DialogUitl.Builder(mContext)
.setView(com.yunbao.live.R.layout.dialog_live_unfollow)
.setConfirmString(getString(com.yunbao.live.R.string.charge))
.setContent(getString(com.yunbao.live.R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
return;
}
ToastUtil.show(msg);
initData();
}
},
String.valueOf(data.getLive_battle_pass_type().get(1).getId()),
String.valueOf(data.getLive_battle_pass_type().get(2).getId())
).setUserData(data)
)
.show();
});
ViewClicksAntiShake.clicksAntiShake(rule, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
new XPopup.Builder(BattlePassActivity.this)
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight(BattlePassActivity.this) - DpUtil.dp2px(34))
.asCustom(new RuleOfWarPopupWindow(
BattlePassActivity.this
))
.show();
}
});
}
private void clickView(int position) {
switch (position) {
case 0:
tab1.setImageResource(R.mipmap.ic_zl_tab1);
tab2.setImageResource(R.mipmap.ic_zl_tab2_unselect);
tab3.setImageResource(R.mipmap.ic_zl_tab3_unselect);
break;
case 1:
tab1.setImageResource(R.mipmap.ic_zl_tab1_unselect);
tab2.setImageResource(R.mipmap.ic_zl_tab2);
tab3.setImageResource(R.mipmap.ic_zl_tab3_unselect);
break;
case 2:
tab1.setImageResource(R.mipmap.ic_zl_tab1_unselect);
tab2.setImageResource(R.mipmap.ic_zl_tab2_unselect);
tab3.setImageResource(R.mipmap.ic_zl_tab3);
break;
}
viewPager.setCurrentItem(position, false);
}
@SuppressLint("SetTextI18n")
private void initData() {
LiveNetManager.get(mContext)
.getBattlePassUserInfo(new HttpCallback<BattlePassUserInfoBean>() {
@Override
public void onSuccess(BattlePassUserInfoBean data) {
BattlePassActivity.this.data = data;
sessionView.setText(data.getBattlePassName());
timeView.setText(String.format("%s %s - %s",
WordUtil.getNewString(R.string.battlepass_user_time),
data.getStartTime(),
data.getEndTime()
));
levelView.setText("Lv." + data.getLevel());
expText.setText(data.getBattlePassExp() + "/" +
(data.getNextLevelExp() == 0 ? data.getBattlePassExp() : data.getNextLevelExp()));
levelProgressView.setMax(data.getNextLevelExp());
levelProgressView.setMin(data.getLastLevelExp());
levelProgressView.setProgress(data.getBattlePassExp());
integralView.setText(String.format(WordUtil.getNewString(R.string.battlepass_user_my_integral), data.getPoints()));
for (LiveBattlePassRewardsBean.BattlePassType passType : data.getLive_battle_pass_type()) {
if (passType.getId() == 2) {
quintessenceSpendMoney = String.valueOf(passType.getDiamond_value());
}
if (passType.getId() == 3) {
enjoySpendMoney = String.valueOf(passType.getDiamond_value());
}
}
if (!data.isBattlePassStatus() && !SpUtil.getInstance().getBooleanValue("is_battle_pass_status")) {
SpUtil.getInstance().setBooleanValue("is_battle_pass_status", true);//ActivityEndPopupWindow
new XPopup.Builder(BattlePassActivity.this)
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight(BattlePassActivity.this) - DpUtil.dp2px(34))
.asCustom(new ActivityEndPopupWindow(
BattlePassActivity.this
))
.show();
}
if (data.isBattlePassStatus()) {
SpUtil.getInstance().removeValue("is_battle_pass_status");
}
fragments.get(viewPager.getCurrentItem()).updateData();
}
@Override
public void onError(String error) {
}
});
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void event(BattlePassTypeEvent event) {
if (event.getType() == 0) {
initData();
}
}
}

View File

@@ -8,6 +8,7 @@ import android.os.Build;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.ValueCallback;
@@ -234,12 +235,25 @@ public class CustomerServiceWebViewActivity extends AbsActivity {
}
protected boolean canGoBack() {
return mWebView != null && mWebView.canGoBack();
// return mWebView != null && mWebView.canGoBack();
ToastUtil.showDebug("2调用js userBackShowPraise");
mWebView.loadUrl("javascript:userBackShowPraise()");
return false;
}
@Override
public void onBackPressed() {
// finish();
ToastUtil.showDebug("调用js userBackShowPraise");
mWebView.loadUrl("javascript:userBackShowPraise()");
}
@Override
public void onBackPressed() {
finish();
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_ESCAPE || keyCode==KeyEvent.KEYCODE_BACK){
onBackPressed();
return false;
}
return super.onKeyDown(keyCode, event);
}
@Override

View File

@@ -389,7 +389,8 @@ public class EntryActivity extends AppCompatActivity {
public void onClick(View v) {
if (!"".equals(kefuUrl)) {
Constants.LoginKefu = true;
WebViewActivity.forward(EntryActivity.this, kefuUrl, false);
// WebViewActivity.forward(EntryActivity.this, kefuUrl, false);
RouteUtil.forwardCustomerService(kefuUrl);
}
}
});

View File

@@ -74,6 +74,7 @@ import com.yunbao.common.event.MainHomeCommunityToChatEvent;
import com.yunbao.common.event.MessageIMEvent;
import com.yunbao.common.event.NoviceInstructorEvent;
import com.yunbao.common.event.RongIMConnectionStatusEvent;
import com.yunbao.common.event.SudGameUserEvent;
import com.yunbao.common.event.UpdateTablePointMe;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
@@ -103,7 +104,9 @@ import com.yunbao.common.views.APKUpdateCustomPopup;
import com.yunbao.common.views.AbsMainViewHolder;
import com.yunbao.common.views.floatingview.APPEasyFloat;
import com.yunbao.common.views.weight.LiveFloatView;
import com.yunbao.live.activity.LiveActivity;
import com.yunbao.live.activity.LiveAudienceActivity;
import com.yunbao.live.dialog.LiveUserDialogFragment;
import com.yunbao.live.utils.LiveStorge;
import com.yunbao.main.R;
import com.yunbao.main.adapter.FullAdToBannerTransition;
@@ -189,6 +192,8 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
private boolean isfloatBannernet = true, isFirst = true;
private View floatRedPacket;
private View floatWarOrder;
private List<AnchorStartLiveBean> startListNotifyList = new ArrayList<>();
@@ -244,7 +249,9 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
v_table_redpoint = findViewById(R.id.v_table_redpoint);
v_table_redpoint_me = (View) findViewById(R.id.v_table_redpoint_me);
floatRedPacket = findViewById(R.id.red_packet);
floatWarOrder = findViewById(R.id.war_order);
initRedPacket();
initWarOrder();
Display mDisplay = getWindowManager().getDefaultDisplay();
Height = mDisplay.getHeight();
@@ -329,15 +336,27 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
case 0:
//点击埋点
MobclickAgent.onEvent(mContext, "home_page", "首页");
if (mMainHomeCommunityViewHolder != null) {
mMainHomeCommunityViewHolder.onPauseVideo();
}
break;
case 1:
MobclickAgent.onEvent(mContext, "community", "社区");
if (mMainHomeCommunityViewHolder != null) {
mMainHomeCommunityViewHolder.onResumePlay();
}
break;
case 2:
MobclickAgent.onEvent(mContext, "information", "消息");
if (mMainHomeCommunityViewHolder != null) {
mMainHomeCommunityViewHolder.onPauseVideo();
}
break;
case 3:
MobclickAgent.onEvent(mContext, "my", "我的");
if (mMainHomeCommunityViewHolder != null) {
mMainHomeCommunityViewHolder.onPauseVideo();
}
break;
}
if (mTabButtonGroup.getCurPosition() != position) {
@@ -501,22 +520,37 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
} else if (index == 2) {
floatBanner.setVisibility(View.GONE);
floatRedPacket.setVisibility(View.GONE);
floatWarOrder.setVisibility(View.GONE);
findViewById(R.id.banner_click).setVisibility(View.GONE);
isfloatBannernet = false;
if (mainMessageViewHolder != null) mainMessageViewHolder.onResume();
} else {
floatBanner.setVisibility(View.GONE);
floatRedPacket.setVisibility(View.GONE);
floatWarOrder.setVisibility(View.GONE);
findViewById(R.id.banner_click).setVisibility(View.GONE);
isfloatBannernet = false;
}
mViewHolders[index].onResume();
});
//获取指导员账号
ConversationIMListManager.get(this).getUserInstructor(this);
checkVersion();
}
/**
* 展示战令
*/
private void initWarOrder() {
if (floatWarOrder != null) {
floatWarOrder.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RouteUtil.forwardBattlePass();
}
});
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
@@ -583,6 +617,11 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
@Override
public void onSuccess(AnchorRecommendModel data) {
if (isFinishing()) return;
if (data.getShowWarOrder() == 0) {
floatWarOrder.setVisibility(View.GONE);
} else {
floatWarOrder.setVisibility(View.VISIBLE);
}
if (data.getListShow() == 1 && data.getList().size() > 2) {
floatBanner.setVisibility(View.VISIBLE);
findViewById(R.id.banner_click).setVisibility(View.VISIBLE);
@@ -599,8 +638,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
((ProgressBar) floatRedPacket.findViewById(R.id.progress)).setProgress(data.getRedPacketNum());
((TextView) floatRedPacket.findViewById(R.id.progressText)).setText(data.getRedPacketNum() + "/" + data.getRedPacketTotal());
}
}
@Override
@@ -1163,9 +1200,6 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void processResultAndroid5(int resultCode, Intent intent) {
if (null == mMainHomeCommunityViewHolder.mValueCallback2) {
return;
}
if (resultCode == RESULT_OK && intent != null) {
String dataString = intent.getDataString();
ClipData clipData = intent.getClipData();
@@ -1180,11 +1214,10 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
if (dataString != null) {
results = new Uri[]{Uri.parse(dataString)};
}
mMainHomeCommunityViewHolder.mValueCallback2.onReceiveValue(results);
mMainHomeCommunityViewHolder.setValueCallback2(results);
} else {
mMainHomeCommunityViewHolder.mValueCallback2.onReceiveValue(null);
mMainHomeCommunityViewHolder.setValueCallback2(null);
}
mMainHomeCommunityViewHolder.mValueCallback2 = null;
}
public void isClose(String isClose) {
@@ -1427,6 +1460,11 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
findViewById(R.id.banner_click).setVisibility(View.VISIBLE);
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onSudGameUserEvent(SudGameUserEvent event) {
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onLiveFloatEvent(LiveFloatEvent event) {
if (event != null && event.getmLiveBean() != null && !TextUtils.isEmpty(event.getmLiveBean().getPull())) {
@@ -1445,5 +1483,8 @@ public class MainActivity extends AbsActivity implements MainAppBarLayoutListene
MobclickAgent.onEvent(mContext, "home_page_to_redpk", "首页点击右下角去红包专区");
mainHomeViewHolder.setCurPosition(3);
});
}
}

View File

@@ -0,0 +1,151 @@
package com.yunbao.main.adapter;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
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.bean.BattlePassPoints;
import com.yunbao.common.dialog.WarOrderExchangeDetailsPopupWindow;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R;
import java.util.ArrayList;
import java.util.List;
public class BattlePassExchangeAdapter extends RecyclerView.Adapter<BattlePassExchangeAdapter.VH> {
private Context mContext;
List<BattlePassPoints> mList = new ArrayList<>();
int point;
OnItemClickListener<BattlePassPoints> onItemClickListener;
public BattlePassExchangeAdapter(Context mContext) {
this.mContext = mContext;
}
public void setPoint(int point) {
this.point = point;
}
public void setList(List<BattlePassPoints> mList) {
this.mList = mList;
}
public void setOnItemClickListener(OnItemClickListener<BattlePassPoints> onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
@NonNull
@Override
public BattlePassExchangeAdapter.VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new BattlePassExchangeAdapter.VH(LayoutInflater.from(mContext).inflate(R.layout.item_battlepass_exchange, parent, false));
}
@Override
public void onBindViewHolder(@NonNull BattlePassExchangeAdapter.VH holder, int position) {
holder.setData(mList.get(position));
}
@Override
public int getItemCount() {
return mList.size();
}
public class VH extends RecyclerView.ViewHolder {
private ImageView icon;
private ImageView indicator;
private TextView title;
private TextView content;
private Button submit;
private View mark;
private TextView markText;
public VH(@NonNull View itemView) {
super(itemView);
icon = itemView.findViewById(R.id.tab_1);
title = itemView.findViewById(R.id.title);
content = itemView.findViewById(R.id.content);
submit = itemView.findViewById(R.id.submit);
indicator = itemView.findViewById(R.id.indicator);
mark = itemView.findViewById(R.id.mark_layout);
markText = itemView.findViewById(R.id.mark_text);
indicator.setVisibility(View.GONE);
}
public void setData(BattlePassPoints battlePassPoints) {
ImgLoader.display(mContext, battlePassPoints.getImageUrl(), icon);
title.setText(battlePassPoints.getRewardsName());
content.setText(battlePassPoints.getPointsThresholdText());
if (StringUtil.isEmpty(battlePassPoints.getExchangeMark())) {
mark.setVisibility(View.GONE);
} else {
mark.setVisibility(View.VISIBLE);
markText.setText(battlePassPoints.getExchangeMark());
}
submit.setOnClickListener(null);
if (battlePassPoints.getExchangeStatus() == 1) {
submit.setText(WordUtil.getNewString(R.string.battlepass_exchange_submit_lock));
submit.setBackgroundResource(R.mipmap.bg_zl_battlepass_exchange_btn_lock);
submit.setTextColor(Color.parseColor("#E4E5E8"));
return;
}
if (battlePassPoints.getUserQuintyCount() == battlePassPoints.getExchangeQuantity()) {
submit.setTextColor(Color.parseColor("#5773B1"));
submit.setText(WordUtil.getNewString(R.string.battlepass_exchange_submit_exchange));
submit.setBackgroundResource(R.mipmap.bg_zl_battlepass_exchange_btn_over);
return;
} else {
submit.setTextColor(Color.parseColor("#FFFFFF"));
submit.setText(String.format("%s\n(%s/%s)",
WordUtil.getNewString(R.string.battlepass_exchange_submit_unexchange),
battlePassPoints.getUserQuintyCount(),
battlePassPoints.getExchangeQuantity()
));
submit.setBackgroundResource(R.mipmap.bg_zl_battlepass_exchange_btn_exchange);
}
ViewClicksAntiShake.clicksAntiShake(submit, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
new XPopup.Builder(mContext)
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight((Activity) mContext) - DpUtil.dp2px(34))
.asCustom(new WarOrderExchangeDetailsPopupWindow(mContext,
battlePassPoints.getExchangeQuantity()-battlePassPoints.getUserQuintyCount(),
point,
Integer.parseInt(battlePassPoints.getPointsThreshold()),
battlePassPoints.getImageUrl(),
String.valueOf(battlePassPoints.getId()),
new WarOrderExchangeDetailsPopupWindow.WarOrderExchangeDetailsCallback() {
@Override
public void onCallback(int code, String msg) {
ToastUtil.show(msg);
if (onItemClickListener != null) {
onItemClickListener.onItemClick(battlePassPoints, code);
}
}
}
))
.show();
}
});
}
}
}

View File

@@ -0,0 +1,204 @@
package com.yunbao.main.adapter;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.bean.BattlePassTask;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.dialog.OrderLevelPopupWindow;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R;
import java.util.ArrayList;
import java.util.List;
public class BattlePassMissionAdapter extends RecyclerView.Adapter<BattlePassMissionAdapter.VH> {
private Context mContext;
private List<BattlePassTask.Task> mList = new ArrayList<>();
private OnItemClickListener<BattlePassTask.Task> onItemClickListener;
public BattlePassMissionAdapter(Context mContext) {
this.mContext = mContext;
}
public void setList(List<BattlePassTask.Task> mList) {
this.mList = mList;
}
public void setOnItemClickListener(OnItemClickListener<BattlePassTask.Task> onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
@Override
public int getItemViewType(int position) {
if (mList.get(position).getId() < 0) {
return 0;
}
return -1;
}
@NonNull
@Override
public BattlePassMissionAdapter.VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
if (viewType == 0) {
return new BattlePassMissionAdapter.TypeOfTitle(LayoutInflater.from(mContext).inflate(R.layout.item_battlepass_mission_type_title, parent, false));
}
return new BattlePassMissionAdapter.TypeOfMission(LayoutInflater.from(mContext).inflate(R.layout.item_battlepass_mission_type_mission, parent, false));
}
@Override
public void onBindViewHolder(@NonNull BattlePassMissionAdapter.VH holder, int position) {
holder.setData(mList.get(position));
}
@Override
public int getItemCount() {
return mList.size();
}
public static abstract class VH extends RecyclerView.ViewHolder {
protected static final int SUBMIT_BUY = 0;
protected static final int SUBMIT_FINISHED = 1;
protected static final int SUBMIT_OVER = 2;
protected static final int SUBMIT_DEF = 3;
public VH(@NonNull View itemView) {
super(itemView);
}
public abstract void setData(BattlePassTask.Task task);
}
private static class TypeOfTitle extends VH {
TextView title;
public TypeOfTitle(@NonNull View itemView) {
super(itemView);
title = itemView.findViewById(R.id.title);
}
@Override
public void setData(BattlePassTask.Task task) {
if (task.getId() == -1) {
title.setText(WordUtil.getNewString(R.string.battlepass_mission_line_title_daily));
} else if (task.getId() == -2) {
title.setText(WordUtil.getNewString(R.string.battlepass_mission_line_title_season));
}
}
}
private class TypeOfMission extends VH {
ImageView icon;
TextView title;
TextView content;
Button submit;
public TypeOfMission(@NonNull View itemView) {
super(itemView);
icon = itemView.findViewById(R.id.icon);
title = itemView.findViewById(R.id.title);
content = itemView.findViewById(R.id.content);
submit = itemView.findViewById(R.id.submit);
}
@Override
public void setData(BattlePassTask.Task task) {
/* if (task.getId() == 1) {
task.setReceivedTask(1);
task.setUserTaskSuccess(1);
task.setNotReceivedTask(0);
}
if (task.getId() == 2) {
task.setUserTaskSuccess(2);
task.setReceivedTask(5);
task.setNotReceivedTask(5);
}*/
if (task.getTaskSuccess() > 0) {
title.setText(String.format("%s(%s/%s)",
task.getNameText(),
task.getUserTaskSuccess(),
task.getTaskSuccess())
);
} else {
title.setText(task.getNameText());
}
content.setText(task.getRemarkText());
ImgLoader.display(itemView.getContext(), task.getImagePath(), icon);
submit.setTag(SUBMIT_DEF);
submit.setText(WordUtil.getNewString(R.string.battlepass_mission_submit_btn_unfinished));
submit.setBackgroundResource(R.drawable.bg_battlepass_mission_btn_unfinished);
submit.setTextColor(Color.parseColor("#FFFFFF"));
if (task.isBuy()) {
submit.setText(WordUtil.getNewString(R.string.battlepass_mission_submit_btn_buy));
submit.setBackgroundResource(R.drawable.bg_battlepass_mission_btn_buy);
submit.setTag(SUBMIT_BUY);
} else {
if (task.getNotReceivedTask() > 0) {
submit.setText(WordUtil.getNewString(R.string.battlepass_mission_submit_btn_finished));
submit.setBackgroundResource(R.drawable.bg_battlepass_mission_btn_finished);
submit.setTag(SUBMIT_FINISHED);
}
if (task.getNotReceivedTask() == 0 && task.getTaskSuccess() == task.getUserTaskSuccess()) {
submit.setText(WordUtil.getNewString(R.string.battlepass_mission_submit_btn_over));
submit.setBackgroundResource(R.drawable.bg_battlepass_mission_btn_over);
submit.setTag(SUBMIT_OVER);
submit.setTextColor(Color.parseColor("#0D21B2"));
}
}
ViewClicksAntiShake.clicksAntiShake(submit, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
if ((int) submit.getTag() == SUBMIT_FINISHED) {
subTask(task);
}
if ((int) submit.getTag() == SUBMIT_BUY) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(task, -2);
}
}
}
});
}
private void subTask(BattlePassTask.Task task) {
LiveNetManager.get(itemView.getContext())
.getBattlePassTaskOver(String.valueOf(task.getId()), new HttpCallback<HttpCallbackModel>() {
@Override
public void onSuccess(HttpCallbackModel data) {
ToastUtil.show( data.getMsg());
if (onItemClickListener != null) {
onItemClickListener.onItemClick(task, data.getCode());
}
}
@Override
public void onError(String error) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(task, -1);
}
}
});
}
}
}

View File

@@ -0,0 +1,346 @@
package com.yunbao.main.adapter;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.bean.BattlePassUserInfoBean;
import com.yunbao.common.bean.HttpCallbackModel;
import com.yunbao.common.bean.LiveBattlePassRewardsBean;
import com.yunbao.common.dialog.ActivateEliteBattleOrderPopupWindow;
import com.yunbao.common.dialog.LiberalBattlePassPopupWindow;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R;
import com.yunbao.main.event.BattlePassTypeEvent;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
public class BattlePassRewardAdapter extends RecyclerView.Adapter<BattlePassRewardAdapter.VH> {
private Context mContext;
private List<Map<Integer, LiveBattlePassRewardsBean.LiveBattlePassReward>> mList = new ArrayList<>();
private int userLevel;
private BattlePassUserInfoBean userType;
private String quintessenceSpendMoney,enjoySpendMoney;
private OnItemClickListener<LiveBattlePassRewardsBean.LiveBattlePassReward> onItemClickListener;
public void setList(List<Map<Integer, LiveBattlePassRewardsBean.LiveBattlePassReward>> mList) {
this.mList = mList;
}
public void setOnItemClickListener(OnItemClickListener<LiveBattlePassRewardsBean.LiveBattlePassReward> onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
public void setUserLevel(int userLevel) {
this.userLevel = userLevel;
}
public void setUserType(BattlePassUserInfoBean userType) {
this.userType = userType;
}
public BattlePassRewardAdapter(Context mContext) {
this.mContext = mContext;
}
@NonNull
@Override
public VH onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new VH(LayoutInflater.from(mContext).inflate(R.layout.item_battlepass_reward_type_top, parent, false));
}
@Override
public void onBindViewHolder(@NonNull VH holder, int position) {
holder.setData(mList.get(position), position);
}
@Override
public int getItemCount() {
return mList.size();
}
public void setQuintessenceSpendMoney(String quintessenceSpendMoney) {
this.quintessenceSpendMoney=quintessenceSpendMoney;
}
public void setEnjoySpendMoney(String enjoySpendMoney) {
this.enjoySpendMoney=enjoySpendMoney;
}
public class VH extends RecyclerView.ViewHolder {
View lineBg, line, point;
View tab1Layout, tab2Layout, tab3Layout;
Button lv;
ImageView tab1, tab2, tab3;
ImageView tab1Unlock, tab2Unlock, tab3Unlock;
ImageView tab1Mask, tab2Mask, tab3Mask;
ImageView tab1Subscript, tab2Subscript, tab3Subscript;
ImageView tab1Received, tab2Received, tab3Received;
TextView tab1Title, tab2Title, tab3Title;
Map<Integer, LiveBattlePassRewardsBean.LiveBattlePassReward> data;
public VH(@NonNull View itemView) {
super(itemView);
lineBg = itemView.findViewById(R.id.line_bg);
line = itemView.findViewById(R.id.line);
point = itemView.findViewById(R.id.point);
lv = itemView.findViewById(R.id.reward_lv);
tab1Layout = itemView.findViewById(R.id.tab_1_layout);
tab2Layout = itemView.findViewById(R.id.tab_2_layout);
tab3Layout = itemView.findViewById(R.id.tab_3_layout);
tab1 = itemView.findViewById(R.id.tab_1);
tab2 = itemView.findViewById(R.id.tab_2);
tab3 = itemView.findViewById(R.id.tab_3);
tab1Unlock = itemView.findViewById(R.id.tab_1_item_unlock);
tab2Unlock = itemView.findViewById(R.id.tab_2_item_unlock);
tab3Unlock = itemView.findViewById(R.id.tab_3_item_unlock);
tab1Mask = itemView.findViewById(R.id.tab_1_unlock);
tab2Mask = itemView.findViewById(R.id.tab_2_unlock);
tab3Mask = itemView.findViewById(R.id.tab_3_unlock);
tab1Subscript = itemView.findViewById(R.id.tab_1_subscript);
tab2Subscript = itemView.findViewById(R.id.tab_2_subscript);
tab3Subscript = itemView.findViewById(R.id.tab_3_subscript);
tab1Title = itemView.findViewById(R.id.tab_1_title);
tab2Title = itemView.findViewById(R.id.tab_2_title);
tab3Title = itemView.findViewById(R.id.tab_3_title);
tab1Received = itemView.findViewById(R.id.tab_1_item_received);
tab2Received = itemView.findViewById(R.id.tab_2_item_received);
tab3Received = itemView.findViewById(R.id.tab_3_item_received);
}
int level = 0;
@SuppressLint("SetTextI18n")
public void setData(Map<Integer, LiveBattlePassRewardsBean.LiveBattlePassReward> data, int position) {
this.data = data;
for (LiveBattlePassRewardsBean.LiveBattlePassReward value : data.values()) {
if (value.getId() > 0) {
level = value.getLiveBattlePassLevel();
break;
}
}
if (position == 0) {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) lineBg.getLayoutParams();
ConstraintLayout.LayoutParams params1 = (ConstraintLayout.LayoutParams) line.getLayoutParams();
params.topMargin = DpUtil.dp2px(3);
params1.topMargin = DpUtil.dp2px(3);
} else {
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) lineBg.getLayoutParams();
ConstraintLayout.LayoutParams params1 = (ConstraintLayout.LayoutParams) line.getLayoutParams();
params.topMargin = DpUtil.dp2px(0);
params1.topMargin = DpUtil.dp2px(0);
}
setVisibility(View.GONE, -1, tab1Unlock, tab1Unlock, tab1Unlock);
setVisibility(View.GONE, -1, tab1Subscript, tab2Subscript, tab3Subscript);
setVisibility(View.VISIBLE, -1, tab1Layout, tab2Layout, tab3Layout);
setVisibility(View.VISIBLE, -1, tab1, tab2, tab3);
setVisibility(View.VISIBLE, -1, tab1Mask, tab2Mask, tab3Mask);
ConstraintLayout.LayoutParams _params = (ConstraintLayout.LayoutParams) line.getLayoutParams();
_params.bottomMargin = DpUtil.dp2px(0);
line.setLayoutParams(_params);
line.setVisibility(View.GONE);
point.setVisibility(View.GONE);
if (userLevel > level && userLevel < userType.getMaxLevel()) {
setVisibility(View.GONE, -1, tab1Mask, tab2Mask, tab3Mask);
point.setVisibility(View.GONE);
line.setVisibility(View.VISIBLE);
}
if (userLevel == level && userLevel < userType.getMaxLevel()) {
setVisibility(View.GONE, -1, tab1Mask, tab2Mask, tab3Mask);
ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) line.getLayoutParams();
params.bottomMargin = DpUtil.dp2px(70);
line.setVisibility(View.VISIBLE);
point.setVisibility(View.VISIBLE);
}
if (userLevel >= userType.getMaxLevel()) {
setVisibility(View.GONE, -1, tab1Mask, tab2Mask, tab3Mask);
line.setVisibility(View.VISIBLE);
point.setVisibility(View.GONE);
}
getAllView((reward, view) -> ImgLoader.display(mContext, reward.getImageUrl(), view), tab1, tab2, tab3);
getAllView(((reward, view) -> {
if (userLevel < level) {
view.setVisibility(View.GONE);
return;
}
if (reward.getLock() == 1) {
view.setVisibility(View.VISIBLE);
} else {
view.setVisibility(View.GONE);
}
}), tab1Unlock, tab2Unlock, tab3Unlock);
getAllView(((reward, view) -> {
lv.setText("V" + reward.getLiveBattlePassLevel());
lv.setTag(reward);
view.setText(reward.getRewardName());
}), tab1Title, tab2Title, tab3Title);
getAllView(((reward, view) -> {
if (reward.getReceived() == 1) {
view.setVisibility(View.GONE);
} else {
view.setVisibility(View.VISIBLE);
}
}), tab1Received, tab2Received, tab3Received);
getAllView(((reward, view) -> {
ViewClicksAntiShake.clicksAntiShake(view, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
getReward(reward);
}
});
}), tab1, tab2, tab3);
}
private void getReward(LiveBattlePassRewardsBean.LiveBattlePassReward reward) {
if (userLevel < reward.getLiveBattlePassLevel()) {
ToastUtil.show(WordUtil.getNewString(R.string.battlepass_reward_item_lock));
return;
}
if (reward.getLock() == 1) {
//ToastUtil.show("锁了");
if(reward.getLiveBattlePassTypeId()==2){
showBuyType(true);
}else{
showBuyType(false);
}
return;
}
if (reward.getReceived() == 2) {
return;
}
switch (reward.getLiveBattlePassTypeId()) {
case 1:
if (userType.getBattlePassUserRecords1() == 1) {
ToastUtil.show("没购买");
return;
}
break;
case 2:
if (userType.getBattlePassUserRecords2() == 1) {
ToastUtil.show("没购买");
return;
}
break;
case 3:
if (userType.getBattlePassUserRecords3() == 1) {
ToastUtil.show("没购买");
return;
}
break;
}
LiveNetManager.get(mContext)
.getRewards(String.valueOf(reward.getLiveBattlePassLevel()), String.valueOf(reward.getId()), new HttpCallback<HttpCallbackModel>() {
@Override
public void onSuccess(HttpCallbackModel data) {
ToastUtil.show(data.getMsg());
if (onItemClickListener != null) {
onItemClickListener.onItemClick(reward, reward.getId());
}
}
@Override
public void onError(String error) {
if (onItemClickListener != null) {
onItemClickListener.onItemClick(reward, reward.getId());
}
}
});
}
private void setVisibility(int visibility, int position, View... views) {
if (position == -1) {
for (View view : views) {
view.setVisibility(visibility);
}
} else {
views[position].setVisibility(visibility);
}
}
private <T> void getAllView(ViewData<T> viewData, T... views) {
getView(1, viewData, views);
getView(2, viewData, views);
getView(3, viewData, views);
}
private <T> void getView(int type, ViewData<T> viewData, T... views) {
if (data.containsKey(type) && data.get(type) != null && Objects.requireNonNull(data.get(type)).getId() != 0) {
viewData.onData(data.get(type), views[type - 1]);
setVisibility(View.VISIBLE, type - 1, tab1Layout, tab2Layout, tab3Layout);
} else {
setVisibility(View.INVISIBLE, type - 1, tab1Layout, tab2Layout, tab3Layout);
}
}
private void showBuyType(boolean is){
new XPopup.Builder(itemView.getContext())
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight((Activity) itemView.getContext()) - DpUtil.dp2px(34))
.asCustom(new ActivateEliteBattleOrderPopupWindow(
itemView.getContext(),
is?quintessenceSpendMoney:enjoySpendMoney,
is,
new LiberalBattlePassPopupWindow.LiberalBattlePassCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 1001) {
new DialogUitl.Builder(itemView.getContext())
.setView(com.yunbao.live.R.layout.dialog_live_unfollow)
.setConfirmString(itemView.getContext().getString(com.yunbao.live.R.string.charge))
.setContent(itemView.getContext().getString(com.yunbao.live.R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
return;
}
ToastUtil.show(msg);
Bus.get().post(new BattlePassTypeEvent(0));
}
},
"2"
))
.show();
}
}
private interface ViewData<T> {
void onData(LiveBattlePassRewardsBean.LiveBattlePassReward reward, T view);
}
}

View File

@@ -239,15 +239,15 @@ public class MainListAdapter extends RefreshAdapter<ListBean> {
mVotes.setText(bean.getTotalCoinFormat() + " ");
mSex.setImageResource(CommonIconUtil.getSexIcon(bean.getSex()));
LevelBean levelBean = null;
if (mType == TYPE_PROFIT) {
levelBean = CommonAppConfig.getInstance().getAnchorLevel(bean.getLevelAnchor());
} else {
levelBean = CommonAppConfig.getInstance().getLevel(bean.getLevel());
}
if (levelBean != null) {
ImgLoader.display(mContext, levelBean.getThumb(), mLevel);
}
// LevelBean levelBean = null;
// if (mType == TYPE_PROFIT) {
// levelBean = CommonAppConfig.getInstance().getAnchorLevel(bean.getLevelAnchor());
// } else {
// levelBean = CommonAppConfig.getInstance().getLevel(bean.getLevel());
// }
// if (levelBean != null) {
// ImgLoader.display(mContext, levelBean.getThumb(), mLevel);
// }
}
liveing.setVisibility(View.INVISIBLE);
if (bean.getIslive() == 1) {

View File

@@ -1,6 +1,7 @@
package com.yunbao.main.adapter;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
@@ -16,15 +17,18 @@ import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.custom.MyRadioButton;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.live.bean.SearchUserBean;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.live.utils.LiveTextRender;
import com.yunbao.main.R;
import java.util.List;
@@ -47,8 +51,8 @@ public class SearchAdapter extends RefreshAdapter<SearchUserBean> {
public SearchAdapter(Context context, int from) {
super(context);
mFrom = from;
mFollow =mContext.getString(R.string.follow);
mFollowing =mContext.getString(R.string.following);
mFollow = mContext.getString(R.string.follow);
mFollowing = mContext.getString(R.string.following);
mFollowClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -117,7 +121,7 @@ public class SearchAdapter extends RefreshAdapter<SearchUserBean> {
class Vh extends RecyclerView.ViewHolder {
ImageView mAvatar;
TextView mName;
TextView mName, leave;
TextView mSign;
ImageView mSex;
ImageView mLevelAnchor;
@@ -130,6 +134,7 @@ public class SearchAdapter extends RefreshAdapter<SearchUserBean> {
mAvatar = (ImageView) itemView.findViewById(R.id.avatar);
mName = (TextView) itemView.findViewById(R.id.name);
mSign = (TextView) itemView.findViewById(R.id.sign);
leave = (TextView) itemView.findViewById(R.id.leave);
mSex = (ImageView) itemView.findViewById(R.id.sex);
mLevelAnchor = (ImageView) itemView.findViewById(R.id.level_anchor);
mLevel = (ImageView) itemView.findViewById(R.id.level);
@@ -158,31 +163,30 @@ public class SearchAdapter extends RefreshAdapter<SearchUserBean> {
gotoLive(bean.getId());
}
});
LevelBean anchorLevelBean = CommonAppConfig.getInstance().getAnchorLevel(bean.getLevelAnchor());
if (anchorLevelBean != null) {
ImgLoader.display(mContext, CommonAppConfig.getInstance().HOST + anchorLevelBean.getThumb(), mLevelAnchor);
}
LevelBean levelBean = CommonAppConfig.getInstance().getLevel(bean.getLevel());
if (levelBean != null) {
ImgLoader.display(mContext, levelBean.getThumb(), mLevel);
List<NewLevelModel> models = new NewLevelManager(itemView.getContext()).getNewAnchorLevelModels();
int anchorLevel = 0;
anchorLevel = bean.getLevelAnchor();
String imgUrl = "";
for (NewLevelModel newLevelModel : models) {
if (newLevelModel.getLeveMin() <= anchorLevel && anchorLevel <= newLevelModel.getLeveMax()) {
imgUrl = newLevelModel.getThumb();
}
}
leave.setText(bean.getLevelAnchor() + "");
ImgLoader.display(itemView.getContext(), imgUrl, mLevelAnchor);
new LiveTextRender().getLevelImage(mContext, bean.getLevel(), new ImgLoader.DrawableCallback() {
@Override
public void onLoadSuccess(Drawable drawable) {
ImgLoader.display2(mContext, drawable, mLevel);
}
@Override
public void onLoadFailed() {
}
});
}
// if (mUid.equals(bean.getId())) {
// if (mBtnFollow.getVisibility() == View.VISIBLE) {
// mBtnFollow.setVisibility(View.INVISIBLE);
// }
// } else {
// if (mBtnFollow.getVisibility() != View.VISIBLE) {
// mBtnFollow.setVisibility(View.VISIBLE);
// }
// if (bean.getAttention() == 1) {
// mBtnFollow.doChecked(true);
// mBtnFollow.setText(mFollowing);
// } else {
// mBtnFollow.doChecked(false);
// mBtnFollow.setText(mFollow);
// }
// }
}
}
@@ -200,7 +204,7 @@ public class SearchAdapter extends RefreshAdapter<SearchUserBean> {
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
}
@Override

View File

@@ -2,15 +2,10 @@ package com.yunbao.main.dialog;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
@@ -21,10 +16,15 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.alibaba.fastjson.JSON;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.Constants;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.dialog.AbsDialogFragment;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.HttpCallback;
@@ -32,6 +32,7 @@ import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.main.R;
import com.yunbao.main.adapter.MainHomeRemFollLiveAdapter;
import com.yunbao.main.bean.EncourageGiftBean;
import com.yunbao.main.http.MainHttpUtil;
@@ -46,7 +47,7 @@ public class EncourageDialog extends AbsDialogFragment implements View.OnClickLi
private View v_encourage, v_encourage_list, v_close;
private ImageView img_gift1, img_gift2, img_gift3;
private LinearLayout lt_gift1, lt_gift2, lt_gift3, lt_lt1, lt_lt2, lt_no_data;
private RecyclerView rc_encourage;
private CommonRefreshView rc_encourage;
private EncourageAdapter encourageAdapter;
private List<EncourageGiftBean> encourageList;
private List<EncourageGiftBean> encourageList2;
@@ -151,30 +152,68 @@ public class EncourageDialog extends AbsDialogFragment implements View.OnClickLi
}
private void getDataList() {
MainHttpUtil.getDynamicSendGiftList(id, new HttpCallback() {
gridLayoutManager = new GridLayoutManager(getContext(), 1);
rc_encourage.setLayoutManager(gridLayoutManager);
lt_no_data.setVisibility(View.GONE);
rc_encourage.setVisibility(View.VISIBLE);
rc_encourage.setDataHelper(new CommonRefreshView.DataHelper<EncourageGiftBean>() {
@Override
public void onSuccess(int code, String msg, String[] info) {
public RefreshAdapter<EncourageGiftBean> getAdapter() {
if (encourageAdapter == null) {
encourageAdapter = new EncourageAdapter(mContext);
}
return encourageAdapter;
}
@Override
public void loadData(int p, HttpCallback callback) {
MainHttpUtil.getDynamicSendGiftList(id, p, callback);
}
@Override
public List<EncourageGiftBean> processData(String[] info) {
if (info != null) {
if (info.length > 0) {
lt_no_data.setVisibility(View.GONE);
rc_encourage.setVisibility(View.VISIBLE);
encourageList = JSON.parseArray(Arrays.toString(info), EncourageGiftBean.class);
encourageAdapter = new EncourageAdapter(getContext(), encourageList);
gridLayoutManager = new GridLayoutManager(getContext(), 1);
rc_encourage.setLayoutManager(gridLayoutManager);
rc_encourage.setAdapter(encourageAdapter);
return JSON.parseArray(Arrays.toString(info), EncourageGiftBean.class);
} else {
lt_no_data.setVisibility(View.VISIBLE);
rc_encourage.setVisibility(View.GONE);
return new ArrayList<EncourageGiftBean>();
}
} else {
lt_no_data.setVisibility(View.VISIBLE);
rc_encourage.setVisibility(View.GONE);
return new ArrayList<EncourageGiftBean>();
}
}
@Override
public void onRefreshSuccess(List<EncourageGiftBean> list, int listCount) {
}
@Override
public void onRefreshFailure() {
}
@Override
public void onLoadMoreSuccess(List<EncourageGiftBean> loadItemList, int loadItemCount) {
if (loadItemList.size() > 0)
encourageAdapter.insertList(loadItemList);
}
@Override
public void onLoadMoreFailure() {
}
});
rc_encourage.initData();
}
private void initView() {
@@ -193,7 +232,7 @@ public class EncourageDialog extends AbsDialogFragment implements View.OnClickLi
lt_gift3 = (LinearLayout) findViewById(R.id.lt_gift3);
lt_lt1 = (LinearLayout) findViewById(R.id.lt_lt1);
lt_lt2 = (LinearLayout) findViewById(R.id.lt_lt2);
rc_encourage = (RecyclerView) findViewById(R.id.rc_encourage);
rc_encourage = (CommonRefreshView) findViewById(R.id.rc_encourage);
img_gift1 = (ImageView) findViewById(R.id.img_gift1);
img_gift2 = (ImageView) findViewById(R.id.img_gift2);
@@ -344,16 +383,10 @@ public class EncourageDialog extends AbsDialogFragment implements View.OnClickLi
}
}
public class EncourageAdapter extends RecyclerView.Adapter<EncourageAdapter.ViewHolder> {
private LayoutInflater mInflater;
private List<EncourageGiftBean> mDatas;
public class EncourageAdapter extends RefreshAdapter<EncourageGiftBean> {
/**
*
*/
public EncourageAdapter(Context context, List<EncourageGiftBean> datats) {
mInflater = LayoutInflater.from(context);
mDatas = datats;
public EncourageAdapter(Context context) {
super(context);
}
public class ViewHolder extends RecyclerView.ViewHolder {
@@ -374,43 +407,24 @@ public class EncourageDialog extends AbsDialogFragment implements View.OnClickLi
}
}
@Override
public int getItemCount() {
return mDatas.size();
}
/**
* 创建ViewHolder
*/
@Override
public EncourageAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View view;
view = mInflater.inflate(R.layout.item_encourage_list,
viewGroup, false);
EncourageAdapter.ViewHolder viewHolder = new EncourageAdapter.ViewHolder(view);
return viewHolder;
return new EncourageAdapter.ViewHolder(mInflater.inflate(R.layout.item_encourage_list, viewGroup, false));
}
/**
* 设置值
*/
@Override
public void onBindViewHolder(final EncourageAdapter.ViewHolder viewHolder, @SuppressLint("RecyclerView") final int position) {
ImgLoader.displayAvatar(mContext, mDatas.get(position).getUser_avatar(), viewHolder.avatar);
// LevelBean anchorLevelBean = CommonAppConfig.getInstance().getAnchorLevel(mDatas.getLevelAnchor());
// if (anchorLevelBean != null) {
// ImgLoader.display(mContext, CommonAppConfig.getInstance().HOST + anchorLevelBean.getThumb(), viewHolder.level_anchor);
// }
// LevelBean levelBean = CommonAppConfig.getInstance().getLevel(mDatas.getLevel());
// if (levelBean != null) {
// ImgLoader.display(mContext, levelBean.getThumb(), viewHolder.level);
// }
ImgLoader.display(mContext, mDatas.get(position).getGift_img(), viewHolder.tv_gift_pic);
viewHolder.name.setText(mDatas.get(position).getUser_name());
viewHolder.tv_gift_num.setText(mDatas.get(position).getGift_num());
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
ViewHolder viewHolder = (ViewHolder) holder;
ImgLoader.displayAvatar(mContext, mList.get(position).getUser_avatar(), viewHolder.avatar);
ImgLoader.display(mContext, mList.get(position).getGift_img(), viewHolder.tv_gift_pic);
viewHolder.name.setText(mList.get(position).getUser_name());
viewHolder.tv_gift_num.setText(mList.get(position).getGift_num());
}
}
}

View File

@@ -0,0 +1,21 @@
package com.yunbao.main.event;
import com.yunbao.common.bean.LiveBattlePassRewardsBean;
import java.util.List;
public class BattlePassTypeEvent {
int type;
public BattlePassTypeEvent(int liveBattlePassType) {
this.type=liveBattlePassType;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
}

View File

@@ -0,0 +1,96 @@
package com.yunbao.main.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.bean.BattlePassPoints;
import com.yunbao.common.bean.BattlePassUserInfoBean;
import com.yunbao.common.bean.LiveBattlePassRewardsBean;
import com.yunbao.common.custom.ItemDecoration;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.main.R;
import com.yunbao.main.activity.BattlePassActivity;
import com.yunbao.main.adapter.BattlePassExchangeAdapter;
import com.yunbao.main.adapter.BattlePassMissionAdapter;
import com.yunbao.main.event.BattlePassTypeEvent;
import com.yunbao.main.interfaces.BattlePassUserInfoListener;
import java.util.List;
public class BattlePassExchangeFragment extends BaseFragment {
RecyclerView mRecyclerView;
BattlePassExchangeAdapter adapter;
BattlePassUserInfoListener userInfoListener;
public BattlePassExchangeFragment(BattlePassUserInfoListener userInfoListener) {
this.userInfoListener = userInfoListener;
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container) {
return inflater.inflate(R.layout.fragment_battlepass_exchange, container, false);
}
@Override
protected void initVariables(Bundle bundle) {
}
@Override
public void onResume() {
super.onResume();
updateData();
}
@Override
protected void loadData() {
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
mRecyclerView = findViewById(R.id.recycler_view);
adapter = new BattlePassExchangeAdapter(getContext());
adapter.setOnItemClickListener(new OnItemClickListener<BattlePassPoints>() {
@Override
public void onItemClick(BattlePassPoints bean, int position) {
updateData();
Bus.get().post(new BattlePassTypeEvent(0));
}
});
mRecyclerView.setAdapter(adapter);
}
private void initData() {
BattlePassUserInfoBean userInfo = userInfoListener.getBattlePassUserInfo();
if(adapter!=null && userInfo!=null){
adapter.setPoint(userInfo.getPoints());
}
}
@Override
public void updateData() {
super.updateData();
initData();
LiveNetManager.get(getContext())
.getBattlePassPoints(new HttpCallback<List<BattlePassPoints>>() {
@Override
public void onSuccess(List<BattlePassPoints> data) {
adapter.setList(data);
adapter.notifyDataSetChanged();
}
@Override
public void onError(String error) {
}
});
}
}

View File

@@ -0,0 +1,152 @@
package com.yunbao.main.fragment;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.bean.BattlePassTask;
import com.yunbao.common.bean.BattlePassUserInfoBean;
import com.yunbao.common.custom.ItemDecoration;
import com.yunbao.common.dialog.OrderLevelPopupWindow;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.main.R;
import com.yunbao.main.adapter.BattlePassMissionAdapter;
import com.yunbao.main.event.BattlePassTypeEvent;
import com.yunbao.main.interfaces.BattlePassUserInfoListener;
import java.util.ArrayList;
import java.util.List;
public class BattlePassMissionFragment extends BaseFragment {
RecyclerView mRecyclerView;
BattlePassMissionAdapter adapter;
BattlePassUserInfoListener userInfoListener;
public BattlePassMissionFragment(BattlePassUserInfoListener userInfoListener) {
this.userInfoListener = userInfoListener;
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container) {
return inflater.inflate(R.layout.fragment_battlepass_mission, container, false);
}
@Override
protected void initVariables(Bundle bundle) {
}
@Override
public void onResume() {
super.onResume();
updateData();
}
@Override
protected void loadData() {
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
mRecyclerView = findViewById(R.id.recycler_view);
adapter = new BattlePassMissionAdapter(getContext());
ItemDecoration decoration = new ItemDecoration(getContext(), 0x00000000, 1, DpUtil.dp2px(10));
decoration.setOnlySetItemOffsetsButNoDraw(true);
//mRecyclerView.addItemDecoration(decoration);
adapter.setOnItemClickListener(new OnItemClickListener<BattlePassTask.Task>() {
@Override
public void onItemClick(BattlePassTask.Task bean, int position) {
if (position == -2) {
BattlePassUserInfoBean userInfoBean = userInfoListener.getBattlePassUserInfo();
if (userInfoBean.getNextLevelExp() == 0) {
ToastUtil.show(WordUtil.getNewString(R.string.battlepass_user_level_max));
return;
}
long maxExp=userInfoBean.getMaxLevelExp() - userInfoBean.getBattlePassExp();
new XPopup.Builder(getContext())
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight((Activity) getContext()) - DpUtil.dp2px(34))
.asCustom(new OrderLevelPopupWindow(getContext(),
userInfoBean,
userInfoBean.getBattlePassExp()-userInfoBean.getLastLevelExp(),
userInfoBean.getNextLevelExp()-userInfoBean.getLastLevelExp(),
String.valueOf(userInfoBean.getLevel()),
String.valueOf(IMLoginManager.get(getContext()).getUserInfo().getCoin()),
maxExp,
new OrderLevelPopupWindow.OrderLevelCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 1001) {
new DialogUitl.Builder(getContext())
.setView(com.yunbao.live.R.layout.dialog_live_unfollow)
.setConfirmString(getString(com.yunbao.live.R.string.charge))
.setContent(getString(com.yunbao.live.R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
return;
}
ToastUtil.show(msg);
Bus.get().post(new BattlePassTypeEvent(0));
updateData();
}
}
)
)
.show();
} else {
updateData();
Bus.get().post(new BattlePassTypeEvent(0));
}
}
});
mRecyclerView.setAdapter(adapter);
}
@Override
public void updateData() {
super.updateData();
LiveNetManager.get(getContext())
.getBattlePassTask(new HttpCallback<BattlePassTask>() {
@Override
public void onSuccess(BattlePassTask data) {
List<BattlePassTask.Task> tasks = new ArrayList<>();
tasks.add(new BattlePassTask.Task(-1));
tasks.addAll(data.getDaily());
tasks.add(new BattlePassTask.Task(-2));
tasks.addAll(data.getSeason());
adapter.setList(tasks);
adapter.notifyDataSetChanged();
}
@Override
public void onError(String error) {
}
});
}
}

View File

@@ -0,0 +1,236 @@
package com.yunbao.main.fragment;
import static com.yunbao.common.utils.RouteUtil.PATH_COIN;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.lxj.xpopup.XPopup;
import com.yunbao.common.bean.BattlePassUserInfoBean;
import com.yunbao.common.bean.LiveBattlePassRewardsBean;
import com.yunbao.common.dialog.ActivateEliteBattleOrderPopupWindow;
import com.yunbao.common.dialog.LiberalBattlePassPopupWindow;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.main.R;
import com.yunbao.main.adapter.BattlePassRewardAdapter;
import com.yunbao.main.event.BattlePassTypeEvent;
import com.yunbao.main.interfaces.BattlePassUserInfoListener;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
public class BattlePassRewardFragment extends BaseFragment {
ImageView tab1;
ImageView tab2;
ImageView tab3;
RecyclerView recyclerView;
BattlePassRewardAdapter adapter;
String enjoySpendMoney = "";
String quintessenceSpendMoney = "";
BattlePassUserInfoListener userInfoListener;
public BattlePassRewardFragment(BattlePassUserInfoListener userInfoListener) {
this.userInfoListener = userInfoListener;
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container) {
return inflater.inflate(R.layout.fragment_battlepass_reward, container, false);
}
@Override
protected void initVariables(Bundle bundle) {
}
@Override
public void onResume() {
super.onResume();
updateData();
}
@Override
protected void loadData() {
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
tab1 = findViewById(R.id.tab_1);
tab2 = findViewById(R.id.tab_2);
tab3 = findViewById(R.id.tab_3);
recyclerView = findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
adapter = new BattlePassRewardAdapter(getContext());
adapter.setOnItemClickListener(new OnItemClickListener<LiveBattlePassRewardsBean.LiveBattlePassReward>() {
@Override
public void onItemClick(LiveBattlePassRewardsBean.LiveBattlePassReward bean, int position) {
updateData();
Bus.get().post(new BattlePassTypeEvent(0));
}
});
recyclerView.setAdapter(adapter);
ViewClicksAntiShake.clicksAntiShake(tab2, () -> {
if (tab2.getTag() != null) {
ToastUtil.show(WordUtil.getNewString(R.string.battlepass_buy_max));
return;
}
new XPopup.Builder(getContext())
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight((Activity) getContext()) - DpUtil.dp2px(34))
.asCustom(new ActivateEliteBattleOrderPopupWindow(
getContext(),
quintessenceSpendMoney,
true,
new LiberalBattlePassPopupWindow.LiberalBattlePassCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 1001) {
new DialogUitl.Builder(getContext())
.setView(com.yunbao.live.R.layout.dialog_live_unfollow)
.setConfirmString(getString(com.yunbao.live.R.string.charge))
.setContent(getString(com.yunbao.live.R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
return;
}
ToastUtil.show(msg);
updateData();
Bus.get().post(new BattlePassTypeEvent(0));
}
},
"2"
))
.show();
});
ViewClicksAntiShake.clicksAntiShake(tab3, () -> {
if (tab3.getTag() != null) {
ToastUtil.show(WordUtil.getNewString(R.string.battlepass_buy_max));
return;
}
new XPopup.Builder(getContext())
.enableDrag(false)
.maxWidth(DeviceUtils.getScreenHeight((Activity) getContext()) - DpUtil.dp2px(34))
.asCustom(new ActivateEliteBattleOrderPopupWindow(getContext(),
enjoySpendMoney,
false,
new LiberalBattlePassPopupWindow.LiberalBattlePassCallback() {
@Override
public void onCallback(int code, String msg) {
if (code == 1001) {
new DialogUitl.Builder(getContext())
.setView(com.yunbao.live.R.layout.dialog_live_unfollow)
.setConfirmString(getString(com.yunbao.live.R.string.charge))
.setContent(getString(com.yunbao.live.R.string.insufficient_balance))
.setClickCallback(new DialogUitl.SimpleCallback() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
ARouter.getInstance().build(PATH_COIN).withInt("p", 0).navigation();
}
}).build().show();
return;
}
ToastUtil.show(msg);
updateData();
Bus.get().post(new BattlePassTypeEvent(0));
}
},
"3"
))
.show();
});
}
@Override
public void updateData() {
super.updateData();
LiveNetManager.get(getContext())
.getLiveBattlePassRewards(new HttpCallback<LiveBattlePassRewardsBean>() {
@Override
public void onSuccess(LiveBattlePassRewardsBean data) {
int level = data.getLevel();
for (LiveBattlePassRewardsBean.BattlePassType passType : data.getLive_battle_pass_type()) {
if (passType.getId() == 2) {
quintessenceSpendMoney = String.valueOf(passType.getDiamond_value());
adapter.setQuintessenceSpendMoney(quintessenceSpendMoney);
}
if (passType.getId() == 3) {
enjoySpendMoney = String.valueOf(passType.getDiamond_value());
adapter.setEnjoySpendMoney(enjoySpendMoney);
}
}
Collection<Map<Integer, LiveBattlePassRewardsBean.LiveBattlePassReward>> values = data.getLive_battle_pass_rewards().values();
List<Map<Integer, LiveBattlePassRewardsBean.LiveBattlePassReward>> list = new ArrayList<>(values);
/* list.get(1).get(1).setReceived(2);
list.get(0).get(2).setLock(2);
list.get(1).get(2).setLock(2);
type = 1;
level = 3;*/
adapter.setUserLevel(level);
adapter.setList(list);
initData();
}
@Override
public void onError(String error) {
}
});
}
private void initData() {
BattlePassUserInfoBean userInfo = userInfoListener.getBattlePassUserInfo();
if(userInfo!=null){
setTab(userInfo);
adapter.setUserType(userInfo);
adapter.notifyDataSetChanged();
}
}
private void setTab(BattlePassUserInfoBean data) {
tab1.setImageResource(R.mipmap.ic_reward_tab_normal);
tab2.setImageResource(R.mipmap.ic_reward_tab_upgrade_unselect);
tab3.setImageResource(R.mipmap.ic_reward_tab_ultimate_unselect);
if(data.getBattlePassUserRecords1()==2){
tab1.setTag(true);
tab1.setImageResource(R.mipmap.ic_reward_tab_normal);
}
if(data.getBattlePassUserRecords2()==2){
tab2.setTag(true);
tab2.setImageResource(R.mipmap.ic_reward_tab_upgrade);
}
if(data.getBattlePassUserRecords3()==2){
tab3.setTag(true);
tab3.setImageResource(R.mipmap.ic_reward_tab_ultimate);
}
}
}

View File

@@ -0,0 +1,390 @@
package com.yunbao.main.fragment;
import static android.content.Context.CLIPBOARD_SERVICE;
import android.app.Activity;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.provider.MediaStore;
import android.text.TextUtils;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.RequiresApi;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.momo.mcamera.util.JsonUtil;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
import com.yunbao.common.bean.CoolConfig;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.NativeCallbackModel;
import com.yunbao.common.dialog.CinemaTicketPopupWindow;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfacePlayLetUtils;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.views.LoadingView;
import com.yunbao.main.R;
import com.yunbao.main.activity.MainActivity;
import com.yunbao.main.activity.MyWalletActivity;
import com.yunbao.main.dialog.EncourageDialog;
import com.yunbao.main.utils.BottomBarUtil;
import com.yunbao.share.ui.SharePopDialog;
import com.yunbao.video.activity.VideoPlayActivity;
import com.yunbao.video.utils.VideoStorge;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.Arrays;
import java.util.Locale;
public class MainHomeCommunityFragment extends BaseFragment {
private ProgressBar mProgressBar;
private WebView mWebView;
public final int CHOOSE = 100;//Android 5.0以下的
public final int CHOOSE_ANDROID_5 = 200;//Android 5.0以上的
public ValueCallback<Uri> mValueCallback;
public ValueCallback<Uri[]> mValueCallback2;
private MainActivity nowMainActivity;
Context mContext;
public MainHomeCommunityFragment(MainActivity nowMainActivity) {
super();
this.nowMainActivity=nowMainActivity;
}
@Override
public View createView(LayoutInflater inflater, ViewGroup container) {
return inflater.inflate(R.layout.view_main_encourage, container, false);
}
@Override
protected void initVariables(Bundle bundle) {
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
//Bus.getOn(MainHomeCommunityFragment.this);
mContext = contentView.getContext();
nowMainActivity= (MainActivity) mContext;
String url = HtmlConfig.ENCOURAGE + "?t=" + Math.random() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()
+ "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
// String url = "https://api.coolydrama.com/?agentCode=186279";
final LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
mWebView = new WebView(mContext);
int aa = BottomBarUtil.getNavigationBarHeightIfRoom(mContext);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
params.topMargin = DpUtil.dp2px(1);
mWebView.setLayoutParams(params);
mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);
LoadingView loadingView = new LoadingView(mContext);
loadingView.show();
rootView.addView(loadingView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
} else {
cookieManager.setAcceptCookie(true);
}
String appCachePath = mContext.getCacheDir().getAbsolutePath();
// mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setUseWideViewPort(true); // 关键点
mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);// 不加载缓存内容
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
mWebView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext(nowMainActivity, mWebView), "androidObject");
//短剧
// mWebView.addJavascriptInterface(JavascriptInterfacePlayLetUtils.getInstance().setmContext(nowMainActivity, mWebView), "jsBridge");
mWebView.getSettings().setSupportMultipleWindows(true);
rootView.addView(mWebView);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
L.e("H5-------->" + url);
if (url.startsWith(Constants.COPY_PREFIX)) {
String content = url.substring(Constants.COPY_PREFIX.length());
if (!TextUtils.isEmpty(content)) {
copy(content);
}
} else {
view.loadUrl(url);
}
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
setTitle(view.getTitle());
if (url.contains("for")) {
mWebView.loadUrl("javascript:goAnchorTab()");
}
String userAgent = "shixinzhang";
String js = "window.localStorage.setItem('userAgent','" + userAgent + "');";
String jsUrl = "javascript:(function({ var localStorage = window.localStorage; localStorage.setItem('userAgent','" + userAgent + "') })()";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
view.evaluateJavascript(js, null);
} else {
view.loadUrl(jsUrl);
view.reload();
}
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
loadingView.hide();
mProgressBar.setVisibility(View.GONE);
} else {
loadingView.show();
mProgressBar.setProgress(newProgress);
}
}
//以下是在各个Android版本中 WebView调用文件选择器的方法
// For Android < 3.0
public void openFileChooser(ValueCallback<Uri> valueCallback) {
openImageChooserActivity(valueCallback);
}
// For Android >= 3.0
public void openFileChooser(ValueCallback valueCallback, String acceptType) {
openImageChooserActivity(valueCallback);
}
//For Android >= 4.1
public void openFileChooser(ValueCallback<Uri> valueCallback,
String acceptType, String capture) {
openImageChooserActivity(valueCallback);
}
// For Android >= 5.0
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onShowFileChooser(WebView webView,
ValueCallback<Uri[]> filePathCallback,
FileChooserParams fileChooserParams) {
mValueCallback2 = filePathCallback;
WebChromeClient.FileChooserParams mFileChooserParams;
mFileChooserParams = fileChooserParams;
String at = Arrays.toString(mFileChooserParams.getAcceptTypes());
String type;
if (at.contains("image/")) {//图片
type = "image/*";
} else if (at.contains("video/")) {
type = "video/*";
} else {
type = "*/*";
}
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(type);
nowMainActivity.startActivityMain2(intent, CHOOSE_ANDROID_5);
return true;
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
mWebView.loadUrl(url);
findViewById(R.id.native_callback).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
}
protected void setTitle(String title) {
TextView titleView = (TextView) findViewById(R.id.titleView);
if (titleView != null) {
titleView.setText(title);
}
}
private void gotoLive(final String live_id) {
LiveHttpUtil.getLiveInfo(live_id + "", new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
}
@Override
public void onCheckError(String contextError) {
}
});
} else {
RouteUtil.forwardUserHome(mContext, String.valueOf(live_id), 0);
}
}
});
}
private void openImageChooserActivity(ValueCallback<Uri> valueCallback) {
mValueCallback = valueCallback;
Intent intent = new Intent();
if (Build.VERSION.SDK_INT < 19) {
intent.setAction(Intent.ACTION_GET_CONTENT);
} else {
intent.setAction(Intent.ACTION_PICK);
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
intent.setType("image/*");
nowMainActivity.startActivityMain(Intent.createChooser(intent, mContext.getString(R.string.choose_flie)), CHOOSE);
// startActivityForResult(Intent.createChooser(intent,mContext.getString(R.string.choose_flie)), CHOOSE);
}
@Override
public void onDestroy() {
// Bus.getOff(MainHomeCommunityFragment.this);
if (mWebView != null) {
ViewGroup parent = (ViewGroup) mWebView.getParent();
if (parent != null) {
parent.removeView(mWebView);
}
mWebView.reload();
mWebView.destroy();
}
super.onDestroy();
}
/**
* 复制到剪贴板
*/
private void copy(String content) {
ClipboardManager cm = (ClipboardManager) mContext.getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", content);
cm.setPrimaryClip(clipData);
ToastUtil.show(mContext.getString(R.string.copy_success));
}
public void closeFinger() {
if (Build.VERSION.SDK_INT >= 21) {
mWebView.post(new Runnable() {
@Override
public void run() {
String method = "Left()";//拼接参数就可以把数据传递给js
mWebView.evaluateJavascript(method, new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.i("Log", "Left()js返回" + value);
}
});
}
});
} else {
mWebView.post(new Runnable() {
@Override
public void run() {
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mWebView.loadUrl("javascript:Left()");
}
});
}
});
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onJavascriptInterfaceEvent2(JavascriptInterfaceEvent event) {
if (!TextUtils.isEmpty(event.getMethod())) {
if (TextUtils.equals(event.getMethod(), "androidCommunityGift")) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
EncourageDialog fragment = new EncourageDialog();
fragment.setId(event.getPostsId());
if (mContext instanceof MainActivity) {
fragment.show(((MainActivity) mContext).getSupportFragmentManager(), "EncourageDialog");
}
}
});
} else if (TextUtils.equals(event.getMethod(), "androidPlayVideo")) {
VideoStorge.getInstance().put(Constants.VIDEO_COMMUNITY, event.getVideoBeanList());
VideoPlayActivity.forward(mContext, event.getPosition(), Constants.VIDEO_COMMUNITY, 1);
} else if (TextUtils.equals(event.getMethod(), "androidMethodLookToLive")) {
//看直播
gotoLive(event.getLiveId());
} else if (TextUtils.equals(event.getMethod(), "isCloseNavigation")) {
if (nowMainActivity != null) {
nowMainActivity.isClose(event.getIsClose());
}
} else if (TextUtils.equals(event.getMethod(), "androidCommunityShare")) {
JSONObject json = JSONObject.parseObject(event.getData());
new SharePopDialog(mContext)
.setShareLink(CommonAppConfig.HOST + json.getString("link"))
.setAnchorAvatar(json.getString("avatar"))
.showDialog();
}
}
}
@Override
protected void loadData() {
}
}

View File

@@ -0,0 +1,206 @@
package com.yunbao.main.fragment;
import static android.content.Context.CLIPBOARD_SERVICE;
import android.app.Activity;
import android.app.Dialog;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.CookieManager;
import android.webkit.ValueCallback;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import com.alibaba.fastjson.JSONObject;
import com.lxj.xpopup.XPopup;
import com.momo.mcamera.util.JsonUtil;
import com.yunbao.common.Constants;
import com.yunbao.common.bean.CoolConfig;
import com.yunbao.common.bean.NativeCallbackModel;
import com.yunbao.common.dialog.CinemaTicketPopupWindow;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.utils.DeviceUtils;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.JavascriptInterfacePlayLetUtils;
import com.yunbao.common.utils.JavascriptInterfaceUtils;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.main.R;
import com.yunbao.main.activity.MyWalletActivity;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.Arrays;
public class MainHomeCommunityVideoFragment extends BaseFragment {
WebView mWebView;
private Context mContext;
@Override
public View createView(LayoutInflater inflater, ViewGroup container) {
return inflater.inflate(R.layout.view_main_community_video, container, false);
}
@Override
protected void initVariables(Bundle bundle) {
}
@Override
protected void initViews(Bundle savedInstanceState, View contentView) {
mContext = getActivity();
mWebView = findViewById(R.id.webView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
} else {
cookieManager.setAcceptCookie(true);
}
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setUseWideViewPort(true); // 关键点
mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);// 不加载缓存内容
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
//短剧
mWebView.addJavascriptInterface(JavascriptInterfacePlayLetUtils.getInstance().setmContext(getActivity(), mWebView), "jsBridge");
mWebView.getSettings().setSupportMultipleWindows(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
L.e("H5-------->" + url);
if (url.startsWith(Constants.COPY_PREFIX)) {
String content = url.substring(Constants.COPY_PREFIX.length());
if (!TextUtils.isEmpty(content)) {
copy(content);
}
} else {
view.loadUrl(url);
}
return true;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
if (url.contains("for")) {
mWebView.loadUrl("javascript:goAnchorTab()");
}
String userAgent = "shixinzhang";
String js = "window.localStorage.setItem('userAgent','" + userAgent + "');";
String jsUrl = "javascript:(function({ var localStorage = window.localStorage; localStorage.setItem('userAgent','" + userAgent + "') })()";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
view.evaluateJavascript(js, null);
} else {
view.loadUrl(jsUrl);
view.reload();
}
}
});
}
private void copy(String content) {
ClipboardManager cm = (ClipboardManager) getActivity().getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", content);
cm.setPrimaryClip(clipData);
ToastUtil.show(getActivity().getString(R.string.copy_success));
}
@Override
protected void loadData() {
LiveHttpUtil.getCoolydrama(new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
System.out.println("code = " + code + ", msg = " + msg + ", info = " + Arrays.toString(info));
if (code == 0) {
mWebView.loadUrl(JSONObject.parseObject(info[0]).getString("url"));
}
}
});
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onJavascriptInterfaceEvent2(JavascriptInterfaceEvent event) {
if (TextUtils.equals(event.getMethod(), "postWeakBalance")) {
LiveNetManager.get(mContext).
getCoolConfig(new com.yunbao.common.http.base.HttpCallback<CoolConfig>() {
@Override
public void onSuccess(CoolConfig data) {
new XPopup.Builder(mContext)
.enableDrag(false)
.autoOpenSoftInput(false)
.maxWidth(DeviceUtils.getScreenHeight((Activity) mContext) - DpUtil.dp2px(34))
.asCustom(new CinemaTicketPopupWindow(mContext, data.setTicketCount(event.getCoolConfig().getTicketCount()), new CinemaTicketPopupWindow.CinemaTicketPopupWindowCallBack() {
@Override
public void onCallBack(String data) {
if (TextUtils.equals(data, "2")) {
DialogUitl.showSimpleDialog(mContext, mContext.getString(com.yunbao.live.R.string.live_coin_not_enough), false,
new DialogUitl.SimpleCallback2() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
mContext.startActivity(new Intent(mContext, MyWalletActivity.class).putExtra("p", 1));
}
@Override
public void onCancelClick() {
}
});
} else if (TextUtils.equals(data, "1")) {
ToastUtil.show(WordUtil.isNewZh() ? "兑换成功" : "Successful exchange");
mWebView.post(new Runnable() {
@Override
public void run() {
NativeCallbackModel model = new NativeCallbackModel();
model.setUid(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()));
String nativeJson = new JsonUtil().toJson(model);
mWebView.evaluateJavascript("javascript:nativeCallback('" + nativeJson + "')", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
}
});
}
});
}
}
})).show();
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
}
}
public void onPausePlay(){
mWebView.onPause();
}
public void onResumePlay(){
mWebView.onResume();
}
}

View File

@@ -692,12 +692,15 @@ public class MainHttpUtil {
/**
* 社区动态礼物信息列表
*/
public static void getDynamicSendGiftList(String id, HttpCallback callback) {
public static void getDynamicSendGiftList(String id, int page, HttpCallback callback) {
HttpClient.getInstance().get("Community.getDynamicSendGiftList", MainHttpConsts.GET_DYNAMICSENDGIFTLIST)
.params("dynamic_id", id)
.params("page", page)
.execute(callback);
}
/**
* 是否是主播
*/

View File

@@ -0,0 +1,7 @@
package com.yunbao.main.interfaces;
import com.yunbao.common.bean.BattlePassUserInfoBean;
public interface BattlePassUserInfoListener {
BattlePassUserInfoBean getBattlePassUserInfo();
}

View File

@@ -8,6 +8,7 @@ import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.net.Uri;
import android.os.Build;
import android.os.Handler;
@@ -27,7 +28,15 @@ import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager;
import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
@@ -38,9 +47,12 @@ import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
import com.yunbao.common.bean.CoolConfig;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.LiveClassBean;
import com.yunbao.common.bean.NativeCallbackModel;
import com.yunbao.common.dialog.CinemaTicketPopupWindow;
import com.yunbao.common.dialog.WarOrderExchangeDetailsPopupWindow;
import com.yunbao.common.event.JavascriptInterfaceEvent;
import com.yunbao.common.fragment.BaseFragment;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.live.LiveNetManager;
@@ -61,16 +73,33 @@ import com.yunbao.live.views.LoadingView;
import com.yunbao.main.R;
import com.yunbao.main.activity.MainActivity;
import com.yunbao.main.activity.MyWalletActivity;
import com.yunbao.main.adapter.MainHomeLivesClassAdapter;
import com.yunbao.main.dialog.EncourageDialog;
import com.yunbao.main.fragment.BattlePassRewardFragment;
import com.yunbao.main.fragment.MainHomeCommunityFragment;
import com.yunbao.main.fragment.MainHomeCommunityVideoFragment;
import com.yunbao.main.fragment.SearchResultsFragment;
import com.yunbao.main.utils.BottomBarUtil;
import com.yunbao.share.ui.SharePopDialog;
import com.yunbao.video.activity.VideoPlayActivity;
import com.yunbao.video.utils.VideoStorge;
import net.lucode.hackware.magicindicator.MagicIndicator;
import net.lucode.hackware.magicindicator.ViewPagerHelper;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.CommonNavigator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.CommonNavigatorAdapter;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.abs.IPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.indicators.LinePagerIndicator;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.ColorTransitionPagerTitleView;
import net.lucode.hackware.magicindicator.buildins.commonnavigator.titles.SimplePagerTitleView;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;
/**
@@ -87,183 +116,138 @@ public class MainHomeCommunityViewHolder extends AbsMainHomeChildViewHolder impl
public ValueCallback<Uri> mValueCallback;
public ValueCallback<Uri[]> mValueCallback2;
private MainActivity nowMainActivity;
List<BaseFragment> fragments;
ViewPager2 viewPager;
private MagicIndicator mIndicator;
public MainHomeCommunityViewHolder(Context context, ViewGroup parentView, MainActivity mainActivity) {
super(context, parentView);
mContext = context;
nowMainActivity = mainActivity;
}
@Override
protected int getLayoutId() {
return R.layout.view_main_encourage;
return R.layout.view_main_community;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void init() {
Bus.getOn(this);
String url = HtmlConfig.ENCOURAGE + "?t=" + Math.random() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken()
+ "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
// String url = "https://api.coolydrama.com/?agentCode=186279";
final LinearLayout rootView = (LinearLayout) findViewById(R.id.rootView);
mProgressBar = (ProgressBar) findViewById(R.id.progressbar);
mWebView = new WebView(mContext);
int aa = BottomBarUtil.getNavigationBarHeightIfRoom(mContext);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
params.topMargin = DpUtil.dp2px(1);
mWebView.setLayoutParams(params);
mWebView.setOverScrollMode(View.OVER_SCROLL_NEVER);
LoadingView loadingView = new LoadingView(mContext);
loadingView.show();
rootView.addView(loadingView);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
CookieManager cookieManager = CookieManager.getInstance();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
cookieManager.setAcceptThirdPartyCookies(mWebView, true);
} else {
cookieManager.setAcceptCookie(true);
}
String appCachePath = mContext.getCacheDir().getAbsolutePath();
// mWebView.getSettings().setAppCachePath(appCachePath);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setUseWideViewPort(true); // 关键点
mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
mWebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);// 不加载缓存内容
mWebView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); // 是否允许JS打开新窗口
mWebView.addJavascriptInterface(JavascriptInterfaceUtils.getInstance().setmContext(nowMainActivity, mWebView), "androidObject");
//短剧
mWebView.addJavascriptInterface(JavascriptInterfacePlayLetUtils.getInstance().setmContext(nowMainActivity, mWebView), "jsBridge");
mWebView.getSettings().setSupportMultipleWindows(true);
rootView.addView(mWebView);
mWebView.setWebViewClient(new WebViewClient() {
mIndicator = (MagicIndicator) findViewById(R.id.indicator);
viewPager = (ViewPager2) findViewById(R.id.community_viewpager);
fragments = new ArrayList<>();
fragments.add(new MainHomeCommunityFragment(nowMainActivity));
fragments.add(new MainHomeCommunityVideoFragment());
viewPager.setAdapter(new FragmentStateAdapter(((AppCompatActivity) mContext)) {
@NonNull
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
L.e("H5-------->" + url);
if (url.startsWith(Constants.COPY_PREFIX)) {
String content = url.substring(Constants.COPY_PREFIX.length());
if (!TextUtils.isEmpty(content)) {
copy(content);
public Fragment createFragment(int position) {
return fragments.get(position);
}
@Override
public int getItemCount() {
return fragments.size();
}
@Override
public long getItemId(int position) {
return super.getItemId(position);
}
});
viewPager.setUserInputEnabled(false);
initTab();
}
@Override
public void onStart() {
super.onStart();
}
String[] titles;
private void initTab() {
titles = new String[]{"社區", "短劇"};
if (!WordUtil.isNewZh()) {
titles = new String[]{"Community", "Theater"};
}
CommonNavigator commonNavigator = new CommonNavigator(mContext);
commonNavigator.setAdjustMode(true);
commonNavigator.setAdapter(new CommonNavigatorAdapter() {
@Override
public int getCount() {
return titles.length;
}
@Override
public IPagerTitleView getTitleView(Context context, int index) {
SimplePagerTitleView simplePagerTitleView = new ColorTransitionPagerTitleView(context);
simplePagerTitleView.setNormalColor(Color.parseColor("#B1B1B1"));
simplePagerTitleView.setSelectedColor(Color.parseColor("#FFC621"));
simplePagerTitleView.setText(titles[index]);
simplePagerTitleView.setTextSize(18);
simplePagerTitleView.getPaint().setFakeBoldText(true);
simplePagerTitleView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (viewPager != null) {
viewPager.setCurrentItem(index);
}
}
} else {
view.loadUrl(url);
}
return true;
});
return simplePagerTitleView;
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
setTitle(view.getTitle());
if (url.contains("for")) {
mWebView.loadUrl("javascript:goAnchorTab()");
}
String userAgent = "shixinzhang";
String js = "window.localStorage.setItem('userAgent','" + userAgent + "');";
String jsUrl = "javascript:(function({ var localStorage = window.localStorage; localStorage.setItem('userAgent','" + userAgent + "') })()";
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
view.evaluateJavascript(js, null);
} else {
view.loadUrl(jsUrl);
view.reload();
}
public IPagerIndicator getIndicator(Context context) {
LinePagerIndicator linePagerIndicator = new LinePagerIndicator(context);
linePagerIndicator.setMode(LinePagerIndicator.MODE_WRAP_CONTENT);
linePagerIndicator.setXOffset(DpUtil.dp2px(5));
linePagerIndicator.setRoundRadius(DpUtil.dp2px(2));
linePagerIndicator.setColors(Color.parseColor("#FFC621"));
return linePagerIndicator;
}
});
mWebView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress == 100) {
loadingView.hide();
mProgressBar.setVisibility(View.GONE);
} else {
loadingView.show();
mProgressBar.setProgress(newProgress);
}
}
//以下是在各个Android版本中 WebView调用文件选择器的方法
// For Android < 3.0
public void openFileChooser(ValueCallback<Uri> valueCallback) {
openImageChooserActivity(valueCallback);
}
// For Android >= 3.0
public void openFileChooser(ValueCallback valueCallback, String acceptType) {
openImageChooserActivity(valueCallback);
}
//For Android >= 4.1
public void openFileChooser(ValueCallback<Uri> valueCallback,
String acceptType, String capture) {
openImageChooserActivity(valueCallback);
}
// For Android >= 5.0
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean onShowFileChooser(WebView webView,
ValueCallback<Uri[]> filePathCallback,
FileChooserParams fileChooserParams) {
mValueCallback2 = filePathCallback;
WebChromeClient.FileChooserParams mFileChooserParams;
mFileChooserParams = fileChooserParams;
String at = Arrays.toString(mFileChooserParams.getAcceptTypes());
String type;
if (at.contains("image/")) {//图片
type = "image/*";
} else if (at.contains("video/")) {
type = "video/*";
} else {
type = "*/*";
}
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(type);
nowMainActivity.startActivityMain2(intent, CHOOSE_ANDROID_5);
return true;
}
});
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
mWebView.loadUrl(url);
// findViewById(R.id.native_callback).setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View view) {
// mWebView.post(new Runnable() {
// @Override
// public void run() {
//
// NativeCallbackModel model = new NativeCallbackModel();
// model.setUid(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()));
// String nativeJson = new JsonUtil().toJson(model);
// mWebView.evaluateJavascript("javascript:nativeCallback('" +nativeJson + "')", new ValueCallback<String>() {
// @Override
// public void onReceiveValue(String value) {
// }
// });
//
// }
// });
// }
// });
mIndicator.setNavigator(commonNavigator);
bind(mIndicator, viewPager);
mIndicator.onPageSelected(0);
viewPager.setCurrentItem(0);
}
public void loadNewUrl() {
}
protected void setTitle(String title) {
TextView titleView = (TextView) findViewById(R.id.titleView);
if (titleView != null) {
titleView.setText(title);
public void onPauseVideo() {
if(fragments==null || fragments.isEmpty()){
return;
}
BaseFragment fragment = fragments.get(viewPager.getCurrentItem());
if(fragment==null){
return;
}
if (fragment instanceof MainHomeCommunityVideoFragment) {
// viewPager.setCurrentItem(0, false);
((MainHomeCommunityVideoFragment)fragment).onPausePlay();
}
}
public void onResumePlay() {
if(fragments==null || fragments.isEmpty()){
return;
}
BaseFragment fragment = fragments.get(viewPager.getCurrentItem());
if(fragment==null){
return;
}
if (fragment instanceof MainHomeCommunityVideoFragment) {
// viewPager.setCurrentItem(0, false);
((MainHomeCommunityVideoFragment)fragment).onResumePlay();
}
}
@@ -272,189 +256,42 @@ public class MainHomeCommunityViewHolder extends AbsMainHomeChildViewHolder impl
}
private void gotoLive(final String live_id) {
LiveHttpUtil.getLiveInfo(live_id + "", new HttpCallback() {
public static void bind(final MagicIndicator magicIndicator, ViewPager2 viewPager) {
viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0 && info.length > 0) {
LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
@Override
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
}
@Override
public void onCheckError(String contextError) {
}
});
} else {
RouteUtil.forwardUserHome(mContext, String.valueOf(live_id), 0);
}
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels);
}
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
magicIndicator.onPageSelected(position);
}
@Override
public void onPageScrollStateChanged(int state) {
super.onPageScrollStateChanged(state);
magicIndicator.onPageScrollStateChanged(state);
}
});
}
private void openImageChooserActivity(ValueCallback<Uri> valueCallback) {
mValueCallback = valueCallback;
Intent intent = new Intent();
if (Build.VERSION.SDK_INT < 19) {
intent.setAction(Intent.ACTION_GET_CONTENT);
} else {
intent.setAction(Intent.ACTION_PICK);
intent.setData(MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
}
intent.setType("image/*");
nowMainActivity.startActivityMain(Intent.createChooser(intent, mContext.getString(R.string.choose_flie)), CHOOSE);
// startActivityForResult(Intent.createChooser(intent,mContext.getString(R.string.choose_flie)), CHOOSE);
}
@Override
public void onDestroy() {
Bus.getOff(this);
if (mWebView != null) {
ViewGroup parent = (ViewGroup) mWebView.getParent();
if (parent != null) {
parent.removeView(mWebView);
}
mWebView.reload();
mWebView.destroy();
}
super.onDestroy();
}
/**
* 复制到剪贴板
*/
private void copy(String content) {
ClipboardManager cm = (ClipboardManager) mContext.getSystemService(CLIPBOARD_SERVICE);
ClipData clipData = ClipData.newPlainText("text", content);
cm.setPrimaryClip(clipData);
ToastUtil.show(mContext.getString(R.string.copy_success));
}
public void closeFinger() {
if (Build.VERSION.SDK_INT >= 21) {
mWebView.post(new Runnable() {
@Override
public void run() {
String method = "Left()";//拼接参数就可以把数据传递给js
mWebView.evaluateJavascript(method, new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.i("Log", "Left()js返回" + value);
}
});
}
});
} else {
mWebView.post(new Runnable() {
@Override
public void run() {
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mWebView.loadUrl("javascript:Left()");
}
});
}
});
BaseFragment fragment = fragments.get(viewPager.getCurrentItem());
if (fragment instanceof MainHomeCommunityFragment) {
((MainHomeCommunityFragment) fragment).closeFinger();
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onJavascriptInterfaceEvent(JavascriptInterfaceEvent event) {
if (!TextUtils.isEmpty(event.getMethod())) {
if (TextUtils.equals(event.getMethod(), "androidCommunityGift")) {
new Handler(Looper.getMainLooper()).post(new Runnable() {
public void run() {
EncourageDialog fragment = new EncourageDialog();
fragment.setId(event.getPostsId());
if (mContext instanceof MainActivity) {
fragment.show(((MainActivity) mContext).getSupportFragmentManager(), "EncourageDialog");
}
}
});
} else if (TextUtils.equals(event.getMethod(), "androidPlayVideo")) {
VideoStorge.getInstance().put(Constants.VIDEO_COMMUNITY, event.getVideoBeanList());
VideoPlayActivity.forward(mContext, event.getPosition(), Constants.VIDEO_COMMUNITY, 1);
} else if (TextUtils.equals(event.getMethod(), "androidMethodLookToLive")) {
//看直播
gotoLive(event.getLiveId());
} else if (TextUtils.equals(event.getMethod(), "isCloseNavigation")) {
if (nowMainActivity != null) {
nowMainActivity.isClose(event.getIsClose());
}
} else if (TextUtils.equals(event.getMethod(), "androidCommunityShare")) {
JSONObject json = JSONObject.parseObject(event.getData());
new SharePopDialog(mContext)
.setShareLink(CommonAppConfig.HOST + json.getString("link"))
.setAnchorAvatar(json.getString("avatar"))
.showDialog();
} else if (TextUtils.equals(event.getMethod(), "postWeakBalance")) {
LiveNetManager.get(mContext).
getCoolConfig(new com.yunbao.common.http.base.HttpCallback<CoolConfig>() {
@Override
public void onSuccess(CoolConfig data) {
new XPopup.Builder(mContext)
.enableDrag(false)
.autoOpenSoftInput(false)
.maxWidth(DeviceUtils.getScreenHeight((Activity) mContext) - DpUtil.dp2px(34))
.asCustom(new CinemaTicketPopupWindow(mContext, data.setTicketCount(event.getCoolConfig().getTicketCount()), new CinemaTicketPopupWindow.CinemaTicketPopupWindowCallBack() {
@Override
public void onCallBack(String data) {
if (TextUtils.equals(data, "2")) {
DialogUitl.showSimpleDialog(mContext, mContext.getString(com.yunbao.live.R.string.live_coin_not_enough), false,
new DialogUitl.SimpleCallback2() {
@Override
public void onConfirmClick(Dialog dialog, String content) {
mContext.startActivity(new Intent(mContext, MyWalletActivity.class).putExtra("p", 1));
}
@Override
public void onCancelClick() {
}
});
} else if (TextUtils.equals(data, "1")) {
ToastUtil.show(WordUtil.isNewZh() ? "兑换成功" : "Successful exchange");
mWebView.post(new Runnable() {
@Override
public void run() {
NativeCallbackModel model = new NativeCallbackModel();
model.setUid(String.valueOf(IMLoginManager.get(mContext).getUserInfo().getId()));
String nativeJson = new JsonUtil().toJson(model);
mWebView.evaluateJavascript("javascript:nativeCallback('" + nativeJson + "')", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
}
});
}
});
}
}
})).show();
}
@Override
public void onError(String error) {
ToastUtil.show(error);
}
});
public void setValueCallback2(Uri[] results) {
BaseFragment fragment = fragments.get(viewPager.getCurrentItem());
if (fragment instanceof MainHomeCommunityFragment) {
if (((MainHomeCommunityFragment) fragment).mValueCallback2 == null) {
return;
}
((MainHomeCommunityFragment) fragment).mValueCallback2.onReceiveValue(results);
((MainHomeCommunityFragment) fragment).mValueCallback2 = null;
}
}

View File

@@ -17,7 +17,7 @@ import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.enums.PopupPosition;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.activity.SudGameActivity;
import com.yunbao.live.activity.SudGameActivity;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.adapter.SudGameListAdapter;
import com.yunbao.common.bean.CreateSudRoomModel;

View File

@@ -1,6 +1,8 @@
package com.yunbao.main.views;
import android.content.Context;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
@@ -8,6 +10,7 @@ import android.widget.ImageView;
import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.main.R;
/**
@@ -40,6 +43,13 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
ImgLoader.display(mContext, "https://downs.yaoulive.com/gif_trophy.gif", img_trophy);
/* img_trophy.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
return true;
}
});*/
}
public void setCurPosition(int position) {
@@ -107,7 +117,6 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
@Override
public void onResume() {
super.onResume();
mViewHolders[mViewPager.getCurrentItem()].onResume();
}
@Override

View File

@@ -5,6 +5,7 @@ import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import android.graphics.Outline;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -34,7 +35,6 @@ import com.yunbao.common.Constants;
import com.yunbao.common.HtmlConfig;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.GoogleBean;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.UserItemBean;
import com.yunbao.common.event.CompleteInformationEvent;
@@ -55,6 +55,7 @@ import com.yunbao.live.activity.LiveRecordActivity;
import com.yunbao.live.activity.RoomManageActivity;
import com.yunbao.live.activity.WebViewActivityMedal;
import com.yunbao.live.bean.SlideBean;
import com.yunbao.live.utils.LiveTextRender;
import com.yunbao.live.views.CustomMyViewHolder;
import com.yunbao.main.R;
import com.yunbao.main.activity.EditProfileActivity;
@@ -251,10 +252,10 @@ public class MainMeViewHolder extends AbsMainViewHolder implements OnItemClickLi
coin.setText(coins);
}
BigDecimal yuanbao = new BigDecimal(yuanbaos);
String yuanbaoStr =String.valueOf(yuanbao.intValue());
String yuanbaoStr = String.valueOf(yuanbao.intValue());
if (yuanbaoStr.length() > 9) {
star_coin.setText(yuanbaoStr.substring(0,yuanbaoStr.length() - 6) + "M");
} else if (yuanbaoStr.length()>7) {
star_coin.setText(yuanbaoStr.substring(0, yuanbaoStr.length() - 6) + "M");
} else if (yuanbaoStr.length() > 7) {
star_coin.setText(yuanbaoStr.substring(0, yuanbaoStr.length() - 3) + "K");
} else {
star_coin.setText(yuanbaos);
@@ -326,7 +327,6 @@ public class MainMeViewHolder extends AbsMainViewHolder implements OnItemClickLi
}
signature.setText(singnature);
CommonAppConfig appConfig = CommonAppConfig.getInstance();
LevelBean anchorLevelBean = appConfig.getAnchorLevel(u.getLevelAnchor());
if (u.getDress().getAvatar_frame() != null) {
if (u.getDress().getAvatar_frame().contains("svga")) {
@@ -360,36 +360,44 @@ public class MainMeViewHolder extends AbsMainViewHolder implements OnItemClickLi
if ("C".equals(u.getUsers_type())) {
Constants.isAnchor = true;
good_nub_ico.setImageResource(R.mipmap.usercard_good_nub);
if (anchorLevelBean != null) {
ImgLoader.display(mContext, CommonAppConfig.getInstance().HOST + anchorLevelBean.getThumb(), mLevel);
ImgLoader.display(mContext, R.mipmap.icon_zhubolv, img_lv_pic);
//主播等级
tv_level.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MobclickAgent.onEvent(mContext, "my_top_level", "个人中心最上面的等级");
String url = CommonAppConfig.HOST + "/h5/Grade/index.html?" + "token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&for";
ZhuangBanActivity.forward(mContext, url);
}
});
tv_level.setText(anchorLevelBean.getLevel() + "");
}
ImgLoader.display(mContext, R.mipmap.icon_zhubolv, img_lv_pic);
//主播等级
tv_level.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MobclickAgent.onEvent(mContext, "my_top_level", "个人中心最上面的等级");
String url = CommonAppConfig.HOST + "/h5/Grade/index.html?" + "token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&for";
ZhuangBanActivity.forward(mContext, url);
}
});
tv_level.setText(u.getLevel() + "");
} else {
Constants.isAnchor = false;
LevelBean levelBean = appConfig.getLevel(u.getLevel());
if (levelBean != null) {
ImgLoader.display(mContext, levelBean.getThumb(), mLevel);
//用户等级
tv_level.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MobclickAgent.onEvent(mContext, "my_top_level", "个人中心最上面的等级");
String url = CommonAppConfig.HOST + "/h5/Grade/index.html?" + "token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
ZhuangBanActivity.forward(mContext, url);
}
});
tv_level.setText(levelBean.getLevel() + "");
}
new LiveTextRender().getLevelImage(mContext, u.getLevel(), new ImgLoader.DrawableCallback() {
@Override
public void onLoadSuccess(Drawable drawable) {
ImgLoader.display2(mContext, drawable, mLevel);
}
@Override
public void onLoadFailed() {
}
});
//用户等级
tv_level.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
MobclickAgent.onEvent(mContext, "my_top_level", "个人中心最上面的等级");
String url = CommonAppConfig.HOST + "/h5/Grade/index.html?" + "token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isZh=" + ((IMLoginManager.get(CommonAppContext.sInstance.getBaseContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0");
ZhuangBanActivity.forward(mContext, url);
}
});
tv_level.setText(u.getLevel() + "");
}
//修改靓号图标 个人中心
if (u.getGoodnum() != null && !u.getGoodnum().equals("")) {

View File

@@ -3,8 +3,7 @@ package com.yunbao.main.views;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
@@ -14,6 +13,9 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser;
@@ -22,12 +24,13 @@ import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.WebViewActivity;
import com.yunbao.common.bean.GoogleBean;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.bean.UserItemBean;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
import com.yunbao.common.utils.WordUtil;
@@ -35,6 +38,7 @@ import com.yunbao.common.views.AbsMainViewHolder;
import com.yunbao.live.activity.LiveRecordActivity;
import com.yunbao.live.activity.RoomManageActivity;
import com.yunbao.live.activity.WebViewActivityMedal;
import com.yunbao.live.utils.LiveTextRender;
import com.yunbao.main.R;
import com.yunbao.main.activity.EditProfileActivity;
import com.yunbao.main.activity.FansActivity;
@@ -77,7 +81,7 @@ public class MainMeViewHolder1 extends AbsMainViewHolder implements OnItemClickL
private View v_noble;
// private LinearLayout btnUserNoble;
private ImageView user_noble_ico, good_nub_ico;
private TextView user_noble_text;
private TextView user_noble_text, leave;
private UserItemBean beanStetting = null, beanKefu = null;
private boolean firstInto = true;
@@ -124,6 +128,7 @@ public class MainMeViewHolder1 extends AbsMainViewHolder implements OnItemClickL
btnCopy = (TextView) findViewById(R.id.btn_copy);
// btnUserNoble = (LinearLayout) findViewById(R.id.btn_user_noble);
user_noble_text = (TextView) findViewById(R.id.user_noble_text);
leave = (TextView) findViewById(R.id.leave);
img_kefu = (ImageView) findViewById(R.id.img_kefu);
img_setting = (ImageView) findViewById(R.id.img_setting);
@@ -148,16 +153,16 @@ public class MainMeViewHolder1 extends AbsMainViewHolder implements OnItemClickL
mLevelAnchor.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Level&a=index" + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0") + "&for";
WebViewActivity.forward(mContext, url,false);
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Level&a=index" + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0") + "&for";
WebViewActivity.forward(mContext, url, false);
}
});
//用户等级
mLevel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Level&a=index" + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
WebViewActivity.forward(mContext, url,false);
String url = CommonAppConfig.HOST + "/index.php?g=Appapi&m=Level&a=index" + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isZh=" + (WordUtil.isNewZh() ? "1" : "0");
WebViewActivity.forward(mContext, url, false);
}
});
@@ -258,7 +263,7 @@ public class MainMeViewHolder1 extends AbsMainViewHolder implements OnItemClickL
gold.setText(u.getCoin());
signature.setText(u.getSignature());
CommonAppConfig appConfig = CommonAppConfig.getInstance();
LevelBean anchorLevelBean = appConfig.getAnchorLevel(u.getLevelAnchor());
if (u.getDress().getAvatar_frame() != null) {
if (u.getDress().getAvatar_frame().contains("svga")) {
@@ -290,13 +295,30 @@ public class MainMeViewHolder1 extends AbsMainViewHolder implements OnItemClickL
user_noble_ico.setImageResource(R.mipmap.df_nobe);
}
if (anchorLevelBean != null) {
ImgLoader.display(mContext, CommonAppConfig.getInstance().HOST + anchorLevelBean.getThumb(), mLevelAnchor);
}
LevelBean levelBean = appConfig.getLevel(u.getLevel());
if (levelBean != null) {
ImgLoader.display(mContext, levelBean.getThumb(), mLevel);
List<NewLevelModel> models = new NewLevelManager(mContext).getNewAnchorLevelModels();
int anchorLevel = 0;
anchorLevel = u.getLevelAnchor();
String imgUrl = "";
for (NewLevelModel newLevelModel : models) {
if (newLevelModel.getLeveMin() <= anchorLevel && anchorLevel <= newLevelModel.getLeveMax()) {
imgUrl = newLevelModel.getThumb();
}
}
leave.setText(String.valueOf(u.getLevelAnchor()));
ImgLoader.display(mContext, imgUrl, mLevelAnchor);
new LiveTextRender().getLevelImage(mContext, u.getLevel(), new ImgLoader.DrawableCallback() {
@Override
public void onLoadSuccess(Drawable drawable) {
ImgLoader.display2(mContext, drawable, mLevel);
}
@Override
public void onLoadFailed() {
}
});
//修改靓号图标 个人中心
if (u.getGoodnum() != null && !u.getGoodnum().equals("")) {
good_nub_ico.setVisibility(View.VISIBLE);
@@ -373,7 +395,7 @@ public class MainMeViewHolder1 extends AbsMainViewHolder implements OnItemClickL
Log.i("tsa", url);
RewardActivity.forward(mContext, url);
} else {
WebViewActivity.forward(mContext, url,false);
WebViewActivity.forward(mContext, url, false);
}
}
@@ -401,12 +423,12 @@ public class MainMeViewHolder1 extends AbsMainViewHolder implements OnItemClickL
} else if (i == R.id.btn_gold) {
mContext.startActivity(new Intent(mContext, MyWalletActivity.class).putExtra("p", 0));
} else if (i == R.id.rt_kefu) {
WebViewActivity.forward(mContext, beanKefu.getHref(),false);
WebViewActivity.forward(mContext, beanKefu.getHref(), false);
} else if (i == R.id.rt_setting) {
forwardSetting();
} else if (i == R.id.v_noble) {
UserBean u = CommonAppConfig.getInstance().getUserBean();
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname=" + u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid()+ "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
String url = CommonAppConfig.HOST + "/h5/Noble/index.html?nickname=" + u.getUserNiceName() + "&usernobId=" + u.getNoble_id() + "&token=" + CommonAppConfig.getInstance().getToken() + "&uid=" + CommonAppConfig.getInstance().getUid() + "&isZh=" + (WordUtil.isNewZh() ? "1" : 0);
ZhuangBanActivity.forward(mContext, url, false);
}

View File

@@ -1,5 +1,6 @@
package com.yunbao.main.views;
import android.graphics.drawable.Drawable;
import android.text.Html;
import android.text.Spanned;
import android.text.TextUtils;
@@ -13,8 +14,6 @@ import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.bean.SearchModel;
import com.yunbao.common.glide.ImgLoader;
@@ -23,6 +22,7 @@ import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.utils.WordsTypeUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import com.yunbao.live.utils.LiveTextRender;
import com.yunbao.main.R;
import com.yunbao.main.event.JumpUserHomeEvent;
@@ -72,14 +72,22 @@ public class SearchResultsViewHolder extends RecyclerView.ViewHolder {
ImgLoader.displayAvatar(itemView.getContext(), model.getAvatar(), avatar);
Glide.with(itemView.getContext())
.asGif()
.load(WordUtil.isNewZh()?R.mipmap.icon_user_home_living:R.mipmap.icon_user_home_living_en).skipMemoryCache(false)
.load(WordUtil.isNewZh() ? R.mipmap.icon_user_home_living : R.mipmap.icon_user_home_living_en).skipMemoryCache(false)
.into(isLive);
//用戶直接隱藏
if (type == 3) {
LevelBean levelBean = CommonAppConfig.getInstance().getLevel(Integer.parseInt(model.getLevel()));
if (levelBean != null) {
ImgLoader.display(itemView.getContext(), levelBean.getThumb(), contribute);
}
new LiveTextRender().getLevelImage(itemView.getContext(), Integer.parseInt(model.getLevel()), new ImgLoader.DrawableCallback() {
@Override
public void onLoadSuccess(Drawable drawable) {
ImgLoader.display2(itemView.getContext(), drawable, contribute);
}
@Override
public void onLoadFailed() {
}
});
isLive.setVisibility(View.GONE);
} else {
List<NewLevelModel> models = new NewLevelManager(itemView.getContext()).getNewAnchorLevelModels();

View File

@@ -4,9 +4,7 @@ import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import com.google.android.material.appbar.AppBarLayout;
import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.ViewPager;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
@@ -16,24 +14,28 @@ import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.ViewPager;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.google.android.material.appbar.AppBarLayout;
import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.Constants;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.adapter.ViewPagerAdapter;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.bean.UserBean;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.WordUtil;
import com.yunbao.live.activity.LiveContributeActivity;
import com.yunbao.live.activity.LiveGuardListActivity;
import com.yunbao.live.activity.SystemMessageActivity;
@@ -42,6 +44,7 @@ import com.yunbao.live.bean.SearchUserBean;
import com.yunbao.live.custom.MyTextView;
import com.yunbao.live.dialog.LiveShareDialogFragment;
import com.yunbao.live.presenter.UserHomeSharePresenter;
import com.yunbao.live.utils.LiveTextRender;
import com.yunbao.live.views.AbsLivePageViewHolder;
import com.yunbao.live.views.AbsUserHomeViewHolder;
import com.yunbao.live.views.LiveRecordViewHolder;
@@ -87,7 +90,7 @@ public class UserHomeViewHolder extends AbsLivePageViewHolder implements AppBarL
private AppBarLayout mAppBarLayout;
private ImageView mAvatarBg;
private ImageView mAvatar;
private TextView mName;
private TextView mName, leave;
private ImageView mSex;
private ImageView mLevelAnchor;
private ImageView mLevel;
@@ -158,6 +161,7 @@ public class UserHomeViewHolder extends AbsLivePageViewHolder implements AppBarL
mAvatarBg = (ImageView) findViewById(R.id.bg_avatar);
mAvatar = (ImageView) findViewById(R.id.avatar);
mName = (TextView) findViewById(R.id.name);
leave = (TextView) findViewById(R.id.leave);
mSex = (ImageView) findViewById(R.id.sex);
mLevelAnchor = (ImageView) findViewById(R.id.level_anchor);
mLevel = (ImageView) findViewById(R.id.level);
@@ -205,8 +209,8 @@ public class UserHomeViewHolder extends AbsLivePageViewHolder implements AppBarL
}
});
mVideoString =mContext.getString(R.string.video);
mLiveString =mContext.getString(R.string.live);
mVideoString = mContext.getString(R.string.video);
mLiveString = mContext.getString(R.string.live);
mIndicator = (MagicIndicator) findViewById(R.id.indicator);
final String[] titles = new String[]{mVideoString, mLiveString};
CommonNavigator commonNavigator = new CommonNavigator(mContext);
@@ -354,15 +358,32 @@ public class UserHomeViewHolder extends AbsLivePageViewHolder implements AppBarL
mTitleView.setText(toName);
mSex.setImageResource(CommonIconUtil.getSexIcon(userBean.getSex()));
CommonAppConfig appConfig = CommonAppConfig.getInstance();
LevelBean levelAnchor = appConfig.getAnchorLevel(userBean.getLevelAnchor());
ImgLoader.display(mContext, levelAnchor.getThumb(), mLevelAnchor);
LevelBean level = appConfig.getLevel(userBean.getLevel());
ImgLoader.display(mContext, level.getThumb(), mLevel);
List<NewLevelModel> models = new NewLevelManager(mContext).getNewAnchorLevelModels();
int anchorLevel = 0;
anchorLevel = userBean.getLevelAnchor();
String imgUrl = "";
for (NewLevelModel newLevelModel : models) {
if (newLevelModel.getLeveMin() <= anchorLevel && anchorLevel <= newLevelModel.getLeveMax()) {
imgUrl = newLevelModel.getThumb();
}
}
leave.setText(String.valueOf(anchorLevel));
ImgLoader.display(mContext, imgUrl, mLevelAnchor);
new LiveTextRender().getLevelImage(mContext, userBean.getLevel(), new ImgLoader.DrawableCallback() {
@Override
public void onLoadSuccess(Drawable drawable) {
ImgLoader.display2(mContext, drawable, mLevel);
}
@Override
public void onLoadFailed() {
}
});
mID.setText(userBean.getLiangNameTip());
String fansNum = StringUtil.toWan(userBean.getFans());
mBtnFans.setText(fansNum + " " +mContext.getString(R.string.fans));
mBtnFollow.setText(StringUtil.toWan(userBean.getFollows()) + " " +mContext.getString(R.string.follow));
mBtnFans.setText(fansNum + " " + mContext.getString(R.string.fans));
mBtnFollow.setText(StringUtil.toWan(userBean.getFollows()) + " " + mContext.getString(R.string.follow));
mSign.setText(userBean.getSignature());
mBtnFollow2.setText(obj.getIntValue("isattention") == 1 ? R.string.following : R.string.follow);
mBtnBlack.setText(obj.getIntValue("isblack") == 1 ? R.string.black_ing : R.string.black);
@@ -374,7 +395,7 @@ public class UserHomeViewHolder extends AbsLivePageViewHolder implements AppBarL
mLiveCountTextView.setText(mLiveString + " " + obj.getString("livenums"));
}
showImpress(obj.getString("label"));
mVotesName.setText(appConfig.getVotesName() +mContext.getString(R.string.live_user_home_con));
mVotesName.setText(appConfig.getVotesName() + mContext.getString(R.string.live_user_home_con));
mUserHomeSharePresenter.setToUid(mToUid).setToName(toName).setAvatarThumb(userBean.getAvatarThumb()).setFansNum(fansNum);
showContribute(obj.getString("contribute"));
showGuardList(obj.getString("guardlist"));
@@ -396,7 +417,7 @@ public class UserHomeViewHolder extends AbsLivePageViewHolder implements AppBarL
}
if (!mSelf) {
ImpressBean lastBean = new ImpressBean();
lastBean.setName("+ " +mContext.getString(R.string.impress_add));
lastBean.setName("+ " + mContext.getString(R.string.impress_add));
lastBean.setColor("#ffdd00");
list.add(lastBean);
} else {

View File

@@ -35,15 +35,21 @@ import com.yunbao.common.adapter.ViewPagerAdapter;
import com.yunbao.common.bean.ConfigBean;
import com.yunbao.common.bean.LevelBean;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.bean.NewLevelModel;
import com.yunbao.common.event.FollowEvent;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.event.UpdateFieldEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.http.CommonHttpConsts;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.manager.NewLevelManager;
import com.yunbao.common.utils.CommonIconUtil;
import com.yunbao.common.utils.DialogUitl;
import com.yunbao.common.utils.DpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.common.utils.MicStatusManager;
import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SVGAViewUtils;
@@ -52,11 +58,8 @@ import com.yunbao.common.utils.ToastUtil;
import com.yunbao.live.activity.LiveReportActivity;
import com.yunbao.live.bean.SearchUserBean;
import com.yunbao.live.dialog.LiveShareDialogFragment;
import com.yunbao.common.event.LiveRoomChangeEvent;
import com.yunbao.common.http.LiveHttpConsts;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
import com.yunbao.live.presenter.UserHomeSharePresenter;
import com.yunbao.live.utils.LiveTextRender;
import com.yunbao.live.views.AbsLivePageViewHolder;
import com.yunbao.live.views.AbsUserHomeViewHolder;
import com.yunbao.live.views.LiveRecordViewHolder;
@@ -112,7 +115,7 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
private ImageView mLevel;
private TextView mID;
private View mBtnLive;
private TextView mBtnFans;
private TextView mBtnFans , leave;;
private TextView mBtnFollow;
private ImageView mFollowImage;
private int isblack;
@@ -166,7 +169,7 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
}
String s =mContext.getString(R.string.black);
String s = mContext.getString(R.string.black);
@Override
public void init() {
@@ -266,6 +269,7 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
mID = (TextView) findViewById(R.id.id_val);
good_nub_ico = (ImageView) findViewById(R.id.good_nub_ico);
mBtnFans = (TextView) findViewById(R.id.btn_fans);
leave = (TextView) findViewById(R.id.leave);
mBtnFollow = (TextView) findViewById(R.id.btn_follow);
gift_svga = (SVGAImageView) findViewById(com.yunbao.live.R.id.gift_svga);
mAvatar = (ImageView) findViewById(R.id.avatar);
@@ -316,8 +320,8 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
}
});
mVideoString =mContext.getString(R.string.video);
mLiveString =mContext.getString(R.string.honor);
mVideoString = mContext.getString(R.string.video);
mLiveString = mContext.getString(R.string.honor);
mIndicator = (MagicIndicator) findViewById(R.id.indicator);
final String[] titles = new String[]{mContext.getString(R.string.live_user_home_detail), mLiveString, mVideoString,};
// final String[] titles = new String[]{mContext.getString(R.string.live_user_home_detail), mVideoString}; //mxj update 2019-9-19
@@ -500,11 +504,30 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
mName.setText(toName);
mSex.setImageResource(CommonIconUtil.getSexIcon(userBean.getSex()));
CommonAppConfig appConfig = CommonAppConfig.getInstance();
LevelBean levelAnchor = appConfig.getAnchorLevel(userBean.getLevelAnchor());
Log.i("Tag", CommonAppConfig.getInstance().HOST + levelAnchor.getThumb());
ImgLoader.display(mContext, CommonAppConfig.getInstance().HOST + levelAnchor.getThumb(), mLevelAnchor);
LevelBean level = appConfig.getLevel(userBean.getLevel());
ImgLoader.display(mContext, level.getThumb(), mLevel);
List<NewLevelModel> models = new NewLevelManager(mContext).getNewAnchorLevelModels();
int anchorLevel = 0;
anchorLevel = userBean.getLevelAnchor();
String imgUrl = "";
for (NewLevelModel newLevelModel : models) {
if (newLevelModel.getLeveMin() <= anchorLevel && anchorLevel <= newLevelModel.getLeveMax()) {
imgUrl = newLevelModel.getThumb();
}
}
leave.setText(String.valueOf(userBean.getLevelAnchor()));
ImgLoader.display(mContext, imgUrl, mLevelAnchor);
new LiveTextRender().getLevelImage(mContext, userBean.getLevel(), new ImgLoader.DrawableCallback() {
@Override
public void onLoadSuccess(Drawable drawable) {
ImgLoader.display2(mContext, drawable, mLevel);
}
@Override
public void onLoadFailed() {
}
});
//修改靓号图标 个人中心子页面
if (userBean.getGoodnum() != null && !userBean.getGoodnum().equals("")) {
good_nub_ico.setVisibility(View.VISIBLE);
@@ -515,8 +538,8 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
}
// mID.setText(" "+userBean.getLiangNameTip());
String fansNum = StringUtil.toWan(userBean.getFans());
mBtnFans.setText(fansNum + " " +mContext.getString(R.string.fans));
mBtnFollow.setText(StringUtil.toWan(userBean.getFollows()) + " " +mContext.getString(R.string.follow));
mBtnFans.setText(fansNum + " " + mContext.getString(R.string.fans));
mBtnFollow.setText(StringUtil.toWan(userBean.getFollows()) + " " + mContext.getString(R.string.follow));
if (obj.getIntValue("isattention") == 1) {
if (mFollowImage != null) {
@@ -774,7 +797,7 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
if (mFromLiveRoom) {
if(MicStatusManager.getInstance().isMic(liveUid)){
if (MicStatusManager.getInstance().isMic(liveUid)) {
MicStatusManager.getInstance().showDownMicDialog(mContext);
return;
}
@@ -864,8 +887,8 @@ public class UserHomeViewHolder2 extends AbsLivePageViewHolder implements LiveSh
mSex.setImageResource(CommonIconUtil.getSexIcon(userBean.getSex()));
mID.setText(userBean.getLiangNameTip());
String fansNum = StringUtil.toWan(userBean.getFans());
mBtnFans.setText(fansNum + " " +mContext.getString(R.string.fans));
mBtnFollow.setText(StringUtil.toWan(userBean.getFollows()) + " " +mContext.getString(R.string.follow));
mBtnFans.setText(fansNum + " " + mContext.getString(R.string.fans));
mBtnFollow.setText(StringUtil.toWan(userBean.getFollows()) + " " + mContext.getString(R.string.follow));
if (mDetailViewHolder != null) {
mDetailViewHolder.refreshData(userBean, obj);
}

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="65dp" android:height="30dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#EF8311" android:endColor="#FFCE47" android:angle="90" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="65dp" android:height="30dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#B94FFF" android:endColor="#ffeba7ff" android:angle="90" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="65dp" android:height="30dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#D7D2FC" android:endColor="#C9D7FE" android:angle="90" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="65dp" android:height="30dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#9935FF" android:endColor="#ffeba7ff" android:angle="90" />
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="315dp" android:height="71dp">
<shape android:shape="rectangle">
<gradient android:type="linear" android:useLevel="true" android:startColor="#ff6378ff" android:endColor="#ff6e53ff" android:angle="180" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="6dp" android:bottomRightRadius="6dp" />
</shape>
</item>
</selector>

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="#FFF" />
<corners android:radius="270dp" />
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:width="27dp" android:height="16dp">
<shape android:shape="rectangle">
<solid android:color="#FFECA9" />
<corners android:topLeftRadius="8dp" android:topRightRadius="8dp" android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" />
</shape>
</item>
<item android:top="0.3dp" android:bottom="0.3dp" android:left="0.3dp" android:right="0.3dp">
<shape android:shape="rectangle">
<solid android:color="#ff342524" />
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
<shape android:shape="rectangle">
<solid android:color="#FFFCEA" />
<corners android:radius="270dp" />
</shape>
</item>
<item android:left="1.9dp"
android:right="1.9dp"
android:top="1.9dp"
android:bottom="1.9dp">
<shape android:shape="rectangle">
<solid android:color="#FFD89F" />
<corners android:radius="270dp" />
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--设置ProgressBar背景色-->
<item android:id="@android:id/background">
<shape>
<!--设置ProgressBar进度条圆角半径-->
<corners android:radius="3dp" />
<solid android:color="#DFD5FC" />
</shape>
</item>
<!--设置ProgressBar进度条颜色-->
<item android:id="@android:id/progress">
<scale android:scaleWidth="100%">
<shape>
<corners android:radius="3dp" />
<gradient
android:endColor="#fff"
android:startColor="#fff" />
</shape>
</scale>
</item>
</layer-list>

View File

@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/background_order_dialog_out_layout">
<shape android:shape="oval" >
<corners android:radius="20dp" />
<solid android:color="#CCBEF3" />
</shape>
</item>
<item android:bottom="8dp" android:top="8dp" android:left="8dp" android:right="8dp">
<shape android:shape="rectangle">
<corners android:radius="25dp" />
<solid android:color="#6781E6" />
</shape>
</item>
<item android:bottom="15dp" android:top="15dp" android:left="15dp" android:right="15dp">
<shape android:shape="rectangle">
<corners android:radius="20dp" />
<solid android:color="#fff" />
</shape>
</item>
</layer-list>

View File

@@ -0,0 +1,97 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:background="#140F1F"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView9"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:src="@mipmap/bg_zl"
android:scaleType="fitStart"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="15dp"
android:orientation="vertical"
android:layout_marginTop="30dp"
android:layout_marginEnd="15dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.56">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_back"
android:onClick="backClick"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/rule"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_rule"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_marginTop="8dp"
android:orientation="horizontal"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="35dp">
<ImageView
android:id="@+id/tab_1"
android:layout_width="100dp"
android:layout_marginEnd="9.5dp"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_tab1" />
<ImageView
android:id="@+id/tab_2"
android:layout_marginEnd="9.5dp"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_tab2_unselect" />
<ImageView
android:id="@+id/tab_3"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_tab3_unselect" />
</LinearLayout>
<include
layout="@layout/view_battlepass_user"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/context_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:background="@drawable/background_order_dialog" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -21,7 +21,6 @@
<RelativeLayout
android:layout_width="match_parent"
android:background="@color/color_b14066"
android:layout_height="match_parent">
<ProgressBar
@@ -33,7 +32,7 @@
<LinearLayout
android:id="@+id/rootView"
android:background="@drawable/backgroud_custom_drawer_popup"
android:background="#FFF"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" />

View File

@@ -406,7 +406,7 @@
android:orientation="vertical"
android:visibility="visible">
<androidx.recyclerview.widget.RecyclerView
<com.yunbao.common.custom.CommonRefreshView
android:id="@+id/rc_encourage"
android:layout_width="match_parent"
android:layout_height="match_parent"

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="20dp"
android:layout_marginTop="18dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="22dp"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0"
app:spanCount="3"
tools:listitem="@layout/item_battlepass_exchange" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:layout_marginTop="18dp"
android:layout_marginBottom="22dp"
android:layout_marginStart="25dp"
android:layout_marginEnd="25dp"
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_battlepass_mission_type_mission"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_marginStart="45dp"
android:layout_marginBottom="20dp"
android:orientation="horizontal">
<ImageView
android:id="@+id/tab_1"
android:layout_width="90dp"
android:layout_height="40dp"
android:src="@mipmap/ic_reward_tab_normal" />
<ImageView
android:id="@+id/tab_2"
android:layout_width="90dp"
android:layout_height="40dp"
android:src="@mipmap/ic_reward_tab_upgrade_unselect" />
<ImageView
android:id="@+id/tab_3"
android:layout_width="90dp"
android:layout_height="40dp"
android:src="@mipmap/ic_reward_tab_ultimate_unselect" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="5dp"
android:layout_marginBottom="20dp"
android:layout_weight="1"
tools:listitem="@layout/item_battlepass_reward_type_top" />
</LinearLayout>

View File

@@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="100dp"
android:gravity="center"
android:layout_height="200dp"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tab_1_layout"
android:layout_width="73dp"
android:layout_height="75dp"
android:layout_marginTop="5dp"
android:background="@mipmap/bg_zl_battlepass_reward_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/tab_1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_integral"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/mark_layout"
android:layout_width="66dp"
android:layout_height="23.5dp"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="@+id/tab_1"
android:background="@mipmap/bg_battlepass_reward_item_mark"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/mark_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="#FFF"
android:textSize="9sp"
android:gravity="center"
tools:text="戰令5級解鎖\n123" />
</LinearLayout>
<ImageView
android:id="@+id/indicator"
android:layout_width="wrap_content"
android:visibility="gone"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_battlpas_exchange_subscript"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginTop="8dp"
tools:text="彩鑽之翼(92天)"
android:gravity="center"
android:layout_gravity="center"
android:textColor="#0D21B2"
android:textSize="14sp"
android:textStyle="bold"
android:maxLines="2"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
android:layout_marginStart="2dp"
android:layout_marginEnd="2dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tab_1_layout" />
<TextView
android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="@string/battlepass_integral"
android:textColor="#CE2BFF"
android:textSize="13sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
<Button
android:id="@+id/submit"
android:layout_width="65dp"
android:layout_height="31dp"
android:layout_marginTop="10dp"
android:autoSizeTextType="uniform"
android:textAllCaps="false"
android:background="@mipmap/bg_zl_battlepass_exchange_btn_exchange"
android:text="兌換\n(0/10)"
android:textColor="#FFF"
app:autoSizeMaxTextSize="13sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/content" />
</LinearLayout>

View File

@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/bg_battlepass_mission_item"
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:layout_height="80dp">
<ImageView
android:id="@+id/icon"
android:layout_width="49dp"
android:layout_height="49dp"
android:layout_marginStart="13dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@mipmap/icon_live_record_play" />
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="10dp"
android:text="每日簽到0/1\nnn123"
android:textColor="#F2F9FF"
android:textStyle="bold"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
android:maxLines="2"
app:layout_constraintEnd_toStartOf="@+id/submit"
app:layout_constraintStart_toEndOf="@+id/icon"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/content"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:layout_marginTop="2dp"
android:text="獎勵100經驗值/次\n123"
android:textColor="#F2F9FF"
android:textSize="12sp"
app:autoSizeMaxTextSize="14sp"
app:autoSizeMinTextSize="5sp"
app:autoSizeStepGranularity="1sp"
app:autoSizeTextType="uniform"
android:maxLines="2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/submit"
app:layout_constraintStart_toEndOf="@+id/icon"
app:layout_constraintTop_toBottomOf="@+id/title" />
<Button
android:id="@+id/submit"
android:layout_width="65dp"
android:layout_height="30dp"
android:layout_marginEnd="12dp"
android:text="@string/battlepass_mission_submit_btn_unfinished"
android:textAllCaps="false"
android:textColor="#FFFFFF"
android:background="@drawable/bg_battlepass_mission_btn_unfinished"
android:textSize="14sp"
android:stateListAnimator="@null"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="@string/battlepass_mission_line_title_daily"
android:textColor="#0D21B2"
android:textSize="16sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,280 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="130dp">
<View
android:id="@+id/line_bg"
android:layout_width="6dp"
android:layout_height="match_parent"
android:background="#8D8E9C"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/reward_lv"
app:layout_constraintStart_toStartOf="@+id/reward_lv"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/line"
android:layout_width="2dp"
android:layout_height="match_parent"
android:background="#FFAC5D"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/line_bg"
app:layout_constraintStart_toStartOf="@+id/line_bg"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/reward_lv"
android:layout_width="27dp"
android:layout_height="16dp"
android:layout_marginStart="8dp"
android:layout_marginTop="3dp"
android:background="@drawable/bg_text_battlepass_reward_lv"
android:text="v1"
android:textColor="#FFECA9"
android:textSize="11sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/point"
android:layout_width="7dp"
android:layout_height="7dp"
android:layout_marginBottom="70dp"
android:background="@drawable/bg_text_battlepass_reward_point"
app:layout_constraintEnd_toEndOf="@+id/reward_lv"
app:layout_constraintStart_toStartOf="@+id/reward_lv"
app:layout_constraintBottom_toBottomOf="parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:orientation="horizontal"
app:layout_constraintStart_toEndOf="@+id/reward_lv"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tab_1_layout"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dp">
<ImageView
android:id="@+id/tab_1_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/bg_zl_battlepass_reward_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/tab_1"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@mipmap/ic_integral"
app:layout_constraintBottom_toBottomOf="@id/tab_1_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tab_1_bg" />
<ImageView
android:id="@+id/tab_1_unlock"
android:layout_width="match_parent"
android:layout_height="0dp"
android:src="@mipmap/bg_zl_battlepass_reward_item_unlock"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tab_1_bg" />
<ImageView
android:id="@+id/tab_1_item_unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_battlepass_reward_item_unlock"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/tab_1_bg"
app:layout_constraintEnd_toEndOf="@id/tab_1_bg" />
<ImageView
android:id="@+id/tab_1_item_received"
android:layout_width="49.5dp"
android:layout_height="17dp"
android:src="@mipmap/ic_zl_battlepass_reward_item_received"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@id/tab_1_bg"
app:layout_constraintEnd_toEndOf="@id/tab_1_bg" />
<ImageView
android:id="@+id/tab_1_subscript"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_battlpas_exchange_subscript"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tab_1_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="甜蜜氣球\n&amp;積分30"
android:textColor="#0D21B2"
android:textSize="12sp"
android:textStyle="bold"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tab_1_bg" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tab_2_layout"
android:layout_width="73dp"
android:layout_height="wrap_content"
android:layout_marginEnd="15dp">
<ImageView
android:id="@+id/tab_2_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/bg_zl_battlepass_reward_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/tab_2"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@mipmap/ic_integral"
app:layout_constraintBottom_toBottomOf="@id/tab_2_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tab_2_bg" />
<ImageView
android:id="@+id/tab_2_unlock"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@mipmap/bg_zl_battlepass_reward_item_unlock"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tab_2_bg" />
<ImageView
android:id="@+id/tab_2_item_unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_battlepass_reward_item_unlock"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@id/tab_2_bg"
app:layout_constraintEnd_toEndOf="@id/tab_2_bg" />
<ImageView
android:id="@+id/tab_2_item_received"
android:layout_width="49.5dp"
android:layout_height="17dp"
android:src="@mipmap/ic_zl_battlepass_reward_item_received"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@id/tab_2_bg"
app:layout_constraintEnd_toEndOf="@id/tab_2_bg" />
<ImageView
android:id="@+id/tab_2_subscript"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_battlpas_exchange_subscript2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tab_2_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="甜蜜氣球\n&amp;積分30"
android:textColor="#0D21B2"
android:textSize="12sp"
android:maxLines="1"
android:ellipsize="end"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tab_2_bg" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tab_3_layout"
android:layout_width="73dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/tab_3_bg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/bg_zl_battlepass_reward_item"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/tab_3"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@mipmap/ic_integral"
app:layout_constraintBottom_toBottomOf="@id/tab_3_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/tab_3_bg" />
<ImageView
android:id="@+id/tab_3_unlock"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@mipmap/bg_zl_battlepass_reward_item_unlock"
android:visibility="visible"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/tab_3_item_unlock"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_battlepass_reward_item_unlock"
app:layout_constraintBottom_toBottomOf="@id/tab_3_bg"
app:layout_constraintEnd_toEndOf="@id/tab_3_bg" />
<ImageView
android:id="@+id/tab_3_item_received"
android:layout_width="49.5dp"
android:layout_height="17dp"
android:layout_marginBottom="5dp"
android:src="@mipmap/ic_zl_battlepass_reward_item_received"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="@id/tab_3_bg"
app:layout_constraintEnd_toEndOf="@id/tab_3_bg" />
<ImageView
android:id="@+id/tab_3_subscript"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_zl_battlpas_exchange_subscript"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tab_3_title"
android:maxLines="1"
android:ellipsize="end"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="甜蜜氣球\n&amp;積分30"
android:textColor="#0D21B2"
android:textSize="12sp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tab_3_bg" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,12 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="60dp"
android:paddingLeft="15dp"
android:paddingRight="15dp"
>
android:paddingRight="15dp">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
@@ -15,8 +13,7 @@
android:layout_centerVertical="true"
android:layout_marginRight="15dp"
android:scaleType="centerCrop"
app:riv_oval="true"
/>
app:riv_oval="true" />
<TextView
android:id="@+id/name"
@@ -28,8 +25,7 @@
android:maxWidth="130dp"
android:singleLine="true"
android:textColor="@color/textColor"
android:textSize="16sp"
/>
android:textSize="16sp" />
<TextView
android:id="@+id/sign"
@@ -41,17 +37,16 @@
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/gray3"
android:textSize="14sp"
/>
android:textSize="14sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/name"
android:layout_alignTop="@id/name"
android:layout_marginLeft="10dp"
android:layout_marginTop="3dp"
android:layout_toRightOf="@id/name"
android:orientation="horizontal">
<ImageView
@@ -59,18 +54,34 @@
android:layout_width="18dp"
android:layout_height="15dp" />
<ImageView
android:id="@+id/level_anchor"
<FrameLayout
android:layout_width="30dp"
android:layout_height="15dp"
android:layout_marginLeft="5dp"/>
android:layout_marginStart="5dp"
android:layout_height="15dp">
<ImageView
android:id="@+id/level_anchor"
android:layout_width="30dp"
android:layout_height="15dp" />
<TextView
android:id="@+id/leave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="13dp"
android:textColor="@color/white"
android:textSize="8sp"
android:textStyle="bold" />
</FrameLayout>
<ImageView
android:id="@+id/level"
android:layout_width="30dp"
android:layout_height="15dp"
android:layout_marginLeft="5dp"
/>
android:layout_marginLeft="5dp" />
</LinearLayout>
@@ -86,23 +97,21 @@
android:gravity="center"
android:textColor="@color/fg_btn_follow"
android:textSize="11sp"
android:visibility="gone"
/>
android:visibility="gone" />
<pl.droidsonroids.gif.GifImageView
android:id="@+id/btn_live"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:visibility="gone"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@mipmap/icon_user_home_living"/>
android:adjustViewBounds="true"
android:src="@mipmap/icon_user_home_living"
android:visibility="gone" />
<View
style="@style/line2"
android:layout_alignParentBottom="true"
/>
android:layout_alignParentBottom="true" />
</RelativeLayout>

View File

@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="210dp">
<LinearLayout
android:orientation="vertical"
android:background="@mipmap/bg_zl_user_top"
android:layout_marginStart="2dp"
android:layout_marginEnd="2dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/session"
android:text="@string/battlepass_user_session"
android:textColor="#40227D"
android:textSize="20sp"
android:layout_marginTop="8dp"
android:layout_marginEnd="17dp"
android:layout_gravity="end"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:id="@+id/imageView10"
android:layout_width="110dp"
android:layout_height="28dp"
android:layout_marginStart="15.5dp"
android:src="@mipmap/zl_user_pass" />
<TextView
android:id="@+id/time"
android:layout_marginTop="11.5dp"
android:layout_marginStart="15dp"
android:text="@string/battlepass_user_time"
android:textColor="#442787"
android:textSize="14sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/userLevel"
android:layout_marginTop="11.5dp"
android:textStyle="bold"
android:layout_marginStart="15dp"
android:text="@string/battlepass_user_level"
android:textColor="#442787"
android:textSize="14sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<LinearLayout
android:orientation="horizontal"
android:layout_marginStart="15dp"
android:layout_marginEnd="15dp"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/level"
android:textStyle="bold"
android:text="Lv.1"
android:textColor="#442787"
android:textSize="14sp"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_marginEnd="6dp"
android:layout_height="wrap_content"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="14dp"
android:layout_weight="1"
android:layout_gravity="center"
>
<ProgressBar
android:id="@+id/level_progress"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="7dp"
android:layout_gravity="center"
android:layout_marginStart="1dp"
android:layout_weight="1"
android:progressDrawable="@drawable/bg_zl_user_level_progres"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/exp_text"
tools:text="100/2500"
android:textSize="12sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="#41048F"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_marginTop="-60dp"
android:orientation="horizontal"
android:background="@mipmap/bg_zl_user_bottom"
android:gravity="center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_marginStart="15dp"
android:layout_width="wrap_content"
android:gravity="center_vertical"
android:layout_weight="1"
android:layout_height="wrap_content">
<TextView
android:id="@+id/integral"
android:textStyle="bold"
android:text="@string/battlepass_user_my_integral"
android:textColor="#442787"
android:textSize="14sp"
android:layout_marginEnd="5dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:src="@mipmap/ic_integral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<Button
android:id="@+id/more_integral"
android:layout_width="94dp"
android:layout_height="31dp"
android:layout_marginEnd="15dp"
android:textAllCaps="false"
android:background="@mipmap/bg_zl_user_button"
android:text="@string/battlepass_user_more_integral"
android:textColor="#FFFFFF"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="140dp"
android:layout_height="41dp"
android:background="@drawable/bg_war_order"
android:gravity="center_vertical">
<ImageView
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_marginLeft="15dp"
android:src="@mipmap/icon_war_order" />
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:gravity="center_vertical"
android:text="@string/main_suspension_war_order"
android:textColor="@color/white"
android:textSize="15dp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>

View File

@@ -179,6 +179,17 @@
android:layout_above="@id/rt_main_tab"
android:layout_alignParentRight="true"
android:layout_marginRight="12dp"
android:visibility="gone"
android:layout_marginBottom="10dp" />
<include
android:id="@+id/war_order"
layout="@layout/view_float_war_order"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/rt_main_tab"
android:layout_alignParentRight="true"
android:layout_marginRight="8dp"
android:layout_marginBottom="10dp" />
<LinearLayout

View File

@@ -1,28 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
>
android:background="@color/white">
<FrameLayout
android:id="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="46dp"
android:layout_alignParentBottom="true"
>
android:layout_alignParentBottom="true">
<View
style="@style/line2"
/>
<View style="@style/line2" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
android:orientation="horizontal">
<TextView
android:id="@+id/btn_follow_2"
@@ -33,16 +27,14 @@
android:text="@string/follow"
android:textColor="@color/textColor2"
android:textSize="15sp"
android:textStyle="bold"
/>
android:textStyle="bold" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:background="@color/gray2"
/>
android:layout_marginBottom="10dp"
android:background="@color/gray2" />
<TextView
android:id="@+id/btn_pri_msg"
@@ -53,16 +45,14 @@
android:text="@string/pri_msg"
android:textColor="@color/textColor2"
android:textSize="15sp"
android:textStyle="bold"
/>
android:textStyle="bold" />
<View
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:layout_marginTop="10dp"
android:background="@color/gray2"
/>
android:layout_marginBottom="10dp"
android:background="@color/gray2" />
<TextView
android:id="@+id/btn_black"
@@ -73,8 +63,7 @@
android:text="@string/black"
android:textColor="@color/textColor2"
android:textSize="15sp"
android:textStyle="bold"
/>
android:textStyle="bold" />
</LinearLayout>
</FrameLayout>
@@ -82,8 +71,7 @@
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/bottom"
>
android:layout_above="@id/bottom">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
@@ -92,45 +80,39 @@
android:background="@color/transparent"
android:fadingEdge="none"
app:elevation="0dp"
app:layout_behavior="com.yunbao.common.custom.FixAppBarLayoutBehavior"
>
app:layout_behavior="com.yunbao.common.custom.FixAppBarLayoutBehavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="65dp"
android:orientation="vertical"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
>
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="220dp"
>
android:layout_height="220dp">
<ImageView
android:id="@+id/bg_avatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
/>
android:scaleType="centerCrop" />
<View
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#b3000000"
/>
android:background="#b3000000" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginLeft="15dp"
android:layout_marginRight="20dp"
android:layout_marginTop="70dp"
android:layout_marginRight="20dp"
android:scaleType="centerCrop"
app:riv_oval="true"
/>
app:riv_oval="true" />
<TextView
android:id="@+id/name"
@@ -140,35 +122,48 @@
android:layout_toRightOf="@id/avatar"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
/>
android:textStyle="bold" />
<ImageView
android:id="@+id/sex"
android:layout_width="18dp"
android:layout_height="15dp"
android:layout_below="@id/name"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:layout_toRightOf="@id/avatar"
/>
android:layout_marginRight="5dp"
android:layout_toRightOf="@id/avatar" />
<ImageView
android:id="@+id/level_anchor"
android:layout_width="30dp"
android:layout_height="15dp"
<FrameLayout
android:layout_width="55dp"
android:layout_height="19dp"
android:layout_alignTop="@id/sex"
android:layout_marginRight="5dp"
android:layout_toRightOf="@id/sex"
/>
android:layout_toRightOf="@id/sex">
<ImageView
android:id="@+id/level_anchor"
android:layout_width="55dp"
android:layout_height="19dp" />
<TextView
android:id="@+id/leave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="28dp"
android:textColor="@color/white"
android:textSize="10sp"
android:textStyle="bold" />
</FrameLayout>
<ImageView
android:id="@+id/level"
android:layout_width="30dp"
android:layout_height="15dp"
android:layout_alignTop="@id/sex"
android:layout_toRightOf="@id/level_anchor"
/>
android:layout_toRightOf="@id/level_anchor" />
<TextView
android:id="@+id/id_val"
@@ -178,8 +173,7 @@
android:layout_marginTop="5dp"
android:layout_toRightOf="@id/avatar"
android:textColor="@color/white"
android:textSize="14sp"
/>
android:textSize="14sp" />
<TextView
android:id="@+id/btn_fans"
@@ -189,21 +183,19 @@
android:layout_marginLeft="15dp"
android:layout_marginTop="15dp"
android:textColor="@color/white"
android:textSize="14sp"
/>
android:textSize="14sp" />
<View
android:id="@+id/line"
android:layout_width="1dp"
android:layout_height="12dp"
android:layout_alignTop="@id/btn_fans"
android:layout_below="@id/avatar"
android:layout_alignTop="@id/btn_fans"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="3dp"
android:layout_marginRight="15dp"
android:layout_toRightOf="@id/btn_fans"
android:background="@color/white"
/>
android:background="@color/white" />
<TextView
android:id="@+id/btn_follow"
@@ -212,8 +204,7 @@
android:layout_alignTop="@id/btn_fans"
android:layout_toRightOf="@id/line"
android:textColor="@color/white"
android:textSize="14sp"
/>
android:textSize="14sp" />
<TextView
android:id="@+id/sign"
@@ -221,38 +212,34 @@
android:layout_height="wrap_content"
android:layout_below="@id/btn_fans"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:layout_marginTop="12dp"
android:layout_marginRight="15dp"
android:singleLine="true"
android:textColor="#fff"
android:textSize="14sp"
/>
android:textSize="14sp" />
</RelativeLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="15dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="5dp"
android:text="@string/impress"
android:textColor="@color/textColor2"
android:textSize="15dp"
android:textStyle="bold"
/>
android:textStyle="bold" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="34dp"
android:layout_marginLeft="15dp"
>
android:layout_marginLeft="15dp">
<LinearLayout
android:id="@+id/impress_group"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
/>
android:orientation="horizontal" />
<TextView
android:id="@+id/no_impress_tip"
@@ -262,16 +249,14 @@
android:text="@string/impress_tip_3"
android:textColor="@color/gray3"
android:textSize="14sp"
android:visibility="invisible"
/>
android:visibility="invisible" />
</FrameLayout>
<View
android:layout_width="match_parent"
android:layout_height="3dp"
android:layout_marginTop="5dp"
android:background="@color/gray2"
/>
android:background="@color/gray2" />
<LinearLayout
android:id="@+id/con_group_wrap"
@@ -280,14 +265,12 @@
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="15dp"
android:paddingRight="15dp"
>
android:paddingRight="15dp">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:src="@mipmap/icon_live_user_home_1"
/>
android:src="@mipmap/icon_live_user_home_1" />
<TextView
android:id="@+id/votes_name"
@@ -295,8 +278,7 @@
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:textSize="15sp"
android:textStyle="bold"
/>
android:textStyle="bold" />
<LinearLayout
@@ -307,21 +289,17 @@
android:layout_marginRight="10dp"
android:layout_weight="1"
android:gravity="right"
android:orientation="horizontal"
/>
android:orientation="horizontal" />
<ImageView
android:layout_width="16dp"
android:layout_height="18dp"
android:src="@mipmap/icon_arrow_right"
/>
android:src="@mipmap/icon_arrow_right" />
</LinearLayout>
<View
style="@style/line2"
/>
<View style="@style/line2" />
<LinearLayout
android:id="@+id/guard_group_wrap"
@@ -330,14 +308,12 @@
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="15dp"
android:paddingRight="15dp"
>
android:paddingRight="15dp">
<ImageView
android:layout_width="18dp"
android:layout_height="18dp"
android:src="@mipmap/icon_live_user_home_2"
/>
android:src="@mipmap/icon_live_user_home_2" />
<TextView
android:layout_width="wrap_content"
@@ -345,8 +321,7 @@
android:layout_marginLeft="8dp"
android:text="@string/guard_list"
android:textSize="15sp"
android:textStyle="bold"
/>
android:textStyle="bold" />
<LinearLayout
android:id="@+id/guard_group"
@@ -356,14 +331,12 @@
android:layout_marginRight="10dp"
android:layout_weight="1"
android:gravity="right"
android:orientation="horizontal"
/>
android:orientation="horizontal" />
<ImageView
android:layout_width="16dp"
android:layout_height="18dp"
android:src="@mipmap/icon_arrow_right"
/>
android:src="@mipmap/icon_arrow_right" />
</LinearLayout>
@@ -372,14 +345,12 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
android:orientation="vertical">
<View
android:layout_width="match_parent"
android:layout_height="5dp"
android:background="@color/gray2"
/>
android:background="@color/gray2" />
<net.lucode.hackware.magicindicator.MagicIndicator
@@ -387,13 +358,10 @@
android:layout_width="wrap_content"
android:layout_height="33dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
/>
android:layout_marginBottom="5dp" />
<View
style="@style/line2"
/>
<View style="@style/line2" />
</LinearLayout>
</com.google.android.material.appbar.AppBarLayout>
@@ -403,8 +371,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
/>
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>
@@ -412,8 +379,7 @@
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="65dp"
android:clickable="true"
>
android:clickable="true">
<TextView
android:id="@+id/titleView"
@@ -425,8 +391,7 @@
android:paddingTop="30dp"
android:textColor="@color/textColor"
android:textSize="18sp"
android:textStyle="bold"
/>
android:textStyle="bold" />
<ImageView
android:id="@+id/btn_back"
@@ -436,20 +401,18 @@
android:layout_marginBottom="3dp"
android:padding="9dp"
android:src="@mipmap/icon_back"
android:tint="@color/white"
/>
android:tint="@color/white" />
<ImageView
android:id="@+id/btn_share"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="3dp"
android:padding="8dp"
android:src="@mipmap/icon_user_home_share"
android:tint="@color/white"
/>
android:tint="@color/white" />
</RelativeLayout>
</RelativeLayout>

View File

@@ -219,10 +219,27 @@
android:gravity="bottom"
android:orientation="horizontal">
<ImageView
android:id="@+id/level_anchor"
android:layout_width="30dp"
android:layout_height="15dp" />
<FrameLayout
android:layout_width="55dp"
android:layout_height="19dp">
<ImageView
android:id="@+id/level_anchor"
android:layout_width="55dp"
android:layout_height="19dp" />
<TextView
android:id="@+id/leave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="28dp"
android:textColor="@color/white"
android:textSize="10sp"
android:textStyle="bold" />
</FrameLayout>
<ImageView
android:id="@+id/level"

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:paddingTop="36dp"
android:layout_height="match_parent">
<net.lucode.hackware.magicindicator.MagicIndicator
android:id="@+id/indicator"
android:layout_width="wrap_content"
android:layout_height="45dp"
android:overScrollMode="never"
android:layout_gravity="center"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
</net.lucode.hackware.magicindicator.MagicIndicator>
<androidx.viewpager2.widget.ViewPager2
android:id="@+id/community_viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/indicator" />
</LinearLayout>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="68dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="36dp">
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/rootView"
@@ -18,11 +17,11 @@
android:layout_height="3dp"
android:progressDrawable="@drawable/bg_horizontal_progressbar" />
<!-- <Button-->
<!-- android:id="@+id/native_callback"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="nativeCallback" />-->
<Button
android:id="@+id/native_callback"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
android:text="nativeCallback" />
</RelativeLayout>

View File

@@ -126,12 +126,30 @@
android:layout_height="15dp"
android:src="@mipmap/icon_userlv" />
<ImageView
android:id="@+id/level_anchor"
android:layout_width="30dp"
android:layout_height="15dp"
<FrameLayout
android:id="@+id/level_anchor_la"
android:layout_width="55dp"
android:layout_height="19dp"
android:layout_marginLeft="5dp"
android:visibility="gone" />
android:visibility="gone">
<ImageView
android:id="@+id/level_anchor"
android:layout_width="55dp"
android:layout_height="19dp" />
<TextView
android:id="@+id/leave"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="28dp"
android:textColor="@color/white"
android:textSize="10sp"
android:textStyle="bold" />
</FrameLayout>
<ImageView
android:id="@+id/level"

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 330 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 440 KiB

Some files were not shown because too many files have changed in this diff Show More