@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == MediaPickerConstants.CAPTURE_IMAGE_REQUEST_CODE) { if (resultCode == Activity.RESULT_OK) { String fileUriString = fileUri.toString().replaceFirst("file:///", "/").trim(); Media media = new Media(fileUriString, MediaType.MEDIA_TYPE_IMAGE); mSelectedMedias.clear(); mSelectedMedias.add(media); setCallback(Activity.RESULT_OK); getActivity().finish(); } } else if (requestCode == MediaPickerConstants.PREVIEW_ALBUM_MEDIAS_REQUEST_CODE) { if (resultCode == MediaPickerConstants.PREVIEW_MEDIAS_BACK_RESULT_CODE) { mSelectedMedias = (ArrayList<Media>) data.getSerializableExtra("selectedMedias"); mMediaAdapter.setSelectedMedias(mSelectedMedias); mCallback.onMediaSelected(mSelectedMedias); } else if (resultCode == Activity.RESULT_OK) { mSelectedMedias = (ArrayList<Media>) data.getSerializableExtra("selectedMedias"); setCallback(Activity.RESULT_OK); getActivity().finish(); } } }
@Override public void onItemChecked(boolean isChecked, int position) { Media media = mMediaAdapter.getItem(position); boolean contains = contains(media); if (!contains && isChecked) { if (media.getMediaType() == MediaType.MEDIA_TYPE_VIDEO) { if (media.getSize() > MediaPickerConstants.SELECTED_VIDEO_SIZE_IN_MB * ByteUtil.MB) { Toast.makeText( getActivity(), getActivity() .getString( R.string.mp_video_size_too_big, MediaPickerConstants.SELECTED_VIDEO_SIZE_IN_MB), Toast.LENGTH_SHORT) .show(); return; } } if (MediaPickerConstants.MAX_MEDIA_LIMIT == 1 && MediaPickerConstants.SELECTED_MEDIA_COUNT == 1) { mSelectedMedias.remove(0); MediaPickerConstants.SELECTED_MEDIA_COUNT--; mMediaAdapter.resetItemState(mMediaGridView, position); } else { if ((MediaPickerConstants.SELECTED_MEDIA_COUNT == MediaPickerConstants.MAX_MEDIA_LIMIT)) { Toast.makeText( getActivity(), getActivity() .getString( R.string.mp_file_count_overflow_hint, MediaPickerConstants.SELECTED_MEDIA_COUNT), Toast.LENGTH_SHORT) .show(); return; } } mSelectedMedias.add(media); MediaPickerConstants.SELECTED_MEDIA_COUNT++; } else if (contains && (!isChecked)) { mSelectedMedias.remove(media); MediaPickerConstants.SELECTED_MEDIA_COUNT--; } mMediaAdapter.updateItemState(mMediaGridView, position); if (mCallback != null) { mCallback.onMediaSelected(mSelectedMedias); } }