1:羽声新版本

This commit is contained in:
2025-10-24 17:52:11 +08:00
parent 437a623f81
commit a809b02ebb
827 changed files with 25795 additions and 1193698 deletions

View File

@@ -61,5 +61,9 @@ dependencies {
//annotationProcessor
annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
implementation files('libs/WbCloudFaceLiveSdk-face-v6.6.2-8e4718fc.aar')
implementation files('libs/WbCloudNormal-v5.1.10-4e3e198.aar')
}
apply plugin: 'com.alibaba.arouter' //

View File

@@ -38,9 +38,6 @@
android:name=".activity.CreateAlbumActivity"
android:exported="false"
android:launchMode="singleTask" />
<activity
android:name=".activity.RealName1Activity"
android:exported="false" />
<activity
android:name=".activity.RevenueActivity"
android:exported="false"
@@ -143,6 +140,9 @@
android:name=".activity.UnderageActivity"
android:exported="true"
android:launchMode="singleTask" />
<activity
android:name=".activity.RealNameActivity"
android:exported="false" />
</application>
</manifest>

View File

@@ -1,10 +1,14 @@
package com.example.modulevocal.activity;
import android.content.Intent;
import com.alibaba.android.arouter.launcher.ARouter;
import com.example.modulevocal.R;
import com.example.modulevocal.databinding.ActivityAboutUsBinding;
import com.xscm.moduleutil.activity.BaseAppCompatActivity;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.widget.CommonAppConfig;
@@ -16,11 +20,21 @@ public class AboutUsActivity extends BaseAppCompatActivity<ActivityAboutUsBindin
mBinding.tvAppVersion.setText("Version " + CommonAppConfig.getInstance().getVersion());
mBinding.llYonghu.setOnClickListener(v -> {
ARouter.getInstance().build(ARouteConstants.H5).withString("url", "file:///android_asset/page_yongh.html").withString("title", "用户协议").navigation();
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "/api/Page/page_show?id=6");
intent.putExtra("title", "用户协议");
startActivity(intent);
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "/api/Page/page_show?id=6").withString("title", "用户协议").navigation();
});
mBinding.llYins.setOnClickListener(v -> {
ARouter.getInstance().build(ARouteConstants.H5).withString("url", "file:///android_asset/page_show.html").withString("title", "隐私协议").navigation();
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "/api/Page/page_show?id=4");
intent.putExtra("title", "隐私协议");
startActivity(intent);
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl() + "/api/Page/page_show?id=4").withString("title", "隐私协议").navigation();
});
}

View File

@@ -8,6 +8,7 @@ import android.graphics.Color;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -46,10 +47,11 @@ import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
*@author qx
*@data 2025/6/6
*@description: 相册详情
* @author qx
* @data 2025/6/6
* @description: 相册详情
*/
@Route(path = ARouteConstants.USER_ALBUM_DETAIL)
public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, ActivityAlbumDetailBinding> implements AlbumDetailConacts.View {
@@ -200,13 +202,16 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
.setImageEngine(GlideEngine.createGlideEngine())
.setMaxSelectNum(type)
.isPreviewImage(true)
.isDisplayCamera(true)
.isDisplayCamera(false)
.setOutputCameraDir(Constants.FILE_PATH)
.isOriginalSkipCompress(true)
.forResult(requestCode); //结果回调onActivityResult code
}
private int totalUploadCount;//需要上传的数据的总数
private int uploadedCount;//已经上传的数据的个数
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@@ -222,6 +227,9 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
String path = media.isCompressed() ? media.getCompressPath() : media.getRealPath();
imageFiles.add(new File(path));
}
// 记录需要上传的文件总数
totalUploadCount = imageFiles.size();
uploadedCount = 0;
// 开始批量上传
MvpPre.batchUploadFiles(imageFiles, 0); // 第二个参数是你原来的 type
@@ -233,20 +241,29 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
@Override
public void upLoadSuccess(String url, int type, int index, int total) {
// 增加已上传计数
uploadedCount++;
uploadedUrls.add(url);
// if (index >= 0 && index < uploadedUrls.size()) {
// uploadedUrls.add(index, url); // 插入到对应位置
// } else {
// uploadedUrls.add(url); // 添加到最后
// }
if (index >= 0 && index < uploadedUrls.size()) {
uploadedUrls.add(index, url); // 插入到对应位置
} else {
uploadedUrls.add(url); // 添加到最后
}
if (uploadedUrls.size() == total) {
updateAdapterData(); // 所有图片上传完成,更新适配器数据
// 当所有图片都上传完成时,更新适配器数据
if (uploadedCount == totalUploadCount) {
updateAdapterData();
// 重置计数器
uploadedCount = 0;
totalUploadCount = 0;
}
}
@Override
public void upAddAlbum() {
uploadedUrls.clear();
// 添加图片后应该重置分页状态并重新加载第一页
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, page + "", "10");
}
@@ -256,35 +273,44 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
dialog.setContentView(com.xscm.moduleutil.R.layout.bottom_sheet_recyclerview);
RecyclerView recyclerView = dialog.findViewById(com.xscm.moduleutil.R.id.rv_options);
Button btnCancel = dialog.findViewById(com.xscm.moduleutil.R.id.btn_cancel);
Button btnConfirm = dialog.findViewById(com.xscm.moduleutil.R.id.btn_confirm);
View btnCancel = dialog.findViewById(com.xscm.moduleutil.R.id.btn_cancel);
View btnConfirm = dialog.findViewById(com.xscm.moduleutil.R.id.btn_confirm);
TextView tvTitle = dialog.findViewById(com.xscm.moduleutil.R.id.tv_title);
tvTitle.setText("选择相册");
assert recyclerView != null;
recyclerView.setLayoutManager(new GridLayoutManager(this,4));
recyclerView.setLayoutManager(new GridLayoutManager(this, 4));
SingleChoiceAdapter sadapter = new SingleChoiceAdapter();
recyclerView.setAdapter(sadapter);
sadapter.setNewData(data);
btnCancel.setOnClickListener(v -> dialog.dismiss());
// 添加空值检查以提高代码健壮性
if (btnCancel != null) {
btnCancel.setOnClickListener(v -> dialog.dismiss());
}
if (btnConfirm != null) {
btnConfirm.setOnClickListener(v -> {
AlbumBean selectedItem = sadapter.getSelectedItem();
btnConfirm.setOnClickListener(v -> {
AlbumBean selectedItem = sadapter.getSelectedItem();
if (selectedItem != null) {
MvpPre.moveAlbum(adapter.getSelectedPhotoIdsAsString(), selectedItem.getId());
}
dialog.dismiss();
});
if (selectedItem != null) {
MvpPre.moveAlbum(adapter.getSelectedPhotoIdsAsString(), selectedItem.getId());
}
dialog.dismiss();
});
}
dialog.show();
}
@Override
public void moveAlbum() {
// 移动图片后应该重置分页状态并重新加载第一页
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
}
@Override
public void deleteAlbum() {
// 删除图片后应该重置分页状态并重新加载第一页
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
}
@@ -293,6 +319,12 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
updateZanButtonUI(albumBean1);
}
@Override
public void findAlbum() {
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
}
private void updateAdapterData() {
String imageUrlsString = TextUtils.join(",", uploadedUrls);
MvpPre.upAddAlbum(albumId, imageUrlsString, "");
@@ -301,6 +333,7 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
@Override
protected void onResume() {
super.onResume();
page = 1;
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
}
@@ -317,7 +350,11 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
private void updateZanButtonUI(AlbumBean albumBean) {
if (albumBean.getIs_like().equals("0")) {
mBinding.zanImage.setImageResource(com.xscm.moduleutil.R.mipmap.shousz); // 已点赞图标
mBinding.dyComment.setText(Integer.parseInt(albumBean.getLike_num()) - 1 + "");
if (Integer.parseInt(albumBean.getLike_num()) == 0) {
mBinding.dyComment.setText("0");
} else {
mBinding.dyComment.setText(Integer.parseInt(albumBean.getLike_num()) - 1 + "");
}
} else {
mBinding.zanImage.setImageResource(com.xscm.moduleutil.R.mipmap.showszc); // 未点赞图标
mBinding.dyComment.setText(Integer.parseInt(albumBean.getLike_num()) + 1 + "");
@@ -375,9 +412,23 @@ public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, A
}
mBinding.dyComment.setText(albumBean.getLike_num() != null && !albumBean.getLike_num().isEmpty() ? albumBean.getLike_num() : "0");
mBinding.lockComment.setText(albumBean.getRead_num() != null && !albumBean.getRead_num().isEmpty() ? albumBean.getRead_num() : "0");
List<AlbumBean.ImageList> allImages = albumBean.getImage_list();
List<AlbumBean.ImageList> groupedPhotos = groupPhotos(allImages);
adapter.setNewData(groupedPhotos);
if (albumBean.getImage_list() != null && !albumBean.getImage_list().isEmpty()) {
List<AlbumBean.ImageList> allImages = albumBean.getImage_list();
List<AlbumBean.ImageList> groupedPhotos = groupPhotos(allImages);
if (page == 1) {
adapter.setNewData(groupedPhotos);
} else {
adapter.addData(groupedPhotos);
}
} else {
if (page == 1) {
adapter.setNewData(new ArrayList<>());
}
// page=1;
// if (albumBean.getCount()==null || albumBean.getCount().equals("0")){
// adapter.setNewData( new ArrayList<>());
// }
}
}

View File

@@ -10,6 +10,7 @@ import com.example.modulevocal.conacts.WithdrawalConacts;
import com.example.modulevocal.databinding.ActivityBindCardBinding;
import com.example.modulevocal.presenter.WithdrawalPresenter;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.WalletConfig;
@@ -75,6 +76,16 @@ public class BindCardActivity extends BaseMvpActivity<WithdrawalPresenter, Activ
}
@Override
public void bindDetai(BindDetail bindDetail) {
}
@Override
public void finishRefreshLoadMore() {
}
@Override
protected void initData() {

View File

@@ -11,6 +11,7 @@ import com.example.modulevocal.databinding.ActivityBindCardDetailsBinding;
import com.example.modulevocal.presenter.WithdrawalPresenter;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.WalletConfig;
@@ -32,6 +33,7 @@ public class BindCardDetailsActivity extends BaseMvpActivity<WithdrawalPresenter
protected void initData() {
type=getIntent().getStringExtra("type");
MvpPre.bindDetai(SpUtil.getUserId()+"",type);
if (type.equals("1")){
mBinding.topBar.setTitle("微信绑卡");
mBinding.cet1.setVisibility(VISIBLE);
@@ -58,6 +60,7 @@ public class BindCardDetailsActivity extends BaseMvpActivity<WithdrawalPresenter
}
mBinding.tvSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -127,6 +130,52 @@ public class BindCardDetailsActivity extends BaseMvpActivity<WithdrawalPresenter
}
@Override
public void bindDetai(BindDetail bindDetail) {
if (bindDetail!=null){
if (type.equals("2")){
mBinding.cet1.setText(bindDetail.getAlipay_account());
return;
}
if (type.equals("3")){
mBinding.cet2.setText(bindDetail.getBank_card_number());
mBinding.cet3.setText(bindDetail.getBank_card());
mBinding.cet4.setText(bindDetail.getOpen_bank());
return;
}
}else {
if (type.equals("1")){
mBinding.topBar.setTitle("微信绑卡");
mBinding.cet1.setVisibility(VISIBLE);
mBinding.cet2.setVisibility(GONE);
mBinding.cet3.setVisibility(GONE);
mBinding.cet4.setVisibility(GONE);
mBinding.cet1.setHint("微信账户");
}else if (type.equals("2")){
mBinding.topBar.setTitle("支付宝绑卡");
mBinding.cet1.setVisibility(VISIBLE);
mBinding.cet2.setVisibility(GONE);
mBinding.cet3.setVisibility(GONE);
mBinding.cet4.setVisibility(GONE);
mBinding.cet1.setHint("支付宝账户");
} else if (type.equals("3")) {
mBinding.topBar.setTitle("银行卡绑卡");
mBinding.cet1.setVisibility(GONE);
mBinding.cet2.setVisibility(VISIBLE);
mBinding.cet3.setVisibility(VISIBLE);
mBinding.cet4.setVisibility(VISIBLE);
mBinding.cet2.setHint("银行卡号");
mBinding.cet3.setHint("所属银行");
mBinding.cet4.setHint("银行卡开户行");
}
}
}
@Override
public void finishRefreshLoadMore() {
}
@Override
protected WithdrawalPresenter bindPresenter() {

View File

@@ -186,7 +186,7 @@ public class CreateAlbumActivity extends BaseMvpActivity<MyAlbumPresenter, Activ
.setImageEngine(GlideEngine.createGlideEngine())
.setMaxSelectNum(type)
.isPreviewImage(true)
.isDisplayCamera(true)
.isDisplayCamera(false)
.setOutputCameraDir(Constants.FILE_PATH)
.isOriginalSkipCompress(true)

View File

@@ -91,7 +91,7 @@ public class CreatedRoomActivity extends BaseMvpActivity<CreatedRoomPresenter, A
// mRoomTypeAdapter.setNewData(roomTypeInfos);
// MvpPre.roomLabel("create");
handler.post(showPopupRunnable);
// roomInfoResp = (RoomInfoResp) getIntent().getSerializableExtra("roomInfo");
if (roomInfoResp!=null){
@@ -99,6 +99,12 @@ public class CreatedRoomActivity extends BaseMvpActivity<CreatedRoomPresenter, A
mBinding.edNickName.setText(roomInfoResp.getRoom_info().getRoom_name());
mBinding.etG.setText(roomInfoResp.getRoom_info().getRoom_intro());
roomUrl=roomInfoResp.getRoom_info().getRoom_cover();
}else {
if (handler!=null ){
if (showPopupRunnable!=null){
handler.post(showPopupRunnable);
}
}
}
}
@@ -129,15 +135,17 @@ public class CreatedRoomActivity extends BaseMvpActivity<CreatedRoomPresenter, A
}
}
});
popupWindow = new CustomPopWindow.PopupWindowBuilder(this)
.setView(R.layout.pop_layout1)//显示的布局
.setFocusable(false) // 关键点:不要抢占焦点
.create();//创建PopupWindow
mBinding.tvSave.post(() -> {
if (!isFinishing() && !isDestroyed()) {
popupWindow.showAsDropDown(mBinding.tvSave);
}
});
if (roomInfoResp == null) {
popupWindow = new CustomPopWindow.PopupWindowBuilder(this)
.setView(R.layout.pop_layout1)//显示的布局
.setFocusable(false) // 关键点:不要抢占焦点
.create();//创建PopupWindow
mBinding.tvSave.post(() -> {
if (!isFinishing() && !isDestroyed()) {
popupWindow.showAsDropDown(mBinding.tvSave);
}
});
}
mBinding.tvSujRoomName.setOnClickListener(this::onClick);
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvSave, ColorManager.getInstance().getPrimaryColorInt(), 53);
@@ -147,9 +155,13 @@ public class CreatedRoomActivity extends BaseMvpActivity<CreatedRoomPresenter, A
@Override
protected void onDestroy() {
super.onDestroy();
handler.removeCallbacks(showPopupRunnable);
if (popupWindow != null) {
popupWindow.dissmiss();
if (handler!=null ) {
if (showPopupRunnable!=null) {
handler.removeCallbacks(showPopupRunnable);
if (popupWindow != null) {
popupWindow.dissmiss();
}
}
}
}
@@ -209,7 +221,7 @@ public class CreatedRoomActivity extends BaseMvpActivity<CreatedRoomPresenter, A
.setImageEngine(GlideEngine.createGlideEngine())
.setMaxSelectNum(1)
.isPreviewImage(true)
.isDisplayCamera(true)
.isDisplayCamera(false)
.setOutputCameraDir(Constants.FILE_PATH)
.isOriginalSkipCompress(true)

View File

@@ -51,79 +51,18 @@ public class CurrencyExchangeActivity extends BaseMvpActivity<CurrencyExchangePr
mBinding.t5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (walletBean == null){
return;
}
float earnings_num = Float.parseFloat(walletBean.getEarnings());
int earnings_num_int = (int) Math.floor(earnings_num);
// 获取 earnings 值
String earnings = truncateToFirstDecimalPlace(walletBean.getEarnings());
mBinding.etCustomAmount.setText(earnings);
mBinding.etCustomAmount.setText(earnings_num_int+"");
}
});
TextInputEditText etCustomAmount = mBinding.etCustomAmount;
// 限制只能输入数字和小数点后一位
etCustomAmount.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
etCustomAmount.setFilters(new InputFilter[]{ (source, start, end, dest, dstart, dend) -> {
// 防止输入负号
if (source.toString().contains("-")) {
return "";
}
String newText = dest.toString().substring(0, dstart) + source.toString() + dest.toString().substring(dend);
// 检查小数点
if (newText.contains(".")) {
String[] splitResult = newText.split("\\.");
if (splitResult.length > 1 && splitResult[1].length() > 1) {
// 小数点后只能有一位
return "";
}
}
// 可选:限制最大长度
if (newText.length() > 10) {
return "";
}
return null;
}});
// 可选:添加 TextWatcher 来监听输入内容变化
etCustomAmount.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s) {
// 如果以小数点开头,自动补 0
if (s.toString().startsWith(".")) {
s.insert(0, "0");
}
// 如果以多个 0 开头,只保留一个
if (s.toString().startsWith("0") && s.toString().length() > 1 && s.toString().charAt(1) != '.') {
s.delete(0, 1);
}
}
});
}
private String truncateToFirstDecimalPlace(String value) {
if (TextUtils.isEmpty(value)) return "0.0";
int dotIndex = value.indexOf('.');
if (dotIndex == -1) {
return value + ".0"; // 没有小数点,默认加 .0
}
String integerPart = value.substring(0, dotIndex);
String decimalPart = value.substring(dotIndex + 1);
if (decimalPart.length() >= 1) {
return integerPart + "." + decimalPart.charAt(0); // 只取小数点后一位
} else {
return integerPart + ".0"; // 小数点后为空,默认加 0
}
}
@Override
protected int getLayoutId() {
@@ -139,6 +78,7 @@ public class CurrencyExchangeActivity extends BaseMvpActivity<CurrencyExchangePr
protected void onResume() {
super.onResume();
MvpPre.wallet();
MvpPre.getWalletConfig();
}
@Override

View File

@@ -18,6 +18,7 @@ import com.example.modulevocal.presenter.DailyTasksPresenter;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.GiftBoxBean;
import com.xscm.moduleutil.bean.GiftName;
import com.xscm.moduleutil.bean.TaskItem;
@@ -74,7 +75,7 @@ public class DailyTasksActivity extends BaseMvpActivity<DailyTasksPresenter, Act
mBinding.imGz.setOnClickListener(v -> {
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("url", "https://vespa.qxmier.com/web/index.html#/pages/other/taskDesc");
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/other/taskDesc");
intent.putExtra("title", "规则 ");
startActivity(intent);

View File

@@ -39,6 +39,7 @@ import com.xscm.moduleutil.utils.DateSelectDialog;
import com.xscm.moduleutil.utils.GlideEngine;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.Constants;
import com.xscm.moduleutil.widget.img.FullScreenUtil;
import com.xscm.moduleutil.widget.picker.PictureSelectorUtil;
import com.stx.xhb.xbanner.XBanner;
@@ -98,8 +99,14 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
updateAdapterData();
} else {
if (item.equals(UserPhotoWallAdapter.ADD_PHOTO)) {
// 点击的是“+”号,启动图片选择
startChoosePhoto(1, PictureConfig.REQUEST_CAMERA, false, 9);
// 修改判断条件考虑已上传的图片和ADD_PHOTO项
int maxSelectable = 6 - uploadedUrls.size();
if (maxSelectable > 0) {
// 点击的是"+"'号,启动图片选择
startChoosePhoto(1, PictureConfig.REQUEST_CAMERA, false, maxSelectable, false);
} else {
ToastUtils.showShort("最多只能选择6张图片");
}
} else {
// 查看大图或其他操作
FullScreenUtil.showFullScreenDialog(EditUserInfoActivity.this, position, list);
@@ -131,7 +138,7 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
private void onClick(View view) {
if (view.getId() == R.id.rv_user_head) {
startChoosePhoto(1, PictureConfig.REQUEST_GO_SETTING, false, 1);
startChoosePhoto(1, PictureConfig.REQUEST_GO_SETTING, false, 1,true);
} else if (view.getId() == R.id.rl_1) {
startActivity(new Intent(this, ChangeNicknameActivity.class));
} else if (view.getId() == R.id.rl_3) {
@@ -155,7 +162,7 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
return new EditUserPresenter(this, this);
}
private void startChoosePhoto(int mimeType, int requestCode, boolean isVideo, int type) {
private void startChoosePhoto(int mimeType, int requestCode, boolean isVideo, int type , boolean isCq) {
// PictureSelector.create(this)
// .openGallery(mimeType)
@@ -169,80 +176,98 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
// .setPictureStyle(MyPictureParameterStyle.Companion.selectPicture())
// .forResult(requestCode); //结果回调onActivityResult code
PictureSelectorUtil pictureSelectorUtil = new PictureSelectorUtil();
PictureSelector.create(this)
.openGallery(mimeType)
.isGif(isVideo)
.setMaxSelectNum(type)
.isPreviewImage(false)
.setImageEngine(GlideEngine.createGlideEngine())
.setImageEngine(GlideEngine.createGlideEngine()) // 选择器展示不出图片则添加
.setCropEngine(new CropFileEngine() {
@Override
public void onStartCrop(Fragment fragment, Uri srcUri, Uri destinationUri, ArrayList<String> dataSource, int requestCode) {
UCrop.Options options = pictureSelectorUtil.buildOptions();
UCrop uCrop = UCrop.of(srcUri, destinationUri, dataSource);
uCrop.withOptions(options);
uCrop.setImageEngine(new UCropImageEngine() {
@Override
public void loadImage(Context context, String url, ImageView imageView) {
// if (!ImageLoaderUtils.assertValidRequest(context)) {
// return;
// }
Glide.with(context).load(url).override(180, 180).into(imageView);
}
if (!isCq) {
@Override
public void loadImage(Context context, Uri url, int maxWidth, int maxHeight, OnCallbackListener<Bitmap> call) {
Glide.with(context).asBitmap().load(url).override(maxWidth, maxHeight).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @org.jetbrains.annotations.Nullable Transition<? super Bitmap> transition) {
if (call != null) {
call.onCall(resource);
PictureSelector.create(this)
.openGallery(mimeType)
.isGif(isVideo)
.setImageEngine(GlideEngine.createGlideEngine())
.setMaxSelectNum(type)
.isPreviewImage(true)
.isDisplayCamera(false)
.setOutputCameraDir(Constants.FILE_PATH)
.isOriginalSkipCompress(true)
.forResult(requestCode); //结果回调onActivityResult code
} else {
PictureSelectorUtil pictureSelectorUtil = new PictureSelectorUtil();
PictureSelector.create(this)
.openGallery(mimeType)
.isGif(isVideo)
.setMaxSelectNum(type)
.isPreviewImage(false)
.isDisplayCamera(false)
.setImageEngine(GlideEngine.createGlideEngine())
.setImageEngine(GlideEngine.createGlideEngine()) // 选择器展示不出图片则添加
.setCropEngine(new CropFileEngine() {
@Override
public void onStartCrop(Fragment fragment, Uri srcUri, Uri destinationUri, ArrayList<String> dataSource, int requestCode) {
UCrop.Options options = pictureSelectorUtil.buildOptions();
UCrop uCrop = UCrop.of(srcUri, destinationUri, dataSource);
uCrop.withOptions(options);
uCrop.setImageEngine(new UCropImageEngine() {
@Override
public void loadImage(Context context, String url, ImageView imageView) {
Glide.with(context).load(url).override(180, 180).into(imageView);
}
@Override
public void loadImage(Context context, Uri url, int maxWidth, int maxHeight, OnCallbackListener<Bitmap> call) {
Glide.with(context).asBitmap().load(url).override(maxWidth, maxHeight).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @org.jetbrains.annotations.Nullable Transition<? super Bitmap> transition) {
if (call != null) {
call.onCall(resource);
}
}
}
@Override
public void onLoadCleared(@org.jetbrains.annotations.Nullable Drawable placeholder) {
if (call != null) {
call.onCall(null);
@Override
public void onLoadCleared(@org.jetbrains.annotations.Nullable Drawable placeholder) {
if (call != null) {
call.onCall(null);
}
}
}
});
}
});
uCrop.start(fragment.requireActivity(), fragment, requestCode);
}
})
.forResult(requestCode);
});
}
});
uCrop.start(fragment.requireActivity(), fragment, requestCode);
}
})
.forResult(requestCode);
}
}
private int totalUploadCount;//需要上传的数据的总数
private int uploadedCount;//已经上传的数据的个数
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && data != null) {
switch (requestCode) {
case PictureConfig.REQUEST_GO_SETTING:
PictureSelector.create(EditUserInfoActivity.this)
.openPreview() ;
.openPreview();
List<LocalMedia> localMedia1 = PictureSelector.obtainSelectorList(data);
if (localMedia1 != null && localMedia1.size() != 0) {
LocalMedia imgMedia = localMedia1.get(0);
String url;
if (imgMedia.isCompressed()) {
url = imgMedia.getCompressPath();
} else {
url = imgMedia.getRealPath();
}
// if (imgMedia.isCompressed()) {
// url = imgMedia.getCompressPath();
// } else {
// url = imgMedia.getRealPath();
// }
url=imgMedia.getCutPath();
MvpPre.uploadFile(new File(url), 1, 1, 1);
}
break;
case PictureConfig.CHOOSE_REQUEST:
PictureSelector.create(EditUserInfoActivity.this)
.openPreview() ;
.openPreview();
List<LocalMedia> localMedia = PictureSelector.obtainSelectorList(data);
if (localMedia != null && localMedia.size() != 0) {
@@ -258,7 +283,7 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
break;
case PictureConfig.REQUEST_CAMERA:
PictureSelector.create(EditUserInfoActivity.this)
.openPreview() ;
.openPreview();
List<LocalMedia> localMediaList = PictureSelector.obtainSelectorList(data);
if (localMediaList != null && !localMediaList.isEmpty()) {
@@ -267,7 +292,9 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
String path = media.isCompressed() ? media.getCompressPath() : media.getRealPath();
imageFiles.add(new File(path));
}
// 记录需要上传的文件总数
totalUploadCount = imageFiles.size();
uploadedCount = 0;
// 开始批量上传
MvpPre.batchUploadFiles(imageFiles, 0); // 第二个参数是你原来的 type
@@ -299,7 +326,9 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
}
list.clear();
list.addAll(uploadedUrls);
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
if (list.size()<6) {
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
}
mUserPhotoWallAdapter.setNewData(list);
userInfo1 = userInfo;
List<XBannerData> s = new ArrayList<>();
@@ -324,27 +353,28 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
}
});
V2TIMUserFullInfo userFullInfo = new V2TIMUserFullInfo();
userFullInfo.setNickname(userInfo.getNickname());
userFullInfo.setFaceUrl(userInfo.getAvatar());
userFullInfo.setAllowType(userInfo.getSex());
V2TIMManager.getInstance().setSelfInfo(userFullInfo, new V2TIMCallback() {
@Override
public void onSuccess() {
LogUtils.e("@@@", "成功");
}
@Override
public void onError(int code, String desc) {
LogUtils.e("@@@", "描述" + desc);
}
});
// V2TIMUserFullInfo userFullInfo = new V2TIMUserFullInfo();
// userFullInfo.setNickname(userInfo.getNickname());
// userFullInfo.setFaceUrl(userInfo.getAvatar());
// userFullInfo.setAllowType(userInfo.getSex());
// V2TIMManager.getInstance().setSelfInfo(userFullInfo, new V2TIMCallback() {
// @Override
// public void onSuccess() {
// LogUtils.e("@@@", "成功");
// }
//
// @Override
// public void onError(int code, String desc) {
// LogUtils.e("@@@", "描述" + desc);
// }
// });
}
@Override
public void editUserInfoSuccess(String s) {
ToastUtils.showShort(s);
MvpPre.getUserHome(SpUtil.getUserId() + "");
// uploadedUrls.clear();
// MvpPre.getUserHome(SpUtil.getUserId() + "");
}
@Override
@@ -363,25 +393,27 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
EventBus.getDefault().post(userBean);
MvpPre.editUserInfo("", "", "", url, "", "", "");
} else {
// list.add(new UserImgList("1", url));
// mUserPhotoWallAdapter.setNewData(list);
if (index >= 0 && index < uploadedUrls.size()) {
uploadedUrls.add(index, url); // 插入到对应位置
} else {
uploadedUrls.add(url); // 添加到最后
}
if (uploadedUrls.size() == total) {
updateAdapterData(); // 所有图片上传完成,更新适配器数据
// 增加已上传计数
uploadedCount++;
uploadedUrls.add(url);
LogUtils.d("EditUserInfoActivity", "图片已插入到位置 " + uploadedUrls.size());
// 当所有图片都上传完成时,更新适配器数据
if (uploadedCount == totalUploadCount) {
updateAdapterData();
// 重置计数器
uploadedCount = 0;
totalUploadCount = 0;
}
}
}
private void updateAdapterData() {
LogUtils.d("EditUserInfoActivity", "图片已添加到末尾"+uploadedUrls.size());
list.clear();
list.addAll(uploadedUrls); // 添加真实图片
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
if (list.size() < 6) {
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
}
mUserPhotoWallAdapter.setNewData(list);
String imageUrlsString = TextUtils.join(",", uploadedUrls);
// MvpPre.editUserInfo("", "", "", "", imageUrlsString, "", "");

View File

@@ -67,6 +67,11 @@ public class MyBagActivity extends BaseMvpActivity<MyBagPresenter, ActivityMyBag
}
@Override
public void finishRefreshLoadMore() {
}
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {

View File

@@ -11,6 +11,7 @@ import com.example.modulevocal.presenter.MyMoneyPresenter;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.SpUtil;
@@ -45,6 +46,8 @@ public class MyMoneyActivity extends BaseMvpActivity<MyMoneyPresenter, ActivityM
super.onResume();
MvpPre.wallet();
MvpPre.bindType(SpUtil.getUserId() + "");
MvpPre.getMyInfo();
}
private void onClick(View view) {
@@ -125,4 +128,9 @@ public class MyMoneyActivity extends BaseMvpActivity<MyMoneyPresenter, ActivityM
}
}
@Override
public void myInfoSuccess(UserInfo data) {
SpUtil.saveUserInfo(data);
}
}

