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 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 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 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() { } }