diff --git a/app/src/main/java/com/hjx/parent/AddSuccessActivity.java b/app/src/main/java/com/hjx/parent/AddSuccessActivity.java index 293e54f..c2e128e 100644 --- a/app/src/main/java/com/hjx/parent/AddSuccessActivity.java +++ b/app/src/main/java/com/hjx/parent/AddSuccessActivity.java @@ -91,6 +91,12 @@ public class AddSuccessActivity extends BaseActivity dialog.show(); } }); + binding.tvBook.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(context, ErrorListActivity.class)); + } + }); } @Override diff --git a/app/src/main/java/com/hjx/parent/BaseActivity.java b/app/src/main/java/com/hjx/parent/BaseActivity.java index c049b61..72ef25d 100644 --- a/app/src/main/java/com/hjx/parent/BaseActivity.java +++ b/app/src/main/java/com/hjx/parent/BaseActivity.java @@ -47,6 +47,18 @@ public abstract class BaseActivity extends AppCompatActi .show(); } + public void showLoadingDialog(String text, LoadingDialog.DismissListener listener) { + if (dialog != null) + dialog.close(); + dialog = new LoadingDialog(this); + dialog.setLoadingText(text) + .setSuccessText("成功")//显示加载成功时的文字 + .setFailedText("失败") + .setLoadSpeed(SPEED_TWO) + .show(); + dialog.setDimissListener(listener); + } + public void loadFail(String text) { dialog.setFailedText(text); dialog.loadFailed(); diff --git a/app/src/main/java/com/hjx/parent/ErrorListActivity.java b/app/src/main/java/com/hjx/parent/ErrorListActivity.java index cc2e00b..619a9d2 100644 --- a/app/src/main/java/com/hjx/parent/ErrorListActivity.java +++ b/app/src/main/java/com/hjx/parent/ErrorListActivity.java @@ -19,6 +19,7 @@ import android.widget.CompoundButton; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.Nullable; import androidx.core.content.FileProvider; @@ -27,6 +28,9 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.gson.Gson; +import com.hjq.permissions.OnPermissionCallback; +import com.hjq.permissions.Permission; +import com.hjq.permissions.XXPermissions; import com.hjx.parent.adapter.ErrorAdapter; import com.hjx.parent.adapter.FilterAdapter; import com.hjx.parent.adapter.LoadMoreOnScrollListener; @@ -198,51 +202,29 @@ public class ErrorListActivity extends BaseActivity im }); break; case R.id.tv_add: - MyButtomDialog dialog = new MyButtomDialog(context, R.style.BottomSheetDialog); - View bottomView = LayoutInflater.from(context).inflate(R.layout.bottom_sheet_layout, null); - dialog.setContentView(bottomView); - bottomView.findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - dialog.dismiss(); - Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); - //确保有相机来处理Intent - filePath = context.getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; - File photoFile = new File(filePath); - if (photoFile != null) { - //适配Android 7.0文件权限,通过FileProvider创建一个content类型的Uri - Uri photoUri = FileProvider.getUriForFile(activity, "com.hjx.parent.fileprovider", photoFile); - takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); - activity.startActivityForResult(takePictureIntent, REQUEST_CODE_IMAGE); - } - } - }); - bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - dialog.dismiss(); - ImagePickerConfig imagePickerConfig = new ImagePickerConfig.Builder().provider(getPackageName() + ".fileprovider").imageLoader(new GlideImageLoader()) //图片加载器 - .iHandlerCallBack(new HandlerCallBack()) //图片选择器生命周期监听(直接打开摄像头时无效) - .multiSelect(true) //是否多选 - .isShowCamera(false).isVideoPicker(false) //是否选择视频 默认false - .isImagePicker(true).imagePickerType(ImagePickerEnum.PHOTO_PICKER) //选择器打开类型 - .maxImageSelectable(9) //图片可选择数 - .maxHeight(1920) //图片最大高度 - .maxWidth(1920) //图片最大宽度 - .maxImageSize(10) //图片最大大小Mb - .isCrop(false).pathList(new ArrayList<>()).pickerThemeColorRes(R.color.image_picker_white).pickerTitleColorRes(R.color.image_picker_text_black).cropThemeColorRes(R.color.image_picker_white).cropTitleColorRes(R.color.image_picker_text_black).pickerBackRes(R.mipmap.image_picker_back_black).pickerFolderRes(R.mipmap.image_picker_folder_black).build(); - ImagePickerOpen.getInstance().setImagePickerConfig(imagePickerConfig).pathList(new ArrayList<>()).open(ErrorListActivity.this); + if (!XXPermissions.isGranted(context, Permission.CAMERA, Permission.WRITE_EXTERNAL_STORAGE)) { + XXPermissions.with(context) + // 申请多个权限 + .permission(Permission.CAMERA) + .request(new OnPermissionCallback() { + @Override + public void onGranted(List permissions, boolean all) { + if (all) { + //开启扫码界面 + showButtonDialog(); + } else { + Toast.makeText(context, "需要权限", Toast.LENGTH_SHORT).show(); + } + } - } - }); - bottomView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - dialog.dismiss(); - } - }); - dialog.show(); + @Override + public void onDenied(List permissions, boolean never) { + XXPermissions.startPermissionActivity(context, permissions); + } + }); + } else { + showButtonDialog(); + } break; case R.id.tv_save: if (adapter.getChecKList().size() > 0) { @@ -266,6 +248,54 @@ public class ErrorListActivity extends BaseActivity im } } + private void showButtonDialog() { + MyButtomDialog dialog = new MyButtomDialog(context, R.style.BottomSheetDialog); + View bottomView = LayoutInflater.from(context).inflate(R.layout.bottom_sheet_layout, null); + dialog.setContentView(bottomView); + bottomView.findViewById(R.id.take_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); + //确保有相机来处理Intent + filePath = context.getExternalFilesDir("images").getPath() + "/" + String.valueOf(System.currentTimeMillis()) + CommonUtil.getStr() + ".jpg"; + File photoFile = new File(filePath); + if (photoFile != null) { + //适配Android 7.0文件权限,通过FileProvider创建一个content类型的Uri + Uri photoUri = FileProvider.getUriForFile(activity, "com.hjx.parent.fileprovider", photoFile); + takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); + takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri); + activity.startActivityForResult(takePictureIntent, REQUEST_CODE_IMAGE); + } + } + }); + bottomView.findViewById(R.id.choose_photo).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + ImagePickerConfig imagePickerConfig = new ImagePickerConfig.Builder().provider(getPackageName() + ".fileprovider").imageLoader(new GlideImageLoader()) //图片加载器 + .iHandlerCallBack(new HandlerCallBack()) //图片选择器生命周期监听(直接打开摄像头时无效) + .multiSelect(true) //是否多选 + .isShowCamera(false).isVideoPicker(false) //是否选择视频 默认false + .isImagePicker(true).imagePickerType(ImagePickerEnum.PHOTO_PICKER) //选择器打开类型 + .maxImageSelectable(9) //图片可选择数 + .maxHeight(1920) //图片最大高度 + .maxWidth(1920) //图片最大宽度 + .maxImageSize(10) //图片最大大小Mb + .isCrop(false).pathList(new ArrayList<>()).pickerThemeColorRes(R.color.image_picker_white).pickerTitleColorRes(R.color.image_picker_text_black).cropThemeColorRes(R.color.image_picker_white).cropTitleColorRes(R.color.image_picker_text_black).pickerBackRes(R.mipmap.image_picker_back_black).pickerFolderRes(R.mipmap.image_picker_folder_black).build(); + ImagePickerOpen.getInstance().setImagePickerConfig(imagePickerConfig).pathList(new ArrayList<>()).open(ErrorListActivity.this); + + } + }); + bottomView.findViewById(R.id.cancel).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + dialog.dismiss(); + } + }); + dialog.show(); + } + private void deleteError(List topicBeans) { List list = new ArrayList<>(); for (int i = 0; i < topicBeans.size(); i++) { @@ -310,15 +340,17 @@ public class ErrorListActivity extends BaseActivity im binding.llFilterMore.setVisibility(View.GONE); } else { binding.llFilterMore.setVisibility(View.VISIBLE); - last.setTextColor(getColor(R.color.text_title)); - Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); - // 这一步必须要做,否则不会显示. - drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); - last.setCompoundDrawables(null, null, drawable, null); + if (last != null) { + last.setTextColor(getColor(R.color.text_title)); + Drawable drawable = getResources().getDrawable(R.drawable.ic_filter_gray); + // 这一步必须要做,否则不会显示. + drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); + last.setCompoundDrawables(null, null, drawable, null); + } binding.tvFilterMore.setTextColor(Color.parseColor("#1C90F3")); Drawable drawable1 = getResources().getDrawable(R.drawable.ic_filter_blue); // 这一步必须要做,否则不会显示. - drawable1.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight()); + drawable1.setBounds(0, 0, drawable1.getMinimumWidth(), drawable1.getMinimumHeight()); binding.tvFilterMore.setCompoundDrawables(null, null, drawable1, null); last = binding.tvFilterMore; } diff --git a/app/src/main/java/com/hjx/parent/ImageActivity.java b/app/src/main/java/com/hjx/parent/ImageActivity.java index 268128f..910532a 100644 --- a/app/src/main/java/com/hjx/parent/ImageActivity.java +++ b/app/src/main/java/com/hjx/parent/ImageActivity.java @@ -31,6 +31,7 @@ import com.prws.common.bean.TopicBean; import com.prws.common.net.NetWorks; import com.prws.common.utils.BitmapUtils; import com.prws.common.utils.CommonUtil; +import com.xiasuhuei321.loadingdialog.view.LoadingDialog; import java.io.File; import java.util.ArrayList; @@ -65,23 +66,21 @@ public class ImageActivity extends BaseActivity implements binding.viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageSelected(int position) { + if (list.get(position).getCuts() == null) { + binding.ivPrevious.setEnabled(false); + binding.ivNext.setEnabled(false); + clearText(); + } binding.tvTitle.setText((binding.viewPager.getCurrentItem() + 1) + "/" + list.size()); if (position == 0) { binding.ivPrevious.setImageResource(R.mipmap.ic_previous_gray); - binding.ivPrevious.setEnabled(false); } else { binding.ivPrevious.setImageResource(R.mipmap.ic_previous); - binding.ivPrevious.setEnabled(true); } if (position == list.size() - 1) { binding.ivNext.setImageResource(R.mipmap.ic_next_gray); - binding.ivNext.setEnabled(false); } else { binding.ivNext.setImageResource(R.mipmap.ic_next); - binding.ivNext.setEnabled(true); - } - if (list.get(position).getCuts() == null) { - clearText(); } super.onPageSelected(position); } @@ -97,7 +96,13 @@ public class ImageActivity extends BaseActivity implements public void clearText() { int index = binding.viewPager.getCurrentItem(); - showLoadingDialog(getString(R.string.loading_text)); + showLoadingDialog(getString(R.string.loading_text), new LoadingDialog.DismissListener() { + @Override + public void dimiss() { + binding.ivPrevious.setEnabled(index != 0); + binding.ivNext.setEnabled(index != list.size() - 1); + } + }); Log.i("clearText", list.get(index).getPath()); String base64 = BitmapUtils.imageToBase64(list.get(index).getPath()); NetWorks.removeWriting(base64, new Observer() { diff --git a/app/src/main/java/com/hjx/parent/ImageSelectActivity.java b/app/src/main/java/com/hjx/parent/ImageSelectActivity.java index 7dc0971..be1816f 100644 --- a/app/src/main/java/com/hjx/parent/ImageSelectActivity.java +++ b/app/src/main/java/com/hjx/parent/ImageSelectActivity.java @@ -1,5 +1,6 @@ package com.hjx.parent; +import android.app.Dialog; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -9,11 +10,13 @@ import android.graphics.Rect; import android.os.Bundle; import android.os.SystemClock; import android.util.Log; +import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.widget.RelativeLayout; import com.hjx.parent.databinding.ActivityImageSelectBinding; +import com.hjx.parent.dialog.TipDialog; import com.prws.common.bean.CutPicBean; import com.prws.common.bean.ImageBean; import com.prws.common.utils.BitmapUtils; @@ -27,6 +30,7 @@ public class ImageSelectActivity extends BaseActivity