Hide

SearchableCollectionMetadataField

public interface SearchableCollectionMetadataField implements SearchableMetadataField<Collection<T>>
com.google.android.gms.drive.metadata.SearchableCollectionMetadataField<T>

Interface for metadata fields which hold a collection of values. Implementation of this interface (such as the static values in SearchableField) can be used to create "in" filters for file queries.

For example, the following code will find all files in the folder with ID "folder" with the MIME type "text/plain":

 DriveId parent = DriveId.createFromResourceId("folder");
 Filter parentFilter = Filters.in(SearchableField.PARENTS, parent);
 Filter mimeTypeFilter = Filters.eq(SearchableField.MIME_TYPE, "text/plain");
 Query query = new Query.Builder().addFilters(parentFilter, mimeTypeFilter).build();
 for (Metadata metadata : Drive.DriveApi.query(apiClient, query).await().getMetadataBuffer()) {
     System.out.println(metadata.getTitle());
 }
 

Note that you must pass a SearchableCollectionMetadataField to the Filters#in method; a plain SearchableMetadataField cannot be used as part of an "in" query. However, every SearchableCollectionMetadataField is also a SearchableMetadataField, so you can use a SearchableCollectionMetadataField with Filters#eq (for example, if you want to find a file with an exact set of parents).