语圈基本完成
2、个人主页完成
This commit is contained in:
@@ -2,7 +2,13 @@ plugins {
|
||||
alias(libs.plugins.android.library)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
}
|
||||
|
||||
configurations.all {
|
||||
// 解决注解处理器冲突
|
||||
resolutionStrategy {
|
||||
force 'com.alibaba:arouter-compiler:1.5.2'
|
||||
force 'com.google.auto.service:auto-service:1.0'
|
||||
}
|
||||
}
|
||||
android {
|
||||
namespace 'com.example.modulevocal'
|
||||
compileSdk 35
|
||||
@@ -14,6 +20,16 @@ android {
|
||||
versionName "1.0"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
javaCompileOptions {
|
||||
annotationProcessorOptions {
|
||||
arguments += [
|
||||
AROUTER_GENERATE_DOC: "enable",
|
||||
// 显式指定模块名
|
||||
AROUTER_MODULE_NAME: project.name
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -43,4 +59,9 @@ dependencies {
|
||||
|
||||
implementation(project(':moduleUtil'))
|
||||
implementation(project(':moduletablayout'))
|
||||
}
|
||||
|
||||
implementation 'com.alibaba:arouter-api:1.5.2'
|
||||
//annotationProcessor
|
||||
annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
|
||||
}
|
||||
apply plugin: 'com.alibaba.arouter' // ⚠️ 添加这一行
|
||||
@@ -7,6 +7,15 @@
|
||||
android:roundIcon="@mipmap/ic_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/BaseAppTheme">
|
||||
<activity
|
||||
android:name=".activity.AlbumDetailActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".activity.Setting1Activity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".activity.SettingActivity"
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".activity.CreateAlbumActivity"
|
||||
android:exported="false" />
|
||||
@@ -21,7 +30,8 @@
|
||||
android:exported="false" />
|
||||
<activity
|
||||
android:name=".activity.UserHomepageActivity"
|
||||
android:exported="false" />
|
||||
android:exported="false"
|
||||
/>
|
||||
<activity
|
||||
android:name=".activity.MyBagActivity"
|
||||
android:exported="false" />
|
||||
@@ -94,9 +104,6 @@
|
||||
<activity
|
||||
android:name=".activity.UnderageActivity"
|
||||
android:exported="true" />
|
||||
<activity
|
||||
android:name=".activity.SettingActivity"
|
||||
android:exported="true" />
|
||||
</application>
|
||||
|
||||
</manifest>
|
||||
@@ -0,0 +1,392 @@
|
||||
package com.example.modulevocal.activity;
|
||||
|
||||
|
||||
import static android.view.View.VISIBLE;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
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.TimeUtils;
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.adapter.AlbumPhotoAdapter;
|
||||
import com.example.modulevocal.adapter.SingleChoiceAdapter;
|
||||
import com.example.modulevocal.adapter.UserPhotoWallAdapter;
|
||||
import com.example.modulevocal.conacts.AlbumDetailConacts;
|
||||
import com.example.modulevocal.databinding.ActivityAlbumDetailBinding;
|
||||
import com.example.modulevocal.presenter.AlbumDetailPresenter;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.luck.picture.lib.PictureSelector;
|
||||
import com.luck.picture.lib.config.PictureConfig;
|
||||
import com.luck.picture.lib.config.PictureMimeType;
|
||||
import com.luck.picture.lib.entity.LocalMedia;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.bean.AlbumBean;
|
||||
import com.qxcm.moduleutil.bean.HeatedBean;
|
||||
import com.qxcm.moduleutil.utils.ARouteConstants;
|
||||
import com.qxcm.moduleutil.utils.GlideEngine;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.utils.MyPictureParameterStyle;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
import com.qxcm.moduleutil.widget.Constants;
|
||||
import com.qxcm.moduleutil.widget.dialog.ShareDialog;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/6
|
||||
*@description: 相册详情
|
||||
*/
|
||||
@Route(path = ARouteConstants.USER_ALBUM_DETAIL)
|
||||
public class AlbumDetailActivity extends BaseMvpActivity<AlbumDetailPresenter, ActivityAlbumDetailBinding> implements AlbumDetailConacts.View {
|
||||
@Autowired
|
||||
public String albumId;
|
||||
@Autowired
|
||||
public String pwd;
|
||||
|
||||
@Autowired
|
||||
public String target_fragment;
|
||||
|
||||
private boolean isSelectMode = true; // 默认是 "选择" 状态
|
||||
private int page;
|
||||
private List<String> uploadedUrls = new ArrayList<>();//真实图片地址
|
||||
AlbumPhotoAdapter adapter;
|
||||
private String userId;
|
||||
AlbumBean albumBean1;
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
||||
page++;
|
||||
MvpPre.getAlbumDetail(albumId, pwd, page + "", "10");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
||||
// EventBus.getDefault().post(new BannerRefreshEvent());
|
||||
page = 1;
|
||||
MvpPre.getAlbumDetail(albumId, pwd, page + "", "10");
|
||||
}
|
||||
});
|
||||
mBinding.imCrAlbum.setOnClickListener(this::onClick);
|
||||
mBinding.tvBj.setOnClickListener(this::onClick);
|
||||
mBinding.zan.setOnClickListener(this::onClick);
|
||||
mBinding.lock.setOnClickListener(this::onClick);
|
||||
|
||||
mBinding.topBar.setRightText("选择");
|
||||
mBinding.topBar.setRightColor(Color.parseColor("#FF8ACC"));
|
||||
mBinding.topBar.getTvRight().setOnClickListener(v -> {
|
||||
if (isSelectMode) {
|
||||
mBinding.topBar.setRightText("取消");
|
||||
// 进入取消逻辑,比如显示删除按钮、多选模式等
|
||||
showControlInRecyclerView(); // 显示控件
|
||||
} else {
|
||||
mBinding.topBar.setRightText("选择");
|
||||
// 返回选择逻辑,关闭多选或删除模式
|
||||
hideControlInRecyclerView(); // 隐藏控件
|
||||
}
|
||||
isSelectMode = !isSelectMode; // 切换状态
|
||||
});
|
||||
adapter = new AlbumPhotoAdapter(null);
|
||||
mBinding.recycleView.setAdapter(adapter);
|
||||
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
|
||||
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
||||
@Override
|
||||
public int getSpanSize(int position) {
|
||||
int type = adapter.getItemViewType(position);
|
||||
if (type == 1) {
|
||||
return 3; // 占满整行
|
||||
} else {
|
||||
return 1; // 每个图片占一列
|
||||
}
|
||||
}
|
||||
});
|
||||
mBinding.recycleView.setLayoutManager(gridLayoutManager);
|
||||
|
||||
mBinding.rlShare.setOnClickListener(this::onClick);
|
||||
mBinding.rlTransfer.setOnClickListener(this::onClick);
|
||||
mBinding.rlDelete.setOnClickListener(this::onClick);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void showControlInRecyclerView() {
|
||||
if (adapter != null) {
|
||||
adapter.showControl(); // 调用适配器方法来显示控件
|
||||
}
|
||||
mBinding.bottomPanel.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
private void hideControlInRecyclerView() {
|
||||
if (adapter != null) {
|
||||
adapter.hideControl(); // 调用适配器方法来隐藏控件
|
||||
adapter.clearSelections(); // 清空选中状态
|
||||
|
||||
}
|
||||
mBinding.bottomPanel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
hideControlInRecyclerView();
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
if (view.getId() == R.id.im_cr_album) {
|
||||
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.REQUEST_CAMERA, false, 9);
|
||||
} else if (view.getId() == R.id.tv_bj) {
|
||||
ARouter.getInstance().build(ARouteConstants.CREATE_ALBUM).withSerializable("albumBean", albumBean1).navigation();
|
||||
finish();
|
||||
} else if (view.getId() == R.id.zan) {
|
||||
if (albumBean1.getIs_like().equals("1")) {
|
||||
albumBean1.setIs_like("0");
|
||||
} else {
|
||||
albumBean1.setIs_like("1");
|
||||
}
|
||||
MvpPre.likeAlbum(albumId);
|
||||
} else if (view.getId() == R.id.lock) {
|
||||
|
||||
} else if (view.getId() == R.id.rl_share) {
|
||||
if (adapter.getSelectedItems().size() > 2) {
|
||||
hideControlInRecyclerView();
|
||||
ToastUtils.showShort("只能选择一张照片");
|
||||
} else if (adapter.getSelectedItems().isEmpty()) {
|
||||
ToastUtils.showShort("请选择图片");
|
||||
} else {
|
||||
ShareDialog shareDialog = new ShareDialog(this, "", adapter.getSelectedItems().get(0).getImage(), "", 2);
|
||||
shareDialog.show();
|
||||
}
|
||||
} else if (view.getId() == R.id.rl_transfer) {
|
||||
MvpPre.getAlbumList("1", "10", userId);
|
||||
} else if (view.getId() == R.id.rl_delete) {
|
||||
MvpPre.deleteAlbumImage(adapter.getSelectedPhotoIdsAsString());
|
||||
}
|
||||
}
|
||||
|
||||
private void startChoosePhoto(int mimeType, int requestCode, boolean isVideo, int type) {
|
||||
|
||||
PictureSelector.create(this)
|
||||
.openGallery(mimeType)
|
||||
.isGif(isVideo)
|
||||
.imageEngine(GlideEngine.createGlideEngine())
|
||||
.isPreviewImage(true)
|
||||
.isCamera(true)
|
||||
.setOutputCameraPath(Constants.FILE_PATH)
|
||||
.isCompress(true)
|
||||
.setPictureStyle(MyPictureParameterStyle.Companion.selectPicture())
|
||||
.forResult(requestCode); //结果回调onActivityResult code
|
||||
|
||||
}
|
||||
|
||||
@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_CAMERA:
|
||||
List<LocalMedia> localMediaList = PictureSelector.obtainMultipleResult(data);
|
||||
|
||||
if (localMediaList != null && !localMediaList.isEmpty()) {
|
||||
List<File> imageFiles = new ArrayList<>();
|
||||
for (LocalMedia media : localMediaList) {
|
||||
String path = media.isCompressed() ? media.getCompressPath() : media.getRealPath();
|
||||
imageFiles.add(new File(path));
|
||||
}
|
||||
// 开始批量上传
|
||||
MvpPre.batchUploadFiles(imageFiles, 0); // 第二个参数是你原来的 type
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upLoadSuccess(String url, int type, int index, int total) {
|
||||
|
||||
if (index >= 0 && index < uploadedUrls.size()) {
|
||||
uploadedUrls.add(index, url); // 插入到对应位置
|
||||
} else {
|
||||
uploadedUrls.add(url); // 添加到最后
|
||||
}
|
||||
|
||||
if (uploadedUrls.size() == total) {
|
||||
updateAdapterData(); // 所有图片上传完成,更新适配器数据
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upAddAlbum() {
|
||||
MvpPre.getAlbumDetail(albumId, pwd, page + "", "10");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAlbumList(List<AlbumBean> data) {
|
||||
BottomSheetDialog dialog = new BottomSheetDialog(this);
|
||||
dialog.setContentView(com.qxcm.moduleutil.R.layout.bottom_sheet_recyclerview);
|
||||
|
||||
RecyclerView recyclerView = dialog.findViewById(com.qxcm.moduleutil.R.id.rv_options);
|
||||
Button btnCancel = dialog.findViewById(com.qxcm.moduleutil.R.id.btn_cancel);
|
||||
Button btnConfirm = dialog.findViewById(com.qxcm.moduleutil.R.id.btn_confirm);
|
||||
|
||||
assert recyclerView != null;
|
||||
recyclerView.setLayoutManager(new GridLayoutManager(this,4));
|
||||
SingleChoiceAdapter sadapter = new SingleChoiceAdapter();
|
||||
recyclerView.setAdapter(sadapter);
|
||||
sadapter.setNewData(data);
|
||||
btnCancel.setOnClickListener(v -> dialog.dismiss());
|
||||
|
||||
btnConfirm.setOnClickListener(v -> {
|
||||
AlbumBean selectedItem = sadapter.getSelectedItem();
|
||||
|
||||
if (selectedItem != null) {
|
||||
MvpPre.moveAlbum(adapter.getSelectedPhotoIdsAsString(), selectedItem.getId());
|
||||
}
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveAlbum() {
|
||||
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAlbum() {
|
||||
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void likeAlbum() {
|
||||
updateZanButtonUI(albumBean1);
|
||||
}
|
||||
|
||||
private void updateAdapterData() {
|
||||
String imageUrlsString = TextUtils.join(",", uploadedUrls);
|
||||
MvpPre.upAddAlbum(albumId, imageUrlsString, "");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
MvpPre.getAlbumDetail(albumId, pwd, "1", "10");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_album_detail;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected AlbumDetailPresenter bindPresenter() {
|
||||
return new AlbumDetailPresenter(this, this);
|
||||
}
|
||||
|
||||
private void updateZanButtonUI(AlbumBean albumBean) {
|
||||
if (albumBean.getIs_like().equals("0")) {
|
||||
mBinding.zanImage.setImageResource(com.qxcm.moduleutil.R.mipmap.shousz); // 已点赞图标
|
||||
mBinding.dyComment.setText(Integer.parseInt(albumBean.getLike_num()) - 1 + "");
|
||||
} else {
|
||||
mBinding.zanImage.setImageResource(com.qxcm.moduleutil.R.mipmap.showszc); // 未点赞图标
|
||||
mBinding.dyComment.setText(Integer.parseInt(albumBean.getLike_num()) + 1 + "");
|
||||
}
|
||||
}
|
||||
|
||||
private List<AlbumBean.ImageList> groupPhotos(List<AlbumBean.ImageList> photoItems) {
|
||||
List<AlbumBean.ImageList> result = new ArrayList<>();
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
|
||||
|
||||
Map<String, List<AlbumBean.ImageList>> groupedMap = new LinkedHashMap<>();
|
||||
|
||||
// 按日期分组
|
||||
for (AlbumBean.ImageList item : photoItems) {
|
||||
try {
|
||||
long timestamp = Long.parseLong(item.getCreatetime()) * 1000L;
|
||||
String dateKey = sdf.format(new Date(timestamp));
|
||||
groupedMap.computeIfAbsent(dateKey, k -> new ArrayList<>()).add(item);
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
// 构建新的列表,插入标题
|
||||
for (Map.Entry<String, List<AlbumBean.ImageList>> entry : groupedMap.entrySet()) {
|
||||
// 添加标题
|
||||
AlbumBean.ImageList header = new AlbumBean.ImageList();
|
||||
header.setItemViewType(1);
|
||||
header.setCreatetime(entry.getKey()); // 存储原始时间字符串用于显示
|
||||
result.add(header);
|
||||
|
||||
// 添加该组所有图片
|
||||
for (AlbumBean.ImageList image : entry.getValue()) {
|
||||
image.setItemViewType(2);
|
||||
result.add(image);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void getAlbumDetail(AlbumBean albumBean) {
|
||||
userId = albumBean.getUser_id();
|
||||
albumBean1 = albumBean;
|
||||
ImageUtils.loadHeadCC(albumBean.getImage(), mBinding.ivAlbumDetailBg);
|
||||
mBinding.tvAlbumName.setText(albumBean.getName());
|
||||
mBinding.tvAlbumNum.setText(albumBean.getCount() + "张照片");
|
||||
mBinding.imCrAlbum.setVisibility(userId.equals(SpUtil.getUserId() + "") ? VISIBLE : View.GONE);
|
||||
mBinding.topBar.setRightTxtVisible(userId.equals(SpUtil.getUserId() + ""));
|
||||
if (albumBean.getPwd() != null && !albumBean.getPwd().isEmpty()) {
|
||||
mBinding.imSuo.setVisibility(VISIBLE);
|
||||
} else {
|
||||
mBinding.imSuo.setVisibility(View.GONE);
|
||||
}
|
||||
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);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package com.example.modulevocal.activity;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
@@ -10,6 +11,7 @@ import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.modulevocal.R;
|
||||
@@ -17,9 +19,13 @@ import com.example.modulevocal.conacts.BriefIntroductionConacts;
|
||||
import com.example.modulevocal.databinding.ActivityBriefIntroductionBinding;
|
||||
import com.example.modulevocal.presenter.BriefIntroductionPresenter;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.bean.UserTagBean;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
@@ -28,8 +34,9 @@ import java.util.List;
|
||||
*/
|
||||
public class BriefIntroductionActivity extends BaseMvpActivity<BriefIntroductionPresenter, ActivityBriefIntroductionBinding> implements BriefIntroductionConacts.View{
|
||||
|
||||
private BaseQuickAdapter<String, BaseViewHolder> adapter;
|
||||
|
||||
private BaseQuickAdapter<UserTagBean, BaseViewHolder> adapter;
|
||||
private List<UserTagBean> userTagBeans = new ArrayList<>();
|
||||
private Set<UserTagBean> selectedItems = new HashSet<>();
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.topBar.setTitle("修改简介");
|
||||
@@ -37,28 +44,46 @@ public class BriefIntroductionActivity extends BaseMvpActivity<BriefIntroduction
|
||||
mBinding.topBar.setRightText("保存");
|
||||
mBinding.topBar.setRightColor(Color.parseColor("#FF8ACC"));
|
||||
mBinding.topBar.getTvRight().setOnClickListener(v -> {
|
||||
finish();
|
||||
if (!TextUtils.isEmpty(mBinding.etG.getText().toString())){
|
||||
MvpPre.editUserInfo("","","","","",mBinding.etG.getText().toString(),getSelectedIds());
|
||||
}
|
||||
});
|
||||
|
||||
List<String> list = new ArrayList<>();
|
||||
list.add("可盐可甜");
|
||||
list.add("小甜甜");
|
||||
list.add("可盐可甜");
|
||||
list.add("小甜甜");
|
||||
list.add("可盐可甜");
|
||||
list.add("小甜甜");
|
||||
MvpPre.getUserTagList();
|
||||
|
||||
mBinding.recycleView.setLayoutManager(new GridLayoutManager(this, 4));
|
||||
|
||||
adapter = new BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_brief_introduction, list) {
|
||||
adapter = new BaseQuickAdapter<UserTagBean, BaseViewHolder>(R.layout.item_brief_introduction, userTagBeans) {
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, String item) {
|
||||
helper.setText(R.id.tv, item);
|
||||
protected void convert(BaseViewHolder helper, UserTagBean item) {
|
||||
helper.setText(R.id.tv, item.getTag_name());
|
||||
if (selectedItems.contains(item)) {
|
||||
helper.itemView.setBackgroundColor(Color.parseColor("#FF8ACC"));
|
||||
} else {
|
||||
helper.itemView.setBackgroundColor(Color.WHITE);
|
||||
}
|
||||
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
if (selectedItems.contains(item)) {
|
||||
selectedItems.remove(item);
|
||||
} else {
|
||||
selectedItems.add(item);
|
||||
}
|
||||
notifyItemChanged(helper.getAdapterPosition());
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
mBinding.recycleView.setAdapter(adapter);
|
||||
adapter.setNewData(list);
|
||||
}
|
||||
|
||||
}
|
||||
private String getSelectedIds() {
|
||||
return selectedItems.stream()
|
||||
.map(UserTagBean::getId)
|
||||
.collect(Collectors.joining(","));
|
||||
}
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.activity_brief_introduction;
|
||||
@@ -68,4 +93,15 @@ public class BriefIntroductionActivity extends BaseMvpActivity<BriefIntroduction
|
||||
protected BriefIntroductionPresenter bindPresenter() {
|
||||
return new BriefIntroductionPresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getUserTagListSuccess(List<UserTagBean> data) {
|
||||
adapter.setNewData(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editUserInfoSuccess(String s) {
|
||||
ToastUtils.showShort(s);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
@@ -25,7 +25,7 @@ public class ChangPassActivity extends BaseMvpActivity<ChangePasswordPresenter,
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.topBar.setTitle(getResources().getString(com.qxcm.moduleutil.R.string.set_password));
|
||||
userBean = SpUtil.getUserInfo();
|
||||
userBean = SpUtil.getUserBean();
|
||||
mBinding.tvPhoin.setText(userBean.getMobile());
|
||||
mBinding.tvSendCode.setOnClickListener(this::onClick);
|
||||
mBinding.btnSubmit.setOnClickListener(this::onClick);
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.example.modulevocal.activity;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
@@ -9,11 +10,17 @@ import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.conacts.ChangeNicknameConacts;
|
||||
import com.example.modulevocal.databinding.ActivityChangeNicknameBinding;
|
||||
import com.example.modulevocal.presenter.ChangeNicknamePresenter;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/5/21
|
||||
@@ -21,17 +28,27 @@ import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
*/
|
||||
public class ChangeNicknameActivity extends BaseMvpActivity<ChangeNicknamePresenter, ActivityChangeNicknameBinding> implements ChangeNicknameConacts.View {
|
||||
|
||||
private UserInfo userInfo;
|
||||
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
mBinding.topBar.setTitle("修改昵称");
|
||||
mBinding.topBar.setRightTxtVisible(true);
|
||||
mBinding.topBar.setRightText("保存");
|
||||
mBinding.topBar.setRightColor(Color.parseColor("#FF8ACC"));
|
||||
mBinding.topBar.getTvRight().setOnClickListener(v -> {
|
||||
finish();
|
||||
if (!TextUtils.isEmpty(mBinding.edNickName.getText().toString())){
|
||||
MvpPre.editUserInfo(mBinding.edNickName.getText().toString(),"","","","","","");
|
||||
}
|
||||
});
|
||||
userInfo= SpUtil.getUserInfo();
|
||||
if (userInfo!=null){
|
||||
mBinding.edNickName.setText(userInfo.getNickname());
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -44,4 +61,12 @@ public class ChangeNicknameActivity extends BaseMvpActivity<ChangeNicknamePresen
|
||||
protected ChangeNicknamePresenter bindPresenter() {
|
||||
return new ChangeNicknamePresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editUserInfoSuccess(String s) {
|
||||
ToastUtils.showShort(s);
|
||||
userInfo.setNickname(mBinding.edNickName.getText().toString());
|
||||
EventBus.getDefault().post(userInfo);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,21 @@
|
||||
package com.example.modulevocal.activity;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
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.conacts.MyAlbumConacts;
|
||||
@@ -23,39 +28,103 @@ import com.luck.picture.lib.entity.LocalMedia;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.bean.AlbumBean;
|
||||
import com.qxcm.moduleutil.bean.UserImgList;
|
||||
import com.qxcm.moduleutil.utils.ARouteConstants;
|
||||
import com.qxcm.moduleutil.utils.GlideEngine;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.utils.MyPictureParameterStyle;
|
||||
import com.qxcm.moduleutil.widget.Constants;
|
||||
import com.zcw.togglebutton.ToggleButton;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class CreateAlbumActivity extends BaseMvpActivity<MyAlbumPresenter, ActivityCreateAlbumBinding> implements MyAlbumConacts.View{
|
||||
/**
|
||||
* @author qx
|
||||
* @data 2025/6/6
|
||||
* @description: 新建相册
|
||||
*/
|
||||
@Route(path = ARouteConstants.CREATE_ALBUM)
|
||||
public class CreateAlbumActivity extends BaseMvpActivity<MyAlbumPresenter, ActivityCreateAlbumBinding> implements MyAlbumConacts.View {
|
||||
|
||||
private String imageUrl="";
|
||||
@Autowired
|
||||
public AlbumBean albumBean;
|
||||
private String imageUrl = "";
|
||||
boolean aBoolean = false;
|
||||
boolean albumBeanBoolean = false;
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.topBar.setTitle("新建相册");
|
||||
if (albumBean != null) {
|
||||
mBinding.topBar.setTitle("修改相册");
|
||||
albumBeanBoolean = true;
|
||||
mBinding.tvDele.setVisibility(View.VISIBLE);
|
||||
ImageUtils.loadHeadCC(albumBean.getImage(), mBinding.rivAlbum);
|
||||
imageUrl = albumBean.getImage();
|
||||
mBinding.edAlbumName.setText(albumBean.getName());
|
||||
if (albumBean.getPwd() != null && !albumBean.getPwd().isEmpty()) {
|
||||
mBinding.btnRadio.setToggleOn(true);
|
||||
mBinding.edAlbumPassword.setText(albumBean.getPwd());
|
||||
mBinding.edAlbumPassword.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mBinding.btnRadio.setToggleOn(false);
|
||||
mBinding.edAlbumPassword.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
mBinding.topBar.setTitle("新建相册");
|
||||
albumBeanBoolean = false;
|
||||
mBinding.tvDele.setVisibility(View.GONE);
|
||||
}
|
||||
mBinding.tvDele.setOnClickListener(this::onClick);
|
||||
mBinding.rivAlbum.setOnClickListener(this::onClick);
|
||||
mBinding.tvCancel.setOnClickListener(this::onClick);
|
||||
mBinding.tvConfirm.setOnClickListener(this::onClick);
|
||||
|
||||
mBinding.btnRadio.setOnToggleChanged(new ToggleButton.OnToggleChanged() {
|
||||
@Override
|
||||
public void onToggle(boolean on) {
|
||||
if (on) {
|
||||
aBoolean = true;
|
||||
mBinding.edAlbumPassword.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
mBinding.edAlbumPassword.setVisibility(View.GONE);
|
||||
aBoolean = false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
if (view.getId() == R.id.riv_album) {
|
||||
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.CHOOSE_REQUEST, false, 1);
|
||||
} else if (view.getId() ==R.id.tv_cancel) {
|
||||
finish();
|
||||
}else if (view.getId() ==R.id.tv_confirm) {
|
||||
if (!Objects.requireNonNull(mBinding.edAlbumName.getText()).toString().trim().isEmpty() || !imageUrl.equals("")){
|
||||
MvpPre.createAlbum(mBinding.edAlbumName.getText().toString().trim(),imageUrl);
|
||||
}else {
|
||||
} else if (view.getId() == R.id.tv_confirm) {
|
||||
if (!Objects.requireNonNull(mBinding.edAlbumName.getText()).toString().trim().isEmpty() || !imageUrl.equals("")) {
|
||||
if (mBinding.edAlbumName.getText().toString().length() < 4) {
|
||||
ToastUtils.showShort("相册名称不能少于4个字");
|
||||
return;
|
||||
} else if (aBoolean) {
|
||||
if (mBinding.edAlbumPassword.getText().toString().length() < 4) {
|
||||
ToastUtils.showShort("密码不能少于4个字");
|
||||
return;
|
||||
} else {
|
||||
if (albumBeanBoolean){
|
||||
MvpPre.editAlbum(albumBean.getId(), mBinding.edAlbumName.getText().toString().trim(), mBinding.edAlbumPassword.getText().toString(), imageUrl);
|
||||
}else {
|
||||
MvpPre.createAlbum(mBinding.edAlbumName.getText().toString().trim(), mBinding.edAlbumPassword.getText().toString(), imageUrl);
|
||||
}
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
if (albumBeanBoolean){
|
||||
MvpPre.editAlbum(albumBean.getId(), mBinding.edAlbumName.getText().toString().trim(), "", imageUrl);
|
||||
|
||||
}else {
|
||||
MvpPre.createAlbum(mBinding.edAlbumName.getText().toString().trim(), "", imageUrl);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ToastUtils.showShort("请输入相册名称并选择相册封面");
|
||||
}
|
||||
} else {
|
||||
MvpPre.deleteAlbum(albumBean.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -76,7 +145,7 @@ public class CreateAlbumActivity extends BaseMvpActivity<MyAlbumPresenter, Activ
|
||||
|
||||
@Override
|
||||
public void upLoadSuccess(String url, int type) {
|
||||
imageUrl=url;
|
||||
imageUrl = url;
|
||||
if (type == 1) {
|
||||
ImageUtils.loadHeadCC(url, mBinding.rivAlbum);
|
||||
} else {
|
||||
@@ -90,6 +159,17 @@ public class CreateAlbumActivity extends BaseMvpActivity<MyAlbumPresenter, Activ
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAlbum() {
|
||||
ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).withString("userId", albumBean.getUser_id()).navigation();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editAlbum() {
|
||||
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", albumBean.getId()).withString("pwd", albumBean.getPwd()).navigation();
|
||||
finish();
|
||||
}
|
||||
|
||||
private void startChoosePhoto(int mimeType, int requestCode, boolean isVideo, int type) {
|
||||
|
||||
PictureSelector.create(this)
|
||||
|
||||
@@ -3,7 +3,9 @@ package com.example.modulevocal.activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.text.Html;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -13,6 +15,7 @@ import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.adapter.UserPhotoWallAdapter;
|
||||
@@ -24,15 +27,26 @@ import com.luck.picture.lib.config.PictureConfig;
|
||||
import com.luck.picture.lib.config.PictureMimeType;
|
||||
import com.luck.picture.lib.entity.LocalMedia;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.bean.BannerModel;
|
||||
import com.qxcm.moduleutil.bean.HeatedBean;
|
||||
import com.qxcm.moduleutil.bean.UserImgList;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.bean.XBannerData;
|
||||
import com.qxcm.moduleutil.utils.DateSelectDialog;
|
||||
import com.qxcm.moduleutil.utils.GlideEngine;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.utils.MyPictureParameterStyle;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
import com.qxcm.moduleutil.widget.Constants;
|
||||
import com.qxcm.moduleutil.widget.img.FullScreenUtil;
|
||||
import com.stx.xhb.xbanner.XBanner;
|
||||
import com.tencent.qcloud.tuicore.util.SPUtils;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -45,13 +59,21 @@ import java.util.Map;
|
||||
public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, ActivityEditUserBinding> implements EditUserConactos.View
|
||||
, DateSelectDialog.OnSelectDate {
|
||||
UserPhotoWallAdapter mUserPhotoWallAdapter;
|
||||
List<UserImgList> list;
|
||||
List<String> list;
|
||||
private DateSelectDialog mDateSelectDialog;
|
||||
private UserInfo userInfo1;
|
||||
private List<String> uploadedUrls = new ArrayList<>();//真实图片地址
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
MvpPre.getUserHome(SpUtil.getUserId()+"");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
mBinding.topBar.setTitle(getResources().getString(com.qxcm.moduleutil.R.string.edit_profile));
|
||||
|
||||
|
||||
int changeCount = 2; // 每月剩余修改次数
|
||||
int cardCount = 0; // 头像卡数量
|
||||
|
||||
@@ -65,15 +87,21 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
|
||||
mUserPhotoWallAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
|
||||
@Override
|
||||
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
|
||||
String item = list.get(position);
|
||||
int id = view.getId();
|
||||
UserImgList item = mUserPhotoWallAdapter.getItem(position);
|
||||
if (id == R.id.iv_close) {
|
||||
// MvpPre.deletePhoto(item.getId(), position);
|
||||
} else {
|
||||
if ("0".equals(item.getId())) {
|
||||
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.REQUEST_CAMERA, true, 6);
|
||||
if (id == R.id.iv_close){
|
||||
uploadedUrls.remove(item);
|
||||
updateAdapterData();
|
||||
}else {
|
||||
if (item.equals(UserPhotoWallAdapter.ADD_PHOTO)) {
|
||||
// 点击的是“+”号,启动图片选择
|
||||
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.REQUEST_CAMERA, false, 9);
|
||||
} else {
|
||||
// 查看大图或其他操作
|
||||
FullScreenUtil.showFullScreenDialog(EditUserInfoActivity.this, position, list);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
mUserPhotoWallAdapter.setOnItemChildLongClickListener(new BaseQuickAdapter.OnItemChildLongClickListener() {
|
||||
@@ -84,20 +112,23 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
|
||||
}
|
||||
});
|
||||
list = new ArrayList<>();
|
||||
UserImgList userImgList = new UserImgList("0", "");
|
||||
list.add(userImgList);
|
||||
mUserPhotoWallAdapter.setNewData(list);
|
||||
// UserImgList userImgList = new UserImgList("0", "");
|
||||
// list.add(userImgList);
|
||||
// mUserPhotoWallAdapter.setNewData(list);
|
||||
mUserPhotoWallAdapter.setDelete(true);
|
||||
|
||||
mBinding.rl1.setOnClickListener(this::onClick);
|
||||
mBinding.rl3.setOnClickListener(this::onClick);
|
||||
mBinding.rl4.setOnClickListener(this::onClick);
|
||||
mBinding.rvUserHead.setOnClickListener(this::onClick);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
if (view.getId() == R.id.rv_user_head) {
|
||||
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.CHOOSE_REQUEST, true, 1);
|
||||
startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.PREVIEW_VIDEO_CODE, false, 1);
|
||||
} else if (view.getId() == R.id.rl_1) {
|
||||
startActivity(new Intent(this, ChangeNicknameActivity.class));
|
||||
} else if (view.getId() == R.id.rl_3) {
|
||||
@@ -142,6 +173,20 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (resultCode == RESULT_OK && data != null) {
|
||||
switch (requestCode) {
|
||||
case PictureConfig.PREVIEW_VIDEO_CODE:
|
||||
List<LocalMedia> localMedia1 = PictureSelector.obtainMultipleResult(data);
|
||||
if (localMedia1 != null && localMedia1.size() != 0) {
|
||||
LocalMedia imgMedia = localMedia1.get(0);
|
||||
String url;
|
||||
if (imgMedia.isCompressed()) {
|
||||
url = imgMedia.getCompressPath();
|
||||
} else {
|
||||
url = imgMedia.getRealPath();
|
||||
}
|
||||
MvpPre.uploadFile(new File(url), 1, 1, 1);
|
||||
}
|
||||
break;
|
||||
|
||||
case PictureConfig.CHOOSE_REQUEST:
|
||||
List<LocalMedia> localMedia = PictureSelector.obtainMultipleResult(data);
|
||||
if (localMedia != null && localMedia.size() != 0) {
|
||||
@@ -152,47 +197,124 @@ public class EditUserInfoActivity extends BaseMvpActivity<EditUserPresenter, Act
|
||||
} else {
|
||||
url = imgMedia.getRealPath();
|
||||
}
|
||||
MvpPre.uploadFile(new File(url), 0);
|
||||
MvpPre.uploadFile(new File(url), 0, 0, 1);
|
||||
}
|
||||
break;
|
||||
case PictureConfig.REQUEST_CAMERA:
|
||||
List<LocalMedia> localMedia1 = PictureSelector.obtainMultipleResult(data);
|
||||
if (localMedia1 != null && localMedia1.size() != 0) {
|
||||
LocalMedia imgMedia = localMedia1.get(0);
|
||||
MvpPre.uploadFile(new File(imgMedia.getRealPath()), 3);
|
||||
List<LocalMedia> localMediaList = PictureSelector.obtainMultipleResult(data);
|
||||
|
||||
if (localMediaList != null && !localMediaList.isEmpty()) {
|
||||
List<File> imageFiles = new ArrayList<>();
|
||||
for (LocalMedia media : localMediaList) {
|
||||
String path = media.isCompressed() ? media.getCompressPath() : media.getRealPath();
|
||||
imageFiles.add(new File(path));
|
||||
}
|
||||
|
||||
// 开始批量上传
|
||||
MvpPre.batchUploadFiles(imageFiles, 0); // 第二个参数是你原来的 type
|
||||
|
||||
}
|
||||
|
||||
|
||||
// List<LocalMedia> localMedia2 = PictureSelector.obtainMultipleResult(data);
|
||||
// if (localMedia2 != null && localMedia2.size() != 0) {
|
||||
// LocalMedia imgMedia = localMedia2.get(0);
|
||||
// MvpPre.uploadFile(new File(imgMedia.getRealPath()), 6);
|
||||
// }
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void upLoadSuccess(String url, int type) {
|
||||
// if (uploadType == 1) {
|
||||
// MvpPre.addPhoto(url);
|
||||
// } else {
|
||||
// if (type == 0) {
|
||||
// MvpPre.updateAvatar(url);
|
||||
// } else if (type == 1) {
|
||||
// Map<String, String> map = new HashMap<>();
|
||||
// map.put("intro_voice", url);
|
||||
// map.put("intro_voice_time", String.valueOf(mLength));
|
||||
// MvpPre.upDateUserInfo(map);
|
||||
// } else {
|
||||
// MvpPre.updateShortsVideo(url);
|
||||
// }
|
||||
// }
|
||||
if (type == 1) {
|
||||
ImageUtils.loadHeadCC(url, mBinding.rvUserHead);
|
||||
} else {
|
||||
list.add(new UserImgList("1", url));
|
||||
mUserPhotoWallAdapter.setNewData(list);
|
||||
public void getUserHomeSuccess(UserInfo userInfo) {
|
||||
SpUtil.saveUserInfo(userInfo);
|
||||
ImageUtils.loadHeadCC(userInfo.getAvatar(), mBinding.rvUserHead);
|
||||
mBinding.tvNickName.setText(userInfo.getNickname());
|
||||
mBinding.tvSex.setText(userInfo.getSex() == 1 ? "男" : "女");
|
||||
mBinding.tvSr.setText(userInfo.getBirthday());
|
||||
uploadedUrls.clear();
|
||||
List<String> images =userInfo.getHome_bgimages()!=null && !userInfo.getHome_bgimages().isEmpty() ? Arrays.asList(userInfo.getHome_bgimages().split(",")):new ArrayList<>();
|
||||
for (int i=0;i<images.size();i++) {
|
||||
uploadedUrls.add( images.get(i));
|
||||
}
|
||||
list.clear();
|
||||
list.addAll(uploadedUrls);
|
||||
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
|
||||
mUserPhotoWallAdapter.setNewData(list);
|
||||
userInfo1=userInfo;
|
||||
List<XBannerData> s=new ArrayList<>();
|
||||
if (userInfo.getHome_bgimages()==null||userInfo.getHome_bgimages().isEmpty()){
|
||||
|
||||
if (userInfo.getAvatar()!=null) {
|
||||
s.add(new XBannerData(0,userInfo.getAvatar(),""));
|
||||
}
|
||||
mBinding.xbanner.setBannerData(s);
|
||||
}else {
|
||||
for (String s1 : uploadedUrls){
|
||||
s.add(new XBannerData(0,s1,""));
|
||||
}
|
||||
mBinding.xbanner.setBannerData(s);
|
||||
}
|
||||
mBinding.xbanner.loadImage(new XBanner.XBannerAdapter() {
|
||||
@Override
|
||||
public void loadBanner(XBanner banner, Object model, View view, int position) {
|
||||
|
||||
XBannerData xBannerData= (XBannerData) model;
|
||||
ImageUtils.loadHeadCC(xBannerData.getUrl(), (ImageView) view);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editUserInfoSuccess(String s) {
|
||||
ToastUtils.showShort(s);
|
||||
MvpPre.getUserHome(SpUtil.getUserId()+"");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void topicList(List<HeatedBean> list) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void upLoadSuccess(String url, int type, int index, int total) {
|
||||
if (type == 1) {
|
||||
ImageUtils.loadHeadCC(url, mBinding.rvUserHead);
|
||||
userInfo1.setAvatar(url);
|
||||
EventBus.getDefault().post(userInfo1);
|
||||
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(); // 所有图片上传完成,更新适配器数据
|
||||
}
|
||||
}
|
||||
}
|
||||
private void updateAdapterData() {
|
||||
list.clear();
|
||||
list.addAll(uploadedUrls); // 添加真实图片
|
||||
list.add(UserPhotoWallAdapter.ADD_PHOTO); // 最后加上 ADD_PHOTO
|
||||
mUserPhotoWallAdapter.setNewData(list);
|
||||
String imageUrlsString = TextUtils.join(",", uploadedUrls);
|
||||
// MvpPre.editUserInfo("", "", "", "", imageUrlsString, "", "");
|
||||
MvpPre.editUserBg(imageUrlsString);
|
||||
}
|
||||
@Override
|
||||
public void selectDate(String year, String month, String day) {
|
||||
mBinding.tvSr.setText(year + "-" + month + "-" + day);
|
||||
/* map.put("birthday", year + "-" + month + "-" + day);*/
|
||||
|
||||
MvpPre.editUserInfo("", year + "-" + month + "-" + day, "", "", "", "", "");
|
||||
}
|
||||
}
|
||||
@@ -14,6 +14,8 @@ import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.databinding.ActivityNotificationBinding;
|
||||
import com.qxcm.moduleutil.activity.BaseAppCompatActivity;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
public class NotificationActivity extends BaseAppCompatActivity<ActivityNotificationBinding> {
|
||||
|
||||
|
||||
|
||||
@@ -2,34 +2,25 @@ package com.example.modulevocal.activity;
|
||||
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.activity.EdgeToEdge;
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
import com.blankj.utilcode.util.FileUtils;
|
||||
import com.blankj.utilcode.util.ToastUtils;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.conacts.SettingConacts;
|
||||
import com.example.modulevocal.databinding.ActivitySettingBinding;
|
||||
import com.qxcm.moduleutil.activity.BaseAppCompatActivity;
|
||||
import com.example.modulevocal.presenter.SettingPresenter;
|
||||
import com.qxcm.moduleutil.activity.BaseMvpActivity;
|
||||
import com.qxcm.moduleutil.base.CommonAppContext;
|
||||
import com.qxcm.moduleutil.dialog.RealNameDialog;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
import com.qxcm.moduleutil.utils.config.ConfigManager;
|
||||
import com.qxcm.moduleutil.utils.config.EnvironmentEnum;
|
||||
import com.qxcm.moduleutil.utils.config.EnvironmentPrefs;
|
||||
/**
|
||||
*@author
|
||||
*@data
|
||||
*@description: 设置页面
|
||||
*/
|
||||
public class SettingActivity extends BaseAppCompatActivity<ActivitySettingBinding> {
|
||||
|
||||
public class SettingActivity extends BaseMvpActivity<SettingPresenter, ActivitySettingBinding> implements SettingConacts.View {
|
||||
|
||||
|
||||
@Override
|
||||
@@ -37,6 +28,11 @@ public class SettingActivity extends BaseAppCompatActivity<ActivitySettingBindin
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected SettingPresenter bindPresenter() {
|
||||
return new SettingPresenter(this, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
mBinding.topBar.setTitle("设置");
|
||||
@@ -50,26 +46,26 @@ public class SettingActivity extends BaseAppCompatActivity<ActivitySettingBindin
|
||||
mBinding.llSmrz.setOnClickListener(this::onClick);
|
||||
mBinding.llQhch.setOnClickListener(this::onClick);
|
||||
mBinding.llTcdl.setOnClickListener(this::onClick);
|
||||
mBinding.llZhxiao.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
if (view.getId()==R.id.ll_youth){
|
||||
if (view.getId() == R.id.ll_youth) {
|
||||
startActivity(new Intent(this, UnderageActivity.class));
|
||||
}else if (view.getId()==R.id.ll_notification){
|
||||
} else if (view.getId() == R.id.ll_notification) {
|
||||
startActivity(new Intent(this, NotificationActivity.class));
|
||||
}else if (view.getId()==R.id.ll_hmd){
|
||||
Intent intent=new Intent(this, BlacklistActivity.class);
|
||||
intent.putExtra("type",1);
|
||||
} else if (view.getId() == R.id.ll_hmd) {
|
||||
Intent intent = new Intent(this, BlacklistActivity.class);
|
||||
intent.putExtra("type", 1);
|
||||
startActivity(intent);
|
||||
// startActivity(new Intent(this, BlacklistActivity.class));
|
||||
}else if (view.getId()==R.id.ll_szmm){
|
||||
} else if (view.getId() == R.id.ll_szmm) {//设置密码
|
||||
startActivity(new Intent(this, ChangPassActivity.class));
|
||||
}else if (view.getId()==R.id.ll_shb){
|
||||
} else if (view.getId() == R.id.ll_shb) {
|
||||
startActivity(new Intent(this, PhoneReplacementActivity.class));
|
||||
}else if (view.getId()==R.id.ll_smrz){//实名认证
|
||||
if (SpUtil.getRealName()){
|
||||
} else if (view.getId() == R.id.ll_smrz) {//实名认证
|
||||
if (SpUtil.getRealName()) {
|
||||
startActivity(new Intent(this, RealDetailActivity.class));
|
||||
}else {
|
||||
} else {
|
||||
RealNameDialog realNameDialog = new RealNameDialog(this);
|
||||
realNameDialog.show();
|
||||
realNameDialog.setOnDismissListener(dialog -> {
|
||||
@@ -77,7 +73,7 @@ public class SettingActivity extends BaseAppCompatActivity<ActivitySettingBindin
|
||||
startActivity(new Intent(SettingActivity.this, RealName1Activity.class));
|
||||
});
|
||||
}
|
||||
}else if (view.getId()==R.id.ll_qhch){
|
||||
} else if (view.getId() == R.id.ll_qhch) {
|
||||
new AlertDialog.Builder(this).setMessage("确认清理缓存?").setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
@@ -88,33 +84,44 @@ public class SettingActivity extends BaseAppCompatActivity<ActivitySettingBindin
|
||||
mBinding.tvCache.setHint(FileUtils.getSize(getCacheDir()));
|
||||
}
|
||||
}).setNegativeButton("取消", null).create().show();
|
||||
}
|
||||
else if (view.getId()==R.id.swit){
|
||||
if (mBinding.swit.isChecked()){
|
||||
} else if (view.getId() == R.id.swit) {
|
||||
if (mBinding.swit.isChecked()) {
|
||||
ConfigManager.getInstance().switchEnvironment(EnvironmentEnum.PRODUCTION);
|
||||
EnvironmentEnum selectedEnv = EnvironmentEnum.PRODUCTION;
|
||||
EnvironmentPrefs prefs = new EnvironmentPrefs(this);
|
||||
prefs.setSelectedEnvironment(selectedEnv);
|
||||
}else {
|
||||
} else {
|
||||
ConfigManager.getInstance().switchEnvironment(EnvironmentEnum.TEST);
|
||||
EnvironmentEnum selectedEnv = EnvironmentEnum.TEST;
|
||||
EnvironmentPrefs prefs = new EnvironmentPrefs(this);
|
||||
prefs.setSelectedEnvironment(selectedEnv);
|
||||
}
|
||||
}else if (view.getId()==R.id.ll_tcdl){
|
||||
} else if (view.getId() == R.id.ll_tcdl) {
|
||||
new AlertDialog.Builder(this).setMessage("确定要退出登录吗?")
|
||||
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
try {
|
||||
CommonAppContext.getInstance().clearLoginInfo();
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
if (MvpPre == null){
|
||||
MvpPre = bindPresenter();
|
||||
}
|
||||
MvpPre.clearLoginInfo();
|
||||
|
||||
}
|
||||
})
|
||||
.setNegativeButton("取消", null).create().show();
|
||||
}else if (view.getId() == R.id.ll_zhxiao){
|
||||
new AlertDialog.Builder(this).setMessage("确定要注销账号吗?")
|
||||
.setMessage("注销账号后所有的金币将要清零,是否要注销?")
|
||||
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
if (MvpPre==null){
|
||||
MvpPre=bindPresenter();
|
||||
}
|
||||
MvpPre.cancel();
|
||||
}
|
||||
})
|
||||
.setNegativeButton("取消", null).create().show();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,4 +131,21 @@ public class SettingActivity extends BaseAppCompatActivity<ActivitySettingBindin
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void clearLoginInfo(String s) {
|
||||
try {
|
||||
CommonAppContext.getInstance().clearLoginInfo();
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel(String s) {
|
||||
try {
|
||||
CommonAppContext.getInstance().clearLoginInfo();
|
||||
} catch (ClassNotFoundException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,8 @@ import android.widget.ImageView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
|
||||
import com.alibaba.android.arouter.facade.annotation.Autowired;
|
||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||
import com.example.moduletablayout.listener.CustomTabEntity;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.conacts.UserHomepageConacts;
|
||||
@@ -18,35 +20,40 @@ import com.qxcm.moduleutil.adapter.MyFragmentPagerAdapter;
|
||||
import com.qxcm.moduleutil.bean.CircleListBean;
|
||||
import com.qxcm.moduleutil.bean.PhotoWallResp;
|
||||
import com.qxcm.moduleutil.bean.UserHomeResp;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.bean.XBannerData;
|
||||
import com.qxcm.moduleutil.utils.ARouteConstants;
|
||||
import com.qxcm.moduleutil.utils.ImageLoader;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
import com.tencent.qcloud.tuicore.util.SPUtils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/4
|
||||
*@description: 用户主页
|
||||
*/
|
||||
@Route(path = ARouteConstants.USER_HOME_PAGE ,group = "modulevocal")
|
||||
public class UserHomepageActivity extends BaseMvpActivity<UserHomepagePresenter, ActivityUserHomepageBinding> implements UserHomepageConacts.View{
|
||||
String userId="";
|
||||
public String emchatUsername;
|
||||
@Autowired
|
||||
String userId;
|
||||
public String from;
|
||||
|
||||
private UserHomeResp mUserHomeResp;
|
||||
// private UserDetailsMoreDialog mUserDetailsMoreDialog;
|
||||
|
||||
private String jumpIntentRoomId = "";//跳转的房间id
|
||||
// private UserSkillsFragment skillsFragment;
|
||||
// private UserFamiliesFragment familiesFragment;
|
||||
// private BaseMVVMFragment trendFragment;
|
||||
private UserGiftWallFragment giftWallFragment;
|
||||
private String followState = "1";//关注状态 1 未关注 2已关注
|
||||
private ArrayList<CustomTabEntity> titles = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
MvpPre.getUserDetails("0", "0", true);
|
||||
List<Fragment> fragments = new ArrayList<>();
|
||||
fragments.add(UserHomepageFragment.newInstance(userId));
|
||||
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(fragments, getSupportFragmentManager()));
|
||||
// userId=getIntent().getStringExtra("userId");
|
||||
//
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
MvpPre.getUserDetails(userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -63,138 +70,24 @@ public class UserHomepageActivity extends BaseMvpActivity<UserHomepagePresenter,
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
// titles.add(new HomePageTabBean("动态"));
|
||||
// titles.add(new HomePageTabBean("礼物墙"));
|
||||
// mBinding.meUser.tabLwq.setVisibility(View.GONE);
|
||||
// mBinding.meUser.tabDt.setVisibility(View.VISIBLE);
|
||||
// mBinding.meUser.tabDt.setSelected(true);
|
||||
// initListener();
|
||||
// scrollInteractive();
|
||||
//// mBinding.meUser.ivMore.setOnClickListener(this);
|
||||
//// mBinding.meUser.ivMoreMin.setOnClickListener(this);
|
||||
//// mBinding.tvChart.setOnClickListener(this);
|
||||
//// mBinding.meUser.ivEdit.setOnClickListener(this);
|
||||
//// mBinding.meUser.headerInfo.tvLivingRoomGo.setOnClickListener(this);
|
||||
// mBinding.meUser.ivBack.setOnClickListener(this::onChock);
|
||||
// mBinding.meUser.ivBackMin.setOnClickListener(this::onChock);
|
||||
// mBinding.meUser.headerInfo.tvNickName.setOnClickListener(this::onChock);
|
||||
// mBinding.meUser.headerInfo.tvUserId.setOnClickListener(this::onChock);
|
||||
//// mBinding.clFollow.setOnClickListener(this::onFollow);
|
||||
//// mBinding.meUser.headerInfo.tvShoufufen.setOnClickListener(this);
|
||||
//// mBinding.meUser.headerInfo.tvMeinfoRenzhengIcon.setOnClickListener(this);
|
||||
//// mBinding.meUser.headerInfo.tvMeinfoGonghui.setOnClickListener(this);
|
||||
// mBinding.meUser.headerInfo.rivUserHead.setOnClickListener(this::onChock);
|
||||
}
|
||||
// public void setTab(int type) {
|
||||
// if (titles.size() == 2) {
|
||||
// titles.clear();
|
||||
// titles.add(new HomePageTabBean("动态"));
|
||||
// titles.add(new HomePageTabBean("礼物墙"));
|
||||
// mBinding.meUser.tabLwq.setVisibility(View.VISIBLE);
|
||||
// mBinding.meUser.tabDt.setVisibility(View.VISIBLE);
|
||||
// }
|
||||
//
|
||||
// mBinding.meUser.tabDt.setSelected(true);
|
||||
// }
|
||||
//
|
||||
//// private void onFollow(View view) {
|
||||
//// if ("1".equals(followState)) {
|
||||
//// MvpPre.follow(userId, "2");
|
||||
//// } else {
|
||||
//// MvpPre.follow(userId, "1");
|
||||
//// }
|
||||
//// }
|
||||
//
|
||||
// private boolean scrollviewFlag = false;//标记是否是scrollview在滑动
|
||||
//
|
||||
// protected void initListener() {
|
||||
//// mBinding.meUser.tabZl.setOnClickListener(v->{
|
||||
//// mBinding.meUser.abl.setExpanded(true, true);
|
||||
//// mBinding.nestScroll.scrollTo(0, 0);
|
||||
//// });
|
||||
//// mBinding.meUser.tabJn.setOnClickListener(v->{
|
||||
//// mBinding.meUser.abl.setExpanded(false, true);
|
||||
//// mBinding.nestScroll.scrollTo(0, (int) mBinding.flSkills.getY());
|
||||
//// });
|
||||
// mBinding.meUser.tabLwq.setOnClickListener(v->{
|
||||
// mBinding.meUser.abl.setExpanded(false, true);
|
||||
// mBinding.nestScroll.scrollTo(0, (int) mBinding.flGiftWall.getY());
|
||||
// });
|
||||
// mBinding.meUser.tabDt.setOnClickListener(v->{
|
||||
// mBinding.meUser.abl.setExpanded(false, true);
|
||||
// mBinding.nestScroll.scrollTo(0, (int) mBinding.flTrendContainer.getY());
|
||||
// });
|
||||
//
|
||||
// mBinding.meUser.abl.addOnOffsetChangedListener(new AppBarStateChangeListener() {
|
||||
// @Override
|
||||
// public void onStateChanged(AppBarLayout appBarLayout, State state) {
|
||||
// Logger.e("onStateChanged", appBarLayout.getTotalScrollRange());
|
||||
// if (state == State.EXPANDED) {
|
||||
// //展开状态
|
||||
// mBinding.meUser.rlTopBar.setVisibility(View.VISIBLE);
|
||||
// } else if (state == State.COLLAPSED) {
|
||||
// //折叠状态
|
||||
// mBinding.meUser.rlTopBar.setVisibility(View.GONE);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
//
|
||||
//
|
||||
//// mUserDetailsMoreDialog = new UserDetailsMoreDialog(this);
|
||||
//// mUserDetailsMoreDialog.addOnUserDetailsMoreListener(new UserDetailsMoreDialog.OnUserDetailsMoreListener() {
|
||||
//// @Override
|
||||
//// public void onBlock() {
|
||||
//// if (SpUtils.getUserId().equals(userId)) {
|
||||
//// ToastUtils.show("不能拉黑自己");
|
||||
//// return;
|
||||
//// }
|
||||
//// MvpPre.addBlackUser(userId, 1);
|
||||
//// }
|
||||
////
|
||||
//// @Override
|
||||
//// public void onReport() {
|
||||
//// if (SpUtils.getUserId().equals(userId)) {
|
||||
//// ToastUtils.show("不能举报自己");
|
||||
//// return;
|
||||
//// }
|
||||
//// ARouter.getInstance().build(ARouteConstants.CHAT_REPORT).withString("userId", userId).navigation();
|
||||
//// }
|
||||
//// });
|
||||
//
|
||||
//
|
||||
// mBinding.meUser.headerInfo.xbanner.setOnItemClickListener((banner, model, view, position) -> {
|
||||
// if (mUserHomeResp != null && mUserHomeResp.getUser_photo() != null && mUserHomeResp.getUser_photo().getList() != null) {
|
||||
// ArrayList<XBannerData> xBannerData = new ArrayList<>(getXBannerData(mUserHomeResp.getUser_photo()));
|
||||
//// ARouter.getInstance().build(ARouteConstants.IMAGE_BROWSER).withSerializable("list", xBannerData).withInt("position", position).navigation();
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// mBinding.meUser.headerInfo.xbanner.loadImage((banner, model, view, position) -> {
|
||||
// XBannerData xBannerData = (XBannerData) model;
|
||||
// ImageView ivStart = view.findViewById(com.qxcm.moduleutil.R.id.iv_voice_start);
|
||||
// ImageView imageView = view.findViewById(R.id.iv_img);
|
||||
// if (xBannerData.getType() == 1) {
|
||||
// ivStart.setVisibility(View.VISIBLE);
|
||||
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
// ImageLoader.loadImage(getApplicationContext(), imageView, xBannerData.getVedioCover());
|
||||
// } else {
|
||||
// ivStart.setVisibility(View.GONE);
|
||||
// ImageUtils.loadCenterCrop(xBannerData.getUrl(), imageView);
|
||||
// }
|
||||
// });
|
||||
//
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
public void setUserDetails(UserHomeResp mUserHomeResp) {
|
||||
List<XBannerData> xBannerData1 = getXBannerData(mUserHomeResp.getUser_photo());
|
||||
|
||||
@Override
|
||||
public void setUserDetails(UserInfo data) {
|
||||
SpUtil.saveUserInfo(data);
|
||||
|
||||
|
||||
List<String> homeBgimages = new ArrayList<>();
|
||||
if (!TextUtils.isEmpty(data.getHome_bgimages())){
|
||||
homeBgimages = Arrays.asList(data.getHome_bgimages().split(","));
|
||||
}else {
|
||||
homeBgimages.add(data.getAvatar());
|
||||
}
|
||||
List<XBannerData> xBannerData1 = new ArrayList<>();
|
||||
for (int i=0;i<homeBgimages.size();i++) {
|
||||
xBannerData1.add(new XBannerData(0, homeBgimages.get(i), ""));
|
||||
}
|
||||
mBinding.xbanner.setBannerData(com.qxcm.moduleutil.R.layout.me_xbanner, xBannerData1);
|
||||
mBinding.xbanner.setOnItemClickListener((banner, model, view, position) -> {
|
||||
if (mUserHomeResp != null && mUserHomeResp.getUser_photo() != null && mUserHomeResp.getUser_photo().getList() != null) {
|
||||
// ARouter.getInstance().build(ARouteConstants.IMAGE_BROWSER).withSerializable("list", xBannerData).withInt("position", position).navigation();
|
||||
}
|
||||
});
|
||||
|
||||
mBinding.xbanner.loadImage((banner, model, view, position) -> {
|
||||
XBannerData xBannerData = (XBannerData) model;
|
||||
@@ -209,194 +102,23 @@ public class UserHomepageActivity extends BaseMvpActivity<UserHomepagePresenter,
|
||||
ImageUtils.loadHeadCC(xBannerData.getUrl(), imageView);
|
||||
}
|
||||
});
|
||||
List<Fragment> fragments = new ArrayList<>();
|
||||
fragments.add(UserHomepageFragment.newInstance(userId));
|
||||
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(fragments, getSupportFragmentManager()));
|
||||
}
|
||||
private List<XBannerData> getXBannerData(PhotoWallResp photoWallResp) {
|
||||
List<XBannerData> xBannerData = new ArrayList<>();
|
||||
if (!TextUtils.isEmpty(photoWallResp.getVedio_cover())) {
|
||||
xBannerData.add(new XBannerData(1, photoWallResp.getVedio(), photoWallResp.getVedio_cover()));
|
||||
}
|
||||
if (!TextUtils.isEmpty(photoWallResp.getAvatar())) {
|
||||
xBannerData.add(new XBannerData(0, photoWallResp.getAvatar(), ""));
|
||||
}
|
||||
// for (PhotoWallResp.GiftResp item : photoWallResp.getList()) {
|
||||
// xBannerData.add(new XBannerData(0, item.getUrl(), ""));
|
||||
// }
|
||||
return xBannerData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCircleList(List<CircleListBean> list) {
|
||||
|
||||
}
|
||||
//
|
||||
// private List<XBannerData> getXBannerData(PhotoWallResp photoWallResp) {
|
||||
// List<XBannerData> xBannerData = new ArrayList<>();
|
||||
// if (!TextUtils.isEmpty(photoWallResp.getVedio_cover())) {
|
||||
// xBannerData.add(new XBannerData(1, photoWallResp.getVedio(), photoWallResp.getVedio_cover()));
|
||||
// }
|
||||
// if (!TextUtils.isEmpty(photoWallResp.getAvatar())) {
|
||||
// xBannerData.add(new XBannerData(0, photoWallResp.getAvatar(), ""));
|
||||
// }
|
||||
//// for (PhotoWallResp.GiftResp item : photoWallResp.getList()) {
|
||||
//// xBannerData.add(new XBannerData(0, item.getUrl(), ""));
|
||||
//// }
|
||||
// return xBannerData;
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// private void setFollowStyle(String type) {
|
||||
// if ("1".equals(type)) {
|
||||
//// mBinding.tvFollow.setBackgroundResource(R.mipmap.meinfo_follow_disable);
|
||||
// } else {
|
||||
//// mBinding.tvFollow.setBackgroundResource(R.mipmap.meinfo_follow_normal);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
// private void onChock(View view) {
|
||||
// if (view.getId() == R.id.iv_back) {
|
||||
// finish();
|
||||
// }
|
||||
// //聊天
|
||||
//// if (view.getId() == R.id.tv_chart) {
|
||||
//// if (mUserHomeResp != null) {
|
||||
//// if ("1".equals(mUserHomeResp.getOnly_friend())) {
|
||||
//// ToastUtils.show("对方只接受来自好友的消息");
|
||||
//// } else {
|
||||
//// ARouter.getInstance().build(ARouteConstants.HOME_CHART)
|
||||
//// .withString("userId", mUserHomeResp.getEmchat_username())
|
||||
//// .withString("nickname", mUserHomeResp.getNickname())
|
||||
//// .withString("avatar", mUserHomeResp.getHead_picture())
|
||||
//// .navigation();
|
||||
//// }
|
||||
//// }
|
||||
//// }
|
||||
//// //右上角更多
|
||||
//// else if (view.getId() == R.id.iv_more) {
|
||||
//// if (mUserDetailsMoreDialog == null) {
|
||||
//// mUserDetailsMoreDialog = new UserDetailsMoreDialog(this);
|
||||
//// }
|
||||
//// mUserDetailsMoreDialog.show();
|
||||
////
|
||||
//// } else if (view.getId() == R.id.iv_more_min) {
|
||||
//// if (mUserDetailsMoreDialog == null) {
|
||||
//// mUserDetailsMoreDialog = new UserDetailsMoreDialog(this);
|
||||
//// }
|
||||
//// mUserDetailsMoreDialog.show();
|
||||
//// }
|
||||
//// //编辑用户信息
|
||||
//// else if (view.getId() == R.id.iv_edit) {
|
||||
//// ARouter.getInstance().build(ARouteConstants.ME_MY_EDIT_INFO).navigation();
|
||||
//// }
|
||||
//// //正在语聊中
|
||||
//// else if (view.getId() == R.id.tv_living_room_go) {
|
||||
//// if (mUserHomeResp != null) {
|
||||
//// ARouter.getInstance().build(ARouteConstants.LIVE_ROOM).withString("roomId", jumpIntentRoomId).navigation();
|
||||
//// }
|
||||
//// }
|
||||
// //返回
|
||||
// else if (view.getId() == R.id.iv_back) {
|
||||
// finish();
|
||||
// } else if (view.getId() == R.id.iv_back_min) {
|
||||
// finish();
|
||||
// }
|
||||
// //复制昵称
|
||||
// else if (view.getId() == R.id.tv_nick_name) {
|
||||
// if (mBinding.meUser.headerInfo.tvUserId.getText().length() > 0) {
|
||||
// ClipboardManager clipboard = (ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
// clipboard.setPrimaryClip(ClipData.newPlainText("text", mUserHomeResp.getNickname()));
|
||||
// ToastUtils.show("已复制到粘贴板");
|
||||
// }
|
||||
// }
|
||||
// //复制ID
|
||||
// else if (view.getId() == R.id.tv_user_id) {
|
||||
// if (mBinding.meUser.headerInfo.tvUserId.getText().length() > 0) {
|
||||
// ClipboardManager clipboard = (ClipboardManager) this.getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
// clipboard.setPrimaryClip(ClipData.newPlainText("text", mUserHomeResp.getUser_code()));
|
||||
// ToastUtils.show("已复制到粘贴板");
|
||||
// }
|
||||
// }
|
||||
// //守护 // 点击头像
|
||||
// else if ( view.getId() == R.id.riv_user_head) {
|
||||
//// DialogFragment dialogFragment = (DialogFragment) ARouter.getInstance().build(ARouteConstants.GUARDIAN_GROUP_DIALOG).withString("userId", userId).navigation();
|
||||
//// if (dialogFragment != null) {
|
||||
//// dialogFragment.show(getSupportFragmentManager(), "GuardianGroupDialogFragment");
|
||||
//// }
|
||||
// }
|
||||
// // 认证
|
||||
//// else if (view.getId() == R.id.tv_meinfo_renzheng_icon) {
|
||||
//// String id = SpUtils.getUserId();
|
||||
//// if (userId.equals(id)) {
|
||||
//// //实名认证
|
||||
//// //判断用户是否已经注册过手机号
|
||||
//// if (TextUtils.isEmpty(com.qpyy.libcommon.utils.SpUtils.getUserInfo().getMobile())) {
|
||||
//// ToastUtils.show("请先绑定手机号");
|
||||
//// return;
|
||||
//// }
|
||||
//// MvpPre.getNameAuthResult(0);
|
||||
//// }
|
||||
//// }
|
||||
//// // 公会
|
||||
//// else if (view.getId() == R.id.tv_meinfo_gonghui) {
|
||||
//// String id = SpUtils.getUserId();
|
||||
//// if (userId.equals(id)) {
|
||||
//// MvpPre.getGuildInfo();
|
||||
//// }
|
||||
//// }
|
||||
// }
|
||||
// private void scrollInteractive() {
|
||||
// mBinding.nestScroll.setOnScrollChangeListener((NestedScrollView.OnScrollChangeListener) (v, scrollX, scrollY, oldScrollX, oldScrollY) -> {
|
||||
// if (scrollviewFlag) {
|
||||
// return;
|
||||
// }
|
||||
//// mBinding.meUser.tabJz.setSelected(false);
|
||||
// mBinding.meUser.tabLwq.setSelected(false);
|
||||
// mBinding.meUser.tabDt.setSelected(false);
|
||||
// if (scrollY < mBinding.flSkills.getTop()) {
|
||||
// mBinding.meUser.tabDt.setSelected(true);
|
||||
//// } else if (scrollY < mBinding.flFamilies.getTop()) {
|
||||
//// mBinding.meUser.tabJn.setSelected(true);
|
||||
// } else {
|
||||
//
|
||||
//
|
||||
//// mBinding.meUser.tabJz.setSelected(true);
|
||||
// mBinding.meUser.tabDt.setSelected(true);
|
||||
//
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void onDestroy() {
|
||||
//// EventBus.getDefault().unregister(this);
|
||||
// super.onDestroy();
|
||||
// MediaPlayerUtiles.getInstance().stopAudio();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void onResume() {
|
||||
// super.onResume();
|
||||
// MvpPre.getUserDetails(userId, emchatUsername, this.mUserHomeResp == null);
|
||||
//// MvpPre.getMemberList(userId, 1);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
// super.onCreate(savedInstanceState);
|
||||
//// EventBus.getDefault().register(this);
|
||||
// }
|
||||
//
|
||||
//
|
||||
// @Override
|
||||
// public void showLoadings() {
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void showLoadings(String content) {
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void disLoadings() {
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void userGuanzSuccess(String s) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLikeZone() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.example.modulevocal.adapter;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import android.util.SparseBooleanArray;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.CheckBox;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.bumptech.glide.Glide;
|
||||
import com.chad.library.adapter.base.BaseMultiItemQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.modulevocal.R;
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.qxcm.moduleutil.bean.AlbumBean;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.widget.img.FullScreenUtil;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class AlbumPhotoAdapter extends BaseMultiItemQuickAdapter<AlbumBean.ImageList, BaseViewHolder> {
|
||||
private boolean isControlVisible = false;
|
||||
private List<Integer> selectedPositions = new ArrayList<>(); // 保存选中的 position
|
||||
|
||||
// private SparseBooleanArray selectedPositions = new SparseBooleanArray();
|
||||
public AlbumPhotoAdapter(List<AlbumBean.ImageList> data) {
|
||||
super(data);
|
||||
addItemType(1, R.layout.item_group);
|
||||
addItemType(2, R.layout.item_photo);
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void showControl() {
|
||||
isControlVisible = true;
|
||||
notifyDataSetChanged(); // 刷新列表以更新 UI
|
||||
}
|
||||
|
||||
public void hideControl() {
|
||||
isControlVisible = false;
|
||||
notifyDataSetChanged(); // 刷新列表以更新 UI
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, AlbumBean.ImageList item) {
|
||||
|
||||
if (item.getItemType() == 1) {
|
||||
helper.setText(R.id.tv_date, item.getCreatetime());
|
||||
} else {
|
||||
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_photo));
|
||||
helper.setVisible(R.id.tb_photo, isControlVisible);
|
||||
helper.setVisible(R.id.v_checkbox, isControlVisible);
|
||||
|
||||
View vCheckbox = helper.getView(R.id.v_checkbox);
|
||||
|
||||
vCheckbox.setSelected(item.isSelected());
|
||||
|
||||
vCheckbox.setOnClickListener(v -> {
|
||||
boolean isSelected = !item.isSelected(); // 切换当前状态
|
||||
item.setSelected(isSelected);
|
||||
vCheckbox.setSelected(isSelected);
|
||||
notifyItemChanged(helper.getBindingAdapterPosition()); // 刷新整个列表确保状态正确
|
||||
});
|
||||
helper.getView(R.id.tb_photo).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
boolean isSelected = !item.isSelected();
|
||||
item.setSelected(isSelected);
|
||||
vCheckbox.setSelected(isSelected);
|
||||
notifyItemChanged(helper.getBindingAdapterPosition()); // 刷新整个列表确保状态正确
|
||||
}
|
||||
});
|
||||
|
||||
helper.getView(R.id.iv_photo).setOnClickListener(v -> {
|
||||
FullScreenUtil.showFullScreenDialog(mContext,helper.getPosition(),getImageList() );
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public List<String> getImageList(){
|
||||
List<String> stringList=new ArrayList<>();
|
||||
for (AlbumBean.ImageList item : getData()) {
|
||||
if (item.getItemType() == 2) {
|
||||
stringList.add(item.getImage());
|
||||
}
|
||||
}
|
||||
return stringList;
|
||||
}
|
||||
|
||||
public List<AlbumBean.ImageList> getSelectedItems() {
|
||||
List<AlbumBean.ImageList> selectedItems = new ArrayList<>();
|
||||
for (AlbumBean.ImageList item : getData()) {
|
||||
if (item.isSelected()) {
|
||||
selectedItems.add(item);
|
||||
}
|
||||
}
|
||||
return selectedItems;
|
||||
}
|
||||
|
||||
public String getSelectedPhotoIdsAsString() {
|
||||
List<AlbumBean.ImageList> selectedPhotos = getSelectedItems();
|
||||
List<String> idList = new ArrayList<>();
|
||||
|
||||
for (AlbumBean.ImageList photo : selectedPhotos) {
|
||||
idList.add(photo.getId()); // 将每个 id 添加进 list
|
||||
}
|
||||
|
||||
return TextUtils.join(",", idList); // 使用逗号拼接
|
||||
}
|
||||
|
||||
|
||||
public void clearSelections() {
|
||||
for (AlbumBean.ImageList item : getData()) {
|
||||
item.setSelected(false);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(@NonNull BaseViewHolder holder) {
|
||||
super.onViewRecycled(holder);
|
||||
View vCheckbox = holder.getView(R.id.v_checkbox);
|
||||
if (vCheckbox instanceof CheckBox) {
|
||||
((CheckBox) vCheckbox).setChecked(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.example.modulevocal.adapter;
|
||||
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.modulevocal.R;
|
||||
import com.qxcm.moduleutil.bean.AlbumBean;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/6
|
||||
*@description:相册单选弹框适配器
|
||||
*/
|
||||
public class SingleChoiceAdapter extends BaseQuickAdapter<AlbumBean, BaseViewHolder> {
|
||||
/**
|
||||
* -- GETTER --
|
||||
* 获取当前选中位置
|
||||
*/
|
||||
private int selectedPosition = -1; // 默认未选中
|
||||
|
||||
public SingleChoiceAdapter() {
|
||||
super(R.layout.item_multi_select_t);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, AlbumBean item) {
|
||||
int position1 = helper.getAdapterPosition();
|
||||
|
||||
boolean isSelected = (position1 == selectedPosition);
|
||||
TextView tv_album_name1 = helper.getView(R.id.tv_album_name1);
|
||||
tv_album_name1.setText(item.getName());
|
||||
helper.setText(R.id.tv_album_count1, "浏览数:"+item.getRead_num());
|
||||
|
||||
ImageUtils.loadHeadCC(item.getImage(), helper.getView(R.id.iv_photo1));
|
||||
helper.getView(R.id.v_checkbox).setSelected(isSelected); // 使用 CheckBox.setChecked()
|
||||
|
||||
// 设置点击事件
|
||||
helper.itemView.setOnClickListener(v -> {
|
||||
int pos = helper.getAdapterPosition();
|
||||
if (pos != RecyclerView.NO_POSITION) {
|
||||
if (selectedPosition == pos) {
|
||||
selectedPosition = -1; // 如果已选中,则取消
|
||||
} else {
|
||||
selectedPosition = pos; // 更新为新的选中项
|
||||
}
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
});
|
||||
|
||||
helper.getView(R.id.v_checkbox).setOnClickListener(v -> {
|
||||
int pos = helper.getAdapterPosition();
|
||||
if (pos != RecyclerView.NO_POSITION) {
|
||||
if (selectedPosition == pos) {
|
||||
selectedPosition = -1;
|
||||
} else {
|
||||
selectedPosition = pos;
|
||||
}
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前选中的条目
|
||||
*/
|
||||
public AlbumBean getSelectedItem() {
|
||||
if (selectedPosition == -1 || selectedPosition >= getData().size()) return null;
|
||||
return getData().get(selectedPosition);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,33 +6,44 @@ import com.example.modulevocal.R;
|
||||
import com.qxcm.moduleutil.bean.UserImgList;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
|
||||
public class UserPhotoWallAdapter extends BaseQuickAdapter<UserImgList, BaseViewHolder> {
|
||||
public class UserPhotoWallAdapter extends BaseQuickAdapter<String, BaseViewHolder> {
|
||||
private boolean b = false;
|
||||
private int longClickPos = -1;
|
||||
public static final String ADD_PHOTO = "ADD_PHOTO";
|
||||
|
||||
|
||||
public UserPhotoWallAdapter() {
|
||||
super(R.layout.me_item_user_photo_wall);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, UserImgList item) {
|
||||
if (helper.getAdapterPosition() == 5) {
|
||||
helper.setVisible(R.id.riv_user_head, false);
|
||||
protected void convert(BaseViewHolder helper, String item) {
|
||||
|
||||
if (item.equals(ADD_PHOTO)) {
|
||||
helper.setVisible(R.id.iv_close, false);
|
||||
// 显示加号图片
|
||||
helper.setImageResource(com.qxcm.moduleutil.R.id.riv_user_head, com.qxcm.moduleutil.R.mipmap.add_img);
|
||||
} else {
|
||||
helper.setVisible(R.id.riv_user_head, true);
|
||||
if (!"0".equals(item.getId())) {
|
||||
ImageUtils.loadCenterCrop(item.getUrl(), helper.getView(R.id.riv_user_head));
|
||||
if (longClickPos == helper.getAdapterPosition()) {
|
||||
helper.setVisible(R.id.iv_close, true);
|
||||
} else {
|
||||
helper.setVisible(R.id.iv_close, false);
|
||||
}
|
||||
} else {
|
||||
helper.setImageResource(R.id.riv_user_head, com.qxcm.moduleutil.R.mipmap.add_img);
|
||||
helper.setGone(R.id.iv_close, false);
|
||||
}
|
||||
helper.setVisible(R.id.iv_close, true);
|
||||
ImageUtils.loadCenterCrop(item, helper.getView(com.qxcm.moduleutil.R.id.riv_user_head));
|
||||
}
|
||||
// if (helper.getAdapterPosition() == 5) {
|
||||
// helper.setVisible(R.id.riv_user_head, false);
|
||||
// helper.setVisible(R.id.iv_close, false);
|
||||
// } else {
|
||||
// helper.setVisible(R.id.riv_user_head, true);
|
||||
// if (!"0".equals(item.getId())) {
|
||||
// ImageUtils.loadCenterCrop(item.getUrl(), helper.getView(R.id.riv_user_head));
|
||||
// if (longClickPos == helper.getAdapterPosition()) {
|
||||
// helper.setVisible(R.id.iv_close, true);
|
||||
// } else {
|
||||
// helper.setVisible(R.id.iv_close, false);
|
||||
// }
|
||||
// } else {
|
||||
// helper.setImageResource(R.id.riv_user_head, com.qxcm.moduleutil.R.mipmap.add_img);
|
||||
// helper.setGone(R.id.iv_close, false);
|
||||
// }
|
||||
// }
|
||||
helper.addOnClickListener(R.id.iv_close);
|
||||
helper.addOnClickListener(R.id.riv_user_head);
|
||||
helper.addOnLongClickListener(R.id.riv_user_head);
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.example.modulevocal.conacts;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
import com.qxcm.moduleutil.bean.AlbumBean;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public class AlbumDetailConacts {
|
||||
public interface View extends IView<Activity> {
|
||||
void getAlbumDetail(AlbumBean albumBean);
|
||||
|
||||
void upLoadSuccess(String url, int type, int index, int total);
|
||||
|
||||
void upAddAlbum();
|
||||
|
||||
void getAlbumList(List<AlbumBean> data);
|
||||
|
||||
void moveAlbum();
|
||||
|
||||
void deleteAlbum();
|
||||
void likeAlbum();
|
||||
|
||||
}
|
||||
public interface IMePre extends IPresenter {
|
||||
void getAlbumDetail(String albumId,String pwd,String page,String page_limit);
|
||||
|
||||
void uploadFile(File file, int type, int index, int sice);
|
||||
|
||||
void upAddAlbum(String album_id,String images,String content);
|
||||
|
||||
void getAlbumList(String page, String page_limit, String userId);
|
||||
|
||||
void moveAlbum(String id,String new_album_id);
|
||||
|
||||
void deleteAlbumImage(String id);
|
||||
|
||||
void likeAlbum(String albumId);
|
||||
}
|
||||
}
|
||||
@@ -4,11 +4,18 @@ import android.app.Activity;
|
||||
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
import com.qxcm.moduleutil.bean.UserTagBean;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BriefIntroductionConacts {
|
||||
public interface View extends IView<Activity> {
|
||||
void getUserTagListSuccess(List<UserTagBean> data);
|
||||
void editUserInfoSuccess(String s);
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
void getUserTagList();
|
||||
void editUserInfo(String nickname,String birthday,String sex,String avatar,String images,String profile,String tag_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,10 +7,11 @@ import com.qxcm.moduleutil.activity.IView;
|
||||
|
||||
public class ChangeNicknameConacts {
|
||||
public interface View extends IView<Activity> {
|
||||
void editUserInfoSuccess(String s);
|
||||
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
|
||||
void editUserInfo(String nickname,String birthday,String sex,String avatar,String images,String profile,String tag_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,16 +4,33 @@ import android.app.Activity;
|
||||
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
import com.qxcm.moduleutil.bean.HeatedBean;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
public class EditUserConactos {
|
||||
|
||||
public interface View extends IView<Activity> {
|
||||
void upLoadSuccess(String url, int type);
|
||||
|
||||
void getUserHomeSuccess(UserInfo userInfo);
|
||||
|
||||
void editUserInfoSuccess(String s);
|
||||
|
||||
void topicList(List<HeatedBean> list);
|
||||
void upLoadSuccess(String url, int type, int index, int total);
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
void uploadFile(File file, int type);
|
||||
void topicList(String page, String page_limit);
|
||||
|
||||
void uploadFile(File file, int type,int index,int sice);
|
||||
|
||||
void getUserHome(String user_id);
|
||||
|
||||
void editUserInfo(String nickname,String birthday,String sex,String avatar,String images,String profile,String tag_id);
|
||||
|
||||
void editUserBg(String images);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,12 +4,13 @@ import android.app.Activity;
|
||||
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
|
||||
|
||||
public final class MeConacts {
|
||||
|
||||
public interface View extends IView<Activity> {
|
||||
// void myInfoSuccess(MyInfoResp data);
|
||||
void myInfoSuccess(UserInfo data);
|
||||
|
||||
void serviceSuccess(String data);
|
||||
|
||||
|
||||
@@ -16,13 +16,21 @@ public class MyAlbumConacts {
|
||||
void upLoadSuccess(String url, int type);
|
||||
|
||||
void sendCodeSuccess();
|
||||
|
||||
void deleteAlbum();
|
||||
|
||||
void editAlbum();
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
void getAlbumList(String page, String page_limit);
|
||||
void getAlbumList(String page, String page_limit, String userId);
|
||||
|
||||
void uploadFile(File file, int type);
|
||||
|
||||
void createAlbum(String name,String image);
|
||||
void createAlbum(String name,String pwd,String image);
|
||||
|
||||
void deleteAlbum(String albumId);
|
||||
|
||||
void editAlbum(String albumId,String name,String pwd,String image);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.example.modulevocal.conacts;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
|
||||
public class SettingConacts {
|
||||
public interface View extends IView<Activity> {
|
||||
void clearLoginInfo(String s);
|
||||
void cancel(String s);
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
void clearLoginInfo();
|
||||
|
||||
void cancel();
|
||||
}
|
||||
}
|
||||
@@ -6,20 +6,27 @@ import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.activity.IView;
|
||||
import com.qxcm.moduleutil.bean.CircleListBean;
|
||||
import com.qxcm.moduleutil.bean.UserHomeResp;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class UserHomepageConacts {
|
||||
|
||||
public interface View extends IView<Activity> {
|
||||
void setUserDetails(UserHomeResp data);
|
||||
void setUserDetails(UserInfo data);
|
||||
void setCircleList(List<CircleListBean> list);
|
||||
|
||||
void userGuanzSuccess(String s);
|
||||
void setLikeZone();
|
||||
}
|
||||
|
||||
public interface IMePre extends IPresenter {
|
||||
|
||||
void getUserDetails(String userId, String emchatUsername, boolean showLoading);//获取用户数据
|
||||
void getUserDetails(String userId);//获取用户数据
|
||||
|
||||
void getCircleList();
|
||||
void getCircleList(String user_id,String page,String page_limit);
|
||||
|
||||
void userGuanz(String userId,String type);
|
||||
void deleteZone(String zone_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
package com.example.modulevocal.fragment;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.activity.UserHomepageActivity;
|
||||
import com.example.modulevocal.conacts.UserHomepageConacts;
|
||||
import com.example.modulevocal.databinding.FragmentCirleListBinding;
|
||||
import com.example.modulevocal.presenter.UserHomepagePresenter;
|
||||
@@ -12,22 +17,37 @@ import com.qxcm.moduleutil.adapter.CirleListAdapter;
|
||||
import com.qxcm.moduleutil.base.BaseMvpFragment;
|
||||
import com.qxcm.moduleutil.bean.CircleListBean;
|
||||
import com.qxcm.moduleutil.bean.UserHomeResp;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.utils.ARouteConstants;
|
||||
import com.qxcm.moduleutil.widget.dialog.RewardGiftDialogFragment;
|
||||
import com.qxcm.moduleutil.widget.dialog.ShareDialog;
|
||||
import com.scwang.smartrefresh.layout.api.RefreshLayout;
|
||||
import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
*@author qx
|
||||
*@data 2025/6/4
|
||||
*@description: 个人主页动态
|
||||
*/
|
||||
public class CirleListFragment extends BaseMvpFragment<UserHomepagePresenter, FragmentCirleListBinding> implements UserHomepageConacts.View{
|
||||
|
||||
public static CirleListFragment newInstance() {
|
||||
return new CirleListFragment();
|
||||
private int page;
|
||||
private String userId;
|
||||
public static CirleListFragment newInstance(String userId) {
|
||||
CirleListFragment fragment = new CirleListFragment();
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("userId", userId);
|
||||
fragment.setArguments(bundle);
|
||||
return fragment;
|
||||
}
|
||||
@Override
|
||||
public void initArgs(Bundle arguments) {
|
||||
super.initArgs(arguments);
|
||||
userId = arguments.getString("userId");
|
||||
}
|
||||
|
||||
private CirleListAdapter cirleListAdapter;
|
||||
|
||||
@Override
|
||||
public void setUserDetails(UserHomeResp data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected UserHomepagePresenter bindPresenter() {
|
||||
@@ -36,7 +56,7 @@ public class CirleListFragment extends BaseMvpFragment<UserHomepagePresenter, Fr
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
MvpPre.getCircleList();
|
||||
MvpPre.getCircleList(userId,"1","10");
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -44,6 +64,73 @@ public class CirleListFragment extends BaseMvpFragment<UserHomepagePresenter, Fr
|
||||
mBinding.recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
|
||||
cirleListAdapter = new CirleListAdapter();
|
||||
mBinding.recyclerView.setAdapter(cirleListAdapter);
|
||||
|
||||
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
|
||||
@Override
|
||||
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
||||
page++;
|
||||
MvpPre.getCircleList(userId,page + "", "10");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
||||
// EventBus.getDefault().post(new BannerRefreshEvent());
|
||||
page = 1;
|
||||
MvpPre.getCircleList(userId,page + "", "10");
|
||||
}
|
||||
});
|
||||
|
||||
cirleListAdapter.setOnItemClickListener(new CirleListAdapter.OnItemClickListener() {
|
||||
@Override
|
||||
public void onDianzanClick(CircleListBean item) {
|
||||
// MvpPre.likeZone(item.getId() + "");
|
||||
int position = cirleListAdapter.getData().indexOf(item);
|
||||
if (position != -1) {
|
||||
// 更新点赞状态
|
||||
item.setIs_like(item.getIs_like() == 1 ? 0 : 1);
|
||||
// 局部刷新
|
||||
cirleListAdapter.notifyItemChanged(position);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onHeadImageClick(CircleListBean item) {
|
||||
// ARouter.getInstance().build(ARouteConstants.USER_HOME_PAGE).navigation();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onZsClick(CircleListBean item) {
|
||||
RewardGiftDialogFragment.show(String.valueOf(item.getId()), getChildFragmentManager());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDiandianClick(CircleListBean item) {
|
||||
ShareDialog shareDialog = new ShareDialog(getContext(), item.getContent(),item.getShare_url(),item.getTopic_id(),1);
|
||||
shareDialog.setOnShareDataListener(new ShareDialog.OnShareDataListener() {
|
||||
|
||||
@Override
|
||||
public void onShareDataLoaded(String id) {
|
||||
MvpPre.deleteZone(id);
|
||||
}
|
||||
});
|
||||
shareDialog.show();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPinglunClick(CircleListBean item) {
|
||||
ARouter.getInstance().build(ARouteConstants.DYNAMIC_DETAIL).withString("zone_id", item.getId() + "").navigation();
|
||||
// Intent intent = new Intent(getActivity(), DynamicDetailActivity.class);
|
||||
// intent.putExtra("zone_id", item.getId() + "");
|
||||
// startActivity(intent);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRelaClick(CircleListBean item) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -51,8 +138,23 @@ public class CirleListFragment extends BaseMvpFragment<UserHomepagePresenter, Fr
|
||||
return R.layout.fragment_cirle_list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setUserDetails(UserInfo data) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCircleList(List<CircleListBean> list) {
|
||||
cirleListAdapter.setNewData(list);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void userGuanzSuccess(String s) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLikeZone() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package com.example.modulevocal.fragment;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
@@ -10,7 +14,11 @@ import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.activity.CreateAlbumActivity;
|
||||
@@ -25,6 +33,8 @@ import com.qxcm.moduleutil.activity.IPresenter;
|
||||
import com.qxcm.moduleutil.base.BaseMvpFragment;
|
||||
import com.qxcm.moduleutil.bean.AlbumBean;
|
||||
import com.qxcm.moduleutil.bean.UserImgList;
|
||||
import com.qxcm.moduleutil.utils.ARouteConstants;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -36,6 +46,7 @@ import java.util.List;
|
||||
public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentMyAlbumBinding> implements MyAlbumConacts.View {
|
||||
|
||||
private MyAlbumListAdapter mAdapter;
|
||||
private String userId;
|
||||
|
||||
public static MyAlbumFragment newInstance(String userId) {
|
||||
MyAlbumFragment fragment = new MyAlbumFragment();
|
||||
@@ -45,6 +56,12 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(@NonNull Context context) {
|
||||
super.onAttach(context);
|
||||
userId = getArguments().getString("userId");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected MyAlbumPresenter bindPresenter() {
|
||||
return new MyAlbumPresenter(this, getActivity());
|
||||
@@ -53,7 +70,7 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
MvpPre.getAlbumList("1", "10");
|
||||
MvpPre.getAlbumList("1", "10",userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -66,21 +83,73 @@ 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())) {
|
||||
// startChoosePhoto(PictureMimeType.ofImage(), PictureConfig.REQUEST_CAMERA, true, 6);
|
||||
startActivity(new Intent(getActivity(), CreateAlbumActivity.class));
|
||||
}
|
||||
else {
|
||||
if (!TextUtils.isEmpty(item.getPwd())) {
|
||||
|
||||
if (userId.equals(SpUtil.getUserId() + "")){
|
||||
onPasswordCorrect(item);
|
||||
}else {
|
||||
showPasswordInputDialog(item);
|
||||
}
|
||||
} else {
|
||||
// Intent intent = new Intent(getActivity(), AlbumDetailActivity.class);
|
||||
// intent.putExtra("album_id", item.getId());
|
||||
// startActivity(intent);
|
||||
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", item.getId()).withString("pwd", item.getPwd()).withString("target_fragment",ARouteConstants.FRAGMENT_ALBUM).navigation();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@SuppressLint({"MissingInflatedId", "LocalSuppress"})
|
||||
private void showPasswordInputDialog(AlbumBean item) {
|
||||
// 创建弹出框视图
|
||||
View dialogView = LayoutInflater.from(getActivity()).inflate(com.qxcm.moduleutil.R.layout.dialog_input_password, null);
|
||||
|
||||
// 获取弹出框中的控件
|
||||
final EditText etPassword = dialogView.findViewById(com.qxcm.moduleutil.R.id.ed_album_password);
|
||||
TextView btnCancel = dialogView.findViewById(com.qxcm.moduleutil.R.id.tv_cancel);
|
||||
TextView btnConfirm = dialogView.findViewById(com.qxcm.moduleutil.R.id.tv_confirm);
|
||||
|
||||
// 创建并显示弹出框
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
builder.setView(dialogView);
|
||||
final AlertDialog alertDialog = builder.create();
|
||||
alertDialog.show();
|
||||
|
||||
// 取消按钮点击事件
|
||||
btnCancel.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
alertDialog.dismiss();
|
||||
}
|
||||
});
|
||||
|
||||
// 确认按钮点击事件
|
||||
btnConfirm.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
String password = etPassword.getText().toString().trim();
|
||||
if (!TextUtils.isEmpty(password)) {
|
||||
// 验证密码(这里只是一个示例,实际应调用相应的方法验证密码)
|
||||
if (item.getPwd().equals(password)) {
|
||||
alertDialog.dismiss();
|
||||
// 密码正确后的操作
|
||||
onPasswordCorrect(item);
|
||||
} else {
|
||||
Toast.makeText(getActivity(), "密码错误", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
} else {
|
||||
Toast.makeText(getActivity(), "请输入密码", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 密码正确后的操作方法(示例)
|
||||
private void onPasswordCorrect(AlbumBean item) {
|
||||
// 密码正确后的具体操作
|
||||
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", item.getId()).withString("pwd", item.getPwd()).navigation();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
@@ -89,6 +158,11 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
|
||||
|
||||
@Override
|
||||
public void getAlbumList(List<AlbumBean> data) {
|
||||
if (userId.equals(SpUtil.getUserId()+"")){
|
||||
AlbumBean albumBean = new AlbumBean();
|
||||
albumBean.setId("0");
|
||||
data.add(0,albumBean);
|
||||
}
|
||||
mAdapter.setNewData(data);
|
||||
}
|
||||
|
||||
@@ -101,4 +175,14 @@ public class MyAlbumFragment extends BaseMvpFragment<MyAlbumPresenter, FragmentM
|
||||
public void sendCodeSuccess() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAlbum() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editAlbum() {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,21 @@
|
||||
package com.example.modulevocal.fragment;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter;
|
||||
import androidx.recyclerview.widget.GridLayoutManager;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.conacts.UserHomepageConacts;
|
||||
import com.example.modulevocal.databinding.FragmentUserHompageBinding;
|
||||
@@ -18,15 +24,31 @@ import com.qxcm.moduleutil.base.BaseMvpFragment;
|
||||
import com.qxcm.moduleutil.bean.CircleListBean;
|
||||
import com.qxcm.moduleutil.bean.MyBagBean;
|
||||
import com.qxcm.moduleutil.bean.UserHomeResp;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.bean.UserTagBean;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
import com.tencent.imsdk.v2.V2TIMConversation;
|
||||
import com.tencent.qcloud.tuicore.TUIConstants;
|
||||
import com.tencent.qcloud.tuikit.tuichat.classicui.page.TUIC2CChatActivity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter, FragmentUserHompageBinding> implements UserHomepageConacts.View{
|
||||
/**
|
||||
* @author qx
|
||||
* @data 2025/6/4
|
||||
* @description: 用户主页
|
||||
*/
|
||||
public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter, FragmentUserHompageBinding> implements UserHomepageConacts.View {
|
||||
private List<MyBagBean> list;
|
||||
private String userId;
|
||||
private UserInfo userInfo;
|
||||
private BaseQuickAdapter<UserTagBean, BaseViewHolder> adapter;
|
||||
private List<UserTagBean> userTagBeans = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void setUserDetails(UserHomeResp mUserHomeResp) {
|
||||
public void setUserDetails(UserInfo data) {
|
||||
|
||||
}
|
||||
|
||||
@@ -35,6 +57,23 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void userGuanzSuccess(String s) {
|
||||
if (userInfo.getIs_follow().equals("1")) {
|
||||
userInfo.setIs_follow("0");
|
||||
SpUtil.saveUserInfo(userInfo);
|
||||
} else {
|
||||
userInfo.setIs_follow("1");
|
||||
SpUtil.saveUserInfo(userInfo);
|
||||
}
|
||||
refreshView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLikeZone() {
|
||||
|
||||
}
|
||||
|
||||
public static UserHomepageFragment newInstance(String userId) {
|
||||
UserHomepageFragment fragment = new UserHomepageFragment();
|
||||
Bundle args = new Bundle();
|
||||
@@ -42,26 +81,112 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initArgs(Bundle arguments) {
|
||||
super.initArgs(arguments);
|
||||
userId = arguments.getString("userId");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected UserHomepagePresenter bindPresenter() {
|
||||
return new UserHomepagePresenter(this,getSelfActivity());
|
||||
return new UserHomepagePresenter(this, getSelfActivity());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initData() {
|
||||
|
||||
list=new ArrayList<>();
|
||||
userInfo = SpUtil.getUserInfo();
|
||||
list = new ArrayList<>();
|
||||
list.add(new MyBagBean("动态", "1"));
|
||||
list.add(new MyBagBean("礼物墙", "2"));
|
||||
list.add(new MyBagBean("我的相册", "3"));
|
||||
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), list,userId));
|
||||
mBinding.viewPager.setAdapter(new MyFragmentPagerAdapter(getChildFragmentManager(), list, userId));
|
||||
mBinding.slidingTabLayout.setViewPager(mBinding.viewPager);
|
||||
mBinding.slidingTabLayout.setCurrentTab(0);
|
||||
mBinding.headerInfo.rivUserHead.setData(userInfo.getAvatar(), "", userInfo.getSex() + "");
|
||||
mBinding.headerInfo.tvNickName.setText(userInfo.getNickname());
|
||||
mBinding.headerInfo.tvUserId.setText(userInfo.getId() + "");
|
||||
mBinding.headerInfo.tvAge.setText(userInfo.getAge() + "");
|
||||
mBinding.headerInfo.tvJj.setText(userInfo.getProfile());
|
||||
LinearLayout llContainer = mBinding.headerInfo.llImageContainer;
|
||||
llContainer.removeAllViews(); // 清空旧的 ImageView
|
||||
|
||||
List<String> images = userInfo.getIcon(); // 获取图片列表
|
||||
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView = new ImageView(getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
getContext().getResources().getDimensionPixelSize(com.qxcm.moduleutil.R.dimen.dp_37),
|
||||
getContext().getResources().getDimensionPixelSize(com.qxcm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.qxcm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView.setLayoutParams(params);
|
||||
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView);
|
||||
|
||||
llContainer.addView(imageView);
|
||||
}
|
||||
}
|
||||
mBinding.headerInfo.recycleView2.setLayoutManager(new GridLayoutManager(getContext(), 3));
|
||||
|
||||
adapter = new BaseQuickAdapter<UserTagBean, BaseViewHolder>(R.layout.item_tag, userTagBeans) {
|
||||
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder helper, UserTagBean item) {
|
||||
helper.setText(R.id.tv, item.getTag_name());
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
mBinding.headerInfo.recycleView2.setAdapter(adapter);
|
||||
if (!userInfo.getTag_list().isEmpty()) {
|
||||
adapter.setNewData(userInfo.getTag_list());
|
||||
}
|
||||
|
||||
|
||||
|
||||
mBinding.headerInfo.tvGz.setOnClickListener(this::onClick);
|
||||
mBinding.headerInfo.tvGsSx.setOnClickListener(this::onClick);
|
||||
refreshView();
|
||||
}
|
||||
|
||||
private void refreshView(){
|
||||
if (SpUtil.getUserId() == Integer.parseInt(userId)) {
|
||||
mBinding.headerInfo.tvGsSx.setVisibility(View.GONE);
|
||||
mBinding.headerInfo.tvGz.setVisibility(View.GONE);
|
||||
} else {
|
||||
mBinding.headerInfo.tvGsSx.setVisibility(View.VISIBLE);
|
||||
mBinding.headerInfo.tvGz.setVisibility(View.VISIBLE);
|
||||
if (userInfo.getIs_follow().equals("0")) {
|
||||
mBinding.headerInfo.tvGz.setBackground(getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.gz));
|
||||
|
||||
} else {
|
||||
mBinding.headerInfo.tvGz.setBackground(getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.yigz));
|
||||
}
|
||||
if (userInfo.getIs_room().equals("0")) {
|
||||
mBinding.headerInfo.tvGsSx.setBackground(getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.gsui));
|
||||
} else {
|
||||
mBinding.headerInfo.tvGsSx.setBackground(getResources().getDrawable(com.qxcm.moduleutil.R.mipmap.six));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void onClick(View view) {
|
||||
if (view.getId() == R.id.tv_gz) {
|
||||
MvpPre.userGuanz(userInfo.getId() + "", "1");
|
||||
} else if (view.getId() == R.id.tv_gs_sx) {
|
||||
if (userInfo.getIs_room().equals("0")){
|
||||
Intent intent=new Intent(getActivity(), TUIC2CChatActivity.class);
|
||||
intent.putExtra(TUIConstants.TUIChat.CHAT_ID, "u"+userInfo.getId());
|
||||
intent.putExtra(TUIConstants.TUIChat.CHAT_TYPE, V2TIMConversation.V2TIM_C2C);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,7 +205,7 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
|
||||
private String userId;
|
||||
|
||||
|
||||
public MyFragmentPagerAdapter(FragmentManager fm, List<MyBagBean> list,String userId) {
|
||||
public MyFragmentPagerAdapter(FragmentManager fm, List<MyBagBean> list, String userId) {
|
||||
super(fm);
|
||||
this.list = list;
|
||||
this.userId = userId;
|
||||
@@ -89,11 +214,11 @@ public class UserHomepageFragment extends BaseMvpFragment<UserHomepagePresenter,
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
MyBagBean model = list.get(position);
|
||||
if ("1".equals(model.getMyBagType())){
|
||||
return CirleListFragment.newInstance();
|
||||
}else if ("2".equals(model.getMyBagType())){
|
||||
if ("1".equals(model.getMyBagType())) {
|
||||
return CirleListFragment.newInstance(userId);
|
||||
} else if ("2".equals(model.getMyBagType())) {
|
||||
return UserGiftWallFragment.newInstance(userId);
|
||||
}else {
|
||||
} else {
|
||||
return MyAlbumFragment.newInstance(userId);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,8 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import com.example.modulevocal.R;
|
||||
import com.example.modulevocal.activity.BlacklistActivity;
|
||||
@@ -25,10 +27,15 @@ import com.example.modulevocal.activity.UserHomepageActivity;
|
||||
import com.example.modulevocal.conacts.MeConacts;
|
||||
import com.example.modulevocal.databinding.FragmentVocalRangeBinding;
|
||||
import com.example.modulevocal.presenter.MePresenter;
|
||||
import com.qxcm.moduleutil.activity.WebViewActivity;
|
||||
import com.qxcm.moduleutil.base.BaseMvpFragment;
|
||||
import com.qxcm.moduleutil.bean.UserBean;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.utils.ImageUtils;
|
||||
import com.qxcm.moduleutil.utils.SpUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 音域--我的
|
||||
*/
|
||||
@@ -58,8 +65,8 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
|
||||
@Override
|
||||
protected void initData() {
|
||||
// MvpPre.entranceCheckFirstRecharge();
|
||||
userBean= SpUtil.getUserInfo();
|
||||
mBinding.rivUserHead.setData(userBean.getAvatar(), "", String.valueOf(userBean.getSex()));
|
||||
// userBean= SpUtil.getUserInfo();
|
||||
// mBinding.rivUserHead.setData(userBean.getAvatar(), "", String.valueOf(userBean.getSex()));
|
||||
|
||||
}
|
||||
|
||||
@@ -146,6 +153,7 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
|
||||
mBinding.meDressUp.setOnClickListener(this::onClick);
|
||||
mBinding.tvMyWallet.setOnClickListener(this::onClick);
|
||||
mBinding.meDaily.setOnClickListener(this::onClick);
|
||||
mBinding.meMyGuild.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
|
||||
@@ -172,6 +180,11 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
|
||||
Intent intent=new Intent(getContext(), BlacklistActivity.class);
|
||||
intent.putExtra("type",0);
|
||||
startActivity(intent);
|
||||
}else if (id==R.id.me_my_guild){
|
||||
Intent intent=new Intent(getContext(), WebViewActivity.class);
|
||||
intent.putExtra("url", "http://vespa.qxmier.com/dist/build/web/index.html?id="+SpUtil.getToken());
|
||||
intent.putExtra("title", "公会");
|
||||
startActivity(intent);
|
||||
}
|
||||
// else if (id == R.id.me_my_union) {
|
||||
// if (ProxyCheckerT.isProxySet(getContext())){
|
||||
@@ -211,7 +224,9 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
|
||||
}else if (id == R.id.tv_my_wallet){//钱包
|
||||
startActivity(new Intent(getContext(), MyMoneyActivity.class));
|
||||
}else if (id == R.id.riv_user_head ){//用户主页
|
||||
startActivity(new Intent(getContext(), UserHomepageActivity.class));
|
||||
Intent intent = new Intent(getContext(), UserHomepageActivity.class);
|
||||
intent.putExtra("userId",SpUtil.getUserId()+"");
|
||||
startActivity(intent);
|
||||
}else if (id == R.id.tv_my_jw) {
|
||||
//我的爵位
|
||||
// ARouter.getInstance().build(ARouteConstants.ME_GRADEACTIVITY).withString("from", "我的界面").withInt("type", 0).navigation();
|
||||
@@ -296,6 +311,41 @@ public class VocalRangeFragment extends BaseMvpFragment<MePresenter, FragmentVoc
|
||||
// mBinding.rivUserHead.setData(data.getHead_picture(), data.getRank_info().getPicture(), data.getSex());
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void myInfoSuccess(UserInfo data) {
|
||||
SpUtil.saveUserInfo(data);
|
||||
mBinding.rivUserHead.setData(data.getAvatar(), "", String.valueOf(data.getSex()));
|
||||
mBinding.tvNickName.setText(data.getNickname());
|
||||
mBinding.beautifulView.setText("ID:"+data.getId());
|
||||
mBinding.tvFollow.setText(data.getFollow_num()+"");
|
||||
mBinding.tvFans.setText(data.getFans_num()+"");
|
||||
mBinding.tvFriends.setText(data.getLook_me_num()+"");
|
||||
|
||||
LinearLayout llContainer = mBinding.llImageContainer;
|
||||
llContainer.removeAllViews(); // 清空旧的 ImageView
|
||||
|
||||
List<String> images = data.getIcon(); // 获取图片列表
|
||||
|
||||
for (String url : images) {
|
||||
if (url.contains("http")) {
|
||||
ImageView imageView = new ImageView(getContext());
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
getContext().getResources().getDimensionPixelSize(com.qxcm.moduleutil.R.dimen.dp_37),
|
||||
getContext().getResources().getDimensionPixelSize(com.qxcm.moduleutil.R.dimen.dp_15)
|
||||
);
|
||||
params.setMargins(0, 0, getContext().getResources().getDimensionPixelSize(com.qxcm.moduleutil.R.dimen.dp_5), 0); // 右边距
|
||||
imageView.setLayoutParams(params);
|
||||
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
|
||||
|
||||
// 使用 Glide 加载图片
|
||||
ImageUtils.loadHeadCC(url, imageView);
|
||||
|
||||
llContainer.addView(imageView);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serviceSuccess(String data) {
|
||||
try {
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
package com.example.modulevocal.presenter;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.example.modulevocal.conacts.AlbumDetailConacts;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.qxcm.moduleutil.bean.AlbumBean;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
import com.qxcm.moduleutil.utils.oss.OSSOperUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class AlbumDetailPresenter extends BasePresenter<AlbumDetailConacts.View> implements AlbumDetailConacts.IMePre {
|
||||
public AlbumDetailPresenter(AlbumDetailConacts.View view, Context context) {
|
||||
super(view, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAlbumDetail(String albumId, String pwd, String page, String page_limit) {
|
||||
api.getAlbumDetail(albumId, pwd, page, page_limit, new BaseObserver<AlbumBean>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(AlbumBean albumBean) {
|
||||
MvpRef.get().getAlbumDetail(albumBean);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void batchUploadFiles(List<File> files, int type) {
|
||||
for (int i = 0; i < files.size(); i++) {
|
||||
uploadFile(files.get(i), type, i, files.size());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
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() {
|
||||
@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
|
||||
public void upAddAlbum(String album_id, String images, String content) {
|
||||
api.upAddAlbum(album_id, images, content, new BaseObserver<String>() {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().upAddAlbum();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAlbumList(String page, String page_limit, String userId) {
|
||||
api.getAlbumList(page, page_limit, userId, new BaseObserver<List<AlbumBean>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(List<AlbumBean> albumBeans) {
|
||||
MvpRef.get().getAlbumList(albumBeans);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void moveAlbum(String id, String new_album_id) {
|
||||
api.moveAlbum(id, new_album_id, new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().moveAlbum();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAlbumImage(String id) {
|
||||
api.deleteAlbum(id,1, new BaseObserver<String>() {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().deleteAlbum();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void likeAlbum(String albumId) {
|
||||
api.likeAlbum(albumId, new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().likeAlbum();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -3,10 +3,46 @@ package com.example.modulevocal.presenter;
|
||||
import android.content.Context;
|
||||
|
||||
import com.example.modulevocal.conacts.BriefIntroductionConacts;
|
||||
import com.qxcm.moduleutil.bean.UserTagBean;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
|
||||
public class BriefIntroductionPresenter extends BasePresenter<BriefIntroductionConacts.View> {
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class BriefIntroductionPresenter extends BasePresenter<BriefIntroductionConacts.View> implements BriefIntroductionConacts.IMePre{
|
||||
public BriefIntroductionPresenter(BriefIntroductionConacts.View view, Context context) {
|
||||
super(view, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getUserTagList() {
|
||||
api.getUserTagList(new BaseObserver<List<UserTagBean>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(List<UserTagBean> userTagBeans) {
|
||||
MvpRef.get().getUserTagListSuccess(userTagBeans);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editUserInfo(String nickname, String birthday, String sex, String avatar, String images, String profile, String tag_id) {
|
||||
api.editUserInfo(1,nickname, birthday, sex, avatar, images, profile, tag_id, new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().editUserInfoSuccess(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,10 +3,28 @@ package com.example.modulevocal.presenter;
|
||||
import android.content.Context;
|
||||
|
||||
import com.example.modulevocal.conacts.ChangeNicknameConacts;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class ChangeNicknamePresenter extends BasePresenter<ChangeNicknameConacts.View> implements ChangeNicknameConacts.IMePre {
|
||||
public ChangeNicknamePresenter(ChangeNicknameConacts.View view, Context context) {
|
||||
super(view, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editUserInfo(String nickname, String birthday, String sex, String avatar, String images, String profile, String tag_id) {
|
||||
api.editUserInfo(1,nickname, birthday, sex, avatar, images, profile, tag_id, new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().editUserInfoSuccess(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,54 +42,19 @@ public class ChangePasswordPresenter extends BasePresenter<ChangePasswordConacto
|
||||
|
||||
@Override
|
||||
public void changePassword(String new_password, String mobile, String code, String userId) {
|
||||
Retrofit retrofit = new Retrofit.Builder().baseUrl(CommonAppContext.getInstance().getCurrentEnvironment().getServerUrl())
|
||||
.addConverterFactory(GsonConverterFactory.create())
|
||||
.build();
|
||||
|
||||
Call<BaseModel<String>> call=retrofit.create(ApiServer.class).getPostData(new_password, mobile, code, userId);
|
||||
call.enqueue(new Callback<BaseModel<String>>() {
|
||||
api.getPostData(new_password, mobile, code, userId, new BaseObserver<String>(){
|
||||
|
||||
@Override
|
||||
public void onResponse(Call<BaseModel<String>> call, Response<BaseModel<String>> response) {
|
||||
if (response.code()==200){
|
||||
BaseModel<String> string=response.body();
|
||||
if (string!=null){
|
||||
int code=string.getCode();
|
||||
if (code==1){
|
||||
MvpRef.get().sendCodeSuccess("");
|
||||
}else {
|
||||
ToastUtils.showShort(string.getMsg());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<BaseModel<String>> call, Throwable t) {
|
||||
ToastUtils.showShort("修改失败");
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().sendCodeSuccess(s);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
// api.changePassword(new_password, mobile, code, userId, new BaseObserver<String>() {
|
||||
//
|
||||
// @Override
|
||||
// public void onSuccess(String data) {
|
||||
// if (data == null) {
|
||||
// MvpRef.get().sendCodeSuccess("");
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(String s) {
|
||||
// MvpRef.get().sendCodeSuccess(s);
|
||||
// }
|
||||
// });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,10 +4,15 @@ import android.content.Context;
|
||||
|
||||
import com.example.modulevocal.conacts.EditUserConactos;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
import com.qxcm.moduleutil.utils.oss.OSSOperUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class EditUserPresenter extends BasePresenter<EditUserConactos.View> implements EditUserConactos.IMePre {
|
||||
public EditUserPresenter(EditUserConactos.View view, Context context) {
|
||||
@@ -15,7 +20,12 @@ public class EditUserPresenter extends BasePresenter<EditUserConactos.View> impl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void uploadFile(File file, int type) {
|
||||
public void topicList(String page, String page_limit) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
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() {
|
||||
@@ -23,7 +33,7 @@ public class EditUserPresenter extends BasePresenter<EditUserConactos.View> impl
|
||||
public void onSuccess() {
|
||||
if (isViewAttach()) {
|
||||
MvpRef.get().disLoadings();
|
||||
MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type);
|
||||
MvpRef.get().upLoadSuccess(OSSOperUtils.AliYunOSSURLFile + url, type, index, size);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,4 +46,53 @@ public class EditUserPresenter extends BasePresenter<EditUserConactos.View> impl
|
||||
}
|
||||
});
|
||||
}
|
||||
public void batchUploadFiles(List<File> files, int type) {
|
||||
for (int i = 0; i < files.size(); i++) {
|
||||
uploadFile(files.get(i), type, i, files.size());
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public void getUserHome(String user_id) {
|
||||
api.getUserHome(user_id, new BaseObserver<UserInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(UserInfo userInfo) {
|
||||
MvpRef.get().getUserHomeSuccess(userInfo);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editUserInfo(String nickname, String birthday, String sex, String avatar, String images, String profile, String tag_id) {
|
||||
api.editUserInfo(1,nickname, birthday, sex, avatar, images, profile, tag_id, new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().editUserInfoSuccess(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editUserBg(String images) {
|
||||
api.editUserInfo(2,"", "", "", "", images, "", "", new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().editUserInfoSuccess(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ import android.content.Context;
|
||||
import com.blankj.utilcode.util.MetaDataUtils;
|
||||
import com.example.modulevocal.conacts.MeConacts;
|
||||
import com.hjq.toast.ToastUtils;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
@@ -17,38 +19,17 @@ public class MePresenter extends BasePresenter<MeConacts.View> implements MeCona
|
||||
|
||||
@Override
|
||||
public void getMyInfo() {
|
||||
// ApiClient.getInstance().getMyInfo(new BaseObserver<MyInfoResp>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(MyInfoResp myInfoResp) {
|
||||
// UserBean user = BaseApplication.getInstance().getUser();
|
||||
// try {
|
||||
// user.setRole(Integer.parseInt(myInfoResp.getRole()));
|
||||
// user.setUser_is_new(Integer.parseInt(myInfoResp.getUser_is_new()));
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// user.setNickname(myInfoResp.getNickname());
|
||||
// try {
|
||||
// user.setSex(Integer.parseInt(myInfoResp.getSex()));
|
||||
// } catch (Exception e) {
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// user.setHead_picture(myInfoResp.getHead_picture());
|
||||
// user.setRank_info(myInfoResp.getRank_info());
|
||||
// BaseApplication.getInstance().setUser(user);
|
||||
// MvpRef.get().myInfoSuccess(myInfoResp);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
//
|
||||
// }
|
||||
// });
|
||||
api.getMyInfo(new BaseObserver<UserInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(UserInfo userInfo) {
|
||||
MvpRef.get().myInfoSuccess(userInfo);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -36,33 +36,33 @@ public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getAlbumList(String page, String page_limit) {
|
||||
// api.getAlbumList(page, page_limit, new BaseObserver<List<AlbumBean>>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(List<AlbumBean> albumBeans) {
|
||||
// MvpRef.get().getAlbumList(albumBeans);
|
||||
// }
|
||||
// });
|
||||
public void getAlbumList(String page, String page_limit, String userId) {
|
||||
api.getAlbumList(page, page_limit,userId, new BaseObserver<List<AlbumBean>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
List<AlbumBean> albumBeans = new ArrayList<>();
|
||||
AlbumBean albumBean1 = new AlbumBean();
|
||||
albumBean1.setId("0");
|
||||
albumBeans.add(albumBean1);
|
||||
for (int i = 1; i < 5; i++) {
|
||||
AlbumBean albumBean = new AlbumBean();
|
||||
albumBean.setId(i + "");
|
||||
albumBean.setName("相册" + i);
|
||||
albumBean.setImage("http://img.alicdn.com/tfs/TB1.XpjQFXXXXX_XpXXXXXXXXXX-1024-1024.png");
|
||||
albumBean.setPwd(i / 2 == 1 ? "123456" : "");
|
||||
albumBean.setRead_num("100");
|
||||
albumBeans.add(albumBean);
|
||||
}
|
||||
MvpRef.get().getAlbumList(albumBeans);
|
||||
@Override
|
||||
public void onNext(List<AlbumBean> albumBeans) {
|
||||
MvpRef.get().getAlbumList(albumBeans);
|
||||
}
|
||||
});
|
||||
|
||||
// List<AlbumBean> albumBeans = new ArrayList<>();
|
||||
// AlbumBean albumBean1 = new AlbumBean();
|
||||
// albumBean1.setId("0");
|
||||
// albumBeans.add(albumBean1);
|
||||
// for (int i = 1; i < 5; i++) {
|
||||
// AlbumBean albumBean = new AlbumBean();
|
||||
// albumBean.setId(i + "");
|
||||
// albumBean.setName("相册" + i);
|
||||
// albumBean.setImage("http://img.alicdn.com/tfs/TB1.XpjQFXXXXX_XpXXXXXXXXXX-1024-1024.png");
|
||||
// albumBean.setPwd(i / 2 == 1 ? "123456" : "");
|
||||
// albumBean.setRead_num("100");
|
||||
// albumBeans.add(albumBean);
|
||||
// }
|
||||
// MvpRef.get().getAlbumList(albumBeans);
|
||||
}
|
||||
|
||||
|
||||
@@ -90,21 +90,9 @@ public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> impleme
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createAlbum(String name, String image) {
|
||||
// api.createAlbum(name, image, new BaseObserver<String>() {
|
||||
//
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(String s) {
|
||||
// MvpRef.get().sendCodeSuccess();
|
||||
// }
|
||||
// });
|
||||
public void createAlbum(String name, String pwd,String image) {
|
||||
|
||||
api.createAlbum(name, image, new BaseObserver<String>(){
|
||||
api.createAlbum(name,pwd, image, new BaseObserver<String>(){
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
@@ -117,4 +105,35 @@ public class MyAlbumPresenter extends BasePresenter<MyAlbumConacts.View> impleme
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteAlbum(String albumId) {
|
||||
api.deleteAlbum(albumId,2, new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().deleteAlbum();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void editAlbum(String albumId, String name, String pwd, String image) {
|
||||
api.editAlbum(albumId,name,pwd,image, new BaseObserver<String>() {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().editAlbum();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
package com.example.modulevocal.presenter;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.example.modulevocal.conacts.SettingConacts;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
|
||||
import io.reactivex.disposables.Disposable;
|
||||
|
||||
public class SettingPresenter extends BasePresenter<SettingConacts.View> implements SettingConacts.IMePre {
|
||||
public SettingPresenter(SettingConacts.View view, Context context) {
|
||||
super(view, context);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearLoginInfo() {
|
||||
api.clearLoginInfo(new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().clearLoginInfo(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void cancel() {
|
||||
api.cancel(new BaseObserver<String>() {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().cancel(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,8 @@ import com.example.modulevocal.conacts.UserHomepageConacts;
|
||||
import com.qxcm.moduleutil.bean.CircleListBean;
|
||||
import com.qxcm.moduleutil.bean.PhotoWallResp;
|
||||
import com.qxcm.moduleutil.bean.UserHomeResp;
|
||||
import com.qxcm.moduleutil.bean.UserInfo;
|
||||
import com.qxcm.moduleutil.http.BaseObserver;
|
||||
import com.qxcm.moduleutil.presenter.BasePresenter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -19,90 +21,64 @@ public class UserHomepagePresenter extends BasePresenter<UserHomepageConacts.Vie
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getUserDetails(String userId, String emchatUsername, boolean showLoading) {
|
||||
// if (showLoading) {
|
||||
// MvpRef.get().showLoadings();
|
||||
// }
|
||||
// ApiClient.getInstance().userHomePage(userId, emchatUsername, new BaseObserver<UserHomeResp>() {
|
||||
// @Override
|
||||
// public void onSubscribe(Disposable d) {
|
||||
// addDisposable(d);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onNext(UserHomeResp userHomeResp) {
|
||||
// MvpRef.get().setUserDetails(userHomeResp);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onComplete() {
|
||||
// MvpRef.get().disLoadings();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(Throwable e) {
|
||||
// super.onError(e);
|
||||
// MvpRef.get().onFail();
|
||||
// }
|
||||
// });
|
||||
public void getUserDetails(String userId) {
|
||||
api.getUserHome(userId, new BaseObserver<UserInfo>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
UserHomeResp userHomeResp = new UserHomeResp();
|
||||
userHomeResp.setUser_id("1");
|
||||
userHomeResp.setNickname("小明");
|
||||
@Override
|
||||
public void onNext(UserInfo userInfo) {
|
||||
MvpRef.get().setUserDetails(userInfo);
|
||||
}
|
||||
});
|
||||
|
||||
userHomeResp.setHead_picture("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setSex("男");
|
||||
userHomeResp.setSignature("个性签名");
|
||||
userHomeResp.setBirthday("1990-01-01");
|
||||
userHomeResp.setConstellation("摩羯");
|
||||
userHomeResp.setProfession("学生");
|
||||
userHomeResp.setEmchat_username("小明");
|
||||
userHomeResp.setNobility_icon("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setNobility_image("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setRank_icon("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setIntro_voice("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setIntro_voice_time("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setFollow("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setFollow_count("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setFans_count("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setAge("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setCity("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setIs_online("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setOnly_friend("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setPicture("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setSignature("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
userHomeResp.setHead_picture("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
PhotoWallResp photoWallResp = new PhotoWallResp();
|
||||
photoWallResp.setAvatar("https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=3042118352,1578432634&fm=26&gp=0.jpg");
|
||||
|
||||
userHomeResp.setUser_photo(photoWallResp);
|
||||
|
||||
MvpRef.get().setUserDetails(userHomeResp);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void getCircleList() {
|
||||
// List<String> images=new ArrayList<>();
|
||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
||||
// images.add("https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=false&word=%E7%BE%8E%E5%A5%B3%E5%9B%BE%E7%89%87&hs=0&pn=0&spn=0&di=7490230549689139201&pi=0&rn=1&tn=baiduimagedetail&is=2160705940%2C3901940110&ie=utf-8&oe=utf-8&cl=2&lm=-1&cs=2056927850%2C430353020&os=2160705940%2C3901940110&simid=3513174432%2C352671812&adpicid=0&lpn=0&ln=0&fm=&sme=&cg=girl&bdtype=0&oriquery=&objurl=https%3A%2F%2Fq4.itc.cn%2Fimages01%2F20240627%2Fd30dbf39840a4c0bbeb277a6d773db2f.jpeg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bf5i7_z%26e3Bv54AzdH3FwAzdH3F0blaabmca_8d8n8lbaa&gsm=&islist=&querylist=");
|
||||
// List<CircleListBean> list=new ArrayList<>();
|
||||
// for (int i = 0; i < 10; i++){
|
||||
// CircleListBean bean=new CircleListBean();
|
||||
// bean.setId(""+i);
|
||||
// bean.setUserNickName("萌新驾到"+i);
|
||||
// bean.setUserAvatar("");
|
||||
// bean.setTime("发布于 12:5"+i);
|
||||
// bean.setContent("任何关系,都需要谦逊谨慎");
|
||||
// bean.setImages(images);
|
||||
// bean.setType("1");
|
||||
// bean.setComment(""+i);
|
||||
// bean.setLike(""+i);
|
||||
// bean.setIsShare(""+i);
|
||||
// list.add(bean);
|
||||
// }
|
||||
// MvpRef.get().setCircleList(list);
|
||||
public void getCircleList(String user_id, String page, String page_limit) {
|
||||
api.getCircleUserList(user_id,page,page_limit,new BaseObserver<List<CircleListBean>>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(List<CircleListBean> circleListBeans) {
|
||||
MvpRef.get().setCircleList(circleListBeans);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void userGuanz(String userId, String type) {
|
||||
api.userGuanz(userId,type, new BaseObserver<String>() {
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().userGuanzSuccess(s);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteZone(String zone_id) {
|
||||
api.deleteZone(zone_id, new BaseObserver<String>() {
|
||||
|
||||
@Override
|
||||
public void onSubscribe(Disposable d) {
|
||||
addDisposable(d);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNext(String s) {
|
||||
MvpRef.get().setLikeZone();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
270
modulevocal/src/main/res/layout/activity_album_detail.xml
Normal file
270
modulevocal/src/main/res/layout/activity_album_detail.xml
Normal file
@@ -0,0 +1,270 @@
|
||||
<?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"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:context=".activity.AlbumDetailActivity">
|
||||
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_album_detail_bg"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_216"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/cl_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_216"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
|
||||
<com.github.mmin18.widget.RealtimeBlurView
|
||||
android:id="@+id/realt"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_album_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_27"
|
||||
android:layout_marginTop="@dimen/dp_73"
|
||||
android:gravity="center"
|
||||
android:text="我是标题"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_18"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/tv_bj"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_27"
|
||||
android:layout_marginStart="@dimen/dp_5"
|
||||
android:scaleType="fitCenter"
|
||||
android:src="@mipmap/bj"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_album_name"
|
||||
app:layout_constraintTop_toTopOf="@+id/tv_album_name" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/im_suo"
|
||||
android:layout_width="@dimen/dp_21"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:layout_marginEnd="@dimen/dp_5"
|
||||
android:src="@mipmap/suo"
|
||||
app:layout_constraintEnd_toStartOf="@+id/tv_album_num"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_album_name" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_album_num"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
android:gravity="center"
|
||||
android:text="@string/guild"
|
||||
android:textColor="@color/color_FF666666"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_album_name" />
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/zan"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_22"
|
||||
android:layout_marginStart="@dimen/dp_41"
|
||||
android:layout_marginBottom="@dimen/dp_16"
|
||||
android:gravity="left|center"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/zan_image"
|
||||
android:layout_width="@dimen/dp_14"
|
||||
android:layout_height="@dimen/dp_14"
|
||||
android:src="@mipmap/shousz" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/dy_comment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="0"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="14sp" />
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/lock"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_22"
|
||||
android:layout_marginEnd="@dimen/dp_41"
|
||||
android:layout_marginBottom="@dimen/dp_16"
|
||||
android:gravity="left|center"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="visible"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/lock_image"
|
||||
android:layout_width="@dimen/dp_14"
|
||||
android:layout_height="@dimen/dp_14"
|
||||
android:src="@mipmap/lock" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/lock_comment"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:gravity="center_vertical"
|
||||
android:text="0"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="14sp" />
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
<com.qxcm.moduleutil.widget.CustomTopBar
|
||||
android:id="@+id/top_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<com.scwang.smartrefresh.layout.SmartRefreshLayout
|
||||
android:id="@+id/smart_refresh_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cl_2"
|
||||
app:srlEnableLoadMore="true"
|
||||
app:srlEnableRefresh="false">
|
||||
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recycle_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_10"
|
||||
android:layout_marginBottom="@dimen/dp_10"
|
||||
android:layout_marginStart="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_12"
|
||||
android:background="@color/white"
|
||||
android:overScrollMode="never"
|
||||
android:scrollbars="none" />
|
||||
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/im_cr_album"
|
||||
android:layout_width="@dimen/dp_48"
|
||||
android:layout_height="@dimen/dp_48"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:layout_marginBottom="@dimen/dp_86"
|
||||
android:src="@mipmap/cr_album"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/bottom_panel"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_76"
|
||||
android:background="@color/white"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/rl_share"
|
||||
android:layout_width="@dimen/dp_0"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_20"
|
||||
android:layout_height="@dimen/dp_20"
|
||||
android:gravity="center_horizontal"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/im_share" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_28"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:text="分享"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/rl_transfer"
|
||||
android:layout_width="@dimen/dp_0"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_20"
|
||||
android:layout_height="@dimen/dp_20"
|
||||
android:gravity="center_horizontal"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/im_transfer" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_28"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:text="转移"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/rl_delete"
|
||||
android:layout_width="@dimen/dp_0"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="@dimen/dp_20"
|
||||
android:layout_height="@dimen/dp_20"
|
||||
android:gravity="center_horizontal"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/im_delete" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_28"
|
||||
android:layout_height="@dimen/dp_21"
|
||||
android:layout_marginTop="@dimen/dp_2"
|
||||
android:text="删除"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.qxcm.moduleutil.widget.CustomTopBar
|
||||
android:id="@+id/top_bar"
|
||||
@@ -18,6 +18,32 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/riv_album"
|
||||
android:layout_width="@dimen/dp_103"
|
||||
android:layout_height="@dimen/dp_103"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:scaleType="fitXY"
|
||||
android:src="@mipmap/add_img"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/top_bar"
|
||||
app:riv_corner_radius="@dimen/dp_5" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:text="相册封面"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/riv_album" />
|
||||
|
||||
<com.qxcm.moduleutil.widget.ClearEditText
|
||||
android:id="@+id/ed_album_name"
|
||||
android:layout_width="match_parent"
|
||||
@@ -36,29 +62,50 @@
|
||||
android:textColor="#333333"
|
||||
android:textColorHint="#9B9B9B"
|
||||
android:textSize="@dimen/sp_16"
|
||||
app:layout_constraintTop_toBottomOf="@+id/top_bar" />
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/riv_album"
|
||||
android:layout_width="@dimen/dp_103"
|
||||
android:layout_height="@dimen/dp_103"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:scaleType="fitXY"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ed_album_name"
|
||||
app:riv_corner_radius="@dimen/dp_5"
|
||||
android:src="@mipmap/add_img" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_title" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_cancel"
|
||||
android:layout_width="@dimen/dp_95"
|
||||
android:layout_height="@dimen/dp_42"
|
||||
android:layout_marginStart="@dimen/dp_38"
|
||||
android:layout_marginTop="@dimen/dp_34"
|
||||
android:background="@mipmap/cancel"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/riv_album" />
|
||||
android:id="@+id/tv_sm"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_5"
|
||||
android:text="是否开启私密"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintEnd_toStartOf="@+id/btn_radio"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ed_album_name" />
|
||||
|
||||
<com.qxcm.moduleutil.widget.ClearEditText
|
||||
android:id="@+id/ed_album_password"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_44"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:background="@drawable/bg_r100_hui"
|
||||
android:gravity="center|left"
|
||||
android:hint="请设置密码"
|
||||
android:inputType="textPassword"
|
||||
android:maxLength="8"
|
||||
android:paddingStart="@dimen/dp_12"
|
||||
android:paddingEnd="@dimen/dp_10"
|
||||
android:singleLine="true"
|
||||
android:text=""
|
||||
android:textColor="#333333"
|
||||
android:textColorHint="#9B9B9B"
|
||||
android:textSize="@dimen/sp_16"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_sm" />
|
||||
|
||||
<com.zcw.togglebutton.ToggleButton
|
||||
android:id="@+id/btn_radio"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
android:layout_marginTop="@dimen/dp_12"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/ed_album_name" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_confirm"
|
||||
@@ -67,9 +114,28 @@
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_34"
|
||||
android:layout_marginEnd="@dimen/dp_38"
|
||||
android:layout_marginBottom="@dimen/dp_30"
|
||||
android:background="@mipmap/sure"
|
||||
app:layout_constraintStart_toEndOf="@+id/tv_cancel"
|
||||
app:layout_constraintTop_toBottomOf="@+id/riv_album" />
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_dele"
|
||||
android:layout_width="@dimen/dp_188"
|
||||
android:layout_height="@dimen/dp_42"
|
||||
android:layout_marginStart="@dimen/dp_16"
|
||||
android:layout_marginTop="@dimen/dp_34"
|
||||
android:layout_marginEnd="@dimen/dp_38"
|
||||
android:layout_marginBottom="@dimen/dp_85"
|
||||
android:background="@drawable/bg_r53_33333"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:text="删除"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
@@ -17,6 +17,14 @@
|
||||
android:layout_height="wrap_content"
|
||||
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"/>
|
||||
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
@@ -58,6 +66,7 @@
|
||||
android:layout_alignParentStart="true"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/tv_nick_name"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
tools:text="姓名"
|
||||
@@ -98,6 +107,7 @@
|
||||
android:layout_alignParentStart="true"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/tv_sex"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
tools:text="男"
|
||||
@@ -181,6 +191,7 @@
|
||||
android:layout_alignParentStart="true"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/tv_jj"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
tools:text="测试数据"
|
||||
|
||||
10
modulevocal/src/main/res/layout/activity_setting1.xml
Normal file
10
modulevocal/src/main/res/layout/activity_setting1.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?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:id="@+id/main"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".activity.Setting1Activity">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -13,72 +13,6 @@
|
||||
android:layout_height="match_parent"
|
||||
android:animateLayoutChanges="true">
|
||||
|
||||
<!-- <androidx.coordinatorlayout.widget.CoordinatorLayout-->
|
||||
<!-- android:id="@+id/coordinator_layout"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="0dp"-->
|
||||
<!-- app:layout_constraintTop_toTopOf="parent">-->
|
||||
|
||||
<!-- <include-->
|
||||
<!-- android:id="@+id/me_user"-->
|
||||
<!-- layout="@layout/user_home" />-->
|
||||
|
||||
<!-- <com.scwang.smartrefresh.layout.SmartRefreshLayout-->
|
||||
<!-- android:id="@+id/smart_refresh_layout"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="match_parent"-->
|
||||
<!-- android:background="@color/transparent"-->
|
||||
<!-- app:layout_behavior="com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior"-->
|
||||
<!-- app:srlEnableAutoLoadMore="false"-->
|
||||
<!-- app:srlEnableLoadMore="false"-->
|
||||
<!-- app:srlEnableRefresh="false">-->
|
||||
|
||||
<!-- <androidx.core.widget.NestedScrollView-->
|
||||
<!-- android:id="@+id/nest_scroll"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="match_parent"-->
|
||||
<!-- android:background="@color/transparent"-->
|
||||
<!-- app:layout_constraintTop_toTopOf="parent">-->
|
||||
|
||||
<!-- <LinearLayout-->
|
||||
<!-- android:id="@+id/ll_parent"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="match_parent"-->
|
||||
<!-- android:descendantFocusability="blocksDescendants"-->
|
||||
<!-- android:orientation="vertical">-->
|
||||
|
||||
<!-- <FrameLayout-->
|
||||
<!-- android:id="@+id/fl_skills"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="wrap_content" />-->
|
||||
|
||||
<!-- <FrameLayout-->
|
||||
<!-- android:id="@+id/fl_gift_wall"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="wrap_content" />-->
|
||||
|
||||
<!-- <FrameLayout-->
|
||||
<!-- android:id="@+id/fl_trend_container"-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="wrap_content" />-->
|
||||
|
||||
<!-- <TextView-->
|
||||
<!-- android:layout_width="match_parent"-->
|
||||
<!-- android:layout_height="wrap_content"-->
|
||||
<!-- android:layout_marginTop="@dimen/dp_15"-->
|
||||
<!-- android:gravity="center"-->
|
||||
<!-- android:paddingBottom="@dimen/dp_10"-->
|
||||
<!-- android:text="人家是有底线的~"-->
|
||||
<!-- android:textColor="@color/black"-->
|
||||
<!-- android:textSize="@dimen/sp_12" />-->
|
||||
|
||||
<!-- </LinearLayout>-->
|
||||
|
||||
<!-- </androidx.core.widget.NestedScrollView>-->
|
||||
|
||||
<!-- </com.scwang.smartrefresh.layout.SmartRefreshLayout>-->
|
||||
|
||||
<!-- </androidx.coordinatorlayout.widget.CoordinatorLayout>-->
|
||||
<RelativeLayout
|
||||
android:id="@+id/rl_head"
|
||||
android:layout_width="match_parent"
|
||||
@@ -90,7 +24,7 @@
|
||||
android:id="@+id/xbanner"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:isAutoPlay="false"
|
||||
app:isAutoPlay="true"
|
||||
app:pointsVisibility="false"
|
||||
app:pointNormal="@drawable/xbanner_point_normal"
|
||||
app:pointSelect="@drawable/xbanner_point_selected"
|
||||
|
||||
@@ -5,13 +5,24 @@
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<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"
|
||||
app:layout_constraintTop_toTopOf="parent"/>
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:srlEnableLoadMore="false"
|
||||
app:srlEnableRefresh="true">
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
/>
|
||||
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</layout>
|
||||
@@ -126,51 +126,47 @@
|
||||
android:textColor="@color/color_666666"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_image_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:layout_marginTop="@dimen/dp_4"
|
||||
>
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_38"
|
||||
android:layout_height="@dimen/dp_16"
|
||||
android:background="@mipmap/xinr" />
|
||||
<!-- <ImageView-->
|
||||
<!-- android:id="@+id/iv_icon"-->
|
||||
<!-- android:layout_width="@dimen/dp_38"-->
|
||||
<!-- android:layout_height="@dimen/dp_16"-->
|
||||
<!-- android:background="@mipmap/xinr" />-->
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_38"
|
||||
android:layout_height="@dimen/dp_16"
|
||||
android:layout_marginStart="@dimen/dp_5"
|
||||
android:background="@mipmap/dengj" />
|
||||
<!-- <TextView-->
|
||||
<!-- android:id="@+id/tv_charm"-->
|
||||
<!-- android:layout_width="@dimen/dp_38"-->
|
||||
<!-- android:layout_height="@dimen/dp_16"-->
|
||||
<!-- android:layout_marginStart="@dimen/dp_5"-->
|
||||
<!-- android:background="@mipmap/dengj" />-->
|
||||
|
||||
<TextView
|
||||
android:layout_width="@dimen/dp_38"
|
||||
android:layout_height="@dimen/dp_16"
|
||||
android:layout_marginStart="@dimen/dp_5"
|
||||
android:background="@mipmap/renz" />
|
||||
<!-- <TextView-->
|
||||
<!-- android:layout_width="@dimen/dp_38"-->
|
||||
<!-- android:layout_height="@dimen/dp_16"-->
|
||||
<!-- android:layout_marginStart="@dimen/dp_5"-->
|
||||
<!-- android:background="@mipmap/renz" />-->
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
<TextView
|
||||
android:id="@+id/tv_home"
|
||||
android:layout_width="@dimen/dp_60"
|
||||
android:layout_height="@dimen/dp_23"
|
||||
android:layout_height="@dimen/dp_33"
|
||||
android:background="@mipmap/me_edit"
|
||||
android:gravity="center"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:orientation="horizontal"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/tv_home"
|
||||
android:layout_width="@dimen/dp_60"
|
||||
android:layout_height="@dimen/dp_27"
|
||||
android:src="@mipmap/me_edit"
|
||||
android:scaleType="centerCrop"
|
||||
/>
|
||||
</LinearLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
||||
@@ -263,24 +259,27 @@
|
||||
android:layout_weight="1"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="invisible">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_friends"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:singleLine="true"
|
||||
android:text="0"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_20" />
|
||||
android:visibility="visible">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_1"
|
||||
android:text="好友"
|
||||
android:text="访客"
|
||||
android:textColor="@color/color_666666"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_friends"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:singleLine="true"
|
||||
android:text="0"
|
||||
android:textColor="@color/color_FF333333"
|
||||
android:textSize="@dimen/sp_16" />
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<View
|
||||
|
||||
15
modulevocal/src/main/res/layout/item_group.xml
Normal file
15
modulevocal/src/main/res/layout/item_group.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="8dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_date"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:textColor="@color/color_FF333333" />
|
||||
</LinearLayout>
|
||||
52
modulevocal/src/main/res/layout/item_multi_select_t.xml
Normal file
52
modulevocal/src/main/res/layout/item_multi_select_t.xml
Normal file
@@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/iv_photo1"
|
||||
android:layout_width="@dimen/dp_70"
|
||||
android:layout_height="@dimen/dp_70"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:riv_corner_radius="@dimen/dp_5"
|
||||
tools:src="@mipmap/default_avatar"/>
|
||||
<View
|
||||
android:id="@+id/v_checkbox"
|
||||
android:layout_width="@dimen/dp_20"
|
||||
android:layout_height="@dimen/dp_20"
|
||||
android:background="@drawable/selector_custom_checkbox"
|
||||
android:focusable="false"
|
||||
android:clickable="true"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/> />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_album_name1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_22"
|
||||
android:layout_marginTop="@dimen/dp_6"
|
||||
app:layout_constraintTop_toBottomOf="@+id/iv_photo1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:gravity="left|center"
|
||||
tools:text="我的相册"
|
||||
android:textColor="#333333"
|
||||
android:textSize="@dimen/sp_14" />
|
||||
<TextView
|
||||
android:id="@+id/tv_album_count1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_18"
|
||||
app:layout_constraintTop_toBottomOf="@+id/tv_album_name1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:gravity="left|center"
|
||||
tools:text="共0张"
|
||||
android:textColor="#999999"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
43
modulevocal/src/main/res/layout/item_photo.xml
Normal file
43
modulevocal/src/main/res/layout/item_photo.xml
Normal file
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="@dimen/dp_103"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_8"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<!-- res/layout/item_photo.xml -->
|
||||
|
||||
<com.makeramen.roundedimageview.RoundedImageView
|
||||
android:id="@+id/iv_photo"
|
||||
android:layout_width="@dimen/dp_103"
|
||||
android:layout_height="@dimen/dp_103"
|
||||
android:scaleType="centerCrop"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:riv_corner_radius="@dimen/dp_5"
|
||||
tools:src="@mipmap/default_avatar"/>
|
||||
|
||||
<com.github.mmin18.widget.RealtimeBlurView
|
||||
android:layout_width="@dimen/dp_103"
|
||||
android:layout_height="@dimen/dp_103"
|
||||
android:id="@+id/tb_photo"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
|
||||
<View
|
||||
android:id="@+id/v_checkbox"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:background="@drawable/selector_custom_checkbox"
|
||||
android:focusable="false"
|
||||
android:clickable="true"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
27
modulevocal/src/main/res/layout/item_tag.xml
Normal file
27
modulevocal/src/main/res/layout/item_tag.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
android:background="@drawable/bg_r48_bbffeb"
|
||||
android:layout_marginStart="@dimen/dp_6"
|
||||
android:layout_marginEnd="@dimen/dp_6"
|
||||
android:gravity="center"
|
||||
android:paddingStart="@dimen/dp_6"
|
||||
android:paddingEnd="@dimen/dp_6"
|
||||
android:paddingTop="@dimen/dp_2"
|
||||
android:paddingBottom="@dimen/dp_2"
|
||||
android:textColor="#006B4C"
|
||||
android:textSize="@dimen/sp_14"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
tools:text="简介" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -29,6 +29,25 @@
|
||||
android:layout_marginTop="-20dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_gz"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_29"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:layout_marginEnd="@dimen/dp_6"
|
||||
android:layout_toStartOf="@+id/tv_gs_sx"
|
||||
android:background="@mipmap/gz"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/tv_gs_sx"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_29"
|
||||
android:layout_marginTop="@dimen/dp_19"
|
||||
android:layout_marginEnd="@dimen/dp_12"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:background="@mipmap/gsui"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nick_name"
|
||||
android:layout_width="wrap_content"
|
||||
@@ -78,14 +97,24 @@
|
||||
android:textColor="@color/color_FF999999"
|
||||
android:textSize="@dimen/sp_12" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
<!-- <androidx.recyclerview.widget.RecyclerView-->
|
||||
|
||||
android:id="@+id/recycle_view1"
|
||||
<!-- android:id="@+id/recycle_view1"-->
|
||||
<!-- android:layout_width="wrap_content"-->
|
||||
<!-- android:layout_height="@dimen/dp_16"-->
|
||||
<!-- android:layout_toRightOf="@+id/tv_age"-->
|
||||
<!-- android:layout_marginStart="@dimen/dp_8"-->
|
||||
<!-- android:layout_alignTop="@+id/tv_age"/>-->
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/ll_image_container"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_16"
|
||||
android:layout_toRightOf="@+id/tv_age"
|
||||
android:layout_marginStart="@dimen/dp_8"
|
||||
android:layout_alignTop="@+id/tv_age"/>
|
||||
android:layout_alignTop="@+id/tv_age"
|
||||
android:orientation="horizontal"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_jj"
|
||||
@@ -113,13 +142,5 @@
|
||||
/>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
</layout>
|
||||
Reference in New Issue
Block a user