View File

@@ -26,21 +26,26 @@ import com.example.modulevocal.presenter.MyRoomPresenter;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.AttentionResp;
import com.xscm.moduleutil.bean.ManageRoomResp;
import com.xscm.moduleutil.bean.MyCpRoom;
import com.xscm.moduleutil.bean.MyFootResp;
import com.xscm.moduleutil.bean.MyRoomBean;
import com.xscm.moduleutil.event.RoomOutEvent;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ImageLoader;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.CustomTopBar;
import org.greenrobot.eventbus.EventBus;
import java.util.List;
/**
*@author
*@data 2025/5/15
*@description: 我的房间
* @author
* @data 2025/5/15
* @description: 我的房间
*/
@Route(path = ARouteConstants.MY_ROOM)
public class MyRoomActivity extends BaseMvpActivity<MyRoomPresenter, RoomActivityMyRoomBinding> implements MyRoomListContacts.View {
@@ -185,6 +190,15 @@ public class MyRoomActivity extends BaseMvpActivity<MyRoomPresenter, RoomActivit
mBinding.topBar.setRightIcon(com.xscm.moduleutil.R.mipmap.trend_icon);
mBinding.topBar.setImgPaddingRight(35);
mBinding.topBar.setRightImgVIsible(true);
mBinding.riv.setOnClickListener(v -> {
RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), CommonAppContext.getInstance().playId, "");
});
mBinding.ivGuanbi.setOnClickListener(v -> {
mBinding.ll.setVisibility(View.INVISIBLE);
CommonAppContext.getInstance().isShow = false;
CommonAppContext.getInstance().isPlaying = false;
EventBus.getDefault().post(new RoomOutEvent());
});
initListener();
}
@@ -199,9 +213,11 @@ public class MyRoomActivity extends BaseMvpActivity<MyRoomPresenter, RoomActivit
} else {
mBinding.ll.setVisibility(View.INVISIBLE);
}
if (CommonAppContext.getInstance().isPlaying && CommonAppContext.getInstance().isShow) {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation();
}
// if (CommonAppContext.getInstance().isPlaying && CommonAppContext.getInstance().isShow) {
// RoomManager.getInstance().fetchRoomDataAndEnter(getApplicationContext(), CommonAppContext.getInstance().playId,"");
//
//// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form", "首页").withString("roomId", CommonAppContext.getInstance().playId).navigation();
// }
}
private final Runnable mRivAnimationTask = () -> {
@@ -221,13 +237,13 @@ public class MyRoomActivity extends BaseMvpActivity<MyRoomPresenter, RoomActivit
// }
// startActivity(new Intent(MyRoomActivity.this,CreatedRoomActivity.class));
// }
if (!SpUtil.getRealName()){
if (!SpUtil.getRealName()) {
ToastUtils.show("实名认证后才能创建直播间");
ARouter.getInstance().build(ARouteConstants.REAL_NAME_ACTIVITY2).navigation();
// startActivity(new Intent(MyRoomActivity.this, RealName1Activity.class));
return;
}
startActivity(new Intent(MyRoomActivity.this,CreatedRoomActivity.class));
startActivity(new Intent(MyRoomActivity.this, CreatedRoomActivity.class));
finish();
}
});

View File

@@ -2,11 +2,13 @@ package com.example.modulevocal.activity;
import android.content.Intent;
import android.graphics.Color;
import android.view.View;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.example.modulevocal.R;
import com.example.modulevocal.conacts.PersonalityConacts;
@@ -15,10 +17,13 @@ import com.example.modulevocal.fragment.zhuangb.ZhuangBanShangChengFragment;
import com.example.modulevocal.presenter.PersonalityPresenter;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.adapter.GiftTwoDetailsFragment;
import com.xscm.moduleutil.adapter.MyPagerAdapter;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.PersonaltyBean;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.dialog.RewardGiftDialogFragment;
import java.util.ArrayList;
import java.util.List;
@@ -36,10 +41,7 @@ public class PersonalityActivity extends BaseMvpActivity<PersonalityPresenter, A
@Override
protected void initData() {
if (MvpPre==null){
MvpPre=bindPresenter();
}
MvpPre.getPersonaltyList();
// titleList.add("头像框");
@@ -104,6 +106,15 @@ public class PersonalityActivity extends BaseMvpActivity<PersonalityPresenter, A
}
@Override
protected void onResume() {
super.onResume();
if (MvpPre==null){
MvpPre=bindPresenter();
}
MvpPre.getPersonaltyList();
}
@Override
protected PersonalityPresenter bindPresenter() {
return new PersonalityPresenter(this, this);
@@ -116,7 +127,7 @@ public class PersonalityActivity extends BaseMvpActivity<PersonalityPresenter, A
mBinding.topBar.setRightColor(ColorManager.getInstance().getPrimaryColorInt());
mBinding.topBar.getTvRight().setOnClickListener(v -> {
Intent intent=new Intent(this, WebViewActivity.class);
intent.putExtra("url", "https://vespa.qxmier.com/web/index.html#/pages/prop/propMall?id="+SpUtil.getToken());
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/prop/propMall?id="+SpUtil.getToken());
intent.putExtra("title", "道具商城");
startActivity(intent);
});
@@ -168,9 +179,49 @@ public class PersonalityActivity extends BaseMvpActivity<PersonalityPresenter, A
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
mBinding.slidingTabLayout.setCurrentTab(0);
mBinding.viewPager.setOffscreenPageLimit(0);
refreshCurrentGiftFragment(personaltyBean.get(0).getId(),0);
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// 当页面切换时,控制 tv_bb_qs 按钮的显示
refreshCurrentGiftFragment(personaltyBean.get(position).getId(),position);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
}
private void refreshCurrentGiftFragment(String id,int position) {
if (getCurrentGiftFragment()!=null){
getCurrentGiftFragment().loadDataIfNeeded(Integer.parseInt(id), position);
if (position==0){
mBinding.ivUser.setVisibility(View.VISIBLE);
}else {
mBinding.ivUser.setVisibility(View.GONE);
}
}
}
private ZhuangBanShangChengFragment getCurrentGiftFragment() {
int currentPosition = mBinding.viewPager.getCurrentItem();
// 使用 ViewPager 的 adapter 获取当前 fragment
MyFragmentPagerAdapter adapter = (MyFragmentPagerAdapter) mBinding.viewPager.getAdapter();
if (adapter != null) {
// 直接从 adapter 获取 fragment
Fragment fragment = adapter.getItem(currentPosition);
if (fragment instanceof ZhuangBanShangChengFragment) {
return (ZhuangBanShangChengFragment) fragment;
}
}
return null;
}
private static class MyFragmentPagerAdapter extends FragmentStatePagerAdapter {
private List<PersonaltyBean> list;

View File

@@ -10,6 +10,8 @@ import com.example.modulevocal.presenter.PhoneReplacementPresenter;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.BaseAppCompatActivity;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil;
@@ -133,6 +135,7 @@ public class PhoneReplacementActivity extends BaseMvpActivity<PhoneReplacementPr
ToastUtils.show(s);
} else {
ToastUtils.show(s);
finish();
}

View File

