diff --git a/app/src/androidTest/java/com/owncloud/android/ui/adapter/UnifiedSearchListAdapterIT.kt b/app/src/androidTest/java/com/owncloud/android/ui/adapter/UnifiedSearchListAdapterIT.kt index 236d841f76ad..10e19ac4e5e7 100644 --- a/app/src/androidTest/java/com/owncloud/android/ui/adapter/UnifiedSearchListAdapterIT.kt +++ b/app/src/androidTest/java/com/owncloud/android/ui/adapter/UnifiedSearchListAdapterIT.kt @@ -142,7 +142,7 @@ class UnifiedSearchListAdapterIT : AbstractIT() { fileThumbnailGenerator = FileThumbnailGenerator( storageManager = Provider { sut.storageManager }, preferences = preferences, - viewThemeUtils = sut.viewThemeUtils, + viewThemeUtils = Provider { sut.viewThemeUtils }, context = targetContext, accountManager = accountManager ), 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 6df3a013d9e4..b4686f2c8fd5 100644 --- a/app/src/main/java/com/nextcloud/client/di/AppModule.java +++ b/app/src/main/java/com/nextcloud/client/di/AppModule.java @@ -236,7 +236,7 @@ AppNotificationManager notificationsManager(Context context, return new AppNotificationManagerImpl(context, context.getResources(), platformNotificationsManager, - viewThemeUtilsProvider.get()); + viewThemeUtilsProvider); } @Provides @@ -274,7 +274,6 @@ CertificateValidator certificateValidator() { } @Provides - @Singleton FolderThumbnailGenerator folderThumbnailGenerator( AppPreferences appPreferences, ViewThemeUtils viewThemeUtils, diff --git a/app/src/main/java/com/nextcloud/client/notifications/AppNotificationManagerImpl.kt b/app/src/main/java/com/nextcloud/client/notifications/AppNotificationManagerImpl.kt index 2aed1d21e740..5d7d64729974 100644 --- a/app/src/main/java/com/nextcloud/client/notifications/AppNotificationManagerImpl.kt +++ b/app/src/main/java/com/nextcloud/client/notifications/AppNotificationManagerImpl.kt @@ -23,12 +23,13 @@ import com.owncloud.android.ui.preview.PreviewImageActivity import com.owncloud.android.ui.preview.PreviewImageFragment import com.owncloud.android.utils.theme.ViewThemeUtils import javax.inject.Inject +import javax.inject.Provider class AppNotificationManagerImpl @Inject constructor( private val context: Context, private val resources: Resources, private val platformNotificationsManager: NotificationManager, - private val viewThemeUtils: ViewThemeUtils + private val viewThemeUtils: Provider ) : AppNotificationManager { companion object { @@ -39,7 +40,7 @@ class AppNotificationManagerImpl @Inject constructor( private fun builder(channelId: String): NotificationCompat.Builder { val builder = NotificationCompat.Builder(context, channelId) - viewThemeUtils.androidx.themeNotificationCompatBuilder(context, builder) + viewThemeUtils.get().androidx.themeNotificationCompatBuilder(context, builder) return builder } diff --git a/app/src/main/java/com/nextcloud/utils/thumbnail/FileThumbnailGenerator.kt b/app/src/main/java/com/nextcloud/utils/thumbnail/FileThumbnailGenerator.kt index 91000ecbf005..49a32191b3c8 100644 --- a/app/src/main/java/com/nextcloud/utils/thumbnail/FileThumbnailGenerator.kt +++ b/app/src/main/java/com/nextcloud/utils/thumbnail/FileThumbnailGenerator.kt @@ -49,7 +49,7 @@ import kotlin.math.roundToInt class FileThumbnailGenerator @Inject constructor( private val storageManager: Provider, private val preferences: AppPreferences, - private val viewThemeUtils: ViewThemeUtils, + private val viewThemeUtils: Provider, private val context: Context, private val accountManager: UserAccountManager ) { @@ -222,10 +222,11 @@ class FileThumbnailGenerator @Inject constructor( } } - private fun OCFile.mimeIcon(): Drawable? = MimeTypeUtil.getFileTypeIcon(mimeType, fileName, context, viewThemeUtils) + private fun OCFile.mimeIcon(): Drawable? = + MimeTypeUtil.getFileTypeIcon(mimeType, fileName, context, viewThemeUtils.get()) private fun OCFile.placeholder(): Bitmap = synchronized(placeholders) { - placeholders.getOrPut(mimeType.orEmpty()) { + placeholders.getOrPut("${accountManager.user.accountName}:${mimeType.orEmpty()}") { val drawable = mimeIcon() ?: ResourcesCompat.getDrawable(context.resources, R.drawable.file_image, null) ?: Color.GRAY.toDrawable() diff --git a/app/src/main/java/com/nextcloud/utils/thumbnail/ThumbnailGenerator.kt b/app/src/main/java/com/nextcloud/utils/thumbnail/ThumbnailGenerator.kt index b24d1aabaf2a..558650a08d60 100644 --- a/app/src/main/java/com/nextcloud/utils/thumbnail/ThumbnailGenerator.kt +++ b/app/src/main/java/com/nextcloud/utils/thumbnail/ThumbnailGenerator.kt @@ -10,9 +10,7 @@ package com.nextcloud.utils.thumbnail import android.widget.ImageView import com.owncloud.android.datamodel.OCFile import javax.inject.Inject -import javax.inject.Singleton -@Singleton class ThumbnailGenerator @Inject constructor( val fileThumbnailGenerator: FileThumbnailGenerator, val folderThumbnailGenerator: FolderThumbnailGenerator diff --git a/app/src/main/java/com/owncloud/android/utils/theme/MaterialSchemesProviderImpl.kt b/app/src/main/java/com/owncloud/android/utils/theme/MaterialSchemesProviderImpl.kt index 91c7774a103b..60fac26c7916 100644 --- a/app/src/main/java/com/owncloud/android/utils/theme/MaterialSchemesProviderImpl.kt +++ b/app/src/main/java/com/owncloud/android/utils/theme/MaterialSchemesProviderImpl.kt @@ -29,14 +29,14 @@ internal class MaterialSchemesProviderImpl @Inject constructor( private val themeCache: MutableMap = ConcurrentHashMap() override fun getMaterialSchemesForUser(user: User): MaterialSchemes { - val url: String = user.server.uri.toString() + val accountName = user.accountName - if (!themeCache.containsKey(url)) { + if (!themeCache.containsKey(accountName)) { val capability = CapabilityUtils.getCapability(user, context) - themeCache[url] = getMaterialSchemesForCapability(capability) + themeCache[accountName] = getMaterialSchemesForCapability(capability) } - return themeCache[url]!! + return themeCache[accountName]!! } override fun getMaterialSchemesForCapability(capability: OCCapability): MaterialSchemes {