[PATCH] android.cpp: update path retriaval scheme
Joakim Bygdell
j.bygdell at gmail.com
Sun Oct 11 10:36:03 PDT 2015
> On 11 Oct 2015, at 18:55, Lubomir I. Ivanov <neolit123 at gmail.com> wrote:
>
> From: "Lubomir I. Ivanov" <neolit123 at gmail.com>
>
> Android was skipped as a OS target when the recent path retriaval
> modifications in <os>.c were made.
>
> Signed-off-by: Lubomir I. Ivanov <neolit123 at gmail.com>
> ---
> code tested without the QAndoroid* API calls in an external test
> project. not tested for the actual OS on runtime or as a compile
> target!
It builds ok but then it fails to write any files when syncing from colud.
> ---
> android.cpp | 27 +++++++++++++++++++++++----
> 1 file changed, 23 insertions(+), 4 deletions(-)
>
> diff --git a/android.cpp b/android.cpp
> index c4bd191..3e14bec 100644
> --- a/android.cpp
> +++ b/android.cpp
> @@ -42,19 +42,38 @@ bool subsurface_ignore_font(const char *font)
> void subsurface_user_info(struct user_info *user)
> { /* Encourage use of at least libgit2-0.20 */ }
>
> -const char *system_default_filename(void)
> +static const char *system_default_path_append(const char *append)
> {
> /* Replace this when QtCore/QStandardPaths getExternalStorageDirectory landed */
> QAndroidJniObject externalStorage = QAndroidJniObject::callStaticObjectMethod("android/os/Environment", "getExternalStorageDirectory", "()Ljava/io/File;");
> QAndroidJniObject externalStorageAbsolute = externalStorage.callObjectMethod("getAbsolutePath", "()Ljava/lang/String;");
> - QString system_default_filename = externalStorageAbsolute.toString() + "/subsurface.xml";
> + QString path = externalStorageAbsolute.toString();
> QAndroidJniEnvironment env;
> if (env->ExceptionCheck()) {
> // FIXME: Handle exception here.
> env->ExceptionClear();
> - return strdup("/sdcard/subsurface.xml");
> + path = QString("/sdcard");
> }
> - return strdup(system_default_filename.toUtf8().data());
> + if (append)
> + path += QString("/%1").arg(append);
> + return strdup(path.toUtf8().data());
> +}
> +
> +const char *system_default_directory(void)
> +{
> + static const char *path = NULL;
> + if (!path)
> + path = system_default_path_append(NULL);
> + return path;
> +}
> +
> +const char *system_default_filename(void)
> +{
> + static const char *filename = "subsurface.xml";
> + static const char *path = NULL;
> + if (!path)
> + path = system_default_path_append(filename);
> + return path;
> }
>
> int enumerate_devices(device_callback_t callback, void *userdata, int dc_type)
> --
> 1.7.11.msysgit.0
>
> _______________________________________________
> subsurface mailing list
> subsurface at subsurface-divelog.org
> http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface
/Jocke
More information about the subsurface
mailing list