private boolean loadFormFromLocalStorage(Activity activity, String formName) { try { InputStream is = LocalDriver.getLocalInputStream(formName); if (is != null) { FormTemplateManager.loadForm(is); return true; } else { return false; } } catch (Exception ex) { Log.e(MainActivity.PT_APP_INFO, "Could not load form from local repository because " + ex); return false; } finally { goBackToMain(activity); } }
public void saveOrUpdate( final FormTemplate formToSave, final GoogleApiClient googleClient, final GoogleFileType googleFileType) throws GoogleDriverException { LocalDriver.save(formToSave, googleFileType, null); if (storageDriveId == null) { throw new GoogleDriverException("Cannot found form directory on google drive"); } final DriveId dirDriveId; if (googleFileType == GoogleFileType.REPORT) { dirDriveId = reportDriveId; } else { dirDriveId = storageDriveId; } final String fileName = PhysicalTherapyUtils.getFileName(formToSave); Query.Builder queryBuilder = new Query.Builder(); queryBuilder.addFilter(Filters.eq(SearchableField.TITLE, fileName)); Query query = queryBuilder.build(); try { final DriveFolder driveFolder = Drive.DriveApi.getFolder(googleClient, dirDriveId); driveFolder .queryChildren(googleClient, query) .setResultCallback( new ResultCallback<DriveApi.MetadataBufferResult>() { @Override public void onResult(DriveApi.MetadataBufferResult resultBufferResult) { DriveId fileDriveId = null; for (Metadata result : resultBufferResult.getMetadataBuffer()) { fileDriveId = result.getDriveId(); } if (fileDriveId == null) { save(formToSave, googleClient, dirDriveId, fileName); } else { update(formToSave, googleClient, fileDriveId, fileName); } } }); } catch (Throwable th) { throw new GoogleDriverException("Unable to find or save file to drive because " + th, th); } }
public List<String> getAllForms(GoogleApiClient googleClient) { final DriveFolder driveFolder = Drive.DriveApi.getFolder(googleClient, storageDriveId); driveFolder .listChildren(googleClient) .setResultCallback( new ResultCallback<DriveApi.MetadataBufferResult>() { @Override public void onResult(DriveApi.MetadataBufferResult resultBufferResult) { Set<String> tmpFormNames = new HashSet<String>(); for (Metadata result : resultBufferResult.getMetadataBuffer()) { tmpFormNames.add(result.getTitle()); } for (String formName : LocalDriver.loadFormNamesFromLocalStorage()) { tmpFormNames.add(formName); } formNames.addAll(tmpFormNames); } }); if (formNames.size() == 0) { formNames = LocalDriver.loadFormNamesFromLocalStorage(); } return formNames; }