新增 充值页 Banner, 个人信息页 "官方代充" 标识

This commit is contained in:
wzq
2023-09-19 17:20:08 +08:00
parent 9854e91fe8
commit 8ad38583ff
14 changed files with 135 additions and 17 deletions

View File

@@ -1,7 +1,13 @@
package com.yizhuan.erban.pay.presenter;
import android.annotation.SuppressLint;
import com.hjq.toast.ToastUtils;
import com.yizhuan.erban.pay.view.IChargeView;
import com.yizhuan.xchat_android_core.pay.PayModel;
import com.yizhuan.xchat_android_library.base.PresenterEvent;
import io.reactivex.schedulers.Schedulers;
/**
* Created by MadisonRong on 05/01/2018.
@@ -21,7 +27,11 @@ public class ChargePresenter extends PayPresenter<IChargeView> {
refreshWalletInfo(false);
}
@SuppressLint("CheckResult")
public void loadBanner() {
payModel.loadChargeBanner()
.compose(bindUntilEvent(PresenterEvent.DESTROY))
.subscribe( list -> getMvpView().onLoadedBanners(list),
error -> ToastUtils.show(error.getMessage()));
}
}

View File

@@ -1,11 +1,16 @@
package com.yizhuan.erban.pay.view;
import com.yizhuan.xchat_android_core.pay.bean.Banner;
import java.util.List;
/**
* Created by MadisonRong on 05/01/2018.
*/
public interface IChargeView extends IPayView {
void onLoadedBanners(List<Banner> banners);
}

View File

@@ -13,6 +13,7 @@ import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
@@ -27,7 +28,9 @@ import com.appsflyer.AFInAppEventParameterName;
import com.appsflyer.AFInAppEventType;
import com.appsflyer.AppsFlyerLib;
import com.netease.nim.uikit.StatusBarUtil;
import com.netease.nim.uikit.support.glide.ImageLoaderKit;
import com.yizhuan.erban.R;
import com.yizhuan.erban.UIHelper;
import com.yizhuan.erban.application.IReportConstants;
import com.yizhuan.erban.application.ReportManager;
import com.yizhuan.erban.base.BaseMvpActivity;
@@ -35,17 +38,24 @@ import com.yizhuan.erban.common.widget.OriginalDrawStatusClickSpan;
import com.yizhuan.erban.pay.presenter.ChargePresenter;
import com.yizhuan.erban.pay.view.IChargeView;
import com.yizhuan.erban.ui.setting.ModifyPwdActivity;
import com.yizhuan.erban.ui.utils.ImageLoadKt;
import com.yizhuan.erban.ui.utils.ImageLoadUtils;
import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2;
import com.yizhuan.erban.ui.webview.CommonWebViewActivity;
import com.yizhuan.xchat_android_core.DemoCache;
import com.yizhuan.xchat_android_core.UriProvider;
import com.yizhuan.xchat_android_core.auth.AuthModel;
import com.yizhuan.xchat_android_core.pay.PayModel;
import com.yizhuan.xchat_android_core.pay.bean.Banner;
import com.yizhuan.xchat_android_core.pay.bean.ChargeBean;
import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
import com.yizhuan.xchat_android_core.utils.net.IgnoreException;
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
import com.yizhuan.xchat_android_library.utils.FormatUtils;
import com.yizhuan.xchat_android_library.utils.SingleToastUtil;
import com.zhpan.bannerview.BannerViewPager;
import com.zhpan.bannerview.BaseBannerAdapter;
import com.zhpan.bannerview.BaseViewHolder;
import org.greenrobot.eventbus.EventBus;
@@ -64,6 +74,7 @@ public class ChargeActivity extends BaseMvpActivity<IChargeView, ChargePresenter
private static final String TAG = "ChargeActivity";
private TextView mTv_gold;
private BannerViewPager<Banner> mVpBanner;
private RecyclerView mRecyclerView;
private TextView mIvCharge;
private CheckBox mTvProtocol;
@@ -95,10 +106,12 @@ public class ChargeActivity extends BaseMvpActivity<IChargeView, ChargePresenter
initBilling();
setProtocol();
getMvpPresenter().loadUserInfo();
getMvpPresenter().loadBanner();
}
private void findView() {
mTv_gold = findViewById(R.id.tv_gold);
mVpBanner = findViewById(R.id.vp_banner);
mRecyclerView = findViewById(R.id.recyclerView);
mIvCharge = findViewById(R.id.tv_charge);
mTvProtocol = findViewById(R.id.tv_protocol);
@@ -358,4 +371,23 @@ public class ChargeActivity extends BaseMvpActivity<IChargeView, ChargePresenter
}
}
@Override
public void onLoadedBanners(List<Banner> banners) {
mVpBanner.setLifecycleRegistry(getLifecycle())
.setAdapter(new BaseBannerAdapter<>() {
@Override
protected void bindData(BaseViewHolder<Banner> holder, Banner data, int position, int pageSize) {
ImageView ivBanner = holder.findViewById(R.id.iv_banner);
ImageLoadUtilsV2.loadImage(ivBanner, data.getBannerUrl());
ivBanner.setOnClickListener(v ->
CommonWebViewActivity.start(ChargeActivity.this, data.getLinkUrl()));
}
@Override
public int getLayoutId(int viewType) {
return R.layout.item_banner_charge;
}
})
.create(banners);
}
}