@@ -2,15 +2,22 @@ package com.example.modulevocal.activity;
import static com.xscm.moduleutil.utils.permission.PermissionUtils.TAG;
import android.content.Intent;
import android.net.Uri;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import androidx.appcompat.app.AlertDialog;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.fastjson.JSON;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.example.modulevocal.R;
import com.xscm.moduleutil.adapter.PayMethodAdapter;
import com.xscm.moduleutil.adapter.BalanceRechargeAdapter;
@@ -24,9 +31,12 @@ import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.RechargeBean;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.event.PayEvent;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.utils.SystemUtils;
import com.xscm.moduleutil.widget.EqualSpaceItemDecoration;
import com.xscm.moduleutil.widget.PaymentUtil;
import com.tencent.liteav.base.Log;
import com.tencent.mm.opensdk.constants.ConstantsAPI;
@@ -34,8 +44,15 @@ import com.tencent.mm.opensdk.modelbase.BaseResp;
import com.tencent.mm.opensdk.openapi.IWXAPI;
import com.tencent.mm.opensdk.openapi.WXAPIFactory;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.lang.reflect.Field;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
/**
* @author qx
@@ -70,7 +87,7 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
mBinding.recycleView1.setAdapter(bindTypeAdapter);
bindTypeAdapter.setOnItemClickListener((adapter, view, position) -> {
// 更新选中项
bindTypeAdapter.setSelectedPosition(position);
// 获取当前选中的数据
@@ -81,11 +98,18 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
ThemeableDrawableUtils.setThemeableRoundedBackground(mBinding.tvPayment, ColorManager.getInstance().getPrimaryColorInt(), 53);
mBinding.tvPayment.setTextColor(ColorManager.getInstance().getButtonColorInt());
ViewGroup.LayoutParams layoutParams = mBinding.recyclerView.getLayoutParams();
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT; // 使用你定义的getWidth方法
layoutParams.height = SystemUtils.getWidth(372); // 示例高度
mBinding.recyclerView.setLayoutParams(layoutParams);
}
private void onClick(View view) {
if (view.getId() == R.id.tv_payment) {
if (money.equals("0")) {
LogUtils.d(TAG,"onClick,=--2------"+money);
if (money.equals("0")||TextUtils.isEmpty(money)) {
money=mBinding.etCustomAmount.getText().toString().trim();
if (TextUtils.isEmpty(money)) {
ToastUtils.showShort("请选择充值金额");
@@ -101,7 +125,10 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
ToastUtils.showShort("请选择支付方式");
return;
}
MvpPre.appPay(SpUtil.getUserId() + "", money, coin, selectedItem.getType());
LogUtils.d(TAG,"onClick,=--3------"+money);
MvpPre.appPay(SpUtil.getUserId() + "", money, coin, selectedItem.getType(),"","");
}
}
@@ -118,18 +145,21 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
@Override
public void setRechargeData(List<RechargeBean> rechargeData) {
// 在数据源最后添加一个自定义项
RechargeBean customItem = new RechargeBean();
customItem.setCoins("自定义");
customItem.setMoney("");
customItem.setItemViewType(1);
rechargeData.add(customItem);
// RechargeBean customItem = new RechargeBean();
// customItem.setCoins("自定义");
// customItem.setMoney("");
// customItem.setItemViewType(1);
// rechargeData.add(customItem);
rechargeAdapter = new BalanceRechargeAdapter(rechargeData);
rechargeAdapter.setNewData(rechargeData);
rechargeAdapter.setListener(new BalanceRechargeAdapter.OnRechargeItemClickListener() {
@Override
public void onClick(RechargeBean rechargeBean) {
money = rechargeBean.getMoney();
coin = rechargeBean.getCoins();
// mBinding.tvPayment.setText(String.format("立即支付(%s元)", money));
}
});
@@ -137,10 +167,18 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
@Override
public void onInputBoxVisibilityChanged(boolean isVisible) {
// 根据 isVisible 的值来显示或隐藏输入框
mBinding.r4.setVisibility(isVisible ? View.VISIBLE : View.GONE);
mBinding.r4.setVisibility(isVisible ? View.GONE : View.GONE);
if (isVisible){
money="0";
}
}
});
// mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false));
mBinding.recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
// int spacing = getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_22); // 根据需要调整间距
// mBinding.recyclerView.addItemDecoration(new EqualSpaceItemDecoration(3, spacing));
mBinding.recyclerView.setAdapter(rechargeAdapter);
}
@@ -158,6 +196,12 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
mBinding.tvJb.setText(walletBean.getCoin());
}
// 订阅方法:处理 MessageEvent 事件
// threadMode 指定处理事件的线程(如主线程、后台线程)
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(PayEvent event) {
money="0";
}
@Override
public void appPay(AppPay appPay) {
if (appPay.getAli()!=null) {
@@ -166,10 +210,57 @@ public class RechargeActivity extends BaseMvpActivity<RechargePresenter, Activit
IWXAPI wxapi = WXAPIFactory.createWXAPI(this, CommonAppContext.getInstance().getCurrentEnvironment().getWxAppId());
PaymentUtil.payWxMiniProgram2(wxapi,appPay);
}else if (appPay.getTl()!=null){
if (appPay.getTl().getRemark().equals("5")) {//微信
IWXAPI wxapi = WXAPIFactory.createWXAPI(this, CommonAppContext.getInstance().getCurrentEnvironment().getWxAppId());
try {
String paramString = buildParamString(appPay.getTl());
PaymentUtil.payWxMiniProgramWx(wxapi,paramString);
android.util.Log.d("RequestParams", paramString); // 输出拼接后的参数
} catch (IllegalAccessException e) {
e.printStackTrace();
}
} else if (appPay.getTl().getRemark().equals("4")) {//支付宝
String s= JSON.toJSONString(appPay.getTl());
try {
String query = URLEncoder.encode("payinfo=" + URLEncoder.encode(s, "UTF-8"), "UTF-8");
String url = "alipays://platformapi/startapp?appId=2021001104615521&page=pages/orderDetail/orderDetail&thirdPartSchema="
+ URLEncoder.encode("myziroom://myziroom/", "UTF-8") + "&query=" + query;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
public static String buildParamString(Object obj) throws IllegalAccessException {
Class<?> clazz = obj.getClass();
Field[] fields = clazz.getDeclaredFields();
TreeMap<String, String> paramMap = new TreeMap<>();
// 遍历字段并填充 TreeMap
for (Field field : fields) {
field.setAccessible(true); // 允许访问私有字段
Object value = field.get(obj);
if (value != null && !String.valueOf(value).isEmpty()) {
paramMap.put(field.getName(), String.valueOf(value));
}
}
// 使用 StringBuilder 拼接参数字符串
StringBuilder builder = new StringBuilder();
for (Map.Entry<String, String> entry : paramMap.entrySet()) {
if (builder.length() > 0) {
builder.append("&");
}
builder.append(entry.getKey())
.append("=")
.append(entry.getValue());
}
return builder.toString();
}
public void onResp(BaseResp resp){
if(resp.getType()== ConstantsAPI.COMMAND_PAY_BY_WX){
Log.d(TAG,"onPayFinish,errCode="+resp.errCode);

View File

@@ -7,6 +7,7 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.example.modulevocal.R;
import com.example.modulevocal.conacts.RevenueConacts;
@@ -45,9 +46,42 @@ public class RevenueActivity extends BaseMvpActivity<RevenuePresenter, ActivityR
}
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), list,type));
mBinding.viewPager.setOffscreenPageLimit(0);
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
mBinding.slidingTabLayout.setCurrentTab(0);
mBinding.viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
// 当页面切换时,控制 tv_bb_qs 按钮的显示
// 页面选中时,获取对应位置的 Fragment 并刷新数据
// 当页面切换时,控制 tv_bb_qs 按钮的显示
// 页面选中时,获取对应位置的 Fragment 并刷新数据
Fragment fragment = ((MyFragmentPagerAdapter) mBinding.viewPager.getAdapter()).getRegisteredFragment(position);
if (fragment instanceof RevenueFragment) {
// 根据 position 获取对应的 MyBagBean
MyBagBean model = list.get(position);
String direction = model.getMyBagType(); // 直接使用 MyBagBean 中的类型
int types=0;
if (model.getMyBagTitle().contains("钻石")){
types=2;
}else {
types=1;
}
// 调用 Fragment 的刷新方法并传递参数
((RevenueFragment) fragment).refreshData(types, direction);
}
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
// mBinding.slidingTabLayout.setOnTabSelectListener(new ViewPager.OnPageChangeListener() {
// @Override
// public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {}

View File

@@ -58,12 +58,12 @@ public class RoomDetailsActivity extends BaseMvpActivity<RoomDetailsPresenter, A
DoubleTimePickerBottomSheet dialog = new DoubleTimePickerBottomSheet();
dialog.setOnTimeRangeSelectedListener((startDate, endDate) -> {
// 处理选择的时间范围
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:mm", Locale.getDefault());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Log.d("SelectedTime", "开始时间:" + sdf.format(startDate));
// mBinding.tv2.setText(sdf.format(startDate));
mBinding.tv2.setText(sdf.format(startDate));
Log.d("SelectedTime", "结束时间:" + sdf.format(endDate));
// mBinding.tv22.setText(sdf.format(endDate));
mBinding.tv22.setText(sdf.format(endDate));
currentPage=1;
stime = sdf.format(startDate);
etime = sdf.format(endDate);

View File

@@ -18,6 +18,8 @@ import com.example.modulevocal.presenter.SettingPresenter;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.FirstChargeGiftBean;
import com.xscm.moduleutil.dialog.FirstChargeDialog;
import com.xscm.moduleutil.dialog.RealNameDialog;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.SpUtil;
@@ -78,11 +80,22 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
} else {
RealNameDialog realNameDialog = new RealNameDialog(this);
realNameDialog.show();
realNameDialog.setOnDismissListener(dialog -> {
dialog.dismiss();
ARouter.getInstance().build(ARouteConstants.REAL_NAME_ACTIVITY2).navigation();
// startActivity(new Intent(SettingActivity.this, RealName1Activity.class));
realNameDialog.setOnFirstChargeListener(new RealNameDialog.OnFirstChargeListener() {
@Override
public void onFirstChargeConfirmed(String giftBean, int type) {
realNameDialog.dismiss();
ARouter.getInstance().build(ARouteConstants.REAL_NAME_ACTIVITY2).navigation();
}
@Override
public void onFirstChargeCancelled() {
realNameDialog.dismiss();
}
});
// realNameDialog.setOnDismissListener(dialog -> {
// dialog.dismiss();
// ARouter.getInstance().build(ARouteConstants.REAL_NAME_ACTIVITY2).navigation();
// });
}
} else if (view.getId() == R.id.ll_qhch) {
new AlertDialog.Builder(this).setMessage("确认清理缓存?").setPositiveButton("确定", new DialogInterface.OnClickListener() {
@@ -115,8 +128,15 @@ public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivityS
if (MvpPre == null){
MvpPre = bindPresenter();
}
MvpPre.clearLoginInfo();
try {
CommonAppContext.getInstance().clearLoginInfo();
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
})
.setNegativeButton("取消", null).create().show();

View File

@@ -1,26 +1,209 @@
package com.example.modulevocal.activity;
import android.content.Intent;
import android.view.View;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.blankj.utilcode.util.ToastUtils;
import com.example.modulevocal.R;
import com.example.modulevocal.databinding.ActivityUnderageBinding;
import com.example.modulevocal.presenter.UnderagePresenter;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.SplitEditText;
/**
* @author qx
* @data 2025/9/19
* @description: 未成年模式设置
*/
@Route(path = ARouteConstants.UNDERAGE_ACTIVITY)
public class UnderageActivity extends BaseMvpActivity<UnderagePresenter, ActivityUnderageBinding> {
private static final String PREF_UNDERAGE_PASSWORD = "underagePassword";
private String firstPassword = ""; // 用于存储首次输入的密码
private boolean isConfirming = false; // 标识是否处于确认密码阶段
@Autowired
public int type ; // 0-设置密码模式1-验证密码模式
@Override
protected void initData() {
}
@Override
protected void initView() {
super.initView();
mBinding.topBar.setTitle("未成年人模式");
mBinding.text.setTextColor(ColorManager.getInstance().getPrimaryColorInt());
if (type == 1) {
// 验证密码模式
mBinding.meMim.setText("请输入监护密码");
mBinding.text.setVisibility(View.GONE);
} else {
// 设置密码模式
mBinding.meMim.setText("请输入监护密码");
mBinding.text.setVisibility(android.view.View.GONE);
}
mBinding.verificationcodeview.setOnInputListener(new SplitEditText.OnInputListener() {
@Override
public void onInputFinished(String content) {
// 当输入完成4位数字时自动处理
handlePasswordInput(content);
}
@Override
public void onInputChanged(String text) {
}
});
}
/**
* 处理密码输入完成后的逻辑
*
* @param password 输入的密码
*/
private void handlePasswordInput(String password) {
if (type == 1) {
// 验证密码模式
verifyPassword(password);
} else {
// 设置密码模式
setupPassword(password);
}
// if (!isConfirming) {
// // 第一次输入密码,保存并清空输入框
// firstPassword = password;
// isConfirming = true;
//
// // 清空输入框
// mBinding.verificationcodeview.setText("");
//
// // 更改提示文字
// mBinding.meMim.setText("请再次输入监护密码");
// } else {
// // 第二次输入密码,进行对比
// if (firstPassword.equals(password)) {
// // 密码一致,保存到本地并跳转页面
// savePassword(password);
// navigateToNextPage();
// } else {
// // 密码不一致,提示并重新设置
// ToastUtils.showShort("两次输入的密码不一致,请重新设置");
// resetPasswordInput();
// }
// }
}
/**
* 验证密码type=1时使用
* @param inputPassword 用户输入的密码
*/
private void verifyPassword(String inputPassword) {
// 从本地获取已保存的密码
String savedPassword = SpUtil.getUnderagePassword();
if (savedPassword.isEmpty()) {
// 尚未设置密码
ToastUtils.showShort("尚未设置监护密码");
mBinding.verificationcodeview.setText(""); // 清空输入框
return;
}
if (savedPassword.equals(inputPassword)) {
// 密码正确,关闭页面
// ToastUtils.showShort("密码验证成功");
ARouter.getInstance().build(ARouteConstants.ME).navigation();
finishAll();
} else {
// 密码错误,提示并清空输入框
ToastUtils.showShort("密码错误,请重新输入");
mBinding.verificationcodeview.setText(""); // 清空输入框
}
}
/**
* 设置密码type=0时使用
* @param password 输入的密码
*/
private void setupPassword(String password) {
if (!isConfirming) {
// 第一次输入密码,保存并清空输入框
firstPassword = password;
isConfirming = true;
// 清空输入框
mBinding.verificationcodeview.setText("");
// 更改提示文字
mBinding.meMim.setText("请再次输入监护密码");
} else {
// 第二次输入密码,进行对比
if (firstPassword.equals(password)) {
// 密码一致,保存到本地并跳转页面
savePassword(password);
navigateToNextPage();
} else {
// 密码不一致,提示并重新设置
ToastUtils.showShort("两次输入的密码不一致,请重新设置");
resetPasswordInput();
}
}
}
/**
* 保存密码到本地
*
* @param password 要保存的密码
*/
private void savePassword(String password) {
SpUtil.setUnderagePassword(password);
}
/**
* 重置密码输入状态
*/
private void resetPasswordInput() {
firstPassword = "";
isConfirming = false;
// 清空输入框
mBinding.verificationcodeview.setText("");
// 恢复提示文字
mBinding.meMim.setText("请输入监护密码");
}
/**
* 跳转到下一个页面
*/
private void navigateToNextPage() {
// ToastUtils.showShort("密码设置成功");
// ARouter.getInstance().build(ARouteConstants.H5).withString("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/teenage?id=" + SpUtil.getToken())
// .withString("type", "1").navigation();
Intent intent = new Intent(UnderageActivity.this, WebViewActivity.class);
intent.putExtra("type", "1");
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url() + "/web/index.html#/pages/feedback/teenage?id=" + SpUtil.getToken());
startActivity(intent);
mBinding.verificationcodeview.setText("");
finish();
// 这里可以添加页面跳转逻辑
finishAll();
}
@Override

View File

@@ -1,13 +1,17 @@
package com.example.modulevocal.activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import com.alibaba.android.arouter.facade.annotation.Autowired;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.blankj.utilcode.util.ToastUtils;
import com.example.moduletablayout.listener.CustomTabEntity;
import com.example.modulevocal.R;
import com.example.modulevocal.conacts.UserHomepageConacts;
@@ -16,6 +20,7 @@ import com.example.modulevocal.fragment.UserHomepageFragment;
import com.example.modulevocal.presenter.UserHomepagePresenter;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.adapter.MyFragmentPagerAdapter;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.CircleListBean;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.XBannerData;
@@ -67,6 +72,30 @@ public class UserHomepageActivity extends BaseMvpActivity<UserHomepagePresenter,
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
finish();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getOnBackPressedDispatcher() != null) {
getOnBackPressedDispatcher().addCallback(this, new androidx.activity.OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
finish();
}
});
}
}
@Override
protected void initView() {
super.initView();
@@ -121,4 +150,25 @@ public class UserHomepageActivity extends BaseMvpActivity<UserHomepagePresenter,
public void setLikeZone() {
}
@Override
protected void onDestroy() {
// 清理 ViewPager
if (mBinding.viewPager.getAdapter() != null) {
mBinding.viewPager.setAdapter(null);
}
// 清理 XBanner 资源
if (mBinding.xbanner != null) {
mBinding.xbanner.stopAutoPlay();
}
// 通知 Presenter 页面销毁
if (MvpPre != null) {
MvpPre= null;
}
super.onDestroy();
}
}

View File

@@ -19,6 +19,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.example.modulevocal.R;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.adapter.PayMethodAdapter;
import com.example.modulevocal.conacts.WithdrawalConacts;
import com.example.modulevocal.databinding.ActivityWithdrawalBinding;
@@ -26,6 +27,7 @@ import com.example.modulevocal.presenter.WithdrawalPresenter;
import com.google.android.material.textfield.TextInputEditText;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.WalletConfig;
@@ -89,6 +91,10 @@ public class WithdrawalActivity extends BaseMvpActivity<WithdrawalPresenter, Act
ToastUtils.show("请选择提现方式");
return;
}
if (mBinding.etCustomAmount.getText().toString().equals("0") || mBinding.etCustomAmount.getText().toString().equals("") || mBinding.etCustomAmount.getText().toString().isEmpty()) {
ToastUtils.show("提现金额不能为0");
return;
}
showSecondaryVerificationDialog();
});
@@ -98,38 +104,42 @@ public class WithdrawalActivity extends BaseMvpActivity<WithdrawalPresenter, Act
});
mBinding.tvLhjy.setOnClickListener(v -> {
ARouter.getInstance().build(ARouteConstants.H5).withString("url",walletBean.getUrl()).withString("title", walletBean.getTitle()).navigation();
Intent intent = new Intent(this, WebViewActivity.class);
intent.putExtra("url", walletBean.getUrl());
intent.putExtra("title", walletBean.getTitle());
startActivity(intent);
// ARouter.getInstance().build(ARouteConstants.H5).withString("url",walletBean.getUrl()).withString("title", walletBean.getTitle()).navigation();
});
TextInputEditText etCustomAmount = mBinding.etCustomAmount;
// 限制只能输入数字和小数点后一位
etCustomAmount.setKeyListener(DigitsKeyListener.getInstance("0123456789."));
etCustomAmount.setFilters(new InputFilter[]{(source, start, end, dest, dstart, dend) -> {
// 防止输入负号
if (source.toString().contains("-")) {
return "";
}
String newText = dest.toString().substring(0, dstart) + source.toString() + dest.toString().substring(dend);
// 检查小数点
if (newText.contains(".")) {
String[] splitResult = newText.split("\\.");
if (splitResult.length > 1 && splitResult[1].length() > 1) {
// 小数点后只能有一位
return "";
}
}
// 可选:限制最大长度
if (newText.length() > 10) {
return "";
}
return null;
}});
etCustomAmount.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
// etCustomAmount.setFilters(new InputFilter[]{(source, start, end, dest, dstart, dend) -> {
// // 防止输入负号
// if (source.toString().contains("-")) {
// return "";
// }
//
// String newText = dest.toString().substring(0, dstart) + source.toString() + dest.toString().substring(dend);
//
// // 检查小数点
// if (newText.contains(".")) {
// String[] splitResult = newText.split("\\.");
// if (splitResult.length > 1 && splitResult[1].length() > 1) {
// // 小数点后只能有一位
// return "";
// }
// }
//
// // 可选:限制最大长度
// if (newText.length() > 10) {
// return "";
// }
//
// return null;
// }});
// 可选:添加 TextWatcher 来监听输入内容变化
etCustomAmount.addTextChangedListener(new TextWatcher() {
@@ -159,23 +169,36 @@ public class WithdrawalActivity extends BaseMvpActivity<WithdrawalPresenter, Act
}
private String truncateToFirstDecimalPlace(String value) {
if (TextUtils.isEmpty(value)) return "0.0";
if (TextUtils.isEmpty(value)) return "0";
// 直接返回整数值,忽略任何小数部分
int dotIndex = value.indexOf('.');
if (dotIndex == -1) {
return value + ".0"; // 没有小数点,默认加 .0
}
String integerPart = value.substring(0, dotIndex);
String decimalPart = value.substring(dotIndex + 1);
if (decimalPart.length() >= 1) {
return integerPart + "." + decimalPart.charAt(0); // 只取小数点后一位
return value; // 没有小数点,直接返回原值
} else {
return integerPart + ".0"; // 小数点后为空,默认加 0
// 小数点,只取整数部分
return value.substring(0, dotIndex);
}
}
// private String truncateToFirstDecimalPlace(String value) {
// if (TextUtils.isEmpty(value)) return "0";
//
// int dotIndex = value.indexOf('.');
// if (dotIndex == -1) {
// return value + ".0"; // 没有小数点,默认加 .0
// }
//
// String integerPart = value.substring(0, dotIndex);
// String decimalPart = value.substring(dotIndex + 1);
//
// if (decimalPart.length() >= 1) {
// return integerPart + "." + decimalPart.charAt(0); // 只取小数点后一位
// } else {
// return integerPart + ".0"; // 小数点后为空,默认加 0
// }
// }
private void showSecondaryVerificationDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View dialogView = getLayoutInflater().inflate(R.layout.dialog_secondary_verification, null);
@@ -238,13 +261,11 @@ public class WithdrawalActivity extends BaseMvpActivity<WithdrawalPresenter, Act
@Override
public void afterTextChanged(Editable s) {
if (s.length() == 4) {
String code = etVerificationCode.getText().toString().trim();
if (!TextUtils.isEmpty(code)) {
// 验证码验证逻辑
MvpPre.withdrawal(mBinding.etCustomAmount.getText().toString(), selectedItem.getType(), code);
dialog.dismiss();
}
String code = etVerificationCode.getText().toString().trim();
if (!TextUtils.isEmpty(code) && code.length() >= 6) {
// 验证码验证逻辑
MvpPre.withdrawal(mBinding.etCustomAmount.getText().toString(), selectedItem.getType(), code);
dialog.dismiss();
}
}
});
@@ -335,4 +356,14 @@ public class WithdrawalActivity extends BaseMvpActivity<WithdrawalPresenter, Act
public void withdrawalList(List<WithdrawalBean> list) {
}
@Override
public void bindDetai(BindDetail bindDetail) {
}
@Override
public void finishRefreshLoadMore() {
}
}

