summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorJacobo Aragunde Pérez <jaragunde@igalia.com>2015-09-03 18:23:48 +0000
committerTomaž Vajngerl <tomaz.vajngerl@collabora.com>2015-10-15 10:28:25 +0200
commitf550e1f04d6946cb1191496b91af709b6ccac07c (patch)
tree7b36aca7cd1da514a8841ff698041f76bfb08fed /android
parentea5ef1e1410eed636e977c9afb6ca8a249e4096b (diff)
Android: provide an ID to document providers
This ID will be useful to get an instance of a document provider back from a different activity. Change-Id: I9419ea23d51f8e9ffd70252bd8e367cf51bde1ad (cherry picked from commit a3c3a13e8499e994b198b80566cdee9af9a7f2da)
Diffstat (limited to 'android')
-rw-r--r--android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java17
-rw-r--r--android/source/src/java/org/libreoffice/storage/IDocumentProvider.java11
-rw-r--r--android/source/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java4
-rw-r--r--android/source/src/java/org/libreoffice/storage/local/LocalDocumentsProvider.java11
-rw-r--r--android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java10
5 files changed, 44 insertions, 9 deletions
diff --git a/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java b/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
index d6e4ca1671fc..b8c05341d18a 100644
--- a/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
+++ b/android/source/src/java/org/libreoffice/storage/DocumentProviderFactory.java
@@ -57,9 +57,9 @@ public final class DocumentProviderFactory {
// initialize document providers list
instance.providers = new IDocumentProvider[3];
- instance.providers[0] = new LocalDocumentsDirectoryProvider();
- instance.providers[1] = new LocalDocumentsProvider();
- instance.providers[2] = new OwnCloudProvider(context);
+ instance.providers[0] = new LocalDocumentsDirectoryProvider(0);
+ instance.providers[1] = new LocalDocumentsProvider(1);
+ instance.providers[2] = new OwnCloudProvider(2, context);
// initialize document provider names list
instance.providerNames = new String[instance.providers.length];
@@ -80,13 +80,14 @@ public final class DocumentProviderFactory {
}
/**
- * Retrieve the provider associated to a certain position.
+ * Retrieve the provider associated to a certain id.
*
- * @param position
- * @return document provider in that position.
+ * @param id
+ * @return document provider with that id.
*/
- public IDocumentProvider getProvider(int position) {
- return providers[position];
+ public IDocumentProvider getProvider(int id) {
+ // as for now, id == position in providers array
+ return providers[id];
}
/**
diff --git a/android/source/src/java/org/libreoffice/storage/IDocumentProvider.java b/android/source/src/java/org/libreoffice/storage/IDocumentProvider.java
index bbfdecd94d48..edb026ff9433 100644
--- a/android/source/src/java/org/libreoffice/storage/IDocumentProvider.java
+++ b/android/source/src/java/org/libreoffice/storage/IDocumentProvider.java
@@ -43,4 +43,15 @@ public interface IDocumentProvider {
* @return string resource pointing to the provider name.
*/
int getNameResource();
+
+ /**
+ * Provides the unique ID for a document provider instance in a program.
+ *
+ * This ID should be set when the instance is built. It could be used to
+ * tell two instances of the same document provider apart, e. g. two
+ * instances of OwnCloudProvider pointing to different servers.
+ *
+ * @return Unique ID for a document provider instance.
+ */
+ int getId();
}
diff --git a/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java b/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java
index 92d93d6ae075..fb4236969cb2 100644
--- a/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java
+++ b/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsDirectoryProvider.java
@@ -25,6 +25,10 @@ import android.os.Environment;
*/
public class LocalDocumentsDirectoryProvider extends LocalDocumentsProvider {
+ public LocalDocumentsDirectoryProvider(int id) {
+ super(id);
+ }
+
@Override
public IFile getRootDirectory() {
File documentsDirectory = new File(
diff --git a/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsProvider.java b/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsProvider.java
index cc96ef0a46de..a1a84e8af55b 100644
--- a/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsProvider.java
+++ b/android/source/src/java/org/libreoffice/storage/local/LocalDocumentsProvider.java
@@ -23,6 +23,12 @@ import android.os.Environment;
*/
public class LocalDocumentsProvider implements IDocumentProvider {
+ private int id;
+
+ public LocalDocumentsProvider(int id) {
+ this.id = id;
+ }
+
@Override
public IFile getRootDirectory() {
return new LocalFile(Environment.getExternalStorageDirectory());
@@ -37,4 +43,9 @@ public class LocalDocumentsProvider implements IDocumentProvider {
public int getNameResource() {
return R.string.local_file_system;
}
+
+ @Override
+ public int getId() {
+ return id;
+ }
}
diff --git a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
index 66e4633fe5c6..bf866b92fef7 100644
--- a/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
+++ b/android/source/src/java/org/libreoffice/storage/owncloud/OwnCloudProvider.java
@@ -29,6 +29,8 @@ import com.owncloud.android.lib.resources.files.RemoteFile;
public class OwnCloudProvider implements IDocumentProvider,
OnSharedPreferenceChangeListener {
+ private int id;
+
private Context context;
private OwnCloudClient client;
private File cacheDir;
@@ -37,7 +39,8 @@ public class OwnCloudProvider implements IDocumentProvider,
private String userName;
private String password;
- public OwnCloudProvider(Context context) {
+ public OwnCloudProvider(int id, Context context) {
+ this.id = id;
this.context = context;
// read preferences
@@ -169,4 +172,9 @@ public class OwnCloudProvider implements IDocumentProvider,
if (changed)
setupClient();
}
+
+ @Override
+ public int getId() {
+ return id;
+ }
}