From 991a390a2c7709c1280270fd7c663c905f0bf204 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Thu, 6 Jun 2024 10:17:24 +0200 Subject: [PATCH 1/9] 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 fc17209873d8..2c099cbed8b1 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 0b1de27ae297befa63baac967d05ef6db60f26cb Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:16:47 +0200 Subject: [PATCH 2/9] 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 4adff4d6a44b..0b170a3aed32 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 2c099cbed8b1..5343f49b83e5 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 ae15f5c733950c2d6cdd67cc3d7656f32a4a35e7 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:18:26 +0200 Subject: [PATCH 3/9] 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 0b170a3aed32..a37afe724fa8 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 5343f49b83e5..05ed0a9891d2 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 09ef6e1a163e..81a3f40723c2 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 b53f9f60939374f0e36c6be32e08e0009dbbbc3a Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:56:51 +0200 Subject: [PATCH 4/9] 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 58b3371efcf6..fbe2e8503ccc 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 40709c984c75..5e5c811ed6ea 100644 --- a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java +++ b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java @@ -39,8 +39,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; @@ -51,6 +53,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 final AccountManager accountManager; @@ -132,37 +135,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 a37afe724fa8..d190d6bb7591 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 99be0ad500106aa0204e3b5f70b09b993c0f99a8 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 16:57:10 +0200 Subject: [PATCH 5/9] Use non nullable account in session mix Signed-off-by: alperozturk --- .../com/nextcloud/client/account/UserAccountManagerImpl.java | 3 --- 1 file changed, 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 5e5c811ed6ea..07db947ed307 100644 --- a/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java +++ b/app/src/main/java/com/nextcloud/client/account/UserAccountManagerImpl.java @@ -18,14 +18,12 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.text.TextUtils; -import android.util.Log; import com.nextcloud.common.NextcloudClient; import com.owncloud.android.MainApp; 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; @@ -42,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 ce099ad0e2354a433b25b024a52e749e2922201a Mon Sep 17 00:00:00 2001 From: alperozturk Date: Mon, 10 Jun 2024 17:08:49 +0200 Subject: [PATCH 6/9] 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 07db947ed307..acae160d6ae3 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 final 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 472af83d784f..a87b01ee1f99 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 d1e3f59afc38fe3f3028287c84866ba404e0bb24 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Tue, 11 Jun 2024 09:58:23 +0200 Subject: [PATCH 7/9] 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 d190d6bb7591..f4175dbaf05f 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 77a34ac4817206a2cde76b62ca1f44e73b6f5f66 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Tue, 11 Jun 2024 14:15:39 +0200 Subject: [PATCH 8/9] Add AnonymousAccount for fresh install Signed-off-by: alperozturk --- .../account/UserAccountManagerImpl.java | 19 ++++++++++++++----- .../nextcloud/client/mixins/SessionMixin.kt | 19 ++++++++++++++++--- .../utils/extensions/AccountExtensions.kt | 14 ++++++++++++++ app/src/main/res/values/strings.xml | 2 ++ 4 files changed, 46 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 acae160d6ae3..1554e68e8113 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; } @@ -252,7 +261,7 @@ public OwnCloudAccount getCurrentOwnCloudAccount() { } @Override - @Nullable + @NonNull public Account getAccountByName(String name) { for (Account account : getAccounts()) { if (account.name.equals(name)) { @@ -260,7 +269,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 f4175dbaf05f..6cbd5132635e 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)) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 63679a057b7b..d3bcdc8e5459 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -30,6 +30,8 @@ Proxy Host Name Proxy Port + AnonymousAccountType + Unable to fetch task types, please check your internet connection. Unable to fetch task list, please check your internet connection. From fb9e2e0ef226a9c92b7dce6a89567e6da0249384 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 12 Jun 2024 09:21:59 +0200 Subject: [PATCH 9/9] Account cannot be null so test is removed Signed-off-by: alperozturk --- .../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 81a3f40723c2..135eeb07c31a 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() - } }