From e6014ef123350d5c0cadabe9c18e26b3d5a3c729 Mon Sep 17 00:00:00 2001
From: guoshen <3129367635@qq.com>
Date: 星期六, 29 六月 2024 15:41:25 +0800
Subject: [PATCH] Revert "Initial commit"
---
app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 311 insertions(+), 2 deletions(-)
diff --git a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java
index ee1d93d..1b9b00c 100644
--- a/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java
+++ b/app/src/main/java/com/application/zhangshi_app_android/ui/function/TourismExperienceDetailActivity.java
@@ -1,9 +1,318 @@
package com.application.zhangshi_app_android.ui.function;
+import android.app.Activity;
+import android.content.ClipData;
+import android.content.Intent;
+import android.net.Uri;
+import android.view.View;
+import android.widget.PopupWindow;
+
+import androidx.activity.result.ActivityResult;
+import androidx.activity.result.ActivityResultCallback;
+import androidx.activity.result.ActivityResultLauncher;
+import androidx.activity.result.contract.ActivityResultContracts;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.app_base.base.BaseConfig;
+import com.android.app_base.base.adapter.BaseRVAdapter;
+import com.android.app_base.base.dialog.BaseDialog;
+import com.android.app_base.base.dialog.UIDialog;
+import com.android.app_base.base.dialog.WaitDialog;
+import com.android.app_base.manager.UserManager;
+import com.android.app_base.utils.GetFilePathFromUri;
+import com.android.app_base.utils.ScreenSizeUtils;
+import com.android.app_base.utils.Utils;
+import com.application.zhangshi_app_android.BR;
+import com.application.zhangshi_app_android.R;
+import com.application.zhangshi_app_android.adapter.ElectronicFileAddAdapter;
+import com.application.zhangshi_app_android.bean.FamilyMemorabiliaBean;
+import com.application.zhangshi_app_android.bean.TourismExperienceBean;
+import com.application.zhangshi_app_android.databinding.AcitivityTourismExperienceDetailBinding;
+import com.application.zhangshi_app_android.ui.DLBaseActivity;
+import com.github.gzuliyujiang.wheelpicker.DatePicker;
+import com.github.gzuliyujiang.wheelpicker.OptionPicker;
+import com.github.gzuliyujiang.wheelpicker.contract.OnDatePickedListener;
+import com.github.gzuliyujiang.wheelpicker.contract.OnOptionPickedListener;
+import com.hjq.bar.TitleBar;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnResultCallbackListener;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.function.Consumer;
+
/**
* @author Ljj
* @date 2023.04.28. 22:49
- * @desc
+ * @desc 鏃呮父缁忓巻璇︽儏
*/
-public class TourismExperienceDetailActivity {
+public class TourismExperienceDetailActivity extends DLBaseActivity<AcitivityTourismExperienceDetailBinding,TourismExperienceDetailActivityViewModel> {
+ private int type;// 0 鏌ョ湅鍙慨鏀瑰垹闄� 1 鏂板 2 鐩存帴淇敼
+ private PopupWindow popupWindow;
+ private ElectronicFileAddAdapter adapter;
+ private BaseDialog mWaitDialog;
+ private ActivityResultLauncher<Intent> activityResultLauncher;
+
+ @Override
+ public int getLayoutId() {
+ return R.layout.acitivity_tourism_experience_detail;
+ }
+
+ @Override
+ public int getVariableId() {
+ return BR.viewModel;
+ }
+
+ @Override
+ public void initParam() {
+ type = getIntent().getIntExtra(BaseConfig.EXTRA_TYPE,0);
+ if (type == 0 || type == 2){
+ TourismExperienceBean bean = (TourismExperienceBean) getIntent().getSerializableExtra("bean");
+ if (bean !=null){
+ viewModel.getBeanLiveData().setValue(bean);
+ viewModel.setCid(bean.getCid());
+ }
+ }else if (type == 1){
+ String cid = getIntent().getStringExtra("cid");
+ viewModel.getBeanLiveData().getValue().setCid(cid);
+ viewModel.setCid(cid);
+ }
+ }
+
+ @Override
+ public void initView() {
+ adapter = new ElectronicFileAddAdapter(this);
+ GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
+ binding.rvImage.setLayoutManager(gridLayoutManager);
+ binding.rvImage.setNestedScrollingEnabled(false);
+ adapter.setItemAndAddClickListener(new ElectronicFileAddAdapter.OnItemAndAddClickListener() {
+ @Override
+ public void onItemClick(View v, int position) {
+
+ }
+
+ @Override
+ public void onAddClick() {
+ OptionPicker picker = getOptionPicker(Arrays.asList("鍥剧墖瑙嗛","鍏朵粬鏂囦欢"));
+ picker.setTitle("閫夋嫨鏂囦欢绫诲瀷");
+ picker.setOnOptionPickedListener(new OnOptionPickedListener() {
+ @Override
+ public void onOptionPicked(int position, Object item) {
+ if (item.equals("鍥剧墖瑙嗛")) {
+ UserManager.getInstance().selectImage(getSelfActivity(), 0,9, new OnResultCallbackListener<LocalMedia>() {
+ @Override
+ public void onResult(ArrayList<LocalMedia> result) {
+ if (result.size() == 0) return;
+ for (LocalMedia media : result) {
+ String path = media.getRealPath();
+ if (path!=null){
+ viewModel.addUploadFile(path);
+ TourismExperienceBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.add(path);
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ }
+ }
+ @Override
+ public void onCancel() {
+
+ }
+ });
+ }else {
+ Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+// Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+ intent.setType("*/*"); // 闄愬埗鏂囦欢绫诲瀷
+ intent.addCategory(Intent.CATEGORY_OPENABLE); // 娣诲姞 CATEGORY_OPENABLE 鍒嗙被,鍛婅瘔绯荤粺瑕侀�夋嫨鐨勫唴瀹瑰彲浠ヨ鎵撳紑锛岃繖鏍风郴缁熶細杩囨护鎺変笉鑳借搴旂敤鎵撳紑鐨勬枃浠讹紝浠ユ彁渚涙洿濂界殑鐢ㄦ埛浣撻獙銆�
+ intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); // 鍏佽澶氶��
+ activityResultLauncher.launch(intent);
+ }
+ }
+ });
+ picker.show();
+
+ }
+ });
+ adapter.setOnChildClickListener(R.id.iv_delete, new BaseRVAdapter.OnChildClickListener() {
+ @Override
+ public void onChildClick(RecyclerView recyclerView, View childView, int position) {
+ TourismExperienceBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.remove(adapter.getItem(position));
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ adapter.removeItem(position);
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ });
+ binding.rvImage.setAdapter(adapter);
+
+ if (type == 1){
+ viewModel.getTypeLiveData().postValue(true);
+ binding.ivOperate.setOnClickListener(v -> {
+ viewModel.add();
+ });
+ }else if (type == 0){
+ popupWindow = initPopUpWindow(View.inflate(this,R.layout.pop_operate_delete,null));
+ popupWindow.getContentView().findViewById(R.id.tv_modify).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ viewModel.getTypeLiveData().postValue(true);
+ popupWindow.dismiss();
+ }
+ });
+ popupWindow.getContentView().findViewById(R.id.tv_delete).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ popupWindow.dismiss();
+ new UIDialog.Builder(getSelfActivity())
+ .setTitle("鎮ㄧ‘瀹氳鍒犻櫎椤圭洰鍚�")
+ .setContent("椤圭洰鍒犻櫎鍚庡皢鏃犳硶鎭㈠")
+ .setConfirm("纭畾")
+ .setCancel("鍙栨秷")
+ .setListener(new UIDialog.OnListener() {
+ @Override
+ public void onConfirm(BaseDialog dialog) {
+ viewModel.delete();
+ }
+ })
+ .show();
+ }
+ });
+ viewModel.getTypeLiveData().postValue(false);
+ }else if (type == 2){
+ viewModel.getTypeLiveData().postValue(true);
+ }
+ binding.etTime.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ hideSoftKeyboard();
+ DatePicker datePicker = getDatePicker();
+ datePicker.setTitle("閫夋嫨鏃堕棿");
+ datePicker.setOnDatePickedListener(new OnDatePickedListener() {
+ @Override
+ public void onDatePicked(int year, int month, int day) {
+ binding.etTime.setText(String.format("%d-%02d-%02d", year, month, day));
+ }
+ });
+ datePicker.show();
+ }
+ });
+ activityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
+ @Override
+ public void onActivityResult(ActivityResult result) {
+ if (result.getResultCode() == Activity.RESULT_OK) {
+ if (result.getData() == null){
+ return;
+ }
+ // 鑾峰彇閫変腑鐨勫涓枃浠剁殑 URI
+ ClipData clipData = result.getData().getClipData();
+ if (clipData != null) {
+ int itemCount = clipData.getItemCount();
+ for (int i = 0; i < itemCount; i++) {
+ Uri uri = clipData.getItemAt(i).getUri();
+ // 浣跨敤閫変腑鐨勬枃浠� URI 杩涜鍚庣画鎿嶄綔锛屾瘮濡傝鍙栨枃浠跺唴瀹圭瓑
+ String path = GetFilePathFromUri.getFileAbsolutePath(getSelfActivity(),uri);
+ if (path!=null){
+ viewModel.addUploadFile(path);
+ TourismExperienceBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.add(path);
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ }
+ }else {
+ // 鑾峰彇閫変腑鐨勫崟涓枃浠剁殑 URI
+ Uri selectedFileUri = result.getData().getData();
+ String path = GetFilePathFromUri.getFileAbsolutePath(getSelfActivity(),selectedFileUri);
+ if (path!=null){
+ viewModel.addUploadFile(path);
+ TourismExperienceBean bean = viewModel.getBeanLiveData().getValue();
+ if (bean !=null){
+ List<String> urlList = Utils.splitString2List(bean.getUrl(),",");
+ urlList.add(path);
+ bean.setUrl(Utils.appendList2String(urlList,","));
+ }
+ viewModel.getBeanLiveData().setValue(bean);
+ }
+ }
+ }
+ }
+ });
+ }
+
+ @Override
+ public void initData() {
+
+ }
+
+ @Override
+ public void initLiveDataObserve() {
+ viewModel.getBeanLiveData().observe(this,bean -> {
+ if (bean!=null){
+ adapter.setData(Utils.splitString2List(bean.getUrl(),","));
+ }
+ });
+ viewModel.getTypeLiveData().observe(this,operateType -> {
+ if (operateType){
+ if (type == 1) {
+ binding.ivOperate.setOnClickListener(v -> {
+ viewModel.add();
+ });
+ }else {
+ binding.ivOperate.setOnClickListener(v -> {
+ viewModel.update();
+ });
+ }
+ adapter.setIsEdited(true);
+ }else {
+ binding.ivOperate.setOnClickListener(v -> {
+ popupWindow.showAsDropDown(binding.ivOperate,-ScreenSizeUtils.dip2px(this,85) +binding.ivOperate.getWidth(),0);
+ });
+ setIsEdited(false);
+ }
+ });
+ }
+
+ @Override
+ public void onLeftClick(TitleBar titleBar) {
+ finish();
+ }
+
+ public void setIsEdited(boolean isEdited){
+ adapter.setIsEdited(isEdited);
+ }
+
+ @Override
+ protected void dialogLoading() {
+ if (mWaitDialog == null) {
+ mWaitDialog = new WaitDialog.Builder(this)
+ // 娑堟伅鏂囨湰鍙互涓嶇敤濉啓
+ .setMessage("姝e湪涓婁紶")
+ .create();
+ }
+ if (!mWaitDialog.isShowing()) {
+ mWaitDialog.show();
+ }
+ }
+
+ @Override
+ protected void dialogDismiss() {
+ if (mWaitDialog != null && mWaitDialog.isShowing()) {
+ mWaitDialog.dismiss();
+ mWaitDialog = null;
+ }
+ }
+
+
}
--
Gitblit v1.9.1