zhihu / Matisse

:fireworks: A well-designed local image and video selector for Android
Apache License 2.0
12.52k stars 2.07k forks source link

Add a new feature : select those pictures which user selected before by default. #887

Closed SuperBeagleDog closed 1 year ago

SuperBeagleDog commented 1 year ago

A lot of users asked a feature that the MatisseActivity page can select those pictures users selected before by default.

So that I add a new api for it: SelectionCreator.setSelectedItems(ArrayList<Uri> list) This worked well.

Use case:

   // Define a list to cache those pictures selected by user
   private ArrayList<Uri> selectedList = new ArrayList<>();

   // Save selected pictures.
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REQUEST_CODE_CHOOSE && resultCode == RESULT_OK) {
            selectedList.clear();
            selectedList.addAll(Matisse.obtainResult(data));-
        }
    }

   // Open the album
   Matisse.from(SampleActivity.this)
                        .choose(MimeType.ofImage(), false)
                        .countable(true)
                        .setSelectedItems(selectedList) // pass those selected pictures.
                        .forResult(REQUEST_CODE_CHOOSE);