summaryrefslogtreecommitdiff
path: root/Source/Core/Common/FileUtil.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2020-06-27 11:04:48 +0200
committerJosJuice <josjuice@gmail.com>2020-09-16 18:38:53 +0200
commit3805b84906b7994486c1b13eb49f93b2796a9a11 (patch)
treee6a328653b76ead16ca9c2fa04bca155d32e8fe1 /Source/Core/Common/FileUtil.cpp
parent6e1e6d2311df787e800be199df369b5d12aa6cae (diff)
Android: Add content provider support to File::Delete
Diffstat (limited to 'Source/Core/Common/FileUtil.cpp')
-rw-r--r--Source/Core/Common/FileUtil.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/Source/Core/Common/FileUtil.cpp b/Source/Core/Common/FileUtil.cpp
index b3efa6b868..3c524ed9d8 100644
--- a/Source/Core/Common/FileUtil.cpp
+++ b/Source/Core/Common/FileUtil.cpp
@@ -46,6 +46,11 @@
#include <sys/param.h>
#endif
+#ifdef ANDROID
+#include "Common/StringUtil.h"
+#include "jni/AndroidCommon/AndroidCommon.h"
+#endif
+
#ifndef S_ISDIR
#define S_ISDIR(m) (((m)&S_IFMT) == S_IFDIR)
#endif
@@ -132,10 +137,19 @@ bool Delete(const std::string& filename)
{
INFO_LOG(COMMON, "Delete: file %s", filename.c_str());
+#ifdef ANDROID
+ if (StringBeginsWith(filename, "content://"))
+ {
+ const bool success = DeleteAndroidContent(filename);
+ if (!success)
+ WARN_LOG(COMMON, "Delete failed on %s", filename.c_str());
+ return success;
+ }
+#endif
+
const FileInfo file_info(filename);
- // Return true because we care about the file no
- // being there, not the actual delete.
+ // Return true because we care about the file not being there, not the actual delete.
if (!file_info.Exists())
{
WARN_LOG(COMMON, "Delete: %s does not exist", filename.c_str());