View File

@@ -321,6 +321,8 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
PraiseModel.get().isPraised(AuthModel.get().getCurrentUid(), userInfo.getUid()).subscribe();
}
mBinding.ivChargeAgent.setVisibility(userInfo.isRechargeUser() ? View.VISIBLE : View.GONE);
VipHelper.loadVipIcon(mBinding.ivVipIcon, userInfo.getUserVipInfoVO());
initVoiceShow(userInfo.getAudioCard());
@@ -336,7 +338,7 @@ public class UserInfoActivity extends BaseBindingActivity<ActivityUserInfoBindin
}
}
private void copyName(){
private void copyName() {
try {
ClipboardManager cm = (ClipboardManager) UserInfoActivity.this.getSystemService(Context.CLIPBOARD_SERVICE);
cm.setPrimaryClip(ClipData.newPlainText("text", String.valueOf(userInfo.getErbanNo())));

View File

@@ -42,6 +42,7 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager;
import com.yizhuan.xchat_android_core.market_verify.MarketVerifyModel;
import com.yizhuan.xchat_android_core.pay.PayModel;
import com.yizhuan.xchat_android_core.pay.bean.WalletInfo;
import com.yizhuan.xchat_android_core.praise.PraiseModel;
import com.yizhuan.xchat_android_core.public_chat_hall.manager.PublicChatHallDataManager;
import com.yizhuan.xchat_android_core.room.bean.RoomInfo;
import com.yizhuan.xchat_android_core.user.UserModel;
@@ -543,4 +544,12 @@ public class JSInterface {
if (mActivity instanceof TarotPayWebViewActivity) mActivity.finish();
}
/**
* 跳转app并且自动关注用户然后打开私聊页面
*/
@JavascriptInterface
public void openAppConcernedChat(String uid) {
PraiseModel.get().praise(Long.parseLong(uid), true).subscribe();
NimP2PMessageActivity.start(context, uid);
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@@ -31,42 +31,42 @@
android:layout_marginBottom="@dimen/dp_10"
android:background="@drawable/bg_common_translate_rectangle"
app:layout_constraintBottom_toBottomOf="@+id/iv_bg"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_charge_diamond"
android:layout_marginEnd="@dimen/dp_4"
app:layout_constraintTop_toTopOf="@+id/tv_title_diamond"
android:src="@mipmap/ic_charge_diamond"
app:layout_constraintBottom_toBottomOf="@+id/tv_title_diamond"
app:layout_constraintEnd_toStartOf="@+id/tv_title_diamond"/>
app:layout_constraintEnd_toStartOf="@+id/tv_title_diamond"
app:layout_constraintTop_toTopOf="@+id/tv_title_diamond" />
<TextView
android:id="@+id/tv_title_diamond"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:gravity="center"
android:text="@string/charge_my_diamond"
android:textColor="@color/color_333333"
android:textSize="@dimen/text_size_14"
android:gravity="center"
app:layout_constraintTop_toTopOf="@+id/iv_translate_bg"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/iv_translate_bg" />
<TextView
android:id="@+id/tv_gold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
android:fontFamily="sans-serif-medium"
android:includeFontPadding="false"
android:text="0.0"
android:textColor="@color/color_333333"
android:textSize="@dimen/text_size_30"
android:layout_marginTop="12dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_title_diamond"
@@ -86,6 +86,14 @@
android:background="@drawable/bg_common_top_14_white"
android:orientation="vertical">
<com.zhpan.bannerview.BannerViewPager
android:id="@+id/vp_banner"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_90"
android:layout_marginTop="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
@@ -115,15 +123,16 @@
android:id="@+id/tv_protocol_hint"
android:layout_width="180dp"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:layout_gravity="center_horizontal"
android:layout_marginBottom="2dp"
android:background="@drawable/bg_login_protocol_hint"
android:gravity="center"
android:paddingBottom="6dp"
android:text="@string/charge_agree_with_the_protocol"
android:textColor="@color/white"
android:textSize="@dimen/sp_10"
android:visibility="gone"/>
android:visibility="gone" />
<CheckBox
android:id="@+id/tv_protocol"
android:layout_width="wrap_content"
@@ -131,12 +140,12 @@
android:layout_gravity="center"
android:layout_marginBottom="25dp"
android:button="@null"
android:checked="true"
android:drawableStart="@drawable/selector_login_radio_btn"
android:drawablePadding="@dimen/dp_5"
android:text="@string/text_login_charge_protocol"
android:textColor="@color/color_B3B3C3"
android:textSize="@dimen/dp_11"
android:checked="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -323,6 +323,15 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/iv_charge_agent"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
android:layout_gravity="center_vertical"
android:adjustViewBounds="true"
android:src="@drawable/img_charge_agent"
android:visibility="gone" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<com.makeramen.roundedimageview.RoundedImageView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/iv_banner"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:riv_corner_radius="@dimen/dp_16" />