Loading src/com/owncloud/android/lib/common/OwnCloudAccount.java +3 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,9 @@ public class OwnCloudAccount { mSavedAccountName = savedAccount.name; mBaseUri = Uri.parse(AccountUtils.getBaseUrlForAccount(context, savedAccount)); mCredentials = AccountUtils.getCredentialsForAccount(context, savedAccount); if (mCredentials == null) { mCredentials = OwnCloudCredentialsFactory.getAnonymousCredentials(); } } Loading src/com/owncloud/android/lib/common/OwnCloudClientManagerFactory.java +28 −6 Original line number Diff line number Diff line Loading @@ -7,12 +7,12 @@ public class OwnCloudClientManagerFactory { SINGLE_SESSION_PER_ACCOUNT } public final static Policy DEFAULT_POLICY = Policy.ALWAYS_NEW_CLIENT; public static Policy sDefaultPolicy = Policy.ALWAYS_NEW_CLIENT; private static OwnCloudClientManager mDefaultSingleton; private static OwnCloudClientManager sDefaultSingleton; public static OwnCloudClientManager newDefaultOwnCloudClientManager() { return newOwnCloudClientManager(DEFAULT_POLICY); return newOwnCloudClientManager(sDefaultPolicy); } public static OwnCloudClientManager newOwnCloudClientManager(Policy policy) { Loading @@ -29,10 +29,32 @@ public class OwnCloudClientManagerFactory { } public static OwnCloudClientManager getDefaultSingleton() { if (mDefaultSingleton == null) { mDefaultSingleton = newDefaultOwnCloudClientManager(); if (sDefaultSingleton == null) { sDefaultSingleton = newDefaultOwnCloudClientManager(); } return mDefaultSingleton; return sDefaultSingleton; } public static void setDefaultPolicy(Policy policy) { if (defaultSingletonMustBeUpdated(policy)) { sDefaultSingleton = null; } sDefaultPolicy = policy; } private static boolean defaultSingletonMustBeUpdated(Policy policy) { if (sDefaultSingleton == null) { return false; } if (policy == Policy.ALWAYS_NEW_CLIENT && !(sDefaultSingleton instanceof SimpleFactoryManager)) { return true; } if (policy == Policy.SINGLE_SESSION_PER_ACCOUNT && !(sDefaultSingleton instanceof SingleSessionManager)) { return true; } return false; } } src/com/owncloud/android/lib/common/SingleSessionManager.java +10 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ public class SingleSessionManager implements OwnCloudClientManager { } else { Log.d(TAG, " reusing client {" + accountName + ", " + client.hashCode() + "}"); reusingKnown = true; keepCredentialsUpdated(account, client); } if (client == null) { Loading Loading @@ -191,6 +192,15 @@ public class SingleSessionManager implements OwnCloudClientManager { } */ private void keepCredentialsUpdated(OwnCloudAccount account, OwnCloudClient reusedClient) { OwnCloudCredentials recentCredentials = account.getCredentials(); if (!recentCredentials.getAuthToken().equals( reusedClient.getCredentials().getAuthToken())) { reusedClient.setCredentials(recentCredentials); } } @Override public synchronized OwnCloudClient removeClientFor(Account savedAccount, Context context) throws AccountNotFoundException, OperationCanceledException, AuthenticatorException, IOException { Loading Loading
src/com/owncloud/android/lib/common/OwnCloudAccount.java +3 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,9 @@ public class OwnCloudAccount { mSavedAccountName = savedAccount.name; mBaseUri = Uri.parse(AccountUtils.getBaseUrlForAccount(context, savedAccount)); mCredentials = AccountUtils.getCredentialsForAccount(context, savedAccount); if (mCredentials == null) { mCredentials = OwnCloudCredentialsFactory.getAnonymousCredentials(); } } Loading
src/com/owncloud/android/lib/common/OwnCloudClientManagerFactory.java +28 −6 Original line number Diff line number Diff line Loading @@ -7,12 +7,12 @@ public class OwnCloudClientManagerFactory { SINGLE_SESSION_PER_ACCOUNT } public final static Policy DEFAULT_POLICY = Policy.ALWAYS_NEW_CLIENT; public static Policy sDefaultPolicy = Policy.ALWAYS_NEW_CLIENT; private static OwnCloudClientManager mDefaultSingleton; private static OwnCloudClientManager sDefaultSingleton; public static OwnCloudClientManager newDefaultOwnCloudClientManager() { return newOwnCloudClientManager(DEFAULT_POLICY); return newOwnCloudClientManager(sDefaultPolicy); } public static OwnCloudClientManager newOwnCloudClientManager(Policy policy) { Loading @@ -29,10 +29,32 @@ public class OwnCloudClientManagerFactory { } public static OwnCloudClientManager getDefaultSingleton() { if (mDefaultSingleton == null) { mDefaultSingleton = newDefaultOwnCloudClientManager(); if (sDefaultSingleton == null) { sDefaultSingleton = newDefaultOwnCloudClientManager(); } return mDefaultSingleton; return sDefaultSingleton; } public static void setDefaultPolicy(Policy policy) { if (defaultSingletonMustBeUpdated(policy)) { sDefaultSingleton = null; } sDefaultPolicy = policy; } private static boolean defaultSingletonMustBeUpdated(Policy policy) { if (sDefaultSingleton == null) { return false; } if (policy == Policy.ALWAYS_NEW_CLIENT && !(sDefaultSingleton instanceof SimpleFactoryManager)) { return true; } if (policy == Policy.SINGLE_SESSION_PER_ACCOUNT && !(sDefaultSingleton instanceof SingleSessionManager)) { return true; } return false; } }
src/com/owncloud/android/lib/common/SingleSessionManager.java +10 −0 Original line number Diff line number Diff line Loading @@ -99,6 +99,7 @@ public class SingleSessionManager implements OwnCloudClientManager { } else { Log.d(TAG, " reusing client {" + accountName + ", " + client.hashCode() + "}"); reusingKnown = true; keepCredentialsUpdated(account, client); } if (client == null) { Loading Loading @@ -191,6 +192,15 @@ public class SingleSessionManager implements OwnCloudClientManager { } */ private void keepCredentialsUpdated(OwnCloudAccount account, OwnCloudClient reusedClient) { OwnCloudCredentials recentCredentials = account.getCredentials(); if (!recentCredentials.getAuthToken().equals( reusedClient.getCredentials().getAuthToken())) { reusedClient.setCredentials(recentCredentials); } } @Override public synchronized OwnCloudClient removeClientFor(Account savedAccount, Context context) throws AccountNotFoundException, OperationCanceledException, AuthenticatorException, IOException { Loading