use of com.orgzly.android.repos.Repo in project orgzly-android by orgzly.
the class Shelf method saveBookToRepo.
/**
* Exports {@code Book}, uploads it to repo and link it to newly created
* {@link com.orgzly.android.repos.VersionedRook}.
*
* @return {@link Book}
* @throws IOException
*/
public Book saveBookToRepo(String repoUrl, String fileName, Book book, BookName.Format format) throws IOException {
Repo repo = RepoFactory.getFromUri(mContext, repoUrl);
if (repo == null) {
throw new IOException("Unsupported repository URL \"" + repoUrl + "\"");
}
VersionedRook uploadedBook;
File tmpFile = getTempBookFile();
try {
/* Write to temporary file. */
writeBookToFile(book, format, tmpFile);
/* Upload to repo. */
uploadedBook = repo.storeBook(tmpFile, fileName);
} finally {
/* Delete temporary file. */
tmpFile.delete();
}
book.setLastSyncedToRook(uploadedBook);
BooksClient.saved(mContext, book.getId(), uploadedBook);
return book;
}
use of com.orgzly.android.repos.Repo in project orgzly-android by orgzly.
the class Shelf method deleteBook.
// TODO: Do in Provider under transaction
public void deleteBook(Book book, boolean deleteLinked) throws IOException {
if (deleteLinked) {
Repo repo = RepoFactory.getFromUri(mContext, book.getLastSyncedToRook().getRepoUri());
if (repo != null) {
repo.delete(book.getLastSyncedToRook().getUri());
}
}
NotesClient.deleteFromBook(mContext, book.getId());
BooksClient.delete(mContext, book.getId());
notifyDataChanged(mContext);
}
use of com.orgzly.android.repos.Repo in project orgzly-android by orgzly.
the class Shelf method getBooksFromAllRepos.
/**
* Goes through each repository and collects all books from each one.
*/
public List<VersionedRook> getBooksFromAllRepos(Map<String, Repo> repos) throws IOException {
List<VersionedRook> result = new ArrayList<>();
if (repos == null) {
repos = getAllRepos();
}
for (Repo repo : repos.values()) {
/* Each repository. */
List<VersionedRook> libBooks = repo.getBooks();
for (VersionedRook vrook : libBooks) {
/* Each book in repository. */
result.add(vrook);
}
}
CurrentRooksClient.set(mContext, result);
return result;
}
use of com.orgzly.android.repos.Repo in project orgzly-android by orgzly.
the class Shelf method loadBookFromRepo.
public Book loadBookFromRepo(Uri repoUri, String fileName) throws IOException {
Book book;
Repo repo = RepoFactory.getFromUri(mContext, repoUri);
if (repo == null) {
throw new IOException("Unsupported repository URL \"" + repoUri + "\"");
}
File tmpFile = getTempBookFile();
try {
/* Download from repo. */
VersionedRook vrook = repo.retrieveBook(fileName, tmpFile);
BookName bookName = BookName.fromFileName(fileName);
/* Store from file to Shelf. */
book = loadBookFromFile(bookName.getName(), bookName.getFormat(), tmpFile, vrook);
} finally {
tmpFile.delete();
}
return book;
}
use of com.orgzly.android.repos.Repo in project orgzly-android by orgzly.
the class DropboxRepoFragment method save.
private void save() {
String directory = mDirectory.getText().toString().trim();
if (TextUtils.isEmpty(directory)) {
directoryInputLayout.setError(getString(R.string.can_not_be_empty));
return;
} else {
directoryInputLayout.setError(null);
}
Uri uri = UriUtils.uriFromPath(DropboxRepo.SCHEME, directory);
Repo repo = RepoFactory.getFromUri(getActivity(), uri);
if (repo == null) {
directoryInputLayout.setError(getString(R.string.invalid_repo_url, uri));
return;
}
if (getArguments() != null && getArguments().containsKey(ARG_REPO_ID)) {
/* Edit existing repository. */
long repoId = getArguments().getLong(ARG_REPO_ID);
if (mListener != null) {
mListener.onRepoUpdateRequest(repoId, repo);
}
} else {
if (mListener != null) {
mListener.onRepoCreateRequest(repo);
}
}
}
Aggregations