View File

@@ -1,7 +1,10 @@
package com.example.modulevocal.activity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.example.modulevocal.R;
@@ -9,7 +12,11 @@ import com.example.modulevocal.adapter.WithdrawalAdapter;
import com.example.modulevocal.conacts.WithdrawalConacts;
import com.example.modulevocal.databinding.ActivityWithdrawalListBinding;
import com.example.modulevocal.presenter.WithdrawalPresenter;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.moduleutil.activity.BaseMvpActivity;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.WalletConfig;
@@ -17,30 +24,42 @@ import com.xscm.moduleutil.bean.WithdrawalBean;
import com.xscm.moduleutil.widget.DoubleTimePickerBottomSheet;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
/**
*@author qx
*@data 2025/7/12
*@description: 提现记录
* @author qx
* @data 2025/7/12
* @description: 提现记录
*/
public class WithdrawalListActivity extends BaseMvpActivity<WithdrawalPresenter, ActivityWithdrawalListBinding> implements WithdrawalConacts.View{
public class WithdrawalListActivity extends
BaseMvpActivity<WithdrawalPresenter, ActivityWithdrawalListBinding> implements WithdrawalConacts.View, OnRefreshLoadMoreListener {
private int page = 1;
private String page_limit = "10";
private String search_stime;//开始时间
private String search_etime;//结束时间
private WithdrawalAdapter adapter;
@Override
protected void initData() {
mBinding.topBar.setTitle("提现记录");
MvpPre.withdrawalList("1","50","","");
mBinding.rl3.setOnClickListener(v -> {
DoubleTimePickerBottomSheet dialog = new DoubleTimePickerBottomSheet();
dialog.setOnTimeRangeSelectedListener((startDate, endDate) -> {
// 处理选择的时间范围
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:mm", Locale.getDefault());
Log.d("SelectedTime", "开始时间:" + sdf.format(startDate));
mBinding.tv2.setText(sdf.format(startDate));
search_stime = sdf.format(startDate);
mBinding.tv2.setText(search_stime);
Log.d("SelectedTime", "结束时间:" + sdf.format(endDate));
mBinding.tv22.setText(sdf.format(endDate));
MvpPre.withdrawalList("1","50",mBinding.tv2.getText().toString(),mBinding.tv22.getText().toString());
search_etime = sdf.format(endDate);
mBinding.tv22.setText(search_etime);
page = 1;
MvpPre.withdrawalList(page + "", page_limit, search_stime, search_etime);
});
dialog.show(getSupportFragmentManager(), "DoubleTimePicker");
});
@@ -48,8 +67,27 @@ public class WithdrawalListActivity extends BaseMvpActivity<WithdrawalPresenter,
mBinding.revenueView.setLayoutManager(new LinearLayoutManager(this));
adapter = new WithdrawalAdapter();
mBinding.revenueView.setAdapter(adapter);
//下拉刷新的监听
// mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this);
MvpPre.withdrawalList(page + "", page_limit, search_stime, search_etime);
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
page++;
MvpPre.withdrawalList(page + "", page_limit + "", search_stime, search_etime);
}
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
// EventBus.getDefault().post(new BannerRefreshEvent());
page = 1;
MvpPre.withdrawalList(page + "", page_limit + "", search_stime, search_etime);
}
});
}
@Override
protected int getLayoutId() {
return R.layout.activity_withdrawal_list;
@@ -57,7 +95,7 @@ public class WithdrawalListActivity extends BaseMvpActivity<WithdrawalPresenter,
@Override
protected WithdrawalPresenter bindPresenter() {
return new WithdrawalPresenter(this,this);
return new WithdrawalPresenter(this, this);
}
@Override
@@ -87,6 +125,69 @@ public class WithdrawalListActivity extends BaseMvpActivity<WithdrawalPresenter,
@Override
public void withdrawalList(List<WithdrawalBean> list) {
adapter.setNewData(list);
// 1. 统一处理刷新/加载更多的结束状态(三元运算符简化)
// mBinding.smartRefreshLayout.finishRefresh(isUpRefresh);
// mBinding.smartRefreshLayout.finishLoadMore(!isUpRefresh);
// 2. 处理数据为空的情况避免addData/setNewData传入null
List<WithdrawalBean> newList = list == null ? Collections.emptyList() : list;
// 3. 数据更新区分第一页和加载更多避免冗余notify
if (page == 1) {
adapter.setNewData(newList);
// 首次加载空数据时,可显示空视图(根据需求添加)
if (newList.isEmpty()) {
// 4. 最后再设置空视图
View emptyView = LayoutInflater.from(this).inflate(R.layout.layout_empty_no, mBinding.revenueView, false);
adapter.setEmptyView(emptyView); // 自定义空视图
}// 通常setNewData内部会自动notify
} else {
adapter.addData(newList); // 多数适配器如BaseQuickAdapter的addData会自动notify
}
// 5. 完善"是否有更多数据"逻辑:
// - 假设每页最多加载10条若当前返回数据<=10说明已无更多
// - 修复原代码"list可能为null"的空指针风险改用newList
// boolean hasMore = newList.size() > 10;
// mBinding.smartRefreshLayout.setNoMoreData(!hasMore);
}
@Override
public void finishRefreshLoadMore() {
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
}
@Override
public void bindDetai(BindDetail bindDetail) {
}
/**
* 加载更多数据
*
* @param refreshLayout
*/
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
isUpRefresh = false;
page++;
MvpPre.withdrawalList(page + "", page_limit + "", search_stime, search_etime);
}
private boolean isUpRefresh = false;
/**
* 刷新数据
*
* @param refreshLayout
*/
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
isUpRefresh = true;
page = 1;
MvpPre.withdrawalList(page + "", page_limit + "", search_stime, search_etime);
}
}

View File

@@ -100,8 +100,8 @@ public class BlackAdapter extends BaseQuickAdapter<BlackUserBean, BaseViewHolder
if (url.contains("http")) {
ImageView imageView1 = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView1.setLayoutParams(params);

View File

@@ -25,6 +25,7 @@ import com.example.modulevocal.R;
import com.makeramen.roundedimageview.RoundedImageView;
import com.xscm.moduleutil.RoomAutionTimeBean;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.MyCpRoom;
import com.xscm.moduleutil.bean.MyFootResp;
import com.xscm.moduleutil.bean.MyRoomBean;
@@ -322,8 +323,10 @@ public class MyCreateAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
queren(itemView.getContext());
return;
}
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() +"","");
// TODO: 跳转到房间
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});
tv_room_bt.setOnClickListener(new View.OnClickListener() {
@@ -334,7 +337,9 @@ public class MyCreateAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
queren(itemView.getContext());
return;
}
ARouter.getInstance().build(ARouteConstants.ROOM_ALLOWANCE).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() +"","");
// ARouter.getInstance().build(ARouteConstants.ROOM_ALLOWANCE).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});
@@ -401,16 +406,19 @@ public class MyCreateAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
@Override
public void onClick(View v) {
// TODO: 跳转到房间详情页面
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() +"","");
// startActivity(new Intent(getContext(), RoomDetailsActivity.class));
ARouter.getInstance().build(ARouteConstants.MY_ROOM_DETAILS).withString("roomId", item.getRoom_id() + "").navigation();
// ARouter.getInstance().build(ARouteConstants.MY_ROOM_DETAILS).withString("roomId", item.getRoom_id() + "").navigation();
}
});
cl_my_room_list.setOnClickListener(new View.OnClickListener() {//跳转房间
@Override
public void onClick(View v) {
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() +"","");
// TODO: 跳转到房间
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});
@@ -468,11 +476,13 @@ public class MyCreateAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde
tv_name.setText(item.getRoom_name());
tv_num.setText(item.getHot_value());
ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv_play);
// ImageUtils.loadRes(com.xscm.moduleutil.R.drawable.voice_play, iv_play);
rl_root.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
RoomManager.getInstance().fetchRoomDataAndEnter(itemView.getContext(), item.getRoom_id() +"","");
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
});

View File

@@ -1,5 +1,7 @@
package com.example.modulevocal.adapter;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.example.modulevocal.R;
@@ -18,7 +20,8 @@ public class RevenueAdapter extends BaseQuickAdapter<RevenueBean, BaseViewHolder
helper.setText(R.id.tv_time, time);
helper.setText(R.id.tv_name, item.getRemarks());
helper.setText(R.id.tv_jb, item.getChange_value());
TextView textView=helper.getView(R.id.tv_name);
textView.setSelected(true);
if (item.getType()==2){
helper.getView(R.id.im_ty).setBackgroundResource(com.xscm.moduleutil.R.mipmap.gift_t);
}else if (item.getType()==1){

View File

@@ -80,7 +80,7 @@ public class TaskBoxAdapter extends BaseQuickAdapter<GiftBoxBean.GiftBean, BaseV
unlockView.setClickable(false);
unlockView.setEnabled(false);
// 可选:改变颜色或透明度来视觉反馈
unlockView.setAlpha(0.5f); // 半透明表示不可点击
unlockView.setAlpha(0.9f); // 半透明表示不可点击
}else if (item.getStatus().equals("1")){
unlockView.setClickable(true);
unlockView.setEnabled(true);
@@ -95,7 +95,7 @@ public class TaskBoxAdapter extends BaseQuickAdapter<GiftBoxBean.GiftBean, BaseV
unlockView.setClickable(false);
unlockView.setEnabled(false);
// 可选:改变颜色或透明度来视觉反馈
unlockView.setAlpha(0.5f); // 半透明表示不可点击
unlockView.setAlpha(0.8f); // 半透明表示不可点击
}
helper.getView(R.id.iv_unlock).setOnClickListener(new View.OnClickListener() {

View File

@@ -44,7 +44,17 @@ public class TaskDataAdapter extends BaseQuickAdapter<GiftBoxBean.TaskDataBean.D
// textView.setBackground(mContext.getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.ylq));
// }
textView.setText(item.getTask_type_str().equals("去完成")?"未完成": (item.getTask_type_str().equals("领取金币")?"待领取":item.getTask_type_str()));
// textView.setText(item.getTask_type_str().equals("去完成")?"未完成": (item.getTask_type_str().equals("领取金币")?"待领取":item.getTask_type_str()));
if (item.getTask_type_str().equals("去完成")){
textView.setText("未完成");
}else if (item.getTask_type_str().equals("领取金币")){
textView.setText("");
textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_lq);
}else {
textView.setText("");
textView.setBackgroundResource(com.xscm.moduleutil.R.mipmap.task_ylq);
}
ImageUtils.loadHeadCC(item.getIcon(), helper.getView(R.id.task_pic));
helper.setText(R.id.task_name, item.getTask_name())
.setText(R.id.task_jb_number, "+"+item.getGold_reward());

View File

@@ -3,6 +3,7 @@ package com.example.modulevocal.adapter;
import android.graphics.Color;
import android.widget.TextView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
@@ -14,6 +15,9 @@ import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageLoader;
import java.util.ArrayList;
import java.util.List;
public class UserGiftWallAdapter extends BaseQuickAdapter<CombinedGiftBean, BaseViewHolder> {
@@ -28,20 +32,41 @@ public class UserGiftWallAdapter extends BaseQuickAdapter<CombinedGiftBean, Base
ImageLoader.loadImage(mContext, helper.getView(R.id.iv_gift_pic), item.getBase_image());
TextView tv_number = helper.getView(R.id.tv_number);
if (item.is_liang()) {
helper.getView(R.id.cl_iv_down_on).setBackgroundColor(Color.parseColor("#E6E6E6"));
// helper.getView(R.id.cl_iv_down_on).setBackgroundColor(Color.parseColor("#E6E6E6"));
float[] corners = {0f, 4f, 0f, 4f};
ThemeableDrawableUtils.setThemeableRoundedBackground(tv_number, ColorManager.getInstance().getPrimaryColorInt(), corners);
tv_number.setTextColor(ColorManager.getInstance().getButtonColorInt());
// 点亮的礼物显示高亮和送礼物的用户
helper.setText(R.id.tv_number, "x" + item.getTop_users_count());
helper.setText(R.id.tv_number, "x" + item.getTotal_count());
helper.setVisible(R.id.tv_number, true);
// helper.setVisible(R.id.riv_user_head, true);
helper.setVisible(R.id.iv_gift_pic_overlay, false);
// 显示送礼物的用户列表
RecyclerView recyclerView = helper.getView(R.id.rv_gift_user_list);
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
TopUsersAdapter topUsersAdapter = new TopUsersAdapter(item.getTop_users());
recyclerView.setAdapter(topUsersAdapter);
// recyclerView.setLayoutManager(new GridLayoutManager(mContext,2,LinearLayoutManager.HORIZONTAL,false));
// recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false));
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.HORIZONTAL, false) {
@Override
public boolean canScrollHorizontally() {
return false; // 禁止水平滑动
}
});
// TopUsersAdapter topUsersAdapter = new TopUsersAdapter(item.getTop_users());
if (item.getTop_users() != null && item.getTop_users().size() > 0) {
List<CombinedGiftBean.TopUsers> displayUsers = new ArrayList<>();
if (item.getTop_users() != null) {
int maxDisplay = Math.min(2, item.getTop_users().size()); // 最多显示2个
for (int i = 0; i < maxDisplay; i++) {
displayUsers.add(item.getTop_users().get(i));
}
}
TopUsersAdapter topUsersAdapter = new TopUsersAdapter(displayUsers);
recyclerView.setAdapter(topUsersAdapter);
}
} else {
// 未点亮的礼物只显示图片、名称和金额,不高亮
helper.setVisible(R.id.tv_number, false);
@@ -49,6 +74,7 @@ public class UserGiftWallAdapter extends BaseQuickAdapter<CombinedGiftBean, Base
helper.setVisible(R.id.iv_gift_pic_overlay, true);
// 隐藏送礼物的用户列表
helper.setVisible(R.id.rv_gift_user_list, false);
helper.getView(R.id.iv_gift_pic).setAlpha(0.2f);
}
}
}

View File

@@ -3,14 +3,36 @@ package com.example.modulevocal.adapter;
import static com.xscm.moduleutil.utils.UtilConfig.getContext;
import android.annotation.SuppressLint;
import android.content.Context;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.core.content.ContextCompat;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.example.modulevocal.R;
import com.xscm.moduleutil.bean.WithdrawalBean;
public class WithdrawalAdapter extends BaseQuickAdapter<WithdrawalBean, BaseViewHolder> {
// 状态常量(替代魔法值,增强可读性)
private static final int STATUS_PENDING = 1; // 待处理
private static final int STATUS_APPROVED = 2; // 已通过
private static final int STATUS_REJECTED = 3; // 已拒绝
private static final int STATUS_PAYING = 4; // 打款中
private static final int STATUS_PAY_FAILED = 5; // 打款失败
private static final int STATUS_PAID = 6; // 已打款
// 固定文本常量(避免硬编码,便于统一修改)
private static final String TEXT_AMOUNT = "提现金额";
private static final String TEXT_FEE = "手续费";
private static final String TEXT_TAX = "个人所得税";
private static final String TEXT_EXPECTED_DEFAULT = "预计到账(个税扣除前)";
private static final String TEXT_EXPECTED_REFUND = "退款金额";
private static final String TEXT_EXPECTED_ACTUAL = "实际到账";
private static final String TEXT_TAX_CALCULATING = "计算中...";
public WithdrawalAdapter() {
super(R.layout.item_withdrawal);
}
@@ -18,26 +40,127 @@ public class WithdrawalAdapter extends BaseQuickAdapter<WithdrawalBean, BaseView
@SuppressLint("ResourceType")
@Override
protected void convert(BaseViewHolder helper, WithdrawalBean item) {
if (item != null ) {
TextView tv_status = helper.getView(R.id.tv_status);
helper.setText(R.id.tv_time, item.getCreatetime());
helper.setText(R.id.tv_name, item.getName());
helper.setText(R.id.tv_jb, item.getMoney());
tv_status.setText(item.getStatus_str());
if (item.getStatus().equals("1")){
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_0DFFB9));
}else if (item.getStatus().equals("2")){
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_FF999999));
}else if (item.getStatus().equals("3")){
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_ff8acc));
}else if (item.getStatus().equals("4")){
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_68A5FF));
}else if (item.getStatus().equals("5")){
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_ff8acc));
}else if (item.getStatus().equals("6")){
tv_status.setTextColor(getContext().getResources().getColor(com.xscm.moduleutil.R.color.color_FF999999));
}
// 1. 基础文本设置(所有状态通用)
helper.setText(R.id.tv_amount, TEXT_AMOUNT)
.setText(R.id.tv_fee, TEXT_FEE)
.setText(R.id.tv_tax, TEXT_TAX)
.setText(R.id.tv_fee_value, item != null ? item.getWithdraw_fee() : "")
.setText(R.id.tv_amount_value, item != null ? item.getMoney() : "")
.setText(R.id.tv_expected_value, item != null ? item.getSurplus_money() : "")
.setText(R.id.tv_time, item != null ? item.getCreatetime() : "");
TextView tvStatus = helper.getView(R.id.tv_status);
tvStatus.setText(item != null ? item.getStatus_str() : "");
// 2. 处理item为空的边界情况
if (item == null) {
clearStatusUI(helper);
return;
}
// 3. 根据状态设置UI使用switch替代多层if-else
switch (item.getStatus()) {
case STATUS_PENDING:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl, // im_x图标
com.xscm.moduleutil.R.color.color_0DFFB9, // 状态文本颜色
TEXT_EXPECTED_DEFAULT, // 预计到账文本
TEXT_TAX_CALCULATING, // 个税文本
com.xscm.moduleutil.R.color.color_black); // 预计值颜色
break;
case STATUS_APPROVED:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl2,
com.xscm.moduleutil.R.color.color_999999,
TEXT_EXPECTED_DEFAULT,
TEXT_TAX_CALCULATING,
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_REJECTED:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl3,
com.xscm.moduleutil.R.color.color_ff8acc,
TEXT_EXPECTED_REFUND,
item.getReceived_tax_amount(),
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_PAYING:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl4,
com.xscm.moduleutil.R.color.color_68A5FF,
TEXT_EXPECTED_DEFAULT,
TEXT_TAX_CALCULATING,
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_PAY_FAILED:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl5,
com.xscm.moduleutil.R.color.color_ff8acc,
TEXT_EXPECTED_REFUND,
item.getReceived_tax_amount(),
com.xscm.moduleutil.R.color.color_black);
break;
case STATUS_PAID:
setStatusUI(helper,
com.xscm.moduleutil.R.mipmap.dcl6,
com.xscm.moduleutil.R.color.color_999999,
TEXT_EXPECTED_ACTUAL,
item.getReceived_tax_amount(),
com.xscm.moduleutil.R.color.color_2ADB88);
break;
default:
// 未知状态处理
setStatusUI(helper,
0, // 空图标
com.xscm.moduleutil.R.color.color_999999,
"", "", com.xscm.moduleutil.R.color.color_black);
tvStatus.setText("未知状态");
break;
}
}
/**
* 封装状态相关UI设置消除重复代码
*
* @param helper ViewHolder
* @param imXRes im_x的图标资源
* @param statusTextColor 状态文本颜色
* @param expectedText 预计到账文本
* @param taxValue 个税文本
* @param expectedValueColor 预计值文本颜色
*/
private void setStatusUI(BaseViewHolder helper, int imXRes, int statusTextColor,
String expectedText, String taxValue, int expectedValueColor) {
Context context = helper.itemView.getContext(); // 从itemView获取上下文更可靠
// 设置im_x图标
if (imXRes != 0) {
helper.setBackgroundRes(R.id.im_x, imXRes);
}
// 设置状态文本颜色使用ContextCompat兼容低版本
TextView tvStatus = helper.getView(R.id.tv_status);
tvStatus.setTextColor(ContextCompat.getColor(context, statusTextColor));
// 设置其他文本
helper.setText(R.id.tv_expected, expectedText)
.setText(R.id.tv_tax_value, taxValue)
.setTextColor(R.id.tv_expected_value, ContextCompat.getColor(context, expectedValueColor));
}
/**
* 清空状态相关UI处理item为null的情况
*/
private void clearStatusUI(BaseViewHolder helper) {
helper.setBackgroundRes(R.id.im_x, 0)
.setText(R.id.tv_expected, "")
.setText(R.id.tv_tax_value, "")
.setTextColor(R.id.tv_expected_value, ContextCompat.getColor(helper.itemView.getContext(), com.xscm.moduleutil.R.color.color_black));
TextView tvStatus = helper.getView(R.id.tv_status);
tvStatus.setTextColor(ContextCompat.getColor(helper.itemView.getContext(), com.xscm.moduleutil.R.color.color_999999));
}
}

