Files
midi-android/modulevocal/src/main/java/com/example/modulevocal/fragment/MyAlbumFragment.java
2025-09-24 15:59:41 +08:00

193 lines
6.5 KiB
Java

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.recyclerview.widget.GridLayoutManager;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
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;
import com.example.modulevocal.adapter.MyAlbumListAdapter;
import com.example.modulevocal.conacts.MyAlbumConacts;
import com.example.modulevocal.databinding.FragmentMyAlbumBinding;
import com.example.modulevocal.presenter.MyAlbumPresenter;
import com.xscm.moduleutil.base.BaseMvpFragment;
import com.xscm.moduleutil.bean.AlbumBean;
import com.xscm.moduleutil.utils.ARouteConstants;
import com.xscm.moduleutil.utils.SpUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @author qx
* @data 2025/5/29
* @description: 我的相册
*/
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();
Bundle bundle = new Bundle();
bundle.putString("userId", userId);
fragment.setArguments(bundle);
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());
}
@Override
protected void initData() {
MvpPre.getAlbumList("1", "10", userId);
}
@Override
protected void initView() {
mAdapter = new MyAlbumListAdapter();
mBinding.dyImageRecyc.setLayoutManager(new GridLayoutManager(getActivity(), 2));
mBinding.dyImageRecyc.setAdapter(mAdapter);
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {
@Override
public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {
AlbumBean item = mAdapter.getItem(position);
if ("0".equals(item.getId())) {
startActivity(new Intent(getActivity(), CreateAlbumActivity.class));
} else {
if (!TextUtils.isEmpty(item.getPwd())) {
if (userId.equals(SpUtil.getUserId() + "")) {
onPasswordCorrect(item);
} else {
showPasswordInputDialog(item);
}
} else {
ARouter.getInstance().build(ARouteConstants.USER_ALBUM_DETAIL).withString("albumId", item.getId()).withString("pwd", item.getPwd()).withString("target_fragment", ARouteConstants.FRAGMENT_ALBUM).navigation();
}
}
}
});
List<AlbumBean> list = new ArrayList<>();
if (userId.equals(SpUtil.getUserId() + "")) {
AlbumBean albumBean = new AlbumBean();
albumBean.setId("0");
list.add(albumBean);
mAdapter.setNewData(list);
}
}
@SuppressLint({"MissingInflatedId", "LocalSuppress"})
private void showPasswordInputDialog(AlbumBean item) {
// 创建弹出框视图
View dialogView = LayoutInflater.from(getActivity()).inflate(com.xscm.moduleutil.R.layout.dialog_input_password, null);
// 获取弹出框中的控件
final EditText etPassword = dialogView.findViewById(com.xscm.moduleutil.R.id.ed_album_password);
TextView btnCancel = dialogView.findViewById(com.xscm.moduleutil.R.id.tv_cancel);
TextView btnConfirm = dialogView.findViewById(com.xscm.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() {
return R.layout.fragment_my_album;
}
@Override
public void getAlbumList(List<AlbumBean> data) {
if (data == null) {
data = new ArrayList<>();
}
if (userId.equals(SpUtil.getUserId() + "")) {
AlbumBean albumBean = new AlbumBean();
albumBean.setId("0");
data.add(0, albumBean);
}
mAdapter.setNewData(data);
}
@Override
public void upLoadSuccess(String url, int type) {
}
@Override
public void sendCodeSuccess() {
}
@Override
public void deleteAlbum() {
}
@Override
public void editAlbum() {
}
}