package com.openfarmanager.android.filesystem; import com.dropbox.client2.DropboxAPI; import com.openfarmanager.android.model.Bookmark; import com.openfarmanager.android.utils.CustomFormatter; import com.openfarmanager.android.utils.FileUtilsExt; import static com.openfarmanager.android.utils.Extensions.*; import java.io.File; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.Date; import java.util.List; /** * Represents dropbox file. * * @author Vlad Namashko */ public class DropboxFile implements FileProxy<DropboxAPI.Entry> { private String mName; private String mParentPath; private DropboxAPI.Entry mEntry; private long mSize; private long mModified; private static final SimpleDateFormat sSimpleDateFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss"); public DropboxFile(DropboxAPI.Entry entry) { mEntry = entry; mName = entry.fileName(); mSize = CustomFormatter.parseSize(entry.size); if (!entry.isDir) { try { mModified = sSimpleDateFormat.parse(entry.clientMtime).getTime(); } catch (Exception e) { mModified = 0; } } mParentPath = entry.path.substring(0, entry.path.lastIndexOf("/") + 1); } public DropboxFile(String path) { mEntry = new DropboxAPI.Entry(); path = FileUtilsExt.removeLastSeparator(path); mName = FileUtilsExt.getFileName(path); mEntry.path = path; mSize = 0; mEntry.isDir = true; mModified = System.currentTimeMillis(); mParentPath = path.substring(0, path.lastIndexOf("/") + 1); } @Override public String getId() { return getFullPath(); } @Override public String getName() { return mName; } @Override public boolean isDirectory() { return mEntry.isDir; } @Override public long getSize() { return mSize; } @Override public long lastModifiedDate() { return mModified; } @Override public List<DropboxAPI.Entry> getChildren() { return mEntry.contents; } @Override public String getFullPath() { return mEntry.path; } @Override public String getFullPathRaw() { return mEntry.path; } @Override public String getParentPath() { return mParentPath; } @Override public boolean isUpNavigator() { return false; } @Override public boolean isRoot() { return mEntry.path.equals("/"); } @Override public boolean isVirtualDirectory() { return false; } @Override public boolean isBookmark() { return false; } @Override public Bookmark getBookmark() { return null; } @Override public String getMimeType() { return mEntry.mimeType; } }