View File

@@ -24,6 +24,8 @@ public class AlbumDetailConacts {
void deleteAlbum();
void likeAlbum();
void findAlbum();
}
public interface IMePre extends IPresenter {
void getAlbumDetail(String albumId,String pwd,String page,String page_limit);

View File

@@ -15,6 +15,7 @@ public class MyBagConacts {
void packIncome(List<MyBagDataBean> myBagDataBean);
void packOutcome(List<MyBagDataBean> myBagDataBean);
void giftPack(List<GiftPackBean> giftPackBean);
void finishRefreshLoadMore();
}
public interface IMePre extends IPresenter {

View File

@@ -5,13 +5,14 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.WalletBean;
public final class MyMoneyConactos {
public interface View extends IView<Activity> {
void wallet(WalletBean walletBean);
void bindType(BindType bindType);
void myInfoSuccess(UserInfo data);
}
public interface IMePre extends IPresenter {
@@ -20,5 +21,7 @@ public final class MyMoneyConactos {
void bindType(String userId);
void getMyInfo();
}
}

View File

@@ -30,7 +30,7 @@ public class RechargeConactos {
void wallet();
void appPay(String user_id,String money,String coin,String type);
void appPay(String user_id,String money,String coin,String type,String type_params,String type_id);
void bindType(String userId);

View File

@@ -4,6 +4,7 @@ import android.app.Activity;
import com.xscm.moduleutil.activity.IPresenter;
import com.xscm.moduleutil.activity.IView;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.WalletConfig;
@@ -22,6 +23,10 @@ public final class WithdrawalConacts {
void withdrawal(String s);
void withdrawalList(List<WithdrawalBean> list);
void bindDetai(BindDetail bindDetail);
void finishRefreshLoadMore();
}
public interface IMePre extends IPresenter {
@@ -37,5 +42,7 @@ public final class WithdrawalConacts {
void withdrawal(String number,String type,String sms_code);
void withdrawalList(String page,String page_limit,String search_stime,String search_etime);
void bindDetai(String userId,String type);
}
}

View File

@@ -12,6 +12,7 @@ import com.example.modulevocal.databinding.FragmentCirleListBinding;
import com.example.modulevocal.presenter.UserHomepagePresenter;
import com.xscm.moduleutil.adapter.CirleListAdapter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.CircleListBean;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.utils.ARouteConstants;
@@ -130,7 +131,9 @@ public class CirleListFragment extends BaseMvpFragment<UserHomepagePresenter, Fr
@Override
public void onGensui(CircleListBean item) {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form","首页热门列表").withString("roomId", item.getRoom_id()).navigation();
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id() +"","");
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("form","首页热门列表").withString("roomId", item.getRoom_id()).navigation();
}
});

View File

@@ -53,7 +53,7 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
userId = getArguments().getString("userId");
userId = getArguments().getString("userId");
}
@Override
@@ -64,7 +64,7 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
@Override
protected void initData() {
MvpPre.getAlbumList("1", "10",userId);
MvpPre.getAlbumList("1", "10", userId);
}
@Override
@@ -78,29 +78,29 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
AlbumBean item = mAdapter.getItem(position);
if ("0".equals(item.getId())) {
startActivity(new Intent(getActivity(), CreateAlbumActivity.class));
}
else {
startActivity(new Intent(getActivity(), CreateAlbumActivity.class));
} else {
if (!TextUtils.isEmpty(item.getPwd())) {
if (userId.equals(SpUtil.getUserId() + "")){
if (userId.equals(SpUtil.getUserId() + "")) {
onPasswordCorrect(item);
}else {
} else {
showPasswordInputDialog(item);
}
} else {
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", item.getId()).withString("pwd", item.getPwd()).withString("target_fragment",ARouteConstants.FRAGMENT_ALBUM).navigation();
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", item.getId()).withString("pwd", item.getPwd()).withString("target_fragment", ARouteConstants.FRAGMENT_ALBUM).navigation();
}
}
}
});
List<AlbumBean> list = new ArrayList<>();
if (userId.equals(SpUtil.getUserId()+"")){
if (userId.equals(SpUtil.getUserId() + "")) {
AlbumBean albumBean = new AlbumBean();
albumBean.setId("0");
list.add(albumBean);
mAdapter.setNewData(list);
}
}
@SuppressLint({"MissingInflatedId", "LocalSuppress"})
private void showPasswordInputDialog(AlbumBean item) {
// 创建弹出框视图
@@ -108,7 +108,7 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
// 获取弹出框中的控件
final EditText etPassword = dialogView.findViewById(com.xscm.moduleutil.R.id.ed_album_password);
TextView btnCancel = dialogView.findViewById(com.xscm.moduleutil.R.id.tv_cancel);
TextView btnCancel = dialogView.findViewById(com.xscm.moduleutil.R.id.tv_cancel);
TextView btnConfirm = dialogView.findViewById(com.xscm.moduleutil.R.id.tv_confirm);
// 创建并显示弹出框
@@ -150,7 +150,7 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
// 密码正确后的操作方法(示例)
private void onPasswordCorrect(AlbumBean item) {
// 密码正确后的具体操作
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", item.getId()).withString("pwd", item.getPwd()).navigation();
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", item.getId()).withString("pwd", item.getPwd()).navigation();
}
@Override
@@ -160,10 +160,13 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
@Override
public void getAlbumList(List<AlbumBean> data) {
if (userId.equals(SpUtil.getUserId()+"")){
if (data == null) {
data = new ArrayList<>();
}
if (userId.equals(SpUtil.getUserId() + "")) {
AlbumBean albumBean = new AlbumBean();
albumBean.setId("0");
data.add(0,albumBean);
data.add(0, albumBean);
}
mAdapter.setNewData(data);
}

View File

@@ -15,6 +15,7 @@ import com.example.modulevocal.conacts.MyRoomListContacts;
import com.example.modulevocal.databinding.RoomFragmentMyFollowBinding;
import com.example.modulevocal.presenter.MyRoomPresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.AttentionResp;
import com.xscm.moduleutil.bean.ManageRoomResp;
import com.xscm.moduleutil.bean.MyCpRoom;
@@ -67,7 +68,7 @@ public class MyFollowFragment extends BaseMvpFragment<MyRoomPresenter, RoomFragm
mBinding.recycleView.setAdapter(followAdapter = new ChatRoomMyFollowAdapter());
followAdapter.bindToRecyclerView(mBinding.recycleView);
CommonEmptyView commonEmptyView = new CommonEmptyView(getContext());
commonEmptyView.setEmptyText("亲亲,你还没管理任何房间哦~赶快动起来吧!");
commonEmptyView.setEmptyText("亲亲,你还没关注任何房间哦~赶快动起来吧!");
commonEmptyView.setTextColor(getResources().getColor(com.xscm.moduleutil.R.color.color_FFBDBDBC));
followAdapter.setEmptyView(commonEmptyView);
@@ -76,8 +77,10 @@ public class MyFollowFragment extends BaseMvpFragment<MyRoomPresenter, RoomFragm
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
MyRoomBean item = followAdapter.getItem(position);
if (item != null) {
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id() +"","");
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form", "历史记录列表").withString("roomId", item.getRoom_id()).navigation();
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
}

View File

@@ -14,6 +14,7 @@ import com.example.modulevocal.conacts.MyRoomListContacts;
import com.example.modulevocal.databinding.RoomFragmentMyManageBinding;
import com.example.modulevocal.presenter.MyRoomPresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.AttentionResp;
import com.xscm.moduleutil.bean.ManageRoomResp;
import com.xscm.moduleutil.bean.MyCpRoom;
@@ -78,8 +79,10 @@ public class MyManageFragment extends BaseMvpFragment<MyRoomPresenter, RoomFragm
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
MyRoomBean item = manageAdapter.getItem(position);
if (item != null) {
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id() +"","");
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("form", "历史记录列表").withString("roomId", item.getRoom_id()).navigation();
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
}
}

View File

@@ -20,6 +20,7 @@ import com.example.modulevocal.conacts.MyRoomListContacts;
import com.example.modulevocal.databinding.RoomFragmentMyRoomListListBinding;
import com.example.modulevocal.presenter.MyRoomPresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.AttentionResp;
import com.xscm.moduleutil.bean.ManageRoomResp;
import com.xscm.moduleutil.bean.MyCpRoom;
@@ -147,7 +148,9 @@ public class MyRoomListFragment extends BaseMvpFragment<MyRoomPresenter, RoomFra
helper.getView(R.id.cl_my_room_list).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), item.getRoom_id() +"","");
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();
// TODO: 跳转到房间详情页面
// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("from", "我的界面").withString("roomId", item.getRoom_id() + "").navigation();

View File

@@ -67,8 +67,10 @@ public class RevenueFragment extends BaseMvpFragment<RevenuePresenter, FragmentR
}
}
public void refreshData() {
public void refreshData(int type, String direction) {
isLoaded = false;
this.type= String.valueOf(type);
this.revenueType=direction;
loadData();
}
@@ -84,12 +86,13 @@ public class RevenueFragment extends BaseMvpFragment<RevenuePresenter, FragmentR
DoubleTimePickerBottomSheet dialog = new DoubleTimePickerBottomSheet();
dialog.setOnTimeRangeSelectedListener((startDate, endDate) -> {
// 处理选择的时间范围
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:mm", Locale.getDefault());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
Log.d("SelectedTime", "开始时间:" + sdf.format(startDate));
mBinding.tv2.setText(sdf.format(startDate));
Log.d("SelectedTime", "结束时间:" + sdf.format(endDate));
mBinding.tv22.setText(sdf.format(endDate));
MvpPre.getRevenueData("1","50",type,mBinding.tv2.getText().toString(),mBinding.tv22.getText().toString(),revenueType);
page=1;
MvpPre.getRevenueData(page+"","50",revenueType,mBinding.tv2.getText().toString(),mBinding.tv22.getText().toString(),type);
});
dialog.show(getParentFragmentManager(), "DoubleTimePicker");
});
@@ -109,10 +112,12 @@ public class RevenueFragment extends BaseMvpFragment<RevenuePresenter, FragmentR
String endDate = mBinding.tv22.getText().toString();
if ( startDate!=null && !startDate.equals("") ){
if ( endDate!=null && !endDate.equals("") ){
MvpPre.getRevenueData(page+"","50",revenueType,startDate,endDate,revenueType);
MvpPre.getRevenueData(page+"","50",revenueType,startDate,endDate,type);
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"",endDate,type);
}
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
}
// MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
@@ -125,12 +130,14 @@ public class RevenueFragment extends BaseMvpFragment<RevenuePresenter, FragmentR
// MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
String startDate = mBinding.tv2.getText().toString();
String endDate = mBinding.tv22.getText().toString();
if ( startDate!=null && !startDate.equals("") ){
if ( startDate!=null && !startDate.equals("") ){
if ( endDate!=null && !endDate.equals("") ){
MvpPre.getRevenueData(page+"","50",revenueType,startDate,endDate,revenueType);
MvpPre.getRevenueData(page+"","50",revenueType,startDate,endDate,type);
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"",endDate,type);
}
}else {
MvpPre.getRevenueData(page+"","50",revenueType,"","",type);
}
}
});

View File

@@ -3,6 +3,8 @@ package com.example.modulevocal.fragment;
import android.os.Bundle;
import androidx.recyclerview.widget.GridLayoutManager;
import com.example.modulevocal.R;
import com.example.modulevocal.activity.UserHomepageActivity;
import com.example.modulevocal.adapter.UserGiftWallAdapter;
@@ -65,14 +67,17 @@ public class UserGiftWallFragment extends BaseMvpFragment<UserGiftWallPresenter,
rows = 6;
columns = 4;
}
rows = 6;
columns = 4;
mUserGiftWallAdapter = new UserGiftWallAdapter();
PagerGridLayoutManager layoutManager = new PagerGridLayoutManager(rows, columns, PagerGridLayoutManager.VERTICAL);
mBinding.recyclerView.setLayoutManager(layoutManager);
mBinding.recyclerView.setLayoutManager(new GridLayoutManager(getContext(), 4));
mBinding.recyclerView.setOnFlingListener(null);
// 设置滚动辅助工具
PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();
pageSnapHelper.attachToRecyclerView(mBinding.recyclerView);
// PagerGridSnapHelper pageSnapHelper = new PagerGridSnapHelper();
// pageSnapHelper.attachToRecyclerView(mBinding.recyclerView);
mBinding.recyclerView.setAdapter(mUserGiftWallAdapter);
}

View File

@@ -22,6 +22,7 @@ import com.example.modulevocal.conacts.UserHomepageConacts;
import com.example.modulevocal.databinding.FragmentUserHompageBinding;
import com.example.modulevocal.presenter.UserHomepagePresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.RoomManager;
import com.xscm.moduleutil.bean.CircleListBean;
import com.xscm.moduleutil.bean.MyBagBean;
import com.xscm.moduleutil.bean.UserInfo;
@@ -129,8 +130,8 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
if (url.contains("http")) {
ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
@@ -220,7 +221,9 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
intent.putExtra(TUIConstants.TUIChat.CHAT_TYPE, V2TIMConversation.V2TIM_C2C);
startActivity(intent);
} else {
ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("roomId", userInfo.getRoom_id()).navigation();
RoomManager.getInstance().fetchRoomDataAndEnter(getActivity(), userInfo.getRoom_id(),"");
// ARouter.getInstance().build(ARouteConstants.ROOM_DETAILS).withString("roomId", userInfo.getRoom_id()).navigation();
}
}
}

View File

@@ -12,6 +12,7 @@ import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
@@ -33,6 +34,7 @@ import com.example.modulevocal.databinding.FragmentVocalRangeBinding;
import com.example.modulevocal.presenter.MePresenter;
import com.xscm.moduleutil.activity.WebViewActivity;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.base.CommonAppContext;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
@@ -130,12 +132,12 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
startActivity(intent);
}else if (id==R.id.me_my_guild){
Intent intent=new Intent(getContext(), WebViewActivity.class);
intent.putExtra("url", " https://vespa.qxmier.com/web/index.html#/pages/union/index?id="+SpUtil.getToken());
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/union/index?id="+SpUtil.getToken());
intent.putExtra("title", "公会");
startActivity(intent);
}else if (id==R.id.tv_my_shopping){
Intent intent=new Intent(getContext(), WebViewActivity.class);
intent.putExtra("url", "https://vespa.qxmier.com/web/index.html#/pages/prop/propMall?id="+SpUtil.getToken());
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/prop/propMall?id="+SpUtil.getToken());
intent.putExtra("title", "道具商城");
startActivity(intent);
}
@@ -144,13 +146,13 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
intent.putExtra("type",2);
startActivity(intent);
} else if (id == R.id.ll_friends) {//访客
if (userInfo.getCharm_level()>=20){
// if (userInfo.getCharm_level()>=20){
Intent intent=new Intent(getContext(), BlacklistActivity.class);
intent.putExtra("type",3);
startActivity(intent);
}else {
ToastUtils.showShort("需要魅力等级20以上才能查看");
}
// }else {
// ToastUtils.showShort("需要魅力等级20以上才能查看");
// }
// ARouter.getInstance().build(ARouteConstants.ME_MY_FRIENDS).withInt("type", 0).navigation();
// AppLogUtil.reportAppLog(AppLogEvent.C0112);
@@ -186,18 +188,18 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
startActivity(new Intent(getContext(), SettingActivity.class));
}else if (id == R.id.me_my_dan){//等级
Intent intent = new Intent(getContext(), WebViewActivity.class);
intent.putExtra("url", "https://vespa.qxmier.com/web/index.html#/pages/other/grade?id=" + SpUtil.getToken());
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/other/grade?id=" + SpUtil.getToken());
intent.putExtra("title", "等级");
startActivity(intent);
}else if (id == R.id.iv_kf){//反馈
Intent intent = new Intent(getContext(), WebViewActivity.class);
intent.putExtra("url", "https://vespa.qxmier.com/web/index.html#/pages/feedback/help?id=" + SpUtil.getToken());
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/feedback/help?id=" + SpUtil.getToken());
// intent.putExtra("url", "http://192.168.110.17:8080/web/index.html#/pages/feedback/help?id=" + SpUtil.getToken());
intent.putExtra("title", "反馈");
startActivity(intent);
}else if (id == R.id.iv_hb){//邀请
Intent intent = new Intent(getContext(), WebViewActivity.class);
intent.putExtra("url", " https://vespa.qxmier.com/web/index.html#/pages/other/income?id=" + SpUtil.getToken());
intent.putExtra("url", CommonAppContext.getInstance().getCurrentEnvironment().getH5Url()+"/web/index.html#/pages/other/income?id=" + SpUtil.getToken());
intent.putExtra("title", "邀请");
startActivity(intent);
}else if (id==R.id.beautiful_view_copy){
@@ -263,22 +265,24 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
llContainer.removeAllViews(); // 清空旧的 ImageView
List<String> images = data.getIcon(); // 获取图片列表
if (images != null && !images.isEmpty()) {
for (String url : images) {
if (url.contains("http")) {
ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_37),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_15)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
for (String url : images) {
if (url.contains("http")) {
ImageView imageView = new ImageView(getContext());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_74),
getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_17)
);
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.xscm.moduleutil.R.dimen.dp_5), 0); // 右边距
imageView.setLayoutParams(params);
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView);
// 使用 Glide 加载图片
ImageUtils.loadHeadCC(url, imageView);
llContainer.addView(imageView);
llContainer.addView(imageView);
}
}
}

View File

@@ -82,4 +82,9 @@ public class MyBagFragment extends BaseMvpFragment<MyBagPresenter, FragmentMyBag
public void giftPack(List<GiftPackBean> giftPackBean) {
mAdapter.setNewData(giftPackBean);
}
@Override
public void finishRefreshLoadMore() {
}
}

View File

@@ -12,8 +12,8 @@ public class MyBagListAdapter extends BaseQuickAdapter<MyBagDataBean, BaseViewHo
@Override
protected void convert(BaseViewHolder helper, MyBagDataBean item) {
helper.setText(R.id.tv_title, item.getTitle());
helper.setText(R.id.tv_title, item.getRemarks());
helper.setText(R.id.tv_time, item.getTime());
helper.setText(R.id.tv_gift_name, item.getGiftName());
helper.setText(R.id.tv_gift_name, item.getGift_name());
}
}

View File

