1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-06-07 16:06:08 +00:00

Added method to OwnCloudClientMap to get/create new OwnCloudClients without credentials

This commit is contained in:
David A. Velasco 2014-06-10 12:48:45 +02:00
parent 057758671f
commit b5ff057e95

View File

@ -35,6 +35,7 @@ import android.accounts.AuthenticatorException;
import android.accounts.OperationCanceledException; import android.accounts.OperationCanceledException;
import android.content.Context; import android.content.Context;
import android.util.Log; import android.util.Log;
import android.net.Uri;
import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClient;
import com.owncloud.android.lib.common.OwnCloudClientFactory; import com.owncloud.android.lib.common.OwnCloudClientFactory;
@ -58,6 +59,9 @@ public class OwnCloudClientMap {
private static ConcurrentMap<String, OwnCloudClient> mClients = private static ConcurrentMap<String, OwnCloudClient> mClients =
new java.util.concurrent.ConcurrentHashMap<String, OwnCloudClient>(); new java.util.concurrent.ConcurrentHashMap<String, OwnCloudClient>();
private static ConcurrentMap<String, OwnCloudClient> mAnonymousClient =
new java.util.concurrent.ConcurrentHashMap<String, OwnCloudClient>();
public static synchronized OwnCloudClient getClientFor(Account account, Context context) public static synchronized OwnCloudClient getClientFor(Account account, Context context)
throws OperationCanceledException, AuthenticatorException, throws OperationCanceledException, AuthenticatorException,
AccountNotFoundException, IOException { AccountNotFoundException, IOException {
@ -73,6 +77,20 @@ public class OwnCloudClientMap {
} }
public static synchronized OwnCloudClient getAnonymousClientFor(
Uri baseUri, Context context, boolean followRedirects) {
OwnCloudClient client = mAnonymousClient.get(baseUri.toString());
if (client == null) {
client = OwnCloudClientFactory.createOwnCloudClient(
baseUri,
context.getApplicationContext(),
followRedirects);
mAnonymousClient.putIfAbsent(baseUri.toString(), client);
}
return client;
}
public static synchronized OwnCloudClient removeClientFor(Account account) { public static synchronized OwnCloudClient removeClientFor(Account account) {
return mClients.remove(account.name); return mClients.remove(account.name);
} }