diff --git a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt index 94414c932..345beb79a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt @@ -3,7 +3,6 @@ package org.koitharu.kotatsu.bookmarks.ui.adapter import androidx.lifecycle.LifecycleOwner import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import coil.util.CoilUtils import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding import org.koitharu.kotatsu.R @@ -12,6 +11,7 @@ import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener import org.koitharu.kotatsu.bookmarks.domain.Bookmark import org.koitharu.kotatsu.databinding.ItemBookmarkBinding import org.koitharu.kotatsu.utils.ext.enqueueWith +import org.koitharu.kotatsu.utils.ext.isLowRamDevice import org.koitharu.kotatsu.utils.ext.newImageRequest import org.koitharu.kotatsu.utils.ext.referer @@ -36,8 +36,7 @@ fun bookmarkListAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .allowRgb565(true) - .scale(Scale.FILL) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) } diff --git a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt index c6d9ea4f9..3b8a0d061 100644 --- a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt @@ -5,7 +5,6 @@ import androidx.lifecycle.LifecycleOwner import androidx.recyclerview.widget.RecyclerView import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import coil.util.CoilUtils import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding import org.koitharu.kotatsu.R @@ -17,10 +16,7 @@ import org.koitharu.kotatsu.bookmarks.ui.model.BookmarksGroup import org.koitharu.kotatsu.databinding.ItemBookmarksGroupBinding import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.parsers.model.Manga -import org.koitharu.kotatsu.utils.ext.clearItemDecorations -import org.koitharu.kotatsu.utils.ext.enqueueWith -import org.koitharu.kotatsu.utils.ext.newImageRequest -import org.koitharu.kotatsu.utils.ext.referer +import org.koitharu.kotatsu.utils.ext.* fun bookmarksGroupAD( coil: ImageLoader, @@ -57,8 +53,7 @@ fun bookmarksGroupAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .scale(Scale.FILL) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) binding.textViewTitle.text = item.manga.title diff --git a/app/src/main/java/org/koitharu/kotatsu/core/ui/uiModule.kt b/app/src/main/java/org/koitharu/kotatsu/core/ui/uiModule.kt index 38ea33c75..889e37dfc 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/ui/uiModule.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/ui/uiModule.kt @@ -1,7 +1,5 @@ package org.koitharu.kotatsu.core.ui -import android.app.ActivityManager -import android.content.Context import android.text.Html import coil.ComponentRegistry import coil.ImageLoader @@ -13,6 +11,7 @@ import org.koin.dsl.module import org.koitharu.kotatsu.core.parser.FaviconMapper import org.koitharu.kotatsu.local.data.CacheDir import org.koitharu.kotatsu.local.data.CbzFetcher +import org.koitharu.kotatsu.utils.ext.isLowRamDevice import org.koitharu.kotatsu.utils.image.CoilImageGetter val uiModule @@ -30,7 +29,6 @@ val uiModule .directory(rootDir.resolve(CacheDir.THUMBS.dir)) .build() } - val activityManager = androidContext().getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager ImageLoader.Builder(androidContext()) .okHttpClient(httpClientFactory) .interceptorDispatcher(Dispatchers.Default) @@ -38,7 +36,7 @@ val uiModule .decoderDispatcher(Dispatchers.Default) .transformationDispatcher(Dispatchers.Default) .diskCache(diskCacheFactory) - .allowRgb565(activityManager.isLowRamDevice) + .allowRgb565(isLowRamDevice(androidContext())) .components( ComponentRegistry.Builder() .add(CbzFetcher.Factory()) diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt index 9655378bf..d36edf6ba 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt @@ -14,7 +14,6 @@ import androidx.core.view.isVisible import androidx.core.view.updatePadding import coil.ImageLoader import coil.request.ImageRequest -import coil.size.Scale import coil.util.CoilUtils import com.google.android.material.chip.Chip import kotlinx.coroutines.launch @@ -233,7 +232,6 @@ class DetailsFragment : .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .scale(Scale.FILL) .lifecycle(viewLifecycleOwner) .enqueueWith(coil) textViewTitle.text = scrobbling.title diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt index bea2c7f76..691bd7ad6 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt @@ -15,7 +15,6 @@ import androidx.core.net.toUri import androidx.fragment.app.FragmentManager import coil.ImageLoader import coil.request.ImageRequest -import coil.size.Scale import org.koin.android.ext.android.inject import org.koin.androidx.viewmodel.ext.android.sharedViewModel import org.koitharu.kotatsu.R @@ -116,7 +115,6 @@ class ScrobblingInfoBottomSheet : .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .scale(Scale.FILL) .enqueueWith(coil) } diff --git a/app/src/main/java/org/koitharu/kotatsu/download/domain/DownloadManager.kt b/app/src/main/java/org/koitharu/kotatsu/download/domain/DownloadManager.kt index d079eb51f..bc8ab323c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/download/domain/DownloadManager.kt +++ b/app/src/main/java/org/koitharu/kotatsu/download/domain/DownloadManager.kt @@ -5,7 +5,6 @@ import android.net.ConnectivityManager import android.webkit.MimeTypeMap import coil.ImageLoader import coil.request.ImageRequest -import coil.size.Scale import kotlinx.coroutines.* import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.sync.Semaphore @@ -204,7 +203,6 @@ class DownloadManager( .data(manga.coverUrl) .referer(manga.publicUrl) .size(coverWidth, coverHeight) - .scale(Scale.FILL) .build() ).drawable }.getOrNull() diff --git a/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt index 1a86d0153..f4ee8ecf6 100644 --- a/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt @@ -32,7 +32,7 @@ fun downloadItemAD( .placeholder(state.cover) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .enqueueWith(coil) }.onEach { state -> binding.textViewTitle.text = state.manga.title diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt index a2ba8831b..68df43a69 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt @@ -12,17 +12,13 @@ import androidx.core.widget.ImageViewCompat import androidx.lifecycle.LifecycleOwner import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import coil.util.CoilUtils import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding import org.koitharu.kotatsu.R import org.koitharu.kotatsu.databinding.ItemCategoryBinding import org.koitharu.kotatsu.favourites.ui.categories.FavouriteCategoriesListListener import org.koitharu.kotatsu.list.ui.model.ListModel -import org.koitharu.kotatsu.utils.ext.animatorDurationScale -import org.koitharu.kotatsu.utils.ext.enqueueWith -import org.koitharu.kotatsu.utils.ext.getThemeColor -import org.koitharu.kotatsu.utils.ext.newImageRequest +import org.koitharu.kotatsu.utils.ext.* fun categoryAD( coil: ImageLoader, @@ -80,8 +76,7 @@ fun categoryAD( .crossfade(crossFadeDuration * (i + 1)) .fallback(fallback) .error(R.drawable.ic_placeholder) - .scale(Scale.FILL) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) } diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt index 083294e58..c6218e1d0 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt @@ -4,7 +4,6 @@ import androidx.core.view.updateLayoutParams import androidx.lifecycle.LifecycleOwner import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import coil.util.CoilUtils import com.google.android.material.badge.BadgeDrawable import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding @@ -12,11 +11,12 @@ import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener import org.koitharu.kotatsu.databinding.ItemMangaGridBinding import org.koitharu.kotatsu.history.domain.PROGRESS_NONE +import org.koitharu.kotatsu.list.ui.ItemSizeResolver import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.list.ui.model.MangaGridModel import org.koitharu.kotatsu.parsers.model.Manga -import org.koitharu.kotatsu.list.ui.ItemSizeResolver import org.koitharu.kotatsu.utils.ext.enqueueWith +import org.koitharu.kotatsu.utils.ext.isLowRamDevice import org.koitharu.kotatsu.utils.ext.newImageRequest import org.koitharu.kotatsu.utils.ext.referer @@ -53,8 +53,7 @@ fun mangaGridItemAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .allowRgb565(true) - .scale(Scale.FILL) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) badge = itemView.bindBadge(badge, item.counter) diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt index 583be4079..0e6c2136c 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt @@ -3,7 +3,6 @@ package org.koitharu.kotatsu.list.ui.adapter import androidx.lifecycle.LifecycleOwner import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import coil.util.CoilUtils import com.google.android.material.badge.BadgeDrawable import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding @@ -14,10 +13,7 @@ import org.koitharu.kotatsu.history.domain.PROGRESS_NONE import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.list.ui.model.MangaListDetailedModel import org.koitharu.kotatsu.parsers.model.Manga -import org.koitharu.kotatsu.utils.ext.enqueueWith -import org.koitharu.kotatsu.utils.ext.newImageRequest -import org.koitharu.kotatsu.utils.ext.referer -import org.koitharu.kotatsu.utils.ext.textAndVisible +import org.koitharu.kotatsu.utils.ext.* fun mangaListDetailedItemAD( coil: ImageLoader, @@ -47,8 +43,7 @@ fun mangaListDetailedItemAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .scale(Scale.FILL) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) binding.textViewRating.textAndVisible = item.rating diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt index 5087baa3f..bcee267b9 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt @@ -3,7 +3,6 @@ package org.koitharu.kotatsu.list.ui.adapter import androidx.lifecycle.LifecycleOwner import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import coil.util.CoilUtils import com.google.android.material.badge.BadgeDrawable import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding @@ -13,10 +12,7 @@ import org.koitharu.kotatsu.databinding.ItemMangaListBinding import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.list.ui.model.MangaListModel import org.koitharu.kotatsu.parsers.model.Manga -import org.koitharu.kotatsu.utils.ext.enqueueWith -import org.koitharu.kotatsu.utils.ext.newImageRequest -import org.koitharu.kotatsu.utils.ext.referer -import org.koitharu.kotatsu.utils.ext.textAndVisible +import org.koitharu.kotatsu.utils.ext.* fun mangaListItemAD( coil: ImageLoader, @@ -45,8 +41,7 @@ fun mangaListItemAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .scale(Scale.FILL) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) itemView.bindBadge(badge, item.counter) diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt index b642a248b..8768bb80e 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/model/ListModelConversionExt.kt @@ -14,7 +14,7 @@ fun Manga.toListModel(counter: Int, progress: Float) = MangaListModel( id = id, title = title, subtitle = tags.joinToString(", ") { it.title }, - coverUrl = coverUrl, + coverUrl = largeCoverUrl ?: coverUrl, manga = this, counter = counter, progress = progress, @@ -26,7 +26,7 @@ fun Manga.toListDetailedModel(counter: Int, progress: Float) = MangaListDetailed subtitle = altTitle, rating = if (hasRating) String.format("%.1f", rating * 5) else null, tags = tags.joinToString(", ") { it.title }, - coverUrl = coverUrl, + coverUrl = largeCoverUrl ?: coverUrl, manga = this, counter = counter, progress = progress, @@ -35,7 +35,7 @@ fun Manga.toListDetailedModel(counter: Int, progress: Float) = MangaListDetailed fun Manga.toGridModel(counter: Int, progress: Float) = MangaGridModel( id = id, title = title, - coverUrl = coverUrl, + coverUrl = largeCoverUrl ?: coverUrl, manga = this, counter = counter, progress = progress, diff --git a/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/adapter/PageThumbnailAD.kt b/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/adapter/PageThumbnailAD.kt index 8cddae963..ff6bdb48e 100644 --- a/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/adapter/PageThumbnailAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/reader/ui/thumbnails/adapter/PageThumbnailAD.kt @@ -13,6 +13,7 @@ import org.koitharu.kotatsu.databinding.ItemPageThumbBinding import org.koitharu.kotatsu.parsers.model.MangaPage import org.koitharu.kotatsu.reader.domain.PageLoader import org.koitharu.kotatsu.reader.ui.thumbnails.PageThumbnail +import org.koitharu.kotatsu.utils.ext.isLowRamDevice import org.koitharu.kotatsu.utils.ext.referer import org.koitharu.kotatsu.utils.ext.setTextColorAttr @@ -39,7 +40,7 @@ fun pageThumbnailAD( .data(url) .referer(item.page.referer) .size(thumbSize) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .build() ).drawable }?.let { drawable -> @@ -50,7 +51,7 @@ fun pageThumbnailAD( ImageRequest.Builder(context) .data(file) .size(thumbSize) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .build() ).drawable } diff --git a/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt b/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt index f786b5d95..802e731a0 100644 --- a/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt @@ -3,7 +3,6 @@ package org.koitharu.kotatsu.scrobbling.ui.selector.adapter import androidx.lifecycle.LifecycleOwner import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import coil.util.CoilUtils import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding import org.koitharu.kotatsu.R @@ -12,6 +11,7 @@ import org.koitharu.kotatsu.databinding.ItemMangaListBinding import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.scrobbling.domain.model.ScrobblerManga import org.koitharu.kotatsu.utils.ext.enqueueWith +import org.koitharu.kotatsu.utils.ext.isLowRamDevice import org.koitharu.kotatsu.utils.ext.newImageRequest import org.koitharu.kotatsu.utils.ext.textAndVisible @@ -37,8 +37,7 @@ fun shikimoriMangaAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .scale(Scale.FILL) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) } diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt index fe5f3a177..40d6cda53 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt @@ -17,6 +17,7 @@ import org.koitharu.kotatsu.search.ui.suggestion.SearchSuggestionListener import org.koitharu.kotatsu.search.ui.suggestion.model.SearchSuggestionItem import org.koitharu.kotatsu.utils.RecyclerViewScrollCallback import org.koitharu.kotatsu.utils.ext.enqueueWith +import org.koitharu.kotatsu.utils.ext.isLowRamDevice import org.koitharu.kotatsu.utils.ext.newImageRequest fun searchSuggestionMangaListAD( @@ -64,7 +65,7 @@ private fun searchSuggestionMangaGridAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .allowRgb565(true) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) binding.textViewTitle.text = item.title diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt index 000ff5399..92dc9e7aa 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt @@ -3,7 +3,6 @@ package org.koitharu.kotatsu.tracker.ui.adapter import androidx.lifecycle.LifecycleOwner import coil.ImageLoader import coil.request.Disposable -import coil.size.Scale import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener @@ -12,6 +11,7 @@ import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.parsers.model.Manga import org.koitharu.kotatsu.tracker.ui.model.FeedItem import org.koitharu.kotatsu.utils.ext.enqueueWith +import org.koitharu.kotatsu.utils.ext.isLowRamDevice import org.koitharu.kotatsu.utils.ext.newImageRequest fun feedItemAD( @@ -34,8 +34,7 @@ fun feedItemAD( .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) .error(R.drawable.ic_placeholder) - .allowRgb565(true) - .scale(Scale.FILL) + .allowRgb565(isLowRamDevice(context)) .lifecycle(lifecycleOwner) .enqueueWith(coil) binding.textViewTitle.text = item.title diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/AndroidExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/AndroidExt.kt index 9a1c726ab..4f763c903 100644 --- a/app/src/main/java/org/koitharu/kotatsu/utils/ext/AndroidExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/AndroidExt.kt @@ -1,7 +1,9 @@ package org.koitharu.kotatsu.utils.ext +import android.app.ActivityManager import android.app.ActivityOptions import android.content.Context +import android.content.Context.ACTIVITY_SERVICE import android.content.SharedPreferences import android.content.pm.ResolveInfo import android.graphics.Color @@ -17,6 +19,7 @@ import android.view.ViewPropertyAnimator import android.view.Window import androidx.activity.result.ActivityResultLauncher import androidx.core.app.ActivityOptionsCompat +import androidx.core.content.ContextCompat.getSystemService import androidx.core.view.children import androidx.core.view.descendants import androidx.lifecycle.Lifecycle @@ -35,6 +38,9 @@ import kotlinx.coroutines.suspendCancellableCoroutine import org.koitharu.kotatsu.utils.InternalResourceHelper import kotlin.coroutines.resume +val Context.activityManager: ActivityManager? + get() = getSystemService(ACTIVITY_SERVICE) as? ActivityManager + val Context.connectivityManager: ConnectivityManager get() = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager @@ -134,6 +140,10 @@ inline fun ViewGroup.findDescendant(): T? { return descendants.find { it is T } as? T } +fun isLowRamDevice(context: Context): Boolean { + return context.activityManager?.isLowRamDevice ?: false +} + fun scaleUpActivityOptionsOf(view: View): ActivityOptions = ActivityOptions.makeScaleUpAnimation( view, 0, diff --git a/app/src/main/java/org/koitharu/kotatsu/widget/recent/RecentListFactory.kt b/app/src/main/java/org/koitharu/kotatsu/widget/recent/RecentListFactory.kt index 04c25f382..86a1d91e1 100644 --- a/app/src/main/java/org/koitharu/kotatsu/widget/recent/RecentListFactory.kt +++ b/app/src/main/java/org/koitharu/kotatsu/widget/recent/RecentListFactory.kt @@ -7,7 +7,6 @@ import android.widget.RemoteViewsService import coil.ImageLoader import coil.executeBlocking import coil.request.ImageRequest -import coil.size.Scale import coil.size.Size import coil.transform.RoundedCornersTransformation import kotlinx.coroutines.runBlocking @@ -54,7 +53,6 @@ class RecentListFactory( ImageRequest.Builder(context) .data(item.coverUrl) .size(coverSize) - .scale(Scale.FILL) .transformations(transformation) .build() ).requireBitmap() diff --git a/app/src/main/java/org/koitharu/kotatsu/widget/shelf/ShelfListFactory.kt b/app/src/main/java/org/koitharu/kotatsu/widget/shelf/ShelfListFactory.kt index 1676e5a49..42c3dd832 100644 --- a/app/src/main/java/org/koitharu/kotatsu/widget/shelf/ShelfListFactory.kt +++ b/app/src/main/java/org/koitharu/kotatsu/widget/shelf/ShelfListFactory.kt @@ -7,7 +7,6 @@ import android.widget.RemoteViewsService import coil.ImageLoader import coil.executeBlocking import coil.request.ImageRequest -import coil.size.Scale import coil.size.Size import coil.transform.RoundedCornersTransformation import kotlinx.coroutines.runBlocking @@ -65,7 +64,6 @@ class ShelfListFactory( ImageRequest.Builder(context) .data(item.coverUrl) .size(coverSize) - .scale(Scale.FILL) .transformations(transformation) .build() ).requireBitmap() diff --git a/app/src/main/res/layout/item_empty_card.xml b/app/src/main/res/layout/item_empty_card.xml index 1b4c86e30..05336c21d 100644 --- a/app/src/main/res/layout/item_empty_card.xml +++ b/app/src/main/res/layout/item_empty_card.xml @@ -6,6 +6,7 @@ style="@style/Widget.Material3.CardView.Filled" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_margin="8dp" app:contentPadding="@dimen/margin_normal">