From d77c83f4bae775c89f5474a072996ab95c9cfa4c Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 2 Mar 2014 00:35:37 +0100 Subject: [PATCH] Main: auto-configure state file on Android --- src/Main.cxx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Main.cxx b/src/Main.cxx index 3a6346385..79fc9d601 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -94,6 +94,7 @@ #include "java/File.hxx" #include "android/Environment.hxx" #include "android/Context.hxx" +#include "fs/StandardDirectory.hxx" #include "org_musicpd_Bridge.h" #endif @@ -262,8 +263,20 @@ static bool glue_state_file_init(Error &error) { auto path_fs = config_get_path(CONF_STATE_FILE, error); - if (path_fs.IsNull()) - return !error.IsDefined(); + if (path_fs.IsNull()) { + if (error.IsDefined()) + return false; + +#ifdef ANDROID + const auto cache_dir = GetUserCacheDir(); + if (cache_dir.IsNull()) + return true; + + path_fs = AllocatedPath::Build(cache_dir, "state"); +#else + return true; +#endif + } state_file = new StateFile(std::move(path_fs), *instance->partition,