diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 8cf2edc..40a164e 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -218,7 +218,7 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 8cf2edc..40a164e 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -218,7 +218,7 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 6aba46d..34d6f19 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -97,6 +97,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -274,7 +275,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 8cf2edc..40a164e 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -218,7 +218,7 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 6aba46d..34d6f19 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -97,6 +97,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -274,7 +275,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index f6b6242..4e16df7 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -91,6 +91,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -142,7 +143,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 8cf2edc..40a164e 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -218,7 +218,7 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 6aba46d..34d6f19 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -97,6 +97,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -274,7 +275,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index f6b6242..4e16df7 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -91,6 +91,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -142,7 +143,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index c2b6392..7529512 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -128,6 +128,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -465,7 +466,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 8cf2edc..40a164e 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -218,7 +218,7 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 6aba46d..34d6f19 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -97,6 +97,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -274,7 +275,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index f6b6242..4e16df7 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -91,6 +91,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -142,7 +143,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index c2b6392..7529512 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -128,6 +128,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -465,7 +466,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 3f32567..607e7cf 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -424,7 +424,7 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 8cf2edc..40a164e 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -218,7 +218,7 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 6aba46d..34d6f19 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -97,6 +97,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -274,7 +275,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index f6b6242..4e16df7 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -91,6 +91,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -142,7 +143,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index c2b6392..7529512 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -128,6 +128,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -465,7 +466,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 3f32567..607e7cf 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -424,7 +424,7 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index 687cc4b..e85bd61 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -353,8 +353,6 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); - } else { - StringHub.show(BaseApplication.get(), "案卷提交成功"); } } catch (IOException e) { e.printStackTrace(); @@ -393,8 +391,6 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); - } else { - StringHub.show(BaseApplication.get(), "案卷提交成功"); } } catch (IOException e) { e.printStackTrace(); diff --git a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java index d7314d0..507b1a3 100644 --- a/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java +++ b/app/src/main/java/com/casic/dcms/fragment/MinePageFragment.java @@ -14,6 +14,8 @@ import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.BuildConfig; import com.casic.dcms.R; import com.casic.dcms.databinding.FragmentMineBinding; @@ -23,12 +25,16 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.DialogHelper; import com.casic.dcms.utils.LocaleConstant; +import com.casic.dcms.utils.PictureSelectorHelper; import com.casic.dcms.utils.StringHelper; +import com.casic.dcms.utils.callback.ISelectorListener; import com.casic.dcms.view.ChangePasswordActivity; import com.casic.dcms.view.HelpfulActivity; import com.casic.dcms.view.LoginActivity; +import com.casic.dcms.vm.UploadViewModel; import com.casic.dcms.vm.UserViewModel; import com.casic.dcms.vm.VersionViewModel; +import com.luck.picture.lib.entity.LocalMedia; import com.pengxh.androidx.lite.base.AndroidxBaseFragment; import com.pengxh.androidx.lite.callback.OnDownloadListener; import com.pengxh.androidx.lite.hub.ContextHub; @@ -38,14 +44,19 @@ import com.pengxh.androidx.lite.widget.dialog.AlertControlDialog; import java.io.File; +import java.util.ArrayList; +import java.util.List; public class MinePageFragment extends AndroidxBaseFragment { - private UserBean.DataBean userData; + private UserBean.DataBean user; private ClipboardManager clipboardManager; private UserViewModel userViewModel; private VersionViewModel versionViewModel; + private UploadViewModel uploadViewModel; private ProgressDialog progressDialog; + private final ArrayList realPaths = new ArrayList<>();//真实图片路径 + private final List imageList = new ArrayList<>();//上传到服务器的数据集 @Override protected void setupTopBarLayout() { @@ -55,59 +66,27 @@ @Override protected void initData() { userViewModel = new ViewModelProvider(this).get(UserViewModel.class); - versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); - - clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); - - viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); - viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); - - //下载进度条 - progressDialog = new ProgressDialog(requireContext()); - progressDialog.setMessage("下载新版本中..."); - progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); - progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); - progressDialog.setCanceledOnTouchOutside(false); - progressDialog.setCancelable(false); - } - - @Override - protected void observeRequestState() { - - } - - @Override - protected void initEvent() { - viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); - userViewModel.getUserData(); - } - }); userViewModel.userDataResult.observe(this, new Observer() { @Override public void onChanged(UserBean it) { if (it.getCode() == 200) { DialogHelper.dismissLoadingDialog(); StringHub.show(requireContext(), "同步完成"); - userData = it.getData(); + user = it.getData(); updateUserInfo(); } } }); - - viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); - viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); - viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + userViewModel.loginOutResult.observe(this, new Observer() { @Override - public void onClick(View view) { - ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); - clipboardManager.setPrimaryClip(clipData); - StringHub.show(requireContext(), "复制成功"); + public void onChanged(ActionResultBean actionResultBean) { + AuthenticationHelper.removeToken(); + ContextHub.navigatePageTo(requireContext(), LoginActivity.class); + PageNavigationManager.finishAllActivity(); } }); - viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + + versionViewModel = new ViewModelProvider(this).get(VersionViewModel.class); versionViewModel.versionModel.observe(this, new Observer() { @Override public void onChanged(NewVersionBean resultBean) { @@ -142,6 +121,57 @@ } } }); + + uploadViewModel = new ViewModelProvider(this).get(UploadViewModel.class); + uploadViewModel.imageModel.observe(this, new Observer() { + @Override + public void onChanged(ActionResultBean resultBean) { + if (resultBean.getCode() == 200) { + //更新用户信息表 + userViewModel.updateUserInfo( + user.getId(), + user.getAccount(), + user.getName(), + user.getDeptId(), + StringHelper.reformatURL(user.getRoleList()), + resultBean.getData(), + "", + "", + "" + ); + + Glide.with(requireContext()) + .load(StringHelper.appendCompleteURL(resultBean.getData())) + .apply(RequestOptions.circleCropTransform()) + .into(viewBinding.userImageView); + } + } + }); + + clipboardManager = (ClipboardManager) requireContext().getSystemService(Context.CLIPBOARD_SERVICE); + + viewBinding.deviceIdView.setText(ContextHub.getSimCardSerialNumber(requireContext())); + viewBinding.versionCodeView.setText(BuildConfig.VERSION_NAME); + + //下载进度条 + progressDialog = new ProgressDialog(requireContext()); + progressDialog.setMessage("下载新版本中..."); + progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); + progressDialog.setProgressDrawable(ResourcesCompat.getDrawable(requireContext().getResources(), R.drawable.bg_progress, null)); + progressDialog.setCanceledOnTouchOutside(false); + progressDialog.setCancelable(false); + } + + @Override + protected void observeRequestState() { + viewBinding.updateUserButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + DialogHelper.showLoadingDialog(requireActivity(), "同步中,请稍后..."); + userViewModel.getUserData(); + } + }); + versionViewModel.loadState.observe(this, new Observer() { @Override public void onChanged(LoadState loadState) { @@ -153,6 +183,44 @@ } }); + uploadViewModel.loadState.observe(this, new Observer() { + @Override + public void onChanged(LoadState loadState) { + if (loadState == LoadState.Loading) { + DialogHelper.showLoadingDialog(requireContext(), "上传中,请稍后..."); + } else { + DialogHelper.dismissLoadingDialog(); + } + } + }); + } + + @Override + protected void initEvent() { + viewBinding.userImageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + PictureSelectorHelper.selectPicture(requireContext(), 1, new ISelectorListener() { + @Override + public void onSuccess(ArrayList result) { + uploadViewModel.uploadImage(new File(result.get(0).getRealPath())); + } + }); + } + }); + + viewBinding.passwordLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), ChangePasswordActivity.class))); + viewBinding.helpfulLayout.setOnClickListener(v -> startActivity(new Intent(requireContext(), HelpfulActivity.class))); + viewBinding.copyView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + ClipData clipData = ClipData.newPlainText("deviceId", viewBinding.deviceIdView.getText().toString()); + clipboardManager.setPrimaryClip(clipData); + StringHub.show(requireContext(), "复制成功"); + } + }); + viewBinding.updateVersionView.setOnClickListener(v -> versionViewModel.update()); + viewBinding.loginOutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { @@ -175,19 +243,11 @@ }).build().show(); } }); - userViewModel.loginOutResult.observe(this, new Observer() { - @Override - public void onChanged(ActionResultBean actionResultBean) { - AuthenticationHelper.removeToken(); - ContextHub.navigatePageTo(requireContext(), LoginActivity.class); - PageNavigationManager.finishAllActivity(); - } - }); } @Override public void onResume() { - userData = StringHelper.getUserBean(); + user = StringHelper.getUserBean(); updateUserInfo(); super.onResume(); } @@ -202,9 +262,9 @@ // R.color.mainThemeColor.convertColor(requireContext()) // ) // userImageView.setImageDrawable(roundDrawable) - viewBinding.userNameView.setText(userData.getName()); - viewBinding.userPhoneView.setText("电话:" + userData.getPhone()); - viewBinding.userDeptView.setText("部门:" + userData.getDeptName()); + viewBinding.userNameView.setText(user.getName()); + viewBinding.userPhoneView.setText("电话:" + user.getPhone()); + viewBinding.userDeptView.setText("部门:" + user.getDeptName()); } //下载apk diff --git a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java index 3703ec7..210ce9f 100644 --- a/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java +++ b/app/src/main/java/com/casic/dcms/utils/PictureSelectorHelper.java @@ -16,7 +16,7 @@ public class PictureSelectorHelper { //选图 - public static void selectPicture(Context context, ISelectorListener selectorListener) { + public static void selectPicture(Context context, int maxNum, ISelectorListener selectorListener) { if (context == null) { return; } @@ -53,7 +53,7 @@ .isGif(false) .isMaxSelectEnabledMask(true) .setFilterMinFileSize(100) - .setMaxSelectNum(3) + .setMaxSelectNum(maxNum) .isDisplayCamera(false) .setImageEngine(GlideLoadEngine.createGlideEngine()) .forResult(new OnResultCallbackListener() { diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index f873659..285dc80 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -4,7 +4,9 @@ import java.util.List; import okhttp3.MultipartBody; +import okhttp3.RequestBody; import okhttp3.ResponseBody; +import retrofit2.http.Body; import retrofit2.http.Field; import retrofit2.http.FormUrlEncoded; import retrofit2.http.GET; @@ -143,6 +145,29 @@ ); /** + * 修改头像 + */ +// @FormUrlEncoded +// @POST("/mgr/update") +// Observable updateUserInfo( +// @Header("token") String token, +// @Field("id") String id, +// @Field("account") String account, +// @Field("name") String name, +// @Field("deptid") String deptid, +// @Field("roleid") String roleid, +// @Field("avatar") String avatar, +// @Field("sex") String sex, +// @Field("birthday") String birthday, +// @Field("phone") String phone +// ); + @POST("/mgr/update") + Observable updateUserInfo( + @Header("token") String token, + @Body RequestBody requestBody + ); + + /** * 获取部门树 */ @GET("/dept/tree") diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index f73e546..9443145 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -2,6 +2,7 @@ import com.casic.dcms.utils.AuthenticationHelper; import com.casic.dcms.utils.LocaleConstant; +import com.google.gson.JsonObject; import com.pengxh.androidx.lite.utils.RetrofitFactory; import com.pengxh.androidx.lite.utils.SaveKeyValues; @@ -101,6 +102,24 @@ } /** + * 修改头像 + */ + public static Observable updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + JsonObject param = new JsonObject(); + param.addProperty("id", id); + param.addProperty("account", account); + param.addProperty("name", name); + param.addProperty("deptid", deptid); + param.addProperty("roleid", roleid); + param.addProperty("avatar", avatar); + param.addProperty("sex", sex); + param.addProperty("birthday", birthday); + param.addProperty("phone", phone); + RequestBody requestBody = RequestBody.create(param.toString(), MediaType.parse("application/json;charset=utf8")); + return api.updateUserInfo(AuthenticationHelper.getToken(), requestBody); + } + + /** * 获取部门树 */ public static Observable getDeptTree(String pid) { diff --git a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java index 2b36424..500bfcc 100644 --- a/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/ChangeShopInfoActivity.java @@ -105,7 +105,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java index d2801f5..a69979c 100644 --- a/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/business/PackageTodoDetailActivity.java @@ -323,7 +323,7 @@ } private void selectPicture() { - PictureSelectorHelper.selectPicture(this, new ISelectorListener() { + PictureSelectorHelper.selectPicture(this, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java index ec73134..ccc6b4e 100644 --- a/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/check/CheckDetailActivity.java @@ -273,7 +273,7 @@ checkImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java index 8cf2edc..40a164e 100644 --- a/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/handle/CaseHandleDetailActivity.java @@ -218,7 +218,7 @@ handleImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java index 6aba46d..34d6f19 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BriefCaseActivity.java @@ -97,6 +97,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -274,7 +275,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java index f6b6242..4e16df7 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/BusinessCaseActivity.java @@ -91,6 +91,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -142,7 +143,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java index c2b6392..7529512 100644 --- a/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java +++ b/app/src/main/java/com/casic/dcms/view/upload/CommonCaseActivity.java @@ -128,6 +128,7 @@ DialogHelper.showLoadingDialog(context, "案卷提交中,请稍后..."); } else if (loadState == LoadState.Success) { DialogHelper.dismissLoadingDialog(); + StringHub.show(context, "案卷提交成功"); finish(); } else { StringHub.show(context, "提交失败,请重试"); @@ -465,7 +466,7 @@ imageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java index 3f32567..607e7cf 100644 --- a/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java +++ b/app/src/main/java/com/casic/dcms/view/verify/VerifyDetailActivity.java @@ -424,7 +424,7 @@ verifyImageAdapter.setOnItemClickListener(new EditableImageAdapter.OnItemClickListener() { @Override public void onAddImageClick() { - PictureSelectorHelper.selectPicture(context, new ISelectorListener() { + PictureSelectorHelper.selectPicture(context, 3, new ISelectorListener() { @Override public void onSuccess(ArrayList result) { if (result.size() == 1) { diff --git a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java index 687cc4b..e85bd61 100644 --- a/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/CaseViewModel.java @@ -353,8 +353,6 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); - } else { - StringHub.show(BaseApplication.get(), "案卷提交成功"); } } catch (IOException e) { e.printStackTrace(); @@ -393,8 +391,6 @@ int responseCode = StringHelper.separateResponseCode(response); if (responseCode != 200) { loadState.setValue(LoadState.Fail); - } else { - StringHub.show(BaseApplication.get(), "案卷提交成功"); } } catch (IOException e) { e.printStackTrace(); diff --git a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java index 4f0ce91..341f504 100644 --- a/app/src/main/java/com/casic/dcms/vm/UserViewModel.java +++ b/app/src/main/java/com/casic/dcms/vm/UserViewModel.java @@ -31,6 +31,7 @@ public MutableLiveData loginResult = new MutableLiveData<>(); public MutableLiveData loginOutResult = new MutableLiveData<>(); public MutableLiveData changePwdResult = new MutableLiveData<>(); + public MutableLiveData updateResult = new MutableLiveData<>(); public void getUserData() { Observable observable = RetrofitServiceManager.getUserData(); @@ -176,4 +177,43 @@ } }); } + + public void updateUserInfo(String id, String account, String name, String deptid, String roleid, String avatar, String sex, String birthday, String phone) { + loadState.setValue(LoadState.Loading); + Observable observable = RetrofitServiceManager.updateUserInfo(id, account, name, deptid, roleid, avatar, sex, birthday, phone); + ObserverSubscriber.addSubscribe(observable, new OnObserverCallback() { + @Override + public void onCompleted() { + loadState.setValue(LoadState.Success); + } + + @Override + public void onError(Throwable e) { + loadState.setValue(LoadState.Fail); + if (e instanceof ConnectException) { + StringHub.show(BaseApplication.get(), "连接失败,请检查网络或者服务器"); + } else { + StringHub.show(BaseApplication.get(), "服务器异常,请联系管理员"); + } + } + + @Override + public void onNext(ResponseBody responseBody) { + try { + String response = responseBody.string(); + int responseCode = StringHelper.separateResponseCode(response); + if (responseCode == 200) { + ActionResultBean actionResultBean = gson.fromJson(response, new TypeToken() { + }.getType()); + updateResult.setValue(actionResultBean); + } else { + loadState.setValue(LoadState.Fail); + StringHelper.showErrorMessage(response); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } }