package com.orgzly.android.repos;
import android.content.Context;
import android.net.Uri;
import com.orgzly.android.util.UriUtils;
import java.io.File;
import java.io.IOException;
import java.util.List;
public class DropboxRepo implements Repo {
public static final String SCHEME = "dropbox";
private final Uri repoUri;
private final DropboxClient client;
public DropboxRepo(Context context, Uri uri) {
this.repoUri = uri;
this.client = new DropboxClient(context);
}
@Override
public boolean requiresConnection() {
return true;
}
@Override
public Uri getUri() {
return repoUri;
}
@Override
public List<VersionedRook> getBooks() throws IOException {
return client.getBooks(repoUri);
}
@Override
public VersionedRook retrieveBook(Uri uri, File file) throws IOException {
return client.download(repoUri, uri, file);
}
@Override
public VersionedRook storeBook(File file, String fileName) throws IOException {
return client.upload(file, repoUri, fileName);
}
@Override
public VersionedRook renameBook(Uri fromUri, String name) throws IOException {
Uri toUri = UriUtils.getUriForNewName(fromUri, name);
return client.move(repoUri, fromUri, toUri);
}
@Override
public void delete(Uri uri) throws IOException {
client.delete(uri.getPath());
}
@Override
public String toString() {
return repoUri.toString();
}
}