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
This commit is contained in:
@@ -57,9 +57,9 @@ public final class DocumentProviderFactory {
|
|||||||
|
|
||||||
// initialize document providers list
|
// initialize document providers list
|
||||||
instance.providers = new IDocumentProvider[3];
|
instance.providers = new IDocumentProvider[3];
|
||||||
instance.providers[0] = new LocalDocumentsDirectoryProvider();
|
instance.providers[0] = new LocalDocumentsDirectoryProvider(0);
|
||||||
instance.providers[1] = new LocalDocumentsProvider();
|
instance.providers[1] = new LocalDocumentsProvider(1);
|
||||||
instance.providers[2] = new OwnCloudProvider(context);
|
instance.providers[2] = new OwnCloudProvider(2, context);
|
||||||
|
|
||||||
// initialize document provider names list
|
// initialize document provider names list
|
||||||
instance.providerNames = new String[instance.providers.length];
|
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
|
* @param id
|
||||||
* @return document provider in that position.
|
* @return document provider with that id.
|
||||||
*/
|
*/
|
||||||
public IDocumentProvider getProvider(int position) {
|
public IDocumentProvider getProvider(int id) {
|
||||||
return providers[position];
|
// as for now, id == position in providers array
|
||||||
|
return providers[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -43,4 +43,15 @@ public interface IDocumentProvider {
|
|||||||
* @return string resource pointing to the provider name.
|
* @return string resource pointing to the provider name.
|
||||||
*/
|
*/
|
||||||
int getNameResource();
|
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();
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,10 @@ import android.os.Environment;
|
|||||||
*/
|
*/
|
||||||
public class LocalDocumentsDirectoryProvider extends LocalDocumentsProvider {
|
public class LocalDocumentsDirectoryProvider extends LocalDocumentsProvider {
|
||||||
|
|
||||||
|
public LocalDocumentsDirectoryProvider(int id) {
|
||||||
|
super(id);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IFile getRootDirectory() {
|
public IFile getRootDirectory() {
|
||||||
File documentsDirectory = new File(
|
File documentsDirectory = new File(
|
||||||
|
@@ -23,6 +23,12 @@ import android.os.Environment;
|
|||||||
*/
|
*/
|
||||||
public class LocalDocumentsProvider implements IDocumentProvider {
|
public class LocalDocumentsProvider implements IDocumentProvider {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
public LocalDocumentsProvider(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IFile getRootDirectory() {
|
public IFile getRootDirectory() {
|
||||||
return new LocalFile(Environment.getExternalStorageDirectory());
|
return new LocalFile(Environment.getExternalStorageDirectory());
|
||||||
@@ -37,4 +43,9 @@ public class LocalDocumentsProvider implements IDocumentProvider {
|
|||||||
public int getNameResource() {
|
public int getNameResource() {
|
||||||
return R.string.local_file_system;
|
return R.string.local_file_system;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -29,6 +29,8 @@ import com.owncloud.android.lib.resources.files.RemoteFile;
|
|||||||
public class OwnCloudProvider implements IDocumentProvider,
|
public class OwnCloudProvider implements IDocumentProvider,
|
||||||
OnSharedPreferenceChangeListener {
|
OnSharedPreferenceChangeListener {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
private Context context;
|
private Context context;
|
||||||
private OwnCloudClient client;
|
private OwnCloudClient client;
|
||||||
private File cacheDir;
|
private File cacheDir;
|
||||||
@@ -37,7 +39,8 @@ public class OwnCloudProvider implements IDocumentProvider,
|
|||||||
private String userName;
|
private String userName;
|
||||||
private String password;
|
private String password;
|
||||||
|
|
||||||
public OwnCloudProvider(Context context) {
|
public OwnCloudProvider(int id, Context context) {
|
||||||
|
this.id = id;
|
||||||
this.context = context;
|
this.context = context;
|
||||||
|
|
||||||
// read preferences
|
// read preferences
|
||||||
@@ -169,4 +172,9 @@ public class OwnCloudProvider implements IDocumentProvider,
|
|||||||
if (changed)
|
if (changed)
|
||||||
setupClient();
|
setupClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user