44 bool exists()
const {
return isJuceFlagSet (flagExists); }
66 return isJuceFlagSet (flagHasWritePermission)
68 && (isNativeFlagSet (flagSupportsWrite)
69 || isNativeFlagSet (flagSupportsDelete)
70 || isNativeFlagSet (flagDirSupportsCreate));
74 bool canDelete()
const {
return isNativeFlagSet (flagSupportsDelete); }
80 bool canRename()
const {
return isNativeFlagSet (flagSupportsRename); }
83 bool canCopy()
const {
return isNativeFlagSet (flagSupportsCopy); }
86 bool canMove()
const {
return isNativeFlagSet (flagSupportsMove); }
89 bool isVirtual()
const {
return isNativeFlagSet (flagVirtualDocument); }
106 int64
getLastModified()
const {
return isJuceFlagSet (flagValidModified) ? lastModified : 0; }
116 int64
getSizeInBytes()
const {
return isJuceFlagSet (flagValidSize) ? sizeInBytes : 0; }
127 bool isNativeFlagSet (
int flag)
const {
return (nativeFlags & flag) != 0; }
128 bool isJuceFlagSet (
int flag)
const {
return (juceFlags & flag) != 0; }
133 flagSupportsWrite = 0x0002,
134 flagSupportsDelete = 0x0004,
135 flagDirSupportsCreate = 0x0008,
136 flagSupportsRename = 0x0040,
137 flagSupportsCopy = 0x0080,
138 flagSupportsMove = 0x0100,
139 flagVirtualDocument = 0x0200,
146 flagValidModified = 1 << 1,
147 flagValidSize = 1 << 2,
148 flagHasReadPermission = 1 << 3,
149 flagHasWritePermission = 1 << 4,
154 int64 lastModified = 0;
155 int64 sizeInBytes = 0;
156 int nativeFlags = 0, juceFlags = 0;
204 bool read =
false, write =
false;
347 explicit operator bool()
const {
return hasValue(); }
401 void swap (
AndroidDocument& other)
noexcept { std::swap (other.pimpl, pimpl); }
403 std::unique_ptr<Pimpl> pimpl;
439 using difference_type = std::ptrdiff_t;
440 using pointer = void;
441 using iterator_category = std::input_iterator_tag;
452 bool operator== (
const AndroidDocumentIterator& other)
const noexcept {
return pimpl ==
nullptr && other.pimpl ==
nullptr; }
473 std::shared_ptr<Pimpl> pimpl;
bool isLastModifiedValid() const
bool canCreateChildren() const
int64 getLastModified() const
int64 getSizeInBytes() const
bool isSizeInBytesValid() const
AndroidDocument operator*() const
AndroidDocumentIterator begin() const
AndroidDocumentIterator & operator++()
AndroidDocumentIterator end() const
static AndroidDocumentIterator makeNonRecursive(const AndroidDocument &)
static AndroidDocumentIterator makeRecursive(const AndroidDocument &)
AndroidDocumentIterator()=default
static void releasePersistentReadWriteAccess(const URL &)
static void takePersistentReadWriteAccess(const URL &)
bool isReadPermission() const
static std::vector< AndroidDocumentPermission > getPersistedPermissions()
bool isWritePermission() const
int64 getPersistedTime() const
bool moveDocumentFromParentToParent(const AndroidDocument ¤tParent, const AndroidDocument &newParent)
static AndroidDocument fromFile(const File &filePath)
AndroidDocumentInfo getInfo() const
static AndroidDocument fromDocument(const URL &documentUrl)
std::unique_ptr< InputStream > createInputStream() const
AndroidDocument createChildDirectory(const String &name) const
AndroidDocument copyDocumentToParentDocument(const AndroidDocument &target) const
bool renameTo(const String &newDisplayName)
bool deleteDocument() const
NativeInfo getNativeInfo() const
AndroidDocument createChildDocumentWithTypeAndName(const String &type, const String &name) const
static AndroidDocument fromTree(const URL &treeUrl)
std::unique_ptr< OutputStream > createOutputStream() const
bool isNotEmpty() const noexcept