@@ -2,22 +2,27 @@ package com.example.modulevocal.fragment.mybag;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.example.modulevocal.R;
import com.example.modulevocal.conacts.MyBagConacts;
import com.example.modulevocal.databinding.FragmentMyBagListBinding;
import com.example.modulevocal.presenter.MyBagPresenter;
import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.GiftPackBean;
import com.xscm.moduleutil.bean.MyBagDataBean;
import java.util.ArrayList;
import java.util.List;
public class MyBagListFragment extends BaseMvpFragment<MyBagPresenter, FragmentMyBagListBinding> implements MyBagConacts.View{
MyBagListAdapter mAdapter;
private String type;
List<MyBagDataBean> myBagDataBeanList;
private int page = 1;
public static MyBagListFragment newInstance(String type) {
@@ -43,8 +48,10 @@ public class MyBagListFragment extends BaseMvpFragment<MyBagPresenter, FragmentM
if (type.equals("1")){
}else if (type.equals("2")){
page=1;
MvpPre.packIncome("1","30");
}else if (type.equals("3")){
page=1;
MvpPre.packOutcome("1","30");
}
@@ -52,6 +59,29 @@ public class MyBagListFragment extends BaseMvpFragment<MyBagPresenter, FragmentM
mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
mBinding.recyclerView.setAdapter(mAdapter);
mBinding.smartRefreshLayout.setOnLoadMoreListener(new OnRefreshLoadMoreListener() {
@Override
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
if (type.equals("2")) {
page++;
MvpPre.packIncome(page + "", "30");
}else if (type.equals("3")){
page++;
MvpPre.packOutcome(page + "", "30");
}
}
@Override
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
if (type.equals("2")) {
page = 1;
MvpPre.packIncome(page + "", "30");
}else if (type.equals("3")){
page = 1;
MvpPre.packOutcome(page + "", "30");
}
}
});
}
@Override
@@ -65,19 +95,36 @@ public class MyBagListFragment extends BaseMvpFragment<MyBagPresenter, FragmentM
@Override
public void packIncome(List<MyBagDataBean> myBagDataBean) {
if (myBagDataBeanList!=null) {
myBagDataBeanList.addAll(myBagDataBean);
mAdapter.setNewData(myBagDataBeanList);
if (page==1) {
mAdapter.setNewData(myBagDataBean);
}else {
if (myBagDataBean==null){
return;
}
mAdapter.addData(myBagDataBean);
}
}
@Override
public void packOutcome(List<MyBagDataBean> myBagDataBean) {
mAdapter.setNewData(myBagDataBean);
if (page==1) {
mAdapter.setNewData(myBagDataBean);
}else {
if (myBagDataBean==null){
return;
}
mAdapter.addData(myBagDataBean);
}
}
@Override
public void giftPack(List<GiftPackBean> giftPackBean) {
}
@Override
public void finishRefreshLoadMore() {
mBinding.smartRefreshLayout.finishRefresh();
mBinding.smartRefreshLayout.finishLoadMore();
}
}

View File

@@ -33,7 +33,7 @@ public class ZhuangBanShangChengAdapter extends BaseQuickAdapter<ZhuangBanShangC
ThemeableDrawableUtils.setThemeableRoundedBackground( tv_integral, ColorManager.getInstance().getPrimaryColorInt(), corners);
tv_integral.setTextColor(ColorManager.getInstance().getButtonColorInt());
helper.setText(R.id.integral, item.getRemaining_day())
helper.setText(R.id.integral, item.getRemaining_day()+"")
.setText(R.id.tv_name_period, item.getTitle());
// .setText(R.id.tv_time, "(有效期${item.period}天)")
if (item.isIs_select()) {

View File

@@ -11,7 +11,7 @@ import java.util.List;
public class ZhuangBanShangChengConactos {
public interface View extends IView<Activity> {
void getDecorateList(List<ZhuangBanShangChengBean> zhuangBanShangChengBeans);
void getDecorateList(List<ZhuangBanShangChengBean> zhuangBanShangChengBeans,int tabIndex);
void setUserDecorate();
@@ -19,7 +19,7 @@ public class ZhuangBanShangChengConactos {
}
public interface ICreatedRoomPre extends IPresenter {
void getDecorateList(String type);
void getDecorateList(String type,int tabIndex);
void setUserDecorate(String udid);

View File

@@ -1,9 +1,11 @@
package com.example.modulevocal.fragment.zhuangb;
import static android.view.View.GONE;
import static com.xscm.moduleutil.utils.ImageLoader.loadImage;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import androidx.recyclerview.widget.GridLayoutManager;
@@ -12,13 +14,18 @@ import com.example.modulevocal.R;
import com.example.modulevocal.databinding.ZhuangbanRecyclerviewNorefBinding;
import com.example.modulevocal.fragment.MyRoomListFragment;
import com.hjq.toast.ToastUtils;
import com.makeramen.roundedimageview.RoundedImageView;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.zhuangb.ZhuangBanShangChengBean;
import com.xscm.moduleutil.color.ThemeableDrawableUtils;
import com.xscm.moduleutil.utils.ColorManager;
import com.xscm.moduleutil.utils.ImageUtils;
import com.xscm.moduleutil.utils.SpUtil;
import com.xscm.moduleutil.widget.AvatarFrameView;
import com.tencent.qgame.animplayer.AnimView;
import com.xscm.moduleutil.widget.GiftAnimView;
import java.util.ArrayList;
import java.util.List;
public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangChengPresenter, ZhuangbanRecyclerviewNorefBinding> implements ZhuangBanShangChengConactos.View {
@@ -30,7 +37,11 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
private String did;
ZhuangBanShangChengAdapter adapter;
AvatarFrameView imageBg;
GiftAnimView imageBg2;
AnimView item_animview;
RoundedImageView image_user;
private int tabIndex;
@Override
protected ZhuangBanShangChengPresenter bindPresenter() {
return new ZhuangBanShangChengPresenter(this, getActivity());
@@ -43,15 +54,30 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
fragment.setArguments(args);
return fragment;
}
@Override
public void initArgs(Bundle arguments) {
super.initArgs(arguments);
type = arguments.getInt("type", MyRoomListFragment.TYPE_CREATE);
}
public void loadDataIfNeeded(int type,int tabIndex) {
if (MvpPre == null) {
MvpPre = bindPresenter();
}
this.type = type;
this.tabIndex = tabIndex;
MvpPre.getDecorateList(type + "", tabIndex);
}
@Override
protected void initData() {
MvpPre.getDecorateList(type+"");
MvpPre.getDecorateList(type + "", tabIndex);
// //这里根据传递的type进行数据查询
// zhuangBanShangChengBeanList=new ArrayList<>();
// for (int i = 0; i < 10; i++) {
// ZhuangBanShangChengBean zhuangBanShangChengBean=new ZhuangBanShangChengBean();
@@ -62,9 +88,39 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
// zhuangBanShangChengBean.setBase_image("");
// zhuangBanShangChengBeanList.add(zhuangBanShangChengBean);
// }
image_user = (RoundedImageView) getActivity().findViewById(R.id.iv_user);
imageBg = (AvatarFrameView) getActivity().findViewById(R.id.image_headPortrait);
// imageBg2 = (GiftAnimView) getActivity().findViewById(R.id.image_headPortrait2);
imageBg2 = new GiftAnimView(getActivity());
imageBg2.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
));
imageBg2.setVisibility(GONE);
ViewGroup parentLayout = (ViewGroup) getActivity().findViewById(R.id.ccl).getParent(); // 或者其他合适的父布局
parentLayout.addView(imageBg2);
item_animview = (AnimView) getActivity().findViewById(R.id.item_animview);
if (SpUtil.getUserInfo() != null) {
if (SpUtil.getUserInfo().getAvatar() != null) {
ImageUtils.loadHeadCC(SpUtil.getUserInfo().getAvatar(), image_user);
}
}
// if (type == 1) {
//// image_user.setVisibility(View.VISIBLE);
// imageBg.setVisibility(View.VISIBLE);
// imageBg2.setVisibility(View.GONE);
// } else if (type == 2){
//// image_user.setVisibility(View.GONE);
// imageBg.setVisibility(View.GONE);
// imageBg2.setVisibility(View.VISIBLE);
// }else {
//// image_user.setVisibility(View.GONE);
// imageBg.setVisibility(View.GONE);
// imageBg2.setVisibility(View.GONE);
// }
adapter = new ZhuangBanShangChengAdapter();
GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 3);
mBinding.recyclerView.setLayoutManager(gridLayoutManager);
@@ -72,6 +128,29 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
adapter.setOnItemChildClickListener((adapter1, view, position) -> {
List<ZhuangBanShangChengBean> list = (List<ZhuangBanShangChengBean>) adapter1.getData();
// 清除之前的选择状态
clearPreviousSelection(list);
// // 设置当前选择
// ZhuangBanShangChengBean selectedBean = list.get(position);
// selectedBean.setIs_select(true);
// pSelect = position;
// did = selectedBean.getUdid();
//
// // 更新UI显示
// if (position == 0) { // "无"选项
// mBinding.ll.setVisibility(View.GONE);
// clearDecorations();
// } else {
// mBinding.ll.setVisibility(View.VISIBLE);
//
// if ("svga".equalsIgnoreCase(getFileExtension(selectedBean.getPlay_image()))) {
// imageBg.stopAll();
// imageBg.setSource(selectedBean.getPlay_image(), 2);
// } else if ("mp4".equalsIgnoreCase(getFileExtension(selectedBean.getPlay_image()))) {
// imageBg.stopAll();
// imageBg.setSource(selectedBean.getPlay_image(), 2);
// }
// }
if (pSelect != -1 && pSelect != position) {
list.get(pSelect).setIs_select(false);
@@ -79,34 +158,60 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
pSelect = position;
did = list.get(position).getUdid();
mBinding.ll.setVisibility(View.VISIBLE);
if (list.get( position)!=null && list.get(position).getType()!=null && list.get(position).getPlay_image()!=null) {
if ("svga".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
// imageBg.playSVGA(list.get(position).getPlay_image());
imageBg.setSource(list.get(position).getPlay_image(),1);
} else if ("mp4".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
// imageBg.playMP4(Uri.parse(list.get(position).getPlay_image()));
imageBg.setSource(list.get(position).getPlay_image(),1);
// if ("svga".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
if (list.get(position).getType().equals("1")) {
imageBg2.setVisibility(View.GONE);
imageBg.stopAll();
imageBg.setSource(list.get(position).getPlay_image(), 2);
} else if (list.get(position).getType().equals("2")) {
// imageBg2.setSource(list.get(position).getPlay_image(), 2);
imageBg2.setVisibility(View.VISIBLE);
imageBg2.previewEffectWith(list.get(position).getPlay_image());
}
}
// } else if ("mp4".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
//// imageBg.playMP4(Uri.parse(list.get(position).getPlay_image()));
// imageBg.stopAll();
// imageBg.setSource(list.get(position).getPlay_image(),2);
// }
} else if (pSelect != -1 && pSelect == position) {
list.get(position).setIs_select(false);
pSelect = -1;
mBinding.ll.setVisibility(View.GONE);
mBinding.ll.setVisibility(GONE);
} else {
list.get(position).setIs_select(true);
did = list.get(position).getUdid();
pSelect = position;
mBinding.ll.setVisibility(View.VISIBLE);
if (list.get( position)!=null && list.get(position).getType()!=null && list.get(position).getPlay_image()!=null) {
if (list.get(position).getType().equals("1")) {
imageBg2.setVisibility(View.GONE);
imageBg.stopAll();
imageBg.setSource(list.get(position).getPlay_image(), 2);
} else if (list.get(position).getType().equals("2")) {
imageBg2.setVisibility(View.VISIBLE);
// imageBg2.stopAll();
// imageBg2.setSource(list.get(position).getPlay_image(), 2);
imageBg2.previewEffectWith(list.get(position).getPlay_image());
}
}
// loadImage(getContext(),imageBg, list.get(position).getPlay_image());
// ImageUtils.loadDecorationAvatar(list.get(position).getPlay_image(), imageBg);
// imageBg.load(list.get(position).getPlay_image());
if ("svga".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
imageBg.setSource(list.get(position).getPlay_image(),1);
// imageBg.playSVGA(list.get(position).getPlay_image());
} else if ("mp4".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
imageBg.setSource(list.get(position).getPlay_image(), 1);
// imageBg.playMP4(Uri.parse(list.get(position).getPlay_image()));
}
// if ("svga".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
// imageBg.stopAll();
// imageBg.setSource(list.get(position).getPlay_image(), 2);
//// imageBg.playSVGA(list.get(position).getPlay_image());
// } else if ("mp4".equalsIgnoreCase(getFileExtension(list.get(position).getPlay_image()))) {
// imageBg.stopAll();
// imageBg.setSource(list.get(position).getPlay_image(), 2);
//// imageBg.playMP4(Uri.parse(list.get(position).getPlay_image()));
// }
}
@@ -116,6 +221,29 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
adapter.setNewData(zhuangBanShangChengBeanList);
}
/**
* 清除之前的选择状态
*/
private void clearPreviousSelection(List<ZhuangBanShangChengBean> list) {
if (pSelect != -1 && pSelect < list.size()) {
list.get(pSelect).setIs_select(false);
}
pSelect = -1;
}
/**
* 清除装饰效果
*/
private void clearDecorations() {
if (imageBg != null) {
imageBg.stopAll();
}
if (item_animview != null) {
item_animview.stopPlay();
}
}
private String getFileExtension(String url) {
if (url == null || url.isEmpty()) return "";
int dotIndex = url.lastIndexOf(".");
@@ -129,9 +257,9 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
protected void initView() {
mBinding.zhuangbanBuy.setOnClickListener(v -> {
if (did == null || did.isEmpty()){
MvpPre.cancelUserDecorate(type+"");
}else {
if (did == null || did.isEmpty()) {
MvpPre.cancelUserDecorate(type + "");
} else {
MvpPre.setUserDecorate(did);
}
});
@@ -145,12 +273,20 @@ public class ZhuangBanShangChengFragment extends BaseMvpFragment<ZhuangBanShangC
}
@Override
public void getDecorateList(List<ZhuangBanShangChengBean> zhuangBanShangChengBeans) {
public void getDecorateList(List<ZhuangBanShangChengBean> zhuangBanShangChengBeans, int tabIndex) {
if (adapter == null) {
adapter = new ZhuangBanShangChengAdapter();
}
if (zhuangBanShangChengBeans==null){
zhuangBanShangChengBeans=new ArrayList<>();
}
ZhuangBanShangChengBean zhuangBanShangChengBean = new ZhuangBanShangChengBean();
zhuangBanShangChengBean.setTitle("默认头像");
zhuangBanShangChengBean.setTitle("");
zhuangBanShangChengBean.setBase_image("");
zhuangBanShangChengBeans.add(0,zhuangBanShangChengBean);
zhuangBanShangChengBeans.add(0, zhuangBanShangChengBean);
adapter.setNewData(zhuangBanShangChengBeans);
this.tabIndex = tabIndex;
}
@Override

View File

@@ -6,17 +6,21 @@ import com.xscm.moduleutil.bean.zhuangb.ZhuangBanShangChengBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class ZhuangBanShangChengPresenter extends BasePresenter<ZhuangBanShangChengConactos.View> implements ZhuangBanShangChengConactos.ICreatedRoomPre {
ZhuangBanShangChengConactos.View mView;
public ZhuangBanShangChengPresenter(ZhuangBanShangChengConactos.View view, Context context) {
super(view, context);
this.mView = view;
}
@Override
public void getDecorateList(String type) {
public void getDecorateList(String type,int tabIndex) {
api.getDecorateList(type, new BaseObserver<List<ZhuangBanShangChengBean>>() {
@Override
public void onSubscribe(Disposable d) {
@@ -25,7 +29,10 @@ public class ZhuangBanShangChengPresenter extends BasePresenter<ZhuangBanShangCh
@Override
public void onNext(List<ZhuangBanShangChengBean> zhuangBanShangChengBeans) {
MvpRef.get().getDecorateList(zhuangBanShangChengBeans);
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().getDecorateList(zhuangBanShangChengBeans, tabIndex);
}
});
}
@@ -40,7 +47,10 @@ public class ZhuangBanShangChengPresenter extends BasePresenter<ZhuangBanShangCh
@Override
public void onNext(String s) {
MvpRef.get().setUserDecorate();
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().setUserDecorate();
}
});
}
@@ -56,6 +66,9 @@ public class ZhuangBanShangChengPresenter extends BasePresenter<ZhuangBanShangCh
@Override
public void onNext(String s) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().cancelUserDecorate();
}
});

View File

@@ -7,16 +7,20 @@ import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import java.io.File;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class AlbumDetailPresenter extends BasePresenter<AlbumDetailConacts.View> implements AlbumDetailConacts.IMePre {
private AlbumDetailConacts.View mView;
public AlbumDetailPresenter(AlbumDetailConacts.View view, Context context) {
super(view, context);
this.mView = view;
}
@Override
@@ -30,6 +34,7 @@ public class AlbumDetailPresenter extends BasePresenter<AlbumDetailConacts.View>
@Override
public void onNext(AlbumBean albumBean) {
MvpRef.get().getAlbumDetail(albumBean);
MvpRef.get().findAlbum();
}
});
}
@@ -44,23 +49,40 @@ public class AlbumDetailPresenter extends BasePresenter<AlbumDetailConacts.View>
public void uploadFile(File file, int type, int index, int size) {
MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type);
OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
CosUploadManager.getInstance().upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override
public void onSuccess() {
public void onSuccess(String url) {
if (isViewAttach()) {
MvpRef.get().disLoadings();
MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type, index, size);
MvpRef.get().upLoadSuccess(url, type, index, size);
}
}
@Override
public void onFail() {
if (isViewAttach()) {
ToastUtils.show("上传失败");
MvpRef.get().disLoadings();
}
public void onFailure(Exception e) {
ToastUtils.show("上传失败");
MvpRef.get().disLoadings();
}
});
// OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
// @Override
// public void onSuccess() {
// if (isViewAttach()) {
// MvpRef.get().disLoadings();
// MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type, index, size);
// }
// }
//
// @Override
// public void onFail() {
// if (isViewAttach()) {
// ToastUtils.show("上传失败");
// MvpRef.get().disLoadings();
// }
// }
// });
}
@Override
@@ -89,6 +111,9 @@ public class AlbumDetailPresenter extends BasePresenter<AlbumDetailConacts.View>
@Override
public void onNext(List<AlbumBean> albumBeans) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().getAlbumList(albumBeans);
}
});

View File

@@ -6,6 +6,7 @@ import com.example.modulevocal.conacts.CreatedRoomConactos;
import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import java.io.File;
@@ -80,22 +81,38 @@ public class CreatedRoomPresenter extends BasePresenter<CreatedRoomConactos.View
public void uploadFile(File file, int type) {
// MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type);
OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
CosUploadManager.getInstance().upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override
public void onSuccess() {
public void onSuccess(String url) {
if (isViewAttach()) {
MvpRef.get().disLoadings();
MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type);
MvpRef.get().upLoadSuccess(url, type);
}
}
@Override
public void onFail() {
if (isViewAttach()) {
ToastUtils.show("上传失败");
}
public void onFailure(Exception e) {
ToastUtils.show("上传失败");
// MvpRef.get().disLoadings();
}
});
// OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
// @Override
// public void onSuccess() {
// if (isViewAttach()) {
// MvpRef.get().disLoadings();
// MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type);
// }
// }
//
// @Override
// public void onFail() {
// if (isViewAttach()) {
// ToastUtils.show("上传失败");
// }
// }
// });
}
@Override

View File

