From 5780ad76aa1986951f5644345ff8787f042c7da1 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Thu, 6 Jun 2024 10:17:24 +0200 Subject: [PATCH 01/10] Use DI if getStorageManager is null Signed-off-by: alperozturk --- .../com/owncloud/android/ui/activity/BaseActivity.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java index 999fd3c3e17c..9fb3ac60c351 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java @@ -48,6 +48,7 @@ public abstract class BaseActivity extends AppCompatActivity implements Injectab @Inject UserAccountManager accountManager; @Inject AppPreferences preferences; + @Inject FileDataStorageManager fileDataStorageManager; private AppPreferences.Listener onPreferencesChanged = new AppPreferences.Listener() { @Override @@ -174,6 +175,10 @@ public Optional getUser() { } public FileDataStorageManager getStorageManager() { - return sessionMixin.getStorageManager(); + FileDataStorageManager result = sessionMixin.getStorageManager(); + if (result == null) { + result = fileDataStorageManager; + } + return result; } } From 24ea5396189da573c6df1335754f8edce81bb5a7 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:16:47 +0200 Subject: [PATCH 02/10] Remove unnecessary FileDataStorageManager initialization in SessionMixin Signed-off-by: alperozturk --- .../nextcloud/client/mixins/SessionMixin.kt | 37 ++++++------------- .../android/ui/activity/BaseActivity.java | 6 +-- 2 files changed, 13 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt index 365b56e5aaca..b0eec315cf11 100644 --- a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt +++ b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt @@ -14,9 +14,7 @@ import android.content.Intent import android.os.Bundle import com.nextcloud.client.account.User import com.nextcloud.client.account.UserAccountManager -import com.owncloud.android.datamodel.FileDataStorageManager import com.owncloud.android.lib.resources.status.OCCapability -import com.owncloud.android.ui.activity.BaseActivity import com.owncloud.android.utils.theme.CapabilityUtils import java.util.Optional @@ -27,36 +25,26 @@ import java.util.Optional * It is an intermediary step facilitating comprehensive rework of * account handling logic. */ -class SessionMixin constructor( +class SessionMixin( private val activity: Activity, private val contentResolver: ContentResolver, private val accountManager: UserAccountManager ) : ActivityMixin { - - private companion object { - private val TAG = BaseActivity::class.java.simpleName - } - var currentAccount: Account? = null private set - var storageManager: FileDataStorageManager? = null - private set + val capabilities: OCCapability? get() = getUser() .map { CapabilityUtils.getCapability(it, activity) } .orElse(null) fun setAccount(account: Account?) { - val validAccount = account != null && accountManager.setCurrentOwnCloudAccount(account.name) - if (validAccount) { - currentAccount = account - } else { - swapToDefaultAccount() - } + val validAccount = (account != null && accountManager.setCurrentOwnCloudAccount(account.name)) - currentAccount?.let { - val storageManager = FileDataStorageManager(getUser().get(), contentResolver) - this.storageManager = storageManager + currentAccount = if (validAccount) { + account + } else { + getDefaultAccount() } } @@ -75,16 +63,15 @@ class SessionMixin constructor( * If no valid ownCloud [Account] exists, then the user is requested * to create a new ownCloud [Account]. */ - private fun swapToDefaultAccount() { + private fun getDefaultAccount(): Account? { // default to the most recently used account val newAccount = accountManager.currentAccount if (newAccount == null) { // no account available: force account creation - currentAccount = null startAccountCreation() - } else { - currentAccount = newAccount } + + return newAccount } /** @@ -111,7 +98,7 @@ class SessionMixin constructor( super.onRestart() val validAccount = currentAccount != null && accountManager.exists(currentAccount) if (!validAccount) { - swapToDefaultAccount() + getDefaultAccount() } } @@ -124,7 +111,7 @@ class SessionMixin constructor( override fun onResume() { super.onResume() if (currentAccount == null) { - swapToDefaultAccount() + getDefaultAccount() } } } diff --git a/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java index 9fb3ac60c351..c509d4307e37 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java @@ -175,10 +175,6 @@ public Optional getUser() { } public FileDataStorageManager getStorageManager() { - FileDataStorageManager result = sessionMixin.getStorageManager(); - if (result == null) { - result = fileDataStorageManager; - } - return result; + return fileDataStorageManager; } } From 3cd41cd70512275706525a90fca46141a57623c6 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:18:26 +0200 Subject: [PATCH 03/10] Remove unnecessary FileDataStorageManager initialization in SessionMixin Signed-off-by: alperozturk --- .../main/java/com/nextcloud/client/mixins/SessionMixin.kt | 2 -- .../java/com/owncloud/android/ui/activity/BaseActivity.java | 4 +--- .../java/com/nextcloud/client/mixins/SessionMixinTest.kt | 5 ----- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt index b0eec315cf11..f2e057a96d59 100644 --- a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt +++ b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt @@ -9,7 +9,6 @@ package com.nextcloud.client.mixins import android.accounts.Account import android.app.Activity -import android.content.ContentResolver import android.content.Intent import android.os.Bundle import com.nextcloud.client.account.User @@ -27,7 +26,6 @@ import java.util.Optional */ class SessionMixin( private val activity: Activity, - private val contentResolver: ContentResolver, private val accountManager: UserAccountManager ) : ActivityMixin { var currentAccount: Account? = null diff --git a/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java b/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java index c509d4307e37..7a57b67b745b 100644 --- a/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java +++ b/app/src/main/java/com/owncloud/android/ui/activity/BaseActivity.java @@ -64,9 +64,7 @@ public UserAccountManager getUserAccountManager() { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - sessionMixin = new SessionMixin(this, - getContentResolver(), - accountManager); + sessionMixin = new SessionMixin(this, accountManager); mixinRegistry.add(sessionMixin); if (enableAccountHandling) { diff --git a/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt b/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt index 97c5dac4b1fe..f1bb52d6d65d 100644 --- a/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt +++ b/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt @@ -8,7 +8,6 @@ package com.nextcloud.client.mixins import android.app.Activity -import android.content.ContentResolver import com.nextcloud.client.account.UserAccountManager import junit.framework.Assert.assertNull import org.junit.Before @@ -24,9 +23,6 @@ class SessionMixinTest { @Mock private lateinit var activity: Activity - @Mock - private lateinit var contentResolver: ContentResolver - @Mock private lateinit var userAccountManager: UserAccountManager @@ -38,7 +34,6 @@ class SessionMixinTest { session = spy( SessionMixin( activity, - contentResolver, userAccountManager ) ) From 1744c54c797346dcf35ae023ccf6e1015ab476bb Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:56:51 +0200 Subject: [PATCH 04/10] Use non nullable account in session mix Signed-off-by: alperozturk --- .../account/CurrentAccountProvider.java | 2 +- .../account/UserAccountManagerImpl.java | 40 ++++++++----------- .../nextcloud/client/mixins/SessionMixin.kt | 28 ++++--------- 3 files changed, 25 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/account/CurrentAccountProvider.java b/app/src/main/java/com/nextcloud/client/account/CurrentAccountProvider.java index 5852fc8ff5e8..0ff0744976b7 100644 --- a/app/src/main/java/com/nextcloud/client/account/CurrentAccountProvider.java +++ b/app/src/main/java/com/nextcloud/client/account/CurrentAccountProvider.java @@ -24,7 +24,7 @@ public interface CurrentAccountProvider { * @return Currently selected {@link Account} or first valid {@link Account} registered in OS or null, if not available at all. */ @Deprecated - @Nullable + @NonNull Account getCurrentAccount(); /** diff --git a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java index 04bd30918c54..86a4f56c9d36 100644 --- a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java +++ b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java @@ -38,8 +38,10 @@ import java.io.IOException; import java.net.URI; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.stream.Stream; import javax.inject.Inject; @@ -50,6 +52,7 @@ public class UserAccountManagerImpl implements UserAccountManager { private static final String TAG = UserAccountManagerImpl.class.getSimpleName(); private static final String PREF_SELECT_OC_ACCOUNT = "select_oc_account"; + @Inject ArbitraryDataProvider arbitraryDataProvider; private Context context; private AccountManager accountManager; @@ -131,37 +134,28 @@ public boolean exists(Account account) { } @Override - @Nullable + @NonNull public Account getCurrentAccount() { Account[] ocAccounts = getAccounts(); - Account defaultAccount = null; - - ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProviderImpl(context); SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(context); String accountName = appPreferences.getString(PREF_SELECT_OC_ACCOUNT, null); - // account validation: the saved account MUST be in the list of ownCloud Accounts known by the AccountManager - if (accountName != null) { - for (Account account : ocAccounts) { - if (account.name.equals(accountName)) { - defaultAccount = account; - break; - } - } + Account defaultAccount = Arrays.stream(ocAccounts) + .filter(account -> account.name.equals(accountName)) + .findFirst() + .orElse(null); + + // take first which is not pending for removal account as fallback + if (defaultAccount == null) { + defaultAccount = Arrays.stream(ocAccounts) + .filter(account -> !arbitraryDataProvider.getBooleanValue(account.name, PENDING_FOR_REMOVAL)) + .findFirst() + .orElse(null); } - if (defaultAccount == null && ocAccounts.length > 0) { - // take first which is not pending for removal account as fallback - for (Account account: ocAccounts) { - boolean pendingForRemoval = arbitraryDataProvider.getBooleanValue(account.name, - PENDING_FOR_REMOVAL); - - if (!pendingForRemoval) { - defaultAccount = account; - break; - } - } + if (defaultAccount == null) { + defaultAccount = ocAccounts[0]; } return defaultAccount; diff --git a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt index f2e057a96d59..9f7d7346a356 100644 --- a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt +++ b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt @@ -28,7 +28,7 @@ class SessionMixin( private val activity: Activity, private val accountManager: UserAccountManager ) : ActivityMixin { - var currentAccount: Account? = null + lateinit var currentAccount: Account private set val capabilities: OCCapability? @@ -36,8 +36,8 @@ class SessionMixin( .map { CapabilityUtils.getCapability(it, activity) } .orElse(null) - fun setAccount(account: Account?) { - val validAccount = (account != null && accountManager.setCurrentOwnCloudAccount(account.name)) + fun setAccount(account: Account) { + val validAccount = (accountManager.setCurrentOwnCloudAccount(account.name)) currentAccount = if (validAccount) { account @@ -51,7 +51,6 @@ class SessionMixin( } fun getUser(): Optional = when (val it = this.currentAccount) { - null -> Optional.empty() else -> accountManager.getUser(it.name) } @@ -61,15 +60,9 @@ class SessionMixin( * If no valid ownCloud [Account] exists, then the user is requested * to create a new ownCloud [Account]. */ - private fun getDefaultAccount(): Account? { + private fun getDefaultAccount(): Account { // default to the most recently used account - val newAccount = accountManager.currentAccount - if (newAccount == null) { - // no account available: force account creation - startAccountCreation() - } - - return newAccount + return accountManager.currentAccount } /** @@ -83,7 +76,7 @@ class SessionMixin( super.onNewIntent(intent) val current = accountManager.currentAccount val currentAccount = this.currentAccount - if (current != null && currentAccount != null && !currentAccount.name.equals(current.name)) { + if (!currentAccount.name.equals(current.name)) { this.currentAccount = current } } @@ -94,7 +87,7 @@ class SessionMixin( */ override fun onRestart() { super.onRestart() - val validAccount = currentAccount != null && accountManager.exists(currentAccount) + val validAccount = accountManager.exists(currentAccount) if (!validAccount) { getDefaultAccount() } @@ -105,11 +98,4 @@ class SessionMixin( val account = accountManager.currentAccount setAccount(account) } - - override fun onResume() { - super.onResume() - if (currentAccount == null) { - getDefaultAccount() - } - } } From 35b208ab50690e2773ef0d1c4f9d593b4c052d00 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:57:10 +0200 Subject: [PATCH 05/10] Use non nullable account in session mix Signed-off-by: alperozturk --- .../com/nextcloud/client/account/UserAccountManagerImpl.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java index 86a4f56c9d36..d66515ba2dbd 100644 --- a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java +++ b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java @@ -24,7 +24,6 @@ import com.owncloud.android.R; import com.owncloud.android.authentication.AuthenticatorActivity; import com.owncloud.android.datamodel.ArbitraryDataProvider; -import com.owncloud.android.datamodel.ArbitraryDataProviderImpl; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.OwnCloudAccount; import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; @@ -41,7 +40,6 @@ import java.util.Arrays; import java.util.List; import java.util.Optional; -import java.util.stream.Stream; import javax.inject.Inject; From a7cbe05c926a73bd9064834d8c23439bc203c9bb Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 17:08:49 +0200 Subject: [PATCH 06/10] Revert ArbitraryDataProvider due to a lot of constructor changes Signed-off-by: alperozturk --- .../com/nextcloud/client/account/UserAccountManagerImpl.java | 3 ++- app/src/main/java/com/nextcloud/client/di/AppModule.java | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java index d66515ba2dbd..1201fd5476f4 100644 --- a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java +++ b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java @@ -24,6 +24,7 @@ import com.owncloud.android.R; import com.owncloud.android.authentication.AuthenticatorActivity; import com.owncloud.android.datamodel.ArbitraryDataProvider; +import com.owncloud.android.datamodel.ArbitraryDataProviderImpl; import com.owncloud.android.datamodel.OCFile; import com.owncloud.android.lib.common.OwnCloudAccount; import com.owncloud.android.lib.common.OwnCloudClientManagerFactory; @@ -50,7 +51,6 @@ public class UserAccountManagerImpl implements UserAccountManager { private static final String TAG = UserAccountManagerImpl.class.getSimpleName(); private static final String PREF_SELECT_OC_ACCOUNT = "select_oc_account"; - @Inject ArbitraryDataProvider arbitraryDataProvider; private Context context; private AccountManager accountManager; @@ -136,6 +136,7 @@ public boolean exists(Account account) { public Account getCurrentAccount() { Account[] ocAccounts = getAccounts(); + ArbitraryDataProvider arbitraryDataProvider = new ArbitraryDataProviderImpl(context); SharedPreferences appPreferences = PreferenceManager.getDefaultSharedPreferences(context); String accountName = appPreferences.getString(PREF_SELECT_OC_ACCOUNT, null); diff --git a/app/src/main/java/com/nextcloud/client/di/AppModule.java b/app/src/main/java/com/nextcloud/client/di/AppModule.java index f522eba77662..eb79b07b7a3e 100644 --- a/app/src/main/java/com/nextcloud/client/di/AppModule.java +++ b/app/src/main/java/com/nextcloud/client/di/AppModule.java @@ -100,8 +100,7 @@ Resources resources(Application application) { @Provides UserAccountManager userAccountManager( Context context, - AccountManager accountManager - ) { + AccountManager accountManager) { return new UserAccountManagerImpl(context, accountManager); } From 1e3344f907b1980f4263eef66076be57ffbc5c1f Mon Sep 17 00:00:00 2001 From: alperozturk Date: Tue, 11 Jun 2024 09:58:23 +0200 Subject: [PATCH 07/10] Make getDefaultAccount inline Signed-off-by: alperozturk --- .../main/java/com/nextcloud/client/mixins/SessionMixin.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt index 9f7d7346a356..89cafa7e0b21 100644 --- a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt +++ b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt @@ -60,10 +60,7 @@ class SessionMixin( * If no valid ownCloud [Account] exists, then the user is requested * to create a new ownCloud [Account]. */ - private fun getDefaultAccount(): Account { - // default to the most recently used account - return accountManager.currentAccount - } + private fun getDefaultAccount(): Account = accountManager.currentAccount /** * Launches the account creation activity. From a71f24ed729ad6065d84060b578e649e09d904f6 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Tue, 11 Jun 2024 14:15:39 +0200 Subject: [PATCH 08/10] Add AnonymousAccount for fresh install Signed-off-by: alperozturk --- .../account/UserAccountManagerImpl.java | 19 ++++++++++++++----- .../nextcloud/client/mixins/SessionMixin.kt | 19 ++++++++++++++++--- .../utils/extensions/AccountExtensions.kt | 14 ++++++++++++++ 3 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 app/src/main/java/com/nextcloud/utils/extensions/AccountExtensions.kt diff --git a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java index 1201fd5476f4..dc69cf2597f2 100644 --- a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java +++ b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java @@ -20,6 +20,7 @@ import android.text.TextUtils; import com.nextcloud.common.NextcloudClient; +import com.nextcloud.utils.extensions.AccountExtensionsKt; import com.owncloud.android.MainApp; import com.owncloud.android.R; import com.owncloud.android.authentication.AuthenticatorActivity; @@ -154,12 +155,20 @@ public Account getCurrentAccount() { } if (defaultAccount == null) { - defaultAccount = ocAccounts[0]; + if (ocAccounts.length > 0) { + defaultAccount = ocAccounts[0]; + } else { + defaultAccount = getAnonymousAccount(); + } } return defaultAccount; } + private Account getAnonymousAccount() { + return new Account("Anonymous", context.getString(R.string.anonymous_account_type)); + } + /** * Temporary solution to convert platform account to user instance. * It takes null and returns null on error to ease error handling @@ -169,8 +178,8 @@ public Account getCurrentAccount() { * @return User instance or null, if conversion failed */ @Nullable - private User createUserFromAccount(@Nullable Account account) { - if (account == null) { + private User createUserFromAccount(@NonNull Account account) { + if (AccountExtensionsKt.isAnonymous(account, context)) { return null; } @@ -247,7 +256,7 @@ public OwnCloudAccount getCurrentOwnCloudAccount() { } @Override - @Nullable + @NonNull public Account getAccountByName(String name) { for (Account account : getAccounts()) { if (account.name.equals(name)) { @@ -255,7 +264,7 @@ public Account getAccountByName(String name) { } } - return null; + return getAnonymousAccount(); } @Override diff --git a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt index 89cafa7e0b21..a18f74b1a9d0 100644 --- a/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt +++ b/app/src/main/java/com/nextcloud/client/mixins/SessionMixin.kt @@ -13,6 +13,7 @@ import android.content.Intent import android.os.Bundle import com.nextcloud.client.account.User import com.nextcloud.client.account.UserAccountManager +import com.nextcloud.utils.extensions.isAnonymous import com.owncloud.android.lib.resources.status.OCCapability import com.owncloud.android.utils.theme.CapabilityUtils import java.util.Optional @@ -50,8 +51,12 @@ class SessionMixin( setAccount(user.toPlatformAccount()) } - fun getUser(): Optional = when (val it = this.currentAccount) { - else -> accountManager.getUser(it.name) + fun getUser(): Optional { + return if (currentAccount.isAnonymous(activity)) { + Optional.empty() + } else { + accountManager.getUser(currentAccount.name) + } } /** @@ -60,7 +65,15 @@ class SessionMixin( * If no valid ownCloud [Account] exists, then the user is requested * to create a new ownCloud [Account]. */ - private fun getDefaultAccount(): Account = accountManager.currentAccount + private fun getDefaultAccount(): Account { + val defaultAccount = accountManager.currentAccount + + if (defaultAccount.isAnonymous(activity)) { + startAccountCreation() + } + + return defaultAccount + } /** * Launches the account creation activity. diff --git a/app/src/main/java/com/nextcloud/utils/extensions/AccountExtensions.kt b/app/src/main/java/com/nextcloud/utils/extensions/AccountExtensions.kt new file mode 100644 index 000000000000..c17f93c6f451 --- /dev/null +++ b/app/src/main/java/com/nextcloud/utils/extensions/AccountExtensions.kt @@ -0,0 +1,14 @@ +/* + * Nextcloud - Android Client + * + * SPDX-FileCopyrightText: 2024 Your Name + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +package com.nextcloud.utils.extensions + +import android.accounts.Account +import android.content.Context +import com.owncloud.android.R + +fun Account.isAnonymous(context: Context): Boolean = type.equals(context.getString(R.string.anonymous_account_type)) From e0e981cb8a1004a7da220ad30f6af1b270aba1ca Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 12 Jun 2024 09:21:59 +0200 Subject: [PATCH 09/10] Account cannot be null so test is removed Signed-off-by: alperozturk [skip ci] --- .../com/nextcloud/client/mixins/SessionMixinTest.kt | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt b/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt index f1bb52d6d65d..ea84abd85427 100644 --- a/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt +++ b/app/src/test/java/com/nextcloud/client/mixins/SessionMixinTest.kt @@ -9,7 +9,6 @@ package com.nextcloud.client.mixins import android.app.Activity import com.nextcloud.client.account.UserAccountManager -import junit.framework.Assert.assertNull import org.junit.Before import org.junit.Test import org.mockito.Mock @@ -50,15 +49,4 @@ class SessionMixinTest { // account manager receives parent activity verify(userAccountManager).startAccountCreation(same(activity)) } - - @Test - fun `trigger accountCreation on resume when currentAccount is null`() { - // WHEN - // start onResume and currentAccount is null - assertNull(session.currentAccount) - session.onResume() - // THEN - // accountCreation flow is started - verify(session).startAccountCreation() - } } From 859521d87166063269f12358d1fc06fc6c5c47ef Mon Sep 17 00:00:00 2001 From: alperozturk Date: Thu, 13 Jun 2024 17:56:21 +0200 Subject: [PATCH 10/10] Fix build error Signed-off-by: alperozturk --- app/src/main/res/values/strings.xml | 2 +- gradle/verification-metadata.xml | 36 +++++++++++++---------------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b1113f748a0e..95d1ed5a8c11 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -23,7 +23,7 @@ Oldest first Biggest first Smallest first - + AnonymousAccountType Assistant Unable to fetch task types, please check your internet connection. diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index ef5a88426f83..114ea78cac4e 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -5151,16 +5151,14 @@ - - - - - - - - + + + + + + + + @@ -5169,16 +5167,14 @@ - - - - - - - - + + + + + + + +