From 62a280b4b6263abb6f23475cd6bfb298d33f6c69 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Mon, 15 Jun 2015 23:32:19 -0400
Subject: [PATCH] dring: implement signal to retreive cache/data paths

The API to get data/cache paths are Java only.
Currently  we need to access files and cache paths but the design
keeps the possibility to access other paths using the name signal.

Refs #75320

Change-Id: I3f3d52b53633c713071bb0e31803291c51d27b46
---
 .../cx/ring/service/ConfigurationManagerCallback.java | 11 +++++++++++
 ring-android/app/src/main/jni/configurationmanager.i  |  2 ++
 ring-android/app/src/main/jni/jni_interface.i         |  1 +
 3 files changed, 14 insertions(+)

diff --git a/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java b/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java
index 6217a7eff..ceb49699c 100644
--- a/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java
+++ b/ring-android/app/src/main/java/cx/ring/service/ConfigurationManagerCallback.java
@@ -22,6 +22,7 @@
  */
 package cx.ring.service;
 
+import android.content.Context;
 import android.content.Intent;
 import android.util.Log;
 
@@ -80,4 +81,14 @@ public class ConfigurationManagerCallback extends ConfigurationCallback {
         ret.add(audioParams.getBufferSize());
     }
 
+    @Override
+    public void getAppDataPath(String name, StringVect ret) {
+        if (name.equals("files"))
+            ret.add(mService.getFilesDir().getAbsolutePath());
+        else if(name.equals("cache"))
+            ret.add(mService.getCacheDir().getAbsolutePath());
+        else
+            ret.add(mService.getDir(name, Context.MODE_PRIVATE).getAbsolutePath());
+    }
+
 }
diff --git a/ring-android/app/src/main/jni/configurationmanager.i b/ring-android/app/src/main/jni/configurationmanager.i
index e6ae5f6d2..350a5cfb7 100644
--- a/ring-android/app/src/main/jni/configurationmanager.i
+++ b/ring-android/app/src/main/jni/configurationmanager.i
@@ -50,6 +50,7 @@ public:
 
     virtual void errorAlert(int alert){}
     virtual void getHardwareAudioFormat(std::vector<int32_t>* /*params_ret*/){}
+    virtual void getAppDataPath(const std::string& /* name */, std::vector<std::string>* /*path_ret*/){}
 };
 %}
 
@@ -187,4 +188,5 @@ public:
 
     virtual void errorAlert(int alert){}
     virtual void getHardwareAudioFormat(std::vector<int32_t>* /*params_ret*/){}
+    virtual void getAppDataPath(const std::string& /* name */, std::vector<std::string>* /*path_ret*/){}
 };
\ No newline at end of file
diff --git a/ring-android/app/src/main/jni/jni_interface.i b/ring-android/app/src/main/jni/jni_interface.i
index bb32d6d55..ded68b9cd 100644
--- a/ring-android/app/src/main/jni/jni_interface.i
+++ b/ring-android/app/src/main/jni/jni_interface.i
@@ -197,6 +197,7 @@ void init(ConfigurationCallback* confM, Callback* callM) {
         exportable_callback<ConfigurationSignal::CertificateExpired>(bind(&ConfigurationCallback::certificateExpired, confM, _1 )),
         exportable_callback<ConfigurationSignal::CertificateStateChanged>(bind(&ConfigurationCallback::certificateStateChanged, confM, _1, _2, _3 )),
         exportable_callback<ConfigurationSignal::GetHardwareAudioFormat>(bind(&ConfigurationCallback::getHardwareAudioFormat, confM, _1 )),
+        exportable_callback<ConfigurationSignal::GetAppDataPath>(bind(&ConfigurationCallback::getAppDataPath, confM, _1, _2 ))
     };
 
 /*
-- 
GitLab