@@ -7,6 +7,7 @@ import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import java.io.File;
@@ -28,23 +29,39 @@ public class EditUserPresenter extends BasePresenter<EditUserConactos.View> impl
public void uploadFile(File file, int type, int index, int size) {
MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type);
OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
CosUploadManager.getInstance().upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override
public void onSuccess() {
public void onSuccess(String url) {
if (isViewAttach()) {
MvpRef.get().disLoadings();
MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type, index, size);
MvpRef.get().upLoadSuccess(url, type, index, size);
}
}
@Override
public void onFail() {
if (isViewAttach()) {
ToastUtils.show("上传失败");
MvpRef.get().disLoadings();
}
public void onFailure(Exception e) {
ToastUtils.show("上传失败");
MvpRef.get().disLoadings();
}
});
// OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
// @Override
// public void onSuccess() {
// if (isViewAttach()) {
// MvpRef.get().disLoadings();
// MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type, index, size);
// }
// }
//
// @Override
// public void onFail() {
// if (isViewAttach()) {
// ToastUtils.show("上传失败");
// MvpRef.get().disLoadings();
// }
// }
// });
}
public void batchUploadFiles(List<File> files, int type) {
for (int i = 0; i < files.size(); i++) {

View File

@@ -7,6 +7,7 @@ import com.hjq.toast.ToastUtils;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.utils.cos.CosUploadManager;
import com.xscm.moduleutil.utils.oss.OSSOperUtils;
import java.io.File;
@@ -54,23 +55,39 @@ public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> impleme
public void uploadFile(File file, int type) {
MvpRef.get().showLoadings("上传中...");
String url = OSSOperUtils.getPath(file, type);
OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
CosUploadManager.getInstance().upParameters(url,file.getPath(), new CosUploadManager.UploadCallback() {
@Override
public void onSuccess() {
public void onSuccess(String url) {
if (isViewAttach()) {
MvpRef.get().disLoadings();
MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type);
MvpRef.get().upLoadSuccess(url, type);
}
}
@Override
public void onFail() {
if (isViewAttach()) {
ToastUtils.show("上传失败");
MvpRef.get().disLoadings();
}
public void onFailure(Exception e) {
ToastUtils.show("上传失败");
MvpRef.get().disLoadings();
}
});
// OSSOperUtils.newInstance().putObjectMethod(url, file.getPath(), new OSSOperUtils.OssCallback() {
// @Override
// public void onSuccess() {
// if (isViewAttach()) {
// MvpRef.get().disLoadings();
// MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type);
// }
// }
//
// @Override
// public void onFail() {
// if (isViewAttach()) {
// ToastUtils.show("上传失败");
// MvpRef.get().disLoadings();
// }
// }
// });
}
@Override

View File

@@ -8,13 +8,18 @@ import com.xscm.moduleutil.bean.MyBagDataBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class MyBagPresenter extends BasePresenter<MyBagConacts.View> implements MyBagConacts.IMePre {
MyBagConacts.View mView;
public MyBagPresenter(MyBagConacts.View view, Context context) {
super(view, context);
this.mView = view;
}
@Override
@@ -27,7 +32,11 @@ public class MyBagPresenter extends BasePresenter<MyBagConacts.View> implements
@Override
public void onNext(List<MyBagDataBean> myBagDataBeans) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().packIncome(myBagDataBeans);
MvpRef.get().finishRefreshLoadMore();
}
});
}
@@ -42,6 +51,9 @@ public class MyBagPresenter extends BasePresenter<MyBagConacts.View> implements
@Override
public void onNext(List<MyBagDataBean> myBagDataBeans) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().packOutcome(myBagDataBeans);
}
});
@@ -58,6 +70,9 @@ public class MyBagPresenter extends BasePresenter<MyBagConacts.View> implements
@Override
public void onNext(List<GiftPackBean> giftPackBeans) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().giftPack(giftPackBeans);
}
});

View File

@@ -4,6 +4,7 @@ import android.content.Context;
import com.example.modulevocal.conacts.MyMoneyConactos;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
@@ -44,4 +45,19 @@ public class MyMoneyPresenter extends BasePresenter<MyMoneyConactos.View> implem
}
});
}
@Override
public void getMyInfo() {
api.getMyInfo(new BaseObserver<UserInfo>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(UserInfo userInfo) {
MvpRef.get().myInfoSuccess(userInfo);
}
});
}
}

View File

@@ -3,15 +3,18 @@ package com.example.modulevocal.presenter;
import android.content.Context;
import com.example.modulevocal.conacts.PhoneReplacementConacts;
import com.xscm.moduleutil.bean.UserBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import com.xscm.moduleutil.utils.SpUtil;
import java.lang.ref.WeakReference;
import io.reactivex.disposables.Disposable;
public class PhoneReplacementPresenter extends BasePresenter<PhoneReplacementConacts.View> implements PhoneReplacementConacts.IMePre{
public class PhoneReplacementPresenter extends BasePresenter<PhoneReplacementConacts.View> implements PhoneReplacementConacts.IMePre {
PhoneReplacementConacts.View mView;
public PhoneReplacementPresenter(PhoneReplacementConacts.View view, Context context) {
super(view, context);
this.mView = view;
@@ -19,7 +22,7 @@ public class PhoneReplacementPresenter extends BasePresenter<PhoneReplacementCon
@Override
public void sendCode(String phoneNumber, String type) {
api.sendCode(phoneNumber,type, new BaseObserver<Object>() {
api.sendCode(phoneNumber, type, new BaseObserver<Object>() {
@Override
public void onSubscribe(Disposable d) {
@@ -28,8 +31,8 @@ public class PhoneReplacementPresenter extends BasePresenter<PhoneReplacementCon
@Override
public void onNext(Object o) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().sendCodeSuccess1(phoneNumber);
}
@@ -38,23 +41,26 @@ public class PhoneReplacementPresenter extends BasePresenter<PhoneReplacementCon
}
@Override
public void mobileView(String mobile, String new_mobile, String sms_code,String type) {
if (type.equals("1")){
public void mobileView(String mobile, String new_mobile, String sms_code, String type) {
if (type.equals("1")) {
api.mobileView(mobile, new_mobile, sms_code, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable( d);
addDisposable(d);
}
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
UserBean userInfo = SpUtil.getUserBean();
userInfo.setMobile(new_mobile);
SpUtil.saveUserBean(userInfo);
MvpRef.get().sendCodeSuccess(s);
}
});
}else if (type.equals("2")){
} else if (type.equals("2")) {
api.mobileView2(new_mobile, sms_code, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -63,9 +69,12 @@ public class PhoneReplacementPresenter extends BasePresenter<PhoneReplacementCon
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
UserBean userInfo = SpUtil.getUserBean();
userInfo.setMobile(new_mobile);
SpUtil.saveUserBean(userInfo);
MvpRef.get().sendCodeSuccess(s);
}
});

View File

@@ -50,8 +50,8 @@ public class RechargePresenter extends BasePresenter<RechargeConactos.View> impl
}
@Override
public void appPay(String user_id, String money, String coin, String type) {
api.appPay(user_id, money, coin, type, new BaseObserver<AppPay>() {
public void appPay(String user_id, String money, String coin, String type, String type_params, String type_id) {
api.appPay(user_id, money, coin, type,type_params,type_id, new BaseObserver<AppPay>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
@@ -65,6 +65,8 @@ public class RechargePresenter extends BasePresenter<RechargeConactos.View> impl
});
}
@Override
public void bindType(String userId) {
api.bindType(userId, new BaseObserver<BindType>() {

View File

@@ -8,13 +8,16 @@ import com.xscm.moduleutil.bean.UserInfo;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class UserHomepagePresenter extends BasePresenter<UserHomepageConacts.View> implements UserHomepageConacts.IMePre {
UserHomepageConacts.View mView;
public UserHomepagePresenter(UserHomepageConacts.View view, Context context) {
super(view, context);
this.mView = view;
}
@Override
@@ -27,6 +30,9 @@ public class UserHomepagePresenter extends BasePresenter<UserHomepageConacts.Vie
@Override
public void onNext(UserInfo userInfo) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().setUserDetails(userInfo);
}
});
@@ -43,6 +49,9 @@ public class UserHomepagePresenter extends BasePresenter<UserHomepageConacts.Vie
@Override
public void onNext(List<CircleListBean> circleListBeans) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().setCircleList(circleListBeans);
}
});
@@ -58,6 +67,9 @@ public class UserHomepagePresenter extends BasePresenter<UserHomepageConacts.Vie
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().userGuanzSuccess(s);
}
});
@@ -74,6 +86,9 @@ public class UserHomepagePresenter extends BasePresenter<UserHomepageConacts.Vie
@Override
public void onNext(String s) {
if (MvpRef==null){
MvpRef=new WeakReference<>(mView);
}
MvpRef.get().setLikeZone();
}
});

View File

