Commit 4bc0e09f5123fd92b54a2d00353ccb0409a9e50f
1 parent
d23df86b
错误文件类型过滤
Showing
8 changed files
with
62 additions
and
23 deletions
app/src/main/java/com/cnlive/strike/debug/MainActivity.java
| @@ -76,14 +76,15 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe | @@ -76,14 +76,15 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe | ||
| 76 | new ImagePicker.Builder() | 76 | new ImagePicker.Builder() |
| 77 | .maxNum(9) | 77 | .maxNum(9) |
| 78 | .setSelectGif(true) | 78 | .setSelectGif(true) |
| 79 | + .isSinglePick(true) | ||
| 79 | .maxImageSize(25 * 1024 * 1024) | 80 | .maxImageSize(25 * 1024 * 1024) |
| 80 | .maxVideoSize(100*1024*1024) | 81 | .maxVideoSize(100*1024*1024) |
| 81 | .isReturnUri(AndroidQUtil.isAndroidQ()) | 82 | .isReturnUri(AndroidQUtil.isAndroidQ()) |
| 82 | .selectMode(PickerConfig.PICKER_IMAGE_VIDEO) | 83 | .selectMode(PickerConfig.PICKER_IMAGE_VIDEO) |
| 83 | .defaultSelectList(new ArrayList<Media>()) | 84 | .defaultSelectList(new ArrayList<Media>()) |
| 85 | + .doCrop(1, 1, 900, 900) | ||
| 84 | .needCamera(true) | 86 | .needCamera(true) |
| 85 | .builder() | 87 | .builder() |
| 86 | -// .doCrop(1, 1, 900, 900) | ||
| 87 | .start(this, PickerConfig.PICKER_IMAGE, PickerConfig.DEFAULT_RESULT_CODE); | 88 | .start(this, PickerConfig.PICKER_IMAGE, PickerConfig.DEFAULT_RESULT_CODE); |
| 88 | break; | 89 | break; |
| 89 | } | 90 | } |
config.gradle
lib_media/src/main/java/com/cnlive/media/frame/view/MediaPickerFragmentView.java
| @@ -94,7 +94,9 @@ public class MediaPickerFragmentView implements MvpView { | @@ -94,7 +94,9 @@ public class MediaPickerFragmentView implements MvpView { | ||
| 94 | if (media.mediaType != 1) { | 94 | if (media.mediaType != 1) { |
| 95 | showMessage("请选择图片"); | 95 | showMessage("请选择图片"); |
| 96 | } else { | 96 | } else { |
| 97 | - MediaOpenActivityObservable.getInstance().openActivity(new MediaOpenInfo(2, media)); | 97 | + if (isCheckMediaSupport(mActivity, media)) { |
| 98 | + MediaOpenActivityObservable.getInstance().openActivity(new MediaOpenInfo(2, media)); | ||
| 99 | + } | ||
| 98 | } | 100 | } |
| 99 | } else { | 101 | } else { |
| 100 | if (isCheckMediaSupport(mActivity, media)) { | 102 | if (isCheckMediaSupport(mActivity, media)) { |
| @@ -149,7 +151,7 @@ public class MediaPickerFragmentView implements MvpView { | @@ -149,7 +151,7 @@ public class MediaPickerFragmentView implements MvpView { | ||
| 149 | } | 151 | } |
| 150 | 152 | ||
| 151 | //文件是否存在 | 153 | //文件是否存在 |
| 152 | - if (media.size <= 0) { | 154 | + if (media.size <= 0||media.isFail()) { |
| 153 | showMessage(mFragment.getResources().getString(R.string.string_file_err)); | 155 | showMessage(mFragment.getResources().getString(R.string.string_file_err)); |
| 154 | return false; | 156 | return false; |
| 155 | } | 157 | } |
| @@ -169,6 +171,12 @@ public class MediaPickerFragmentView implements MvpView { | @@ -169,6 +171,12 @@ public class MediaPickerFragmentView implements MvpView { | ||
| 169 | showMessage(mFragment.getResources().getString(R.string.media_msg_video_limit)); | 171 | showMessage(mFragment.getResources().getString(R.string.media_msg_video_limit)); |
| 170 | return false; | 172 | return false; |
| 171 | } | 173 | } |
| 174 | + | ||
| 175 | + //文件格式 | ||
| 176 | + if (media.mediaType == 1 && FileTypeUtil.checkImageType(media.path)) { | ||
| 177 | + showMessage(mFragment.getResources().getString(R.string.media_msg_img_limit)); | ||
| 178 | + return false; | ||
| 179 | + } | ||
| 172 | //视频时长限制 | 180 | //视频时长限制 |
| 173 | if (media.mediaType == 3 && media.duration > mActivity.maxVideoTime) { | 181 | if (media.mediaType == 3 && media.duration > mActivity.maxVideoTime) { |
| 174 | showMessage(mFragment.getResources().getString(R.string.media_msg_time_limit) + (MediaStringUtils.gennerMinSec(mActivity.maxVideoTime / 1000))); | 182 | showMessage(mFragment.getResources().getString(R.string.media_msg_time_limit) + (MediaStringUtils.gennerMinSec(mActivity.maxVideoTime / 1000))); |
lib_media/src/main/java/com/cnlive/media/frame/view/MediaView.java
| @@ -239,7 +239,7 @@ public class MediaView implements MvpView { | @@ -239,7 +239,7 @@ public class MediaView implements MvpView { | ||
| 239 | if (mActivity.selects.indexOf(mMedia) < 0) { | 239 | if (mActivity.selects.indexOf(mMedia) < 0) { |
| 240 | previewBottomAdapter = new PreviewBottomMediaAdapter(mActivity, 0, mActivity.isPre); | 240 | previewBottomAdapter = new PreviewBottomMediaAdapter(mActivity, 0, mActivity.isPre); |
| 241 | } else { | 241 | } else { |
| 242 | - previewBottomAdapter = new PreviewBottomMediaAdapter(mActivity, mActivity.selects.indexOf(mMedia),true); | 242 | + previewBottomAdapter = new PreviewBottomMediaAdapter(mActivity, mActivity.selects.indexOf(mMedia), true); |
| 243 | } | 243 | } |
| 244 | bottomRv.setAdapter(previewBottomAdapter); | 244 | bottomRv.setAdapter(previewBottomAdapter); |
| 245 | if (mActivity.selects != null && mActivity.selects.size() > 0) { | 245 | if (mActivity.selects != null && mActivity.selects.size() > 0) { |
| @@ -315,7 +315,7 @@ public class MediaView implements MvpView { | @@ -315,7 +315,7 @@ public class MediaView implements MvpView { | ||
| 315 | } | 315 | } |
| 316 | //文件是否存在 | 316 | //文件是否存在 |
| 317 | //文件是否存在 | 317 | //文件是否存在 |
| 318 | - if (media.size <= 0) { | 318 | + if (media.size <= 0 || media.isFail()) { |
| 319 | showMessage(mActivity.getResources().getString(R.string.string_file_err)); | 319 | showMessage(mActivity.getResources().getString(R.string.string_file_err)); |
| 320 | return false; | 320 | return false; |
| 321 | } | 321 | } |
| @@ -335,6 +335,12 @@ public class MediaView implements MvpView { | @@ -335,6 +335,12 @@ public class MediaView implements MvpView { | ||
| 335 | showMessage(mActivity.getResources().getString(R.string.media_msg_video_limit)); | 335 | showMessage(mActivity.getResources().getString(R.string.media_msg_video_limit)); |
| 336 | return false; | 336 | return false; |
| 337 | } | 337 | } |
| 338 | + | ||
| 339 | + //文件格式 | ||
| 340 | + if (media.mediaType == 1 && FileTypeUtil.checkImageType(media.path)) { | ||
| 341 | + showMessage(mActivity.getResources().getString(R.string.media_msg_img_limit)); | ||
| 342 | + return false; | ||
| 343 | + } | ||
| 338 | //视频时长限制 | 344 | //视频时长限制 |
| 339 | if (media.mediaType == 3 && media.duration > mActivity.maxVideoTime) { | 345 | if (media.mediaType == 3 && media.duration > mActivity.maxVideoTime) { |
| 340 | showMessage(mActivity.getResources().getString(R.string.media_msg_time_limit) + (MediaStringUtils.gennerMinSec(mActivity.maxVideoTime / 1000))); | 346 | showMessage(mActivity.getResources().getString(R.string.media_msg_time_limit) + (MediaStringUtils.gennerMinSec(mActivity.maxVideoTime / 1000))); |
| @@ -454,7 +460,7 @@ public class MediaView implements MvpView { | @@ -454,7 +460,7 @@ public class MediaView implements MvpView { | ||
| 454 | barTitle.setText(barTitleText); | 460 | barTitle.setText(barTitleText); |
| 455 | checkLayout.setVisibility(View.GONE); | 461 | checkLayout.setVisibility(View.GONE); |
| 456 | } else { | 462 | } else { |
| 457 | - if (mActivity.allMedias.get(0).mediaType==0) { | 463 | + if (mActivity.allMedias.get(0).mediaType == 0) { |
| 458 | String barTitleText = String.format(mActivity.getResources().getString(R.string.btn_bar_title), mActivity.allMedias.indexOf(media), mActivity.allMedias.size() - 1); | 464 | String barTitleText = String.format(mActivity.getResources().getString(R.string.btn_bar_title), mActivity.allMedias.indexOf(media), mActivity.allMedias.size() - 1); |
| 459 | barTitle.setText(barTitleText); | 465 | barTitle.setText(barTitleText); |
| 460 | checkLayout.setVisibility(View.VISIBLE); | 466 | checkLayout.setVisibility(View.VISIBLE); |
lib_media/src/main/java/com/cnlive/media/media/entity/Media.java
| @@ -38,6 +38,16 @@ public class Media implements Parcelable { | @@ -38,6 +38,16 @@ public class Media implements Parcelable { | ||
| 38 | public int imgHeight; | 38 | public int imgHeight; |
| 39 | 39 | ||
| 40 | public boolean isLongImg; | 40 | public boolean isLongImg; |
| 41 | + //损坏图片 | ||
| 42 | + public boolean isFail; | ||
| 43 | + | ||
| 44 | + public boolean isFail() { | ||
| 45 | + return isFail; | ||
| 46 | + } | ||
| 47 | + | ||
| 48 | + public void setFail(boolean fail) { | ||
| 49 | + isFail = fail; | ||
| 50 | + } | ||
| 41 | 51 | ||
| 42 | public int getImgWidth() { | 52 | public int getImgWidth() { |
| 43 | return imgWidth; | 53 | return imgWidth; |
lib_media/src/main/java/com/cnlive/media/utils/FileTypeUtil.java
| @@ -223,7 +223,7 @@ public class FileTypeUtil { | @@ -223,7 +223,7 @@ public class FileTypeUtil { | ||
| 223 | 223 | ||
| 224 | private static final String video_types = ".avi.asf.asx.flv.lsf.lsx.mov.mp3.mp4.mpeg.mpg4"; | 224 | private static final String video_types = ".avi.asf.asx.flv.lsf.lsx.mov.mp3.mp4.mpeg.mpg4"; |
| 225 | private static final String gif_types = ".gif"; | 225 | private static final String gif_types = ".gif"; |
| 226 | - private static final String no_support_types = ".bmp"; | 226 | + private static final String no_support_types = ".bmp.tiff"; |
| 227 | 227 | ||
| 228 | public static boolean checkVideoType(String path) { | 228 | public static boolean checkVideoType(String path) { |
| 229 | if (TextUtils.isEmpty(path)) return false; | 229 | if (TextUtils.isEmpty(path)) return false; |
| @@ -234,6 +234,15 @@ public class FileTypeUtil { | @@ -234,6 +234,15 @@ public class FileTypeUtil { | ||
| 234 | if (TextUtils.isEmpty(type)) return false; | 234 | if (TextUtils.isEmpty(type)) return false; |
| 235 | return !video_types.contains(type); | 235 | return !video_types.contains(type); |
| 236 | } | 236 | } |
| 237 | + public static boolean checkImageType(String path) { | ||
| 238 | + if (TextUtils.isEmpty(path)) return false; | ||
| 239 | + int end = path.lastIndexOf("."); | ||
| 240 | + if (end <= 0) return false; | ||
| 241 | + | ||
| 242 | + String type = path.substring(end); | ||
| 243 | + if (TextUtils.isEmpty(type)) return false; | ||
| 244 | + return no_support_types.contains(type); | ||
| 245 | + } | ||
| 237 | 246 | ||
| 238 | public static boolean isGif(String path) { | 247 | public static boolean isGif(String path) { |
| 239 | if (TextUtils.isEmpty(path)) return false; | 248 | if (TextUtils.isEmpty(path)) return false; |
lib_media/src/main/java/com/cnlive/media/utils/GlideCacheUtil.java
| @@ -329,16 +329,16 @@ public class GlideCacheUtil { | @@ -329,16 +329,16 @@ public class GlideCacheUtil { | ||
| 329 | } | 329 | } |
| 330 | if (AndroidQUtil.isAndroidQ()) { | 330 | if (AndroidQUtil.isAndroidQ()) { |
| 331 | view.setTag(mediaUri.toString()); | 331 | view.setTag(mediaUri.toString()); |
| 332 | - showAndroidQ(context, media.mediaType, mediaUri, view, loading, option); | 332 | + showAndroidQ(context, media, mediaUri, view, loading, option); |
| 333 | } else { | 333 | } else { |
| 334 | if (media.mediaType == 1) { | 334 | if (media.mediaType == 1) { |
| 335 | - showNoAndroidQ(context, media.mediaType, media.fileUri, view, loading, option); | 335 | + showNoAndroidQ(context, media, media.fileUri, view, loading, option); |
| 336 | } else if (media.mediaType == 3) { | 336 | } else if (media.mediaType == 3) { |
| 337 | if (ThumbnailsUtils.thumbnails.containsKey(media.id + "")) { | 337 | if (ThumbnailsUtils.thumbnails.containsKey(media.id + "")) { |
| 338 | - showVideoNoAndroidQ(context, media.mediaType, ThumbnailsUtils.thumbnails.get(media.id + ""), view, loading, option); | 338 | + showVideoNoAndroidQ(context, media, ThumbnailsUtils.thumbnails.get(media.id + ""), view, loading, option); |
| 339 | } else { | 339 | } else { |
| 340 | view.setTag(media.id); | 340 | view.setTag(media.id); |
| 341 | - showVideoThumbnail(context, media.mediaType, media.id, media.path, view, loading, option); | 341 | + showVideoThumbnail(context, media, media.id, media.path, view, loading, option); |
| 342 | } | 342 | } |
| 343 | } | 343 | } |
| 344 | } | 344 | } |
| @@ -349,13 +349,14 @@ public class GlideCacheUtil { | @@ -349,13 +349,14 @@ public class GlideCacheUtil { | ||
| 349 | } | 349 | } |
| 350 | } | 350 | } |
| 351 | 351 | ||
| 352 | - private static void showAndroidQUri(Context context, Uri path, ImageView view, ProgressBar loading, RequestOptions option) { | 352 | + private static void showAndroidQUri(Context context, Media media, Uri path, ImageView view, ProgressBar loading, RequestOptions option) { |
| 353 | RequestBuilder rb = Glide.with(context).load(path); | 353 | RequestBuilder rb = Glide.with(context).load(path); |
| 354 | rb.listener(new RequestListener() { | 354 | rb.listener(new RequestListener() { |
| 355 | @Override | 355 | @Override |
| 356 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { | 356 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { |
| 357 | view.setScaleType(ImageView.ScaleType.CENTER); | 357 | view.setScaleType(ImageView.ScaleType.CENTER); |
| 358 | if (loading != null) loading.setVisibility(View.GONE); | 358 | if (loading != null) loading.setVisibility(View.GONE); |
| 359 | + media.setFail(true); | ||
| 359 | return false; | 360 | return false; |
| 360 | } | 361 | } |
| 361 | 362 | ||
| @@ -369,7 +370,7 @@ public class GlideCacheUtil { | @@ -369,7 +370,7 @@ public class GlideCacheUtil { | ||
| 369 | rb.apply(option).into(view); | 370 | rb.apply(option).into(view); |
| 370 | } | 371 | } |
| 371 | 372 | ||
| 372 | - private static void showAndroidQ(Context context, int mediaType, Uri mediaUri, ImageView view, ProgressBar loading, RequestOptions option) { | 373 | + private static void showAndroidQ(Context context, Media media, Uri mediaUri, ImageView view, ProgressBar loading, RequestOptions option) { |
| 373 | 374 | ||
| 374 | Observable.create(new ObservableOnSubscribe<Bitmap>() { | 375 | Observable.create(new ObservableOnSubscribe<Bitmap>() { |
| 375 | @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) | 376 | @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) |
| @@ -391,14 +392,14 @@ public class GlideCacheUtil { | @@ -391,14 +392,14 @@ public class GlideCacheUtil { | ||
| 391 | @Override | 392 | @Override |
| 392 | public void onNext(Bitmap bean) { | 393 | public void onNext(Bitmap bean) { |
| 393 | if (view.getTag() != null && mediaUri.toString().equals(view.getTag())) { | 394 | if (view.getTag() != null && mediaUri.toString().equals(view.getTag())) { |
| 394 | - showThumbnail(context, bean, view, loading, option); | 395 | + showThumbnail(context, media,bean, view, loading, option); |
| 395 | } | 396 | } |
| 396 | } | 397 | } |
| 397 | 398 | ||
| 398 | @Override | 399 | @Override |
| 399 | public void onError(Throwable e) { | 400 | public void onError(Throwable e) { |
| 400 | if (view.getTag() != null && mediaUri.toString().equals(view.getTag())) { | 401 | if (view.getTag() != null && mediaUri.toString().equals(view.getTag())) { |
| 401 | - showAndroidQUri(context, mediaUri, view, loading, option); | 402 | + showAndroidQUri(context,media, mediaUri, view, loading, option); |
| 402 | } | 403 | } |
| 403 | if (loading != null) loading.setVisibility(View.GONE); | 404 | if (loading != null) loading.setVisibility(View.GONE); |
| 404 | } | 405 | } |
| @@ -410,13 +411,14 @@ public class GlideCacheUtil { | @@ -410,13 +411,14 @@ public class GlideCacheUtil { | ||
| 410 | }); | 411 | }); |
| 411 | } | 412 | } |
| 412 | 413 | ||
| 413 | - private static void showVideoNoAndroidQ(Context context, int mediaType, String path, ImageView view, ProgressBar loading, RequestOptions option) { | 414 | + private static void showVideoNoAndroidQ(Context context, Media media, String path, ImageView view, ProgressBar loading, RequestOptions option) { |
| 414 | RequestBuilder rb = Glide.with(context).load(path); | 415 | RequestBuilder rb = Glide.with(context).load(path); |
| 415 | rb.listener(new RequestListener() { | 416 | rb.listener(new RequestListener() { |
| 416 | @Override | 417 | @Override |
| 417 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { | 418 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { |
| 418 | view.setScaleType(ImageView.ScaleType.CENTER); | 419 | view.setScaleType(ImageView.ScaleType.CENTER); |
| 419 | if (loading != null) loading.setVisibility(View.GONE); | 420 | if (loading != null) loading.setVisibility(View.GONE); |
| 421 | + media.setFail(true); | ||
| 420 | return false; | 422 | return false; |
| 421 | } | 423 | } |
| 422 | 424 | ||
| @@ -430,13 +432,14 @@ public class GlideCacheUtil { | @@ -430,13 +432,14 @@ public class GlideCacheUtil { | ||
| 430 | rb.thumbnail(0.05f).apply(option).into(view); | 432 | rb.thumbnail(0.05f).apply(option).into(view); |
| 431 | } | 433 | } |
| 432 | 434 | ||
| 433 | - private static void showNoAndroidQ(Context context, int mediaType, String path, ImageView view, ProgressBar loading, RequestOptions option) { | 435 | + private static void showNoAndroidQ(Context context, Media media, String path, ImageView view, ProgressBar loading, RequestOptions option) { |
| 434 | RequestBuilder rb = Glide.with(context).load(path); | 436 | RequestBuilder rb = Glide.with(context).load(path); |
| 435 | rb.listener(new RequestListener() { | 437 | rb.listener(new RequestListener() { |
| 436 | @Override | 438 | @Override |
| 437 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { | 439 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { |
| 438 | view.setScaleType(ImageView.ScaleType.CENTER); | 440 | view.setScaleType(ImageView.ScaleType.CENTER); |
| 439 | if (loading != null) loading.setVisibility(View.GONE); | 441 | if (loading != null) loading.setVisibility(View.GONE); |
| 442 | + media.setFail(true); | ||
| 440 | return false; | 443 | return false; |
| 441 | } | 444 | } |
| 442 | 445 | ||
| @@ -451,7 +454,7 @@ public class GlideCacheUtil { | @@ -451,7 +454,7 @@ public class GlideCacheUtil { | ||
| 451 | } | 454 | } |
| 452 | 455 | ||
| 453 | 456 | ||
| 454 | - private static void showVideoThumbnail(Context context, int mediaType, long id, String path, ImageView view, ProgressBar loading, RequestOptions option) { | 457 | + private static void showVideoThumbnail(Context context, Media media, long id, String path, ImageView view, ProgressBar loading, RequestOptions option) { |
| 455 | // // 步骤1:创建被观察者 = Flowable | 458 | // // 步骤1:创建被观察者 = Flowable |
| 456 | Flowable.create(new FlowableOnSubscribe<Bitmap>() { | 459 | Flowable.create(new FlowableOnSubscribe<Bitmap>() { |
| 457 | @Override | 460 | @Override |
| @@ -472,12 +475,12 @@ public class GlideCacheUtil { | @@ -472,12 +475,12 @@ public class GlideCacheUtil { | ||
| 472 | @Override | 475 | @Override |
| 473 | public void onNext(Bitmap thumbnails) { | 476 | public void onNext(Bitmap thumbnails) { |
| 474 | if (view.getTag() != null && view.getTag().toString().equals(id + "")) | 477 | if (view.getTag() != null && view.getTag().toString().equals(id + "")) |
| 475 | - showThumbnail(context, thumbnails, view, loading, option); | 478 | + showThumbnail(context, media, thumbnails, view, loading, option); |
| 476 | } | 479 | } |
| 477 | 480 | ||
| 478 | @Override | 481 | @Override |
| 479 | public void onError(Throwable t) { | 482 | public void onError(Throwable t) { |
| 480 | - showNoAndroidQ(context, mediaType, path, view, loading, option); | 483 | + showNoAndroidQ(context, media, path, view, loading, option); |
| 481 | if (loading != null) loading.setVisibility(View.GONE); | 484 | if (loading != null) loading.setVisibility(View.GONE); |
| 482 | } | 485 | } |
| 483 | 486 | ||
| @@ -488,13 +491,14 @@ public class GlideCacheUtil { | @@ -488,13 +491,14 @@ public class GlideCacheUtil { | ||
| 488 | } | 491 | } |
| 489 | 492 | ||
| 490 | 493 | ||
| 491 | - private static void showThumbnail(Context context, Bitmap bm, ImageView view, ProgressBar loading, RequestOptions option) { | 494 | + private static void showThumbnail(Context context, Media media, Bitmap bm, ImageView view, ProgressBar loading, RequestOptions option) { |
| 492 | RequestBuilder rb = Glide.with(context).load(bm); | 495 | RequestBuilder rb = Glide.with(context).load(bm); |
| 493 | rb.listener(new RequestListener() { | 496 | rb.listener(new RequestListener() { |
| 494 | @Override | 497 | @Override |
| 495 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { | 498 | public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { |
| 496 | view.setScaleType(ImageView.ScaleType.CENTER); | 499 | view.setScaleType(ImageView.ScaleType.CENTER); |
| 497 | if (loading != null) loading.setVisibility(View.GONE); | 500 | if (loading != null) loading.setVisibility(View.GONE); |
| 501 | + media.setFail(true); | ||
| 498 | return false; | 502 | return false; |
| 499 | } | 503 | } |
| 500 | 504 |
lib_media/src/main/res/values/strings.xml
| @@ -40,6 +40,7 @@ | @@ -40,6 +40,7 @@ | ||
| 40 | <string name="media_msg_time_limit">请压缩和剪切后上传,时长最大只支持</string> | 40 | <string name="media_msg_time_limit">请压缩和剪切后上传,时长最大只支持</string> |
| 41 | 41 | ||
| 42 | <string name="media_msg_video_limit">不支持这种格式的视频</string> | 42 | <string name="media_msg_video_limit">不支持这种格式的视频</string> |
| 43 | + <string name="media_msg_img_limit">不支持这种格式的图片</string> | ||
| 43 | 44 | ||
| 44 | <string name="msg_gif_limit">请选择其他图片,Gif格式不被支持</string> | 45 | <string name="msg_gif_limit">请选择其他图片,Gif格式不被支持</string> |
| 45 | <string name="select_null">请选择文件</string> | 46 | <string name="select_null">请选择文件</string> |
| @@ -64,6 +65,6 @@ | @@ -64,6 +65,6 @@ | ||
| 64 | <string name="msg_no_camera">没有系统相机</string> | 65 | <string name="msg_no_camera">没有系统相机</string> |
| 65 | <string name="msg_no_camera_permission">相机开启失败,请开启系统相机权限</string> | 66 | <string name="msg_no_camera_permission">相机开启失败,请开启系统相机权限</string> |
| 66 | <string name="msg_error_camera">相机开启失败</string> | 67 | <string name="msg_error_camera">相机开启失败</string> |
| 67 | - <string name="string_file_err">文件以损坏</string> | 68 | + <string name="string_file_err">文件已损坏</string> |
| 68 | 69 | ||
| 69 | </resources> | 70 | </resources> |