package com.orgzly.android.repos; import android.content.Context; import android.net.Uri; import com.orgzly.android.provider.clients.LocalDbRepoClient; import com.orgzly.android.util.MiscUtils; import com.orgzly.android.util.UriUtils; import java.io.File; import java.io.IOException; import java.util.List; /** * Repo which stores all its files in a local database. * Used for testing by {@link com.orgzly.android.repos.MockRepo}. */ public class LocalDbRepo implements Repo { private final Uri repoUri; private Context mContext; public LocalDbRepo(Context context, String url) { mContext = context; repoUri = Uri.parse(url); } @Override public boolean requiresConnection() { return false; } @Override public Uri getUri() { return repoUri; } @Override public List<VersionedRook> getBooks() throws IOException { return LocalDbRepoClient.getAll(mContext, repoUri); } @Override public VersionedRook retrieveBook(Uri uri, File file) throws IOException { return LocalDbRepoClient.retrieveBook(mContext, repoUri, uri, file); } @Override public VersionedRook storeBook(File file, String fileName) throws IOException { String content = MiscUtils.readStringFromFile(file); String rev = "MockedRevision-" + System.currentTimeMillis(); long mtime = System.currentTimeMillis(); Uri uri = repoUri.buildUpon().appendPath(fileName).build(); VersionedRook vrook = new VersionedRook(repoUri, uri, rev, mtime); return LocalDbRepoClient.insert(mContext, vrook, content); } @Override public VersionedRook renameBook(Uri fromUri, String name) throws IOException { Uri toUri = UriUtils.getUriForNewName(fromUri, name); return LocalDbRepoClient.renameBook(mContext, fromUri, toUri); } @Override public void delete(Uri uri) throws IOException { } @Override public String toString() { return repoUri.toString(); } }