@@ -3,6 +3,7 @@ package com.example.modulevocal.presenter;
import android.content.Context;
import com.example.modulevocal.conacts.WithdrawalConacts;
import com.xscm.moduleutil.bean.BindDetail;
import com.xscm.moduleutil.bean.BindType;
import com.xscm.moduleutil.bean.WalletBean;
import com.xscm.moduleutil.bean.WalletConfig;
@@ -10,13 +11,18 @@ import com.xscm.moduleutil.bean.WithdrawalBean;
import com.xscm.moduleutil.http.BaseObserver;
import com.xscm.moduleutil.presenter.BasePresenter;
import java.lang.ref.WeakReference;
import java.util.List;
import io.reactivex.disposables.Disposable;
public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> implements WithdrawalConacts.IMePre {
WithdrawalConacts.View mView;
public WithdrawalPresenter(WithdrawalConacts.View view, Context context) {
super(view, context);
this.mView = view;
}
@Override
@@ -29,6 +35,9 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void onNext(WalletBean walletBean) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().wallet(walletBean);
}
});
@@ -44,6 +53,9 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void onNext(BindType bindType) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().bindType(bindType);
}
});
@@ -59,6 +71,9 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void onNext(WalletConfig walletConfig) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().getWalletConfig(walletConfig);
}
});
@@ -74,6 +89,9 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void onNext(String s) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().bind();
}
});
@@ -81,7 +99,7 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void sendCode(String phoneNumber, int type) {
api.sendCode(phoneNumber,type+"", new BaseObserver<Object>() {
api.sendCode(phoneNumber, type + "", new BaseObserver<Object>() {
@Override
public void onSubscribe(Disposable d) {
@@ -98,7 +116,7 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void withdrawal(String number, String type, String sms_code) {
api.withdrawal(number,type,sms_code, new BaseObserver<String>() {
api.withdrawal(number, type, sms_code, new BaseObserver<String>() {
@Override
public void onSubscribe(Disposable d) {
@@ -107,6 +125,9 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void onNext(String s) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().withdrawal(s);
}
});
@@ -122,7 +143,29 @@ public class WithdrawalPresenter extends BasePresenter<WithdrawalConacts.View> i
@Override
public void onNext(List<WithdrawalBean> withdrawalBeans) {
MvpRef.get().withdrawalList(withdrawalBeans);
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().withdrawalList(withdrawalBeans);
MvpRef.get().finishRefreshLoadMore();
}
});
}
@Override
public void bindDetai(String userId, String type) {
api.bindDetai(userId, type, new BaseObserver<BindDetail>() {
@Override
public void onSubscribe(Disposable d) {
addDisposable(d);
}
@Override
public void onNext(BindDetail bindDetail) {
if (MvpRef == null) {
MvpRef = new WeakReference<>(mView);
}
MvpRef.get().bindDetai(bindDetail);
}
});
}

View File

@@ -10,23 +10,24 @@
</data>
<androidx.constraintlayout.widget.ConstraintLayout
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
android:orientation="vertical">
<com.xscm.moduleutil.widget.CustomTopBar
android:id="@+id/top_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent" />
/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toBottomOf="@id/top_bar"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/dp_12"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</layout>

View File

@@ -93,7 +93,7 @@
android:layout_weight="1"
android:background="@drawable/bg_r100_hui"
android:gravity="center|left"
android:hint="请输入称"
android:hint="请输入房间名称"
android:maxLength="10"
android:paddingStart="10dp"
android:paddingEnd="@dimen/dp_10"

View File

@@ -116,7 +116,7 @@
android:layout_centerInParent="true"
android:hint="请输入需要兑换的钻石数量"
android:textColorHint="@color/color_FF999999"
android:inputType="number|numberDecimal"
android:inputType="number"
android:textSize="@dimen/sp_14"/>
<TextView
@@ -127,7 +127,7 @@
android:layout_alignParentEnd="true"
android:gravity="center"
android:layout_marginStart="@dimen/dp_4"
android:text="全部提现"
android:text="全部兑换"
android:textSize="@dimen/sp_12"
android:textColor="#0DFB89"
/>

View File

@@ -3,27 +3,28 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".activity.EditUserActivity">
<data>
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
android:layout_height="match_parent">
<com.xscm.moduleutil.widget.CustomTopBar
android:id="@+id/top_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"/>
app:layout_constraintTop_toTopOf="parent" />
<com.stx.xhb.xbanner.XBanner
android:id="@+id/xbanner"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_230"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
@@ -31,8 +32,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_122"
android:background="@drawable/bg_r16_fff"
app:layout_constraintTop_toBottomOf="@+id/top_bar"
android:orientation="vertical">
android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@+id/top_bar">
<TextView
android:id="@+id/tv_1"
@@ -40,42 +41,42 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="@dimen/dp_84"
android:layout_marginTop="@dimen/dp_40"
android:layout_marginEnd="@dimen/dp_84"
android:text="@string/avatar_change_info"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_12"
android:layout_marginTop="@dimen/dp_40"/>
android:visibility="invisible"/>
<RelativeLayout
android:id="@+id/rl_1"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_36"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:gravity="center|center_vertical"
android:layout_marginTop="@dimen/dp_10">
android:gravity="center|center_vertical">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_height="@dimen/dp_21"
android:text="@string/nickname"
android:gravity="center|left"
android:layout_centerInParent="true"
android:textSize="@dimen/sp_14"
android:textColor="@color/color_FF999999"
android:layout_alignParentStart="true"
/>
android:layout_centerInParent="true"
android:gravity="center|left"
android:text="@string/nickname"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_nick_name"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
tools:text="姓名"
android:gravity="center"
android:textSize="@dimen/sp_16"
android:layout_centerInParent="true"
android:textColor="@color/color_FF333333"
android:layout_centerHorizontal="true"
/>
android:gravity="center"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_16"
tools:text="姓名" />
<ImageView
android:layout_width="@dimen/dp_16"
@@ -83,7 +84,7 @@
android:layout_alignParentEnd="true"
android:layout_centerInParent="true"
android:layout_marginEnd="@dimen/dp_16"
android:src="@drawable/detail_icon_go"/>
android:src="@drawable/detail_icon_go" />
</RelativeLayout>
@@ -91,32 +92,31 @@
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dp_36"
android:gravity="center|center_vertical"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10">
android:gravity="center|center_vertical">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_height="@dimen/dp_21"
android:text="@string/gender"
android:gravity="center|left"
android:layout_centerInParent="true"
android:textSize="@dimen/sp_14"
android:textColor="@color/color_FF999999"
android:layout_alignParentStart="true"
/>
android:layout_centerInParent="true"
android:gravity="center|left"
android:text="@string/gender"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_sex"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
tools:text="男"
android:gravity="center"
android:textSize="@dimen/sp_16"
android:layout_centerInParent="true"
android:textColor="@color/color_FF333333"
android:layout_centerHorizontal="true"
/>
android:gravity="center"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_16"
tools:text="男" />
<ImageView
android:layout_width="@dimen/dp_16"
@@ -124,7 +124,8 @@
android:layout_alignParentEnd="true"
android:layout_centerInParent="true"
android:layout_marginEnd="@dimen/dp_16"
android:src="@drawable/detail_icon_go"/>
android:src="@drawable/detail_icon_go"
android:visibility="invisible"/>
</RelativeLayout>
@@ -133,32 +134,31 @@
android:id="@+id/rl_3"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_36"
android:gravity="center|center_vertical"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10">
android:gravity="center|center_vertical">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_height="@dimen/dp_21"
android:text="@string/birthday"
android:gravity="center|left"
android:layout_centerInParent="true"
android:textSize="@dimen/sp_14"
android:textColor="@color/color_FF999999"
android:layout_alignParentStart="true"
/>
android:layout_centerInParent="true"
android:gravity="center|left"
android:text="@string/birthday"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_sr"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
tools:text="2020-11-09"
android:gravity="center"
android:textSize="@dimen/sp_16"
android:layout_centerInParent="true"
android:textColor="@color/color_FF333333"
android:layout_centerHorizontal="true"
/>
android:gravity="center"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_16"
tools:text="2020-11-09" />
<ImageView
android:layout_width="@dimen/dp_16"
@@ -166,7 +166,7 @@
android:layout_alignParentEnd="true"
android:layout_centerInParent="true"
android:layout_marginEnd="@dimen/dp_16"
android:src="@drawable/detail_icon_go"/>
android:src="@drawable/detail_icon_go" />
</RelativeLayout>
@@ -175,32 +175,31 @@
android:id="@+id/rl_4"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_36"
android:gravity="center|center_vertical"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10">
android:gravity="center|center_vertical">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_height="@dimen/dp_21"
android:text="@string/introduction"
android:gravity="center|left"
android:layout_centerInParent="true"
android:textSize="@dimen/sp_14"
android:textColor="@color/color_FF999999"
android:layout_alignParentStart="true"
/>
android:layout_centerInParent="true"
android:gravity="center|left"
android:text="@string/introduction"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/tv_jj"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
tools:text="测试数据"
android:gravity="center"
android:textSize="@dimen/sp_16"
android:layout_centerInParent="true"
android:textColor="@color/color_FF333333"
android:layout_centerHorizontal="true"
/>
android:gravity="center"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_16"
tools:text="测试数据" />
<ImageView
android:layout_width="@dimen/dp_16"
@@ -208,7 +207,7 @@
android:layout_alignParentEnd="true"
android:layout_centerInParent="true"
android:layout_marginEnd="@dimen/dp_16"
android:src="@drawable/detail_icon_go"/>
android:src="@drawable/detail_icon_go" />
</RelativeLayout>
@@ -223,36 +222,41 @@
android:id="@+id/tv_5"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
android:text="@string/background_image"
android:gravity="center"
android:layout_centerInParent="true"
android:textSize="@dimen/sp_16"
android:textColor="@color/color_FF333333"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
android:gravity="center"
android:text="@string/background_image"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_16"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
android:text="@string/upload_limit"
android:gravity="center"
android:layout_toRightOf="@+id/tv_5"
android:layout_marginStart="@dimen/dp_5"
android:layout_centerInParent="true"
android:textSize="@dimen/sp_12"
android:layout_marginStart="@dimen/dp_5"
android:layout_toRightOf="@+id/tv_5"
android:gravity="center"
android:text="@string/upload_limit"
android:textColor="@color/color_FF666666"
/>
android:textSize="@dimen/sp_12" />
</RelativeLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_photo_wall"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_6"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16" />
<!-- <androidx.core.widget.NestedScrollView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent">-->
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_photo_wall"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_6"
android:layout_marginEnd="@dimen/dp_16" />
<!-- </androidx.core.widget.NestedScrollView>-->
</LinearLayout>
<com.xscm.moduleutil.widget.GifAvatarOvalView
@@ -260,11 +264,11 @@
android:layout_width="@dimen/dp_74"
android:layout_height="@dimen/dp_74"
android:layout_gravity="center_horizontal"
android:src="@mipmap/me_img_upld_head"
app:layout_constraintTop_toBottomOf="@+id/top_bar"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_79"
android:src="@mipmap/me_img_upld_head"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/top_bar"
app:riv_oval="true" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -63,7 +63,6 @@
android:background="@mipmap/mony_cz"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/dp_5"
/>
</RelativeLayout>
@@ -107,7 +106,6 @@
android:background="@mipmap/mony_tx"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/dp_5"
/>
</RelativeLayout>
@@ -138,7 +136,7 @@
app:layout_constraintTop_toBottomOf="@+id/tv_zd">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_alignParentStart="true"
android:layout_centerHorizontal="true"
@@ -170,7 +168,7 @@
app:layout_constraintTop_toBottomOf="@+id/r_1">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="@string/diamond_income_expense"
android:layout_centerInParent="true"
@@ -214,7 +212,7 @@
app:layout_constraintTop_toBottomOf="@+id/tv_qt">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="@string/diamond_to_coin"
android:layout_centerInParent="true"
@@ -247,7 +245,7 @@
app:layout_constraintTop_toBottomOf="@+id/r_3">
<TextView
android:layout_width="@dimen/dp_56"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:text="@string/diamond_to_bangka"
android:layout_centerInParent="true"

View File

@@ -9,6 +9,7 @@
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ccl"
android:layout_width="match_parent"
android:layout_height="wrap_content">
@@ -85,7 +86,8 @@
<com.tencent.qgame.animplayer.AnimView
android:id="@+id/item_animview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:visibility="gone"/>
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -118,6 +120,11 @@
android:layout_marginTop="@dimen/dp_30"
app:layout_constraintTop_toBottomOf="@+id/cl_2" />
<com.xscm.moduleutil.widget.GiftAnimView
android:id="@+id/image_headPortrait2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_60"

View File

@@ -87,7 +87,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
android:nestedScrollingEnabled="false" />
<RelativeLayout
@@ -96,7 +95,8 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_16">
android:layout_marginEnd="@dimen/dp_16"
android:visibility="gone">
<TextView
android:id="@+id/t_4"

View File

@@ -58,7 +58,7 @@
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_marginStart="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_5"
android:text="累计收益"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
@@ -70,7 +70,7 @@
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_5"
android:layout_marginEnd="@dimen/dp_16"
android:gravity="center">
@@ -119,7 +119,7 @@
android:layout_below="@+id/tv1"
android:layout_alignParentStart="true"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_5"
android:drawableLeft="@mipmap/im_zs"
android:drawablePadding="@dimen/dp_5"
android:text="10000"
@@ -133,7 +133,6 @@
android:layout_below="@+id/tv3"
android:layout_alignParentStart="true"
android:layout_marginStart="@dimen/dp_14"
android:layout_marginTop="@dimen/dp_5"
android:text="累计流水"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
@@ -145,6 +144,7 @@
android:layout_below="@+id/tv4"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_3"
android:paddingBottom="@dimen/dp_3"
android:drawableLeft="@mipmap/jinb"
android:text="10000"
android:textColor="@color/color_FF333333"

View File

@@ -53,6 +53,7 @@
android:id="@+id/ll_youth"
style="@style/My_Info_Item_LL_Style"
android:background="@drawable/bg_r15_white"
android:visibility="gone"
>
<TextView

View File

@@ -78,13 +78,14 @@
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="忘记密码?请联系客服"
android:text="确认"
android:textColor="#0DFFB9"
app:layout_constraintTop_toBottomOf="@+id/rel_code_show"
android:gravity="center"
android:layout_marginTop="@dimen/dp_21"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
app:layout_constraintEnd_toEndOf="parent"
android:visibility="gone"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -18,74 +18,91 @@
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/rl3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@+id/top_bar"
>
<LinearLayout
android:id="@+id/rl3"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_38"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_16"
android:background="@drawable/bg_r5_e9e9"
android:gravity="center">
android:layout_height="@dimen/dp_38"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:background="@drawable/bg_r5_e9e9"
android:gravity="center"
app:layout_constraintTop_toBottomOf="@+id/top_bar">
<TextView
android:id="@+id/tv2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_12"
android:text="开始日期"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
<ImageView
android:id="@+id/iv1"
android:layout_width="0dp"
android:layout_weight="0.2"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:paddingTop="@dimen/dp_3"
android:src="@mipmap/data1" />
<TextView
android:id="@+id/tv22"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="结束日期"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
<ImageView
android:id="@+id/iv2"
android:layout_width="0dp"
android:layout_weight="0.2"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:paddingTop="@dimen/dp_2"
android:src="@mipmap/data2" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/revenue_view"
android:layout_width="match_parent"
<TextView
android:id="@+id/tv2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_10"
android:background="@color/color_FFF5F5F5"
android:orientation="vertical"
tools:listitem="@layout/item_revenue" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
android:layout_marginStart="@dimen/dp_12"
android:layout_weight="1"
android:text="开始日期"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
</layout>
<ImageView
android:id="@+id/iv1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_weight="0.2"
android:paddingTop="@dimen/dp_3"
android:src="@mipmap/data1" />
<TextView
android:id="@+id/tv22"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:layout_weight="1"
android:text="结束日期"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
<ImageView
android:id="@+id/iv2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_weight="0.2"
android:paddingTop="@dimen/dp_2"
android:src="@mipmap/data2" />
</LinearLayout>
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_height="0dp"
app:layout_constraintTop_toBottomOf="@+id/rl3"
app:srlEnableLoadMore="true"
app:srlEnableRefresh="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/revenue_view"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_10"
android:background="@color/color_FFF5F5F5"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:listitem="@layout/item_revenue" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>

View File

@@ -1,16 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
>
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.recyclerview.widget.RecyclerView
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/recyclerView"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:overScrollMode="never"
android:scrollbars="none"
android:background="@drawable/bg_r10_white"
/>
android:layout_height="match_parent"
app:srlEnableLoadMore="true"
app:srlEnableRefresh="true">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:background="@drawable/bg_r10_white"
android:overScrollMode="never"
android:scrollbars="none" />
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</layout>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".fragment.RevenueFragment">
@@ -11,35 +11,36 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/rl3"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_38"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginStart="@dimen/dp_16"
android:background="@drawable/bg_r5_e9e9"
android:gravity="center">
<TextView
android:id="@+id/tv2"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_12"
android:text="开始日期"
android:layout_weight="1"
android:hint="开始日期"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
android:textSize="12sp"
tools:text="开始日期" />
<ImageView
android:id="@+id/iv1"
android:layout_width="0dp"
android:layout_weight="0.2"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_weight="0.2"
android:paddingTop="@dimen/dp_3"
android:src="@mipmap/data1" />
@@ -47,23 +48,28 @@
<TextView
android:id="@+id/tv22"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="结束日期"
android:layout_weight="1"
android:hint="结束日期"
android:textColor="@color/color_FF999999"
android:textSize="12sp" />
android:textSize="12sp"
tools:text="结束日期" />
<ImageView
android:id="@+id/iv2"
android:layout_width="0dp"
android:layout_weight="0.2"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:layout_weight="0.2"
android:paddingTop="@dimen/dp_2"
android:src="@mipmap/data2" />
</LinearLayout>
<!-- <androidx.core.widget.NestedScrollView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent">-->
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id="@+id/smart_refresh_layout"
android:layout_width="match_parent"
@@ -71,18 +77,32 @@
app:srlEnableLoadMore="true"
app:srlEnableRefresh="true">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/revenue_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_10"
android:background="@color/color_FFF5F5F5"
android:orientation="vertical"
tools:listitem="@layout/item_revenue" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/revenue_view"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="0dp"
android:background="@color/color_FFF5F5F5"
android:clipToPadding="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:listitem="@layout/item_revenue" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<!-- </androidx.core.widget.NestedScrollView>-->
</LinearLayout>
</layout>

View File

@@ -33,7 +33,7 @@
android:layout_width="@dimen/dp_24"
android:layout_height="@dimen/dp_24"
android:layout_marginRight="@dimen/dp_11"
android:src="@mipmap/image_yq" />
android:src="@drawable/image_yq" />
<ImageView
android:id="@+id/iv_kf"
@@ -41,7 +41,7 @@
android:layout_height="@dimen/dp_24"
android:layout_marginRight="@dimen/dp_11"
android:layout_toRightOf="@+id/iv_hb"
android:src="@mipmap/custom" />
android:src="@drawable/custom" />
<ImageView
android:id="@+id/iv_sz"
@@ -69,6 +69,7 @@
android:layout_height="@dimen/dp_68"
android:layout_gravity="center"
android:layout_marginTop="@dimen/dp_88"
android:paddingStart="@dimen/dp_16"
android:layout_weight="1"
android:gravity="center|left"
android:orientation="horizontal"

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
@@ -10,6 +10,7 @@
android:layout_width="match_parent"
android:layout_height="@dimen/dp_38"
android:orientation="horizontal"
android:layout_marginTop="@dimen/dp_10"
android:gravity="center"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"

View File

@@ -10,12 +10,19 @@
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_width="@dimen/dp_200"
android:layout_height="@dimen/dp_20"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:textSize="@dimen/sp_14"
android:textColor="@color/color_FF333333"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
tools:text="每日签到"
/>
<TextView

View File

@@ -8,62 +8,61 @@
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginBottom="@dimen/dp_10">
<RelativeLayout
android:layout_width="match_parent"
<com.xscm.moduleutil.widget.GifAvatarOvalView
android:id="@+id/task_pic"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40"
android:scaleType="fitCenter"
android:src="@mipmap/task_lock"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/task_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent">
android:layout_marginStart="@dimen/dp_2"
android:layout_marginEnd="@dimen/dp_8"
android:text="任务名称"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_14"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintEnd_toStartOf="@+id/task_type"
app:layout_constraintStart_toEndOf="@id/task_pic"
app:layout_constraintTop_toTopOf="parent" />
<com.xscm.moduleutil.widget.GifAvatarOvalView
android:id="@+id/task_pic"
android:layout_width="@dimen/dp_40"
android:layout_height="@dimen/dp_40"
android:layout_alignParentStart="true"
android:layout_centerInParent="true"
android:src="@mipmap/task_lock"
android:scaleType="fitCenter"/>
<TextView
android:id="@+id/task_jb"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginStart="@dimen/dp_2"
android:text="金币"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toEndOf="@id/task_pic"
app:layout_constraintTop_toBottomOf="@id/task_name" />
<TextView
android:id="@+id/task_name"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginStart="@dimen/dp_2"
android:layout_toEndOf="@id/task_pic"
android:text="任务名称"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/task_jb_number"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginStart="@dimen/dp_4"
android:text="+10"
android:textColor="#FF8827"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toEndOf="@id/task_jb"
app:layout_constraintTop_toBottomOf="@id/task_name" />
<TextView
android:id="@+id/task_jb"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_below="@id/task_name"
android:layout_marginStart="@dimen/dp_2"
android:layout_toEndOf="@id/task_pic"
android:text="金币"
android:textColor="@color/color_FF999999"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/task_type"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_30"
android:gravity="center"
android:textColor="#C134EE"
android:background="@drawable/bg_r99_e24171"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<TextView
android:id="@+id/task_jb_number"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_below="@id/task_name"
android:layout_toEndOf="@id/task_jb"
android:text="+10"
android:textColor="#FF8827"
android:textSize="@dimen/sp_14" />
<TextView
android:id="@+id/task_type"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_30"
android:layout_alignParentEnd="true"
android:layout_centerInParent="true"
android:gravity="center"
android:textColor="#C134EE"
android:background="@drawable/bg_r99_e24171" />
</RelativeLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -1,64 +1,164 @@
<?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"
android:layout_marginStart="@dimen/dp_16"
android:layout_marginEnd="@dimen/dp_16"
android:layout_marginTop="@dimen/dp_12"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
android:layout_marginEnd="@dimen/dp_16"
android:background="@drawable/bg_r16_fff"
>
<ImageView
app:layout_constraintBottom_toBottomOf="@+id/cl_bg"
app:layout_constraintLeft_toLeftOf="@+id/cl_bg"
android:id="@+id/im_x"
android:layout_width="wrap_content"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/cl_bg" />
<androidx.constraintlayout.widget.ConstraintLayout
android:paddingBottom="@dimen/dp_10"
android:id="@+id/cl_bg"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<!-- 提现金额 -->
<TextView
app:layout_constraintLeft_toLeftOf="parent"
android:id="@+id/tv_amount"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_21"
android:layout_marginStart="@dimen/dp_13"
android:layout_marginTop="@dimen/dp_14"
android:textColor="@color/color_FF333333"
android:textSize="@dimen/sp_14"
app:layout_constraintTop_toTopOf="parent"
tools:text="提现金额" />
<TextView
android:id="@+id/tv_name"
android:id="@+id/tv_amount_value"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_20"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_13"
android:textColor="@color/color_ff2727"
android:textSize="@dimen/sp_14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_amount"
tools:text="142.12" />
<!-- 手续费 -->
<TextView
android:id="@+id/tv_fee"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_13"
android:textColor="@color/color_FF666666"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="@+id/tv_amount"
app:layout_constraintTop_toBottomOf="@id/tv_amount"
tools:text="手续费" />
<TextView
android:id="@+id/tv_fee_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_13"
android:textColor="@color/color_FF666666"
android:textSize="@dimen/sp_14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_amount_value"
app:layout_constraintTop_toTopOf="@+id/tv_fee"
tools:text="3.21" />
<!-- 个人所得税 -->
<TextView
android:id="@+id/tv_tax"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_12"
android:textColor="@color/color_FF666666"
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="@id/tv_fee"
app:layout_constraintTop_toBottomOf="@id/tv_fee"
tools:text="个人所得税" />
<TextView
android:id="@+id/tv_tax_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_13"
android:textColor="@color/color_666666"
android:textSize="@dimen/sp_14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_fee_value"
app:layout_constraintTop_toTopOf="@+id/tv_tax"
tools:text="计算中..." />
<View
android:id="@+id/view"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
android:layout_marginStart="@dimen/dp_13"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginEnd="@dimen/dp_13"
android:background="#F1F2F3"
app:layout_constraintEnd_toEndOf="@+id/tv_tax_value"
app:layout_constraintStart_toStartOf="@+id/tv_tax"
app:layout_constraintTop_toBottomOf="@+id/tv_tax" />
<!-- 预计到账 -->
<TextView
android:id="@+id/tv_expected"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_13"
android:textColor="@color/color_FF333333"
tools:text="每日签到"
/>
android:textSize="@dimen/sp_14"
app:layout_constraintStart_toStartOf="@+id/tv_tax"
app:layout_constraintTop_toBottomOf="@id/view"
tools:text="预计到账(个税扣除前)" />
<TextView
android:id="@+id/tv_expected_value"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_13"
android:textColor="@color/color_black"
android:textSize="@dimen/sp_14"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/tv_expected"
tools:text="138.91" />
<!-- 时间 -->
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_17"
app:layout_constraintTop_toBottomOf="@id/tv_name"
app:layout_constraintStart_toStartOf="parent"
android:textSize="@dimen/sp_12"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_7"
android:textColor="@color/color_FF999999"
tools:text="2025-5-27 16:43:09"
/>
<TextView
android:id="@+id/tv_jb"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textSize="@dimen/sp_16"
android:textColor="@color/color_ff2727"
tools:text="+10"
/>
android:textSize="@dimen/sp_12"
app:layout_constraintStart_toStartOf="@+id/tv_expected"
app:layout_constraintTop_toBottomOf="@id/tv_expected"
tools:text="2024.12.14 11:21:45" />
<!-- 状态 -->
<TextView
android:id="@+id/tv_status"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_24"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_13"
android:textColor="#0DFFB9"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="parent"
android:textSize="@dimen/sp_16"
android:textColor="@color/color_ff2727"
tools:text="待处理"
/>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/dp_1"
app:layout_constraintTop_toBottomOf="@+id/tv_time"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/dp_12"
android:background="#F1F2F3"
/>
app:layout_constraintTop_toTopOf="@+id/tv_time"
tools:text="待处理" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -14,23 +14,22 @@
android:background="#fff"
tools:visibility="visible">
<!-- <androidx.core.widget.NestedScrollView-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:paddingBottom="@dimen/dp_20">-->
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/dp_20">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_10"
android:layout_marginEnd="@dimen/dp_10"
android:nestedScrollingEnabled="false"
app:layoutManager="androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintTop_toBottomOf="@+id/tv_title"
app:spanCount="4"
tools:listitem="@layout/me_item_user_gift_wall" />
<!-- </androidx.core.widget.NestedScrollView>-->
</androidx.core.widget.NestedScrollView>
</FrameLayout>

View File

@@ -2,19 +2,21 @@
<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="@dimen/dp_77"
android:layout_height="@dimen/dp_129"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_110"
android:layout_marginTop="@dimen/dp_10"
android:background="@mipmap/gift_bj"
android:layout_marginEnd="@dimen/dp_10"
android:background="#E9E9E9"
android:gravity="center_horizontal"
android:orientation="vertical">
android:orientation="vertical"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_iv_down_on"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:ignore="MissingConstraints">
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/cl_iv_down_on"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- tools:ignore="MissingConstraints">-->
<ImageView
@@ -30,24 +32,21 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:alpha="0.5"
/>
<ImageView
android:id="@+id/iv_gift_pic_overlay"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginLeft="9dp"
android:layout_marginTop="5dp"
android:layout_marginRight="9dp"
app:layout_constraintDimensionRatio="1:1.2"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:alpha="0.3"
app:layout_constraintBottom_toBottomOf="parent"
android:alpha="0.5"
android:background="#40000000"
tools:visibility="visible"
android:visibility="gone" />
<ImageView
@@ -90,47 +89,20 @@
android:textSize="11sp"
app:layout_constraintLeft_toLeftOf="@+id/iv_gift_pic"
app:layout_constraintRight_toRightOf="@+id/iv_gift_pic"
app:layout_constraintTop_toBottomOf="@+id/tv_gift_name" />
app:layout_constraintTop_toBottomOf="@+id/tv_gift_name"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- <RelativeLayout-->
<!-- android:id="@+id/rl_user_head"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="0dp"-->
<!-- android:padding="@dimen/dp_2"-->
<!-- app:layout_constraintDimensionRatio="1:1"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- android:visibility="gone">-->
<!-- <com.makeramen.roundedimageview.RoundedImageView-->
<!-- android:id="@+id/riv_user_head"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- app:riv_corner_radius="@dimen/dp_13"-->
<!-- tools:src="@color/color_FF5872FF" />-->
<!-- </RelativeLayout>-->
<!-- <TextView-->
<!-- android:id="@+id/tv_gift_name"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="@dimen/dp_2"-->
<!-- android:text="冲浪少年"-->
<!-- android:textColor="@color/color_FF545454"-->
<!-- android:textSize="@dimen/sp_11"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/rl_user_head"-->
<!-- app:layout_constraintStart_toStartOf="@+id/rl_user_head"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/rl_user_head" />-->
<TextView
android:id="@+id/tv_number"
android:layout_width="@dimen/dp_22"
android:layout_width="wrap_content"
android:layout_height="@dimen/dp_15"
android:background="@mipmap/text_bj"
android:gravity="center"
android:layout_marginTop="@dimen/dp_5"
android:paddingLeft="3dp"
android:paddingRight="3dp"
android:textColor="@color/black"
@@ -141,45 +113,11 @@
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_gift_user_list"
android:layout_width="wrap_content"
android:layout_width="@dimen/dp_30"
android:layout_height="20dp"
android:layout_marginStart="10dp"
android:layout_marginTop="5dp"
android:layout_marginTop="@dimen/dp_5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<!-- <LinearLayout-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:orientation="horizontal"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/rl_user_head"-->
<!-- app:layout_constraintStart_toStartOf="@+id/rl_user_head"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tv_gift_name">-->
<!-- <TextView-->
<!-- android:id="@+id/tv_price33"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginTop="2dp"-->
<!-- android:text="10000"-->
<!-- android:textColor="@color/color_FFFFBC00"-->
<!-- android:textSize="11sp"-->
<!-- android:drawableStart="@mipmap/jinb"-->
<!-- />-->
<!-- <TextView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="*"-->
<!-- android:textColor="#9C9C9C"-->
<!-- android:textSize="@dimen/sp_11"-->
<!-- android:visibility="gone" />-->
<!-- <TextView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:text="1"-->
<!-- android:textColor="@color/color_FF7185FF"-->
<!-- android:textSize="@dimen/sp_11"-->
<!-- android:visibility="gone"/>-->
<!-- </LinearLayout>-->
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -97,7 +97,7 @@
android:id="@+id/tv_bl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="今日收益"
android:text="今日流水"
android:textColor="#ff999999"
android:textSize="@dimen/sp_12"
app:layout_constraintEnd_toEndOf="@+id/tv_sy"
@@ -179,6 +179,7 @@
app:layout_constraintStart_toEndOf="@+id/rl_mx"
android:gravity="center"
android:text="房间补贴"
android:visibility="gone"
/>

View File

@@ -39,7 +39,7 @@
<TextView
android:id="@+id/tv_gs_sx"
android:layout_width="wrap_content"
android:layout_width="@dimen/dp_91"
android:layout_height="@dimen/dp_29"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/dp_19"