Я на начальном уровне, и у меня возникают проблемы с использованием методов с разными параметрами и типами возвращаемых данных.
Я создал метод для загрузки файла на Google Drive (через Drive REST API) и другой метод.метод поиска в папке Google Drive.Проблема заключается в том, что тип возвращаемого значения из метода папки поиска - «Задача <*>», и я хотел бы, чтобы найденная папка была отправлена в качестве параметра в метод загрузки файла, просто это параметры com.google.api.services.drive.model.File и AbstractInputStreamContent.
Как мне "преобразовать" объект Task <*> в файл?
Вот методы поиска папки и загрузки файла:
public Task<GoogleDriveFileHolder> searchFolder(String folderName) {
return Tasks.call(mExecutor, () -> {
// Retrive the metadata as a File object.
FileList result = mDriveService.files().list()
.setQ("mimeType = '" + "application/vnd.google-apps.folder" + "' and name = '" + folderName + "' ")
.setSpaces("drive")
.execute();
GoogleDriveFileHolder googleDriveFileHolder = new GoogleDriveFileHolder();
if (result.getFiles().size() > 0) {
googleDriveFileHolder.setId(result.getFiles().get(0).getId());
googleDriveFileHolder.setName(result.getFiles().get(0).getName());
}
return googleDriveFileHolder;
});
}
public Task<GoogleDriveFileHolder> uploadFile(File googleDiveFile, AbstractInputStreamContent content) {
return Tasks.call(mExecutor, () -> {
// Retrieve the metadata as a File object.
File fileMeta = mDriveService.files().create(googleDiveFile, content).execute();
GoogleDriveFileHolder googleDriveFileHolder = new GoogleDriveFileHolder();
googleDriveFileHolder.setId(fileMeta.getId());
googleDriveFileHolder.setName(fileMeta.getName());
return googleDriveFileHolder;
});
}