Example #1
0
  @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();
      }
    }
  }
Example #2
0
  @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);
    }
  }