diff --git a/src/com/owncloud/android/lib/common/OwnCloudClientMap.java b/src/com/owncloud/android/lib/common/OwnCloudClientMap.java index 9c0bf19b..cbe5cb0d 100644 --- a/src/com/owncloud/android/lib/common/OwnCloudClientMap.java +++ b/src/com/owncloud/android/lib/common/OwnCloudClientMap.java @@ -28,6 +28,7 @@ import java.io.IOException; import java.util.concurrent.ConcurrentMap; import android.accounts.Account; +import android.accounts.AccountManager; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.content.Context; @@ -35,6 +36,7 @@ import android.content.Context; import com.owncloud.android.lib.common.OwnCloudClient; import com.owncloud.android.lib.common.OwnCloudClientFactory; import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException; +import com.owncloud.android.lib.common.accounts.AccountUtils.Constants; /** * Map for {@link OwnCloudClient} instances associated to ownCloud {@link Account}s @@ -43,9 +45,12 @@ import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundExce * * TODO consider converting into a non static object saved in the application context * @author David A. Velasco + * @author masensio */ + public class OwnCloudClientMap { + private static ConcurrentMap mClients = new java.util.concurrent.ConcurrentHashMap(); @@ -73,4 +78,14 @@ public class OwnCloudClientMap { mClients.clear(); } + public static synchronized void saveClient(Account account, Context context) { + + // Account Manager + AccountManager ac = AccountManager.get(context); + + OwnCloudClient client = mClients.get(account); + + String cookies = client.getState().getCookies().toString(); + ac.setUserData(account, Constants.KEY_COOKIES, cookies); + } } diff --git a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java index 7f0cd351..84c9a6a9 100644 --- a/src/com/owncloud/android/lib/common/accounts/AccountUtils.java +++ b/src/com/owncloud/android/lib/common/accounts/AccountUtils.java @@ -160,5 +160,9 @@ public class AccountUtils { * Flag signaling if the ownCloud server supports Share API" */ public static final String KEY_SUPPORTS_SHARE_API = "oc_supports_share_api"; + /** + * OC accout cookies + */ + public static final String KEY_COOKIES = "oc_account_cookies"; } }