Migrate from Glide to Coil

- Also drop dependency on kapt

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-08-22 16:25:06 +05:30
parent fef6905d90
commit d35d694564
32 changed files with 78 additions and 448 deletions

View File

@@ -26,7 +26,6 @@ plugins {
id("org.jetbrains.kotlin.android") id("org.jetbrains.kotlin.android")
id("org.jetbrains.kotlin.plugin.parcelize") id("org.jetbrains.kotlin.plugin.parcelize")
id("com.google.devtools.ksp") id("com.google.devtools.ksp")
id("org.jetbrains.kotlin.kapt")
id("androidx.navigation.safeargs.kotlin") id("androidx.navigation.safeargs.kotlin")
id("org.jlleitschuh.gradle.ktlint") id("org.jlleitschuh.gradle.ktlint")
id("dev.rikka.tools.refine") id("dev.rikka.tools.refine")
@@ -116,10 +115,6 @@ android {
} }
} }
kapt {
correctErrorTypes = true
}
dependencies { dependencies {
//Protobuf //Protobuf
@@ -148,10 +143,8 @@ dependencies {
implementation("androidx.navigation:navigation-fragment-ktx:$nav_version") implementation("androidx.navigation:navigation-fragment-ktx:$nav_version")
implementation("androidx.navigation:navigation-ui-ktx:$nav_version") implementation("androidx.navigation:navigation-ui-ktx:$nav_version")
//Glide //Coil
val glide_version = "4.15.1" implementation("io.coil-kt:coil:2.4.0")
implementation("com.github.bumptech.glide:glide:$glide_version")
kapt("com.github.bumptech.glide:compiler:$glide_version")
//Shimmer //Shimmer
implementation("com.facebook.shimmer:shimmer:0.5.0") implementation("com.facebook.shimmer:shimmer:0.5.0")

View File

@@ -1,179 +0,0 @@
/*
* Aurora Store
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
*
* Aurora Store is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Aurora Store is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.aurora.extensions
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.net.Uri
import android.widget.ImageView
import androidx.annotation.DrawableRes
import androidx.annotation.RawRes
import com.bumptech.glide.Glide
import com.bumptech.glide.TransitionOptions
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade
import com.bumptech.glide.request.RequestOptions
import com.bumptech.glide.request.target.CustomViewTarget
import com.bumptech.glide.request.transition.DrawableCrossFadeFactory
import com.bumptech.glide.request.transition.Transition
import java.io.File
fun ImageView.load(
bitmap: Bitmap?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> = loadAny(bitmap, transitionOptions, requestOptions)
@JvmSynthetic
fun ImageView.load(
byteArray: ByteArray?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> = loadAny(byteArray, transitionOptions, requestOptions)
@JvmSynthetic
fun ImageView.load(
drawable: Drawable?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> = loadAny(drawable, transitionOptions, requestOptions)
@JvmSynthetic
fun ImageView.load(
@RawRes @DrawableRes resourceId: Int?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> = loadAny(resourceId, transitionOptions, requestOptions)
@JvmSynthetic
fun ImageView.load(
uri: Uri?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> = loadAny(uri, transitionOptions, requestOptions)
@JvmSynthetic
fun ImageView.load(
string: String?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> = loadAny(string, transitionOptions, requestOptions)
@JvmSynthetic
fun ImageView.load(
file: File?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> = loadAny(file, transitionOptions, requestOptions)
@JvmSynthetic
inline fun ImageView.load(
bitmap: Bitmap?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> = loadAny(bitmap, requestOptions)
@JvmSynthetic
inline fun ImageView.load(
byteArray: ByteArray?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> = loadAny(byteArray, requestOptions)
@JvmSynthetic
inline fun ImageView.load(
drawable: Drawable?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> = loadAny(drawable, requestOptions)
@JvmSynthetic
inline fun ImageView.load(
@RawRes @DrawableRes resourceId: Int?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> = loadAny(resourceId, requestOptions)
@JvmSynthetic
inline fun ImageView.load(
uri: Uri?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> = loadAny(uri, requestOptions)
@JvmSynthetic
inline fun ImageView.load(
string: String?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> = loadAny(string, requestOptions)
@JvmSynthetic
inline fun ImageView.load(
file: File?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> = loadAny(file, requestOptions)
@JvmSynthetic
fun ImageView.loadAny(
data: Any?,
transitionOptions: TransitionOptions<*, Drawable>? = null,
requestOptions: RequestOptions? = null
): CustomViewTarget<ImageView, Drawable> {
return Glide.with(this)
.asDrawable()
.load(data)
.apply {
transitionOptions?.let { transition(it) }
requestOptions?.let { apply(it) }
}
.into(object : CustomViewTarget<ImageView, Drawable>(this) {
override fun onLoadFailed(errorDrawable: Drawable?) {
}
override fun onResourceCleared(placeholder: Drawable?) {
}
override fun onResourceReady(resource: Drawable, transition: Transition<in Drawable>?) {
this.view.setImageDrawable(resource)
}
})
}
@JvmSynthetic
inline fun ImageView.loadAny(
data: Any?,
requestOptions: RequestOptions.() -> Unit
): CustomViewTarget<ImageView, Drawable> {
val factory = DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build()
return Glide.with(this)
.asDrawable()
.load(data)
.transition(withCrossFade(factory))
.apply(RequestOptions().apply(requestOptions))
.into(object : CustomViewTarget<ImageView, Drawable>(this) {
override fun onLoadFailed(errorDrawable: Drawable?) {
}
override fun onResourceCleared(placeholder: Drawable?) {
}
override fun onResourceReady(resource: Drawable, transition: Transition<in Drawable>?) {
this.view.setImageDrawable(resource)
}
})}
@JvmSynthetic
fun ImageView.clear() {
//Glide.with(this).clear(this)
}

View File

@@ -1,53 +0,0 @@
/*
* Aurora Store
* Copyright (C) 2021, Rahul Kumar Patel <whyorean@gmail.com>
*
* Aurora Store is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* Aurora Store is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Aurora Store. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.aurora.store
import android.content.Context
import android.graphics.Bitmap
import com.bumptech.glide.GlideBuilder
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.load.DecodeFormat
import com.bumptech.glide.load.engine.cache.InternalCacheDiskCacheFactory
import com.bumptech.glide.load.engine.cache.LruResourceCache
import com.bumptech.glide.module.AppGlideModule
import com.bumptech.glide.request.RequestOptions
import com.bumptech.glide.signature.ObjectKey
@GlideModule
class AuroraGlide : AppGlideModule() {
override fun applyOptions(context: Context, builder: GlideBuilder) {
val memoryCacheSizeBytes = 1024 * 1024 * 50
builder.setMemoryCache(LruResourceCache(memoryCacheSizeBytes.toLong()))
builder.setDiskCache(InternalCacheDiskCacheFactory(context, memoryCacheSizeBytes.toLong()))
builder.setDefaultRequestOptions(requestOptions())
}
companion object {
private fun requestOptions(): RequestOptions {
return RequestOptions()
.signature(ObjectKey(System.currentTimeMillis() / (24 * 60 * 60 * 1000)))
.centerCrop()
.encodeFormat(Bitmap.CompressFormat.PNG)
.encodeQuality(60)
.format(DecodeFormat.PREFER_ARGB_8888)
.skipMemoryCache(false)
}
}
}

View File

@@ -44,12 +44,12 @@ import androidx.navigation.ui.AppBarConfiguration
import androidx.navigation.ui.navigateUp import androidx.navigation.ui.navigateUp
import androidx.navigation.ui.setupActionBarWithNavController import androidx.navigation.ui.setupActionBarWithNavController
import androidx.navigation.ui.setupWithNavController import androidx.navigation.ui.setupWithNavController
import coil.load
import coil.transform.RoundedCornersTransformation
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.accentColor import com.aurora.extensions.accentColor
import com.aurora.extensions.applyTheme import com.aurora.extensions.applyTheme
import com.aurora.extensions.getStyledAttributeColor
import com.aurora.extensions.isRAndAbove import com.aurora.extensions.isRAndAbove
import com.aurora.extensions.load
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.AuthData
import com.aurora.store.data.model.NetworkStatus import com.aurora.store.data.model.NetworkStatus
@@ -63,9 +63,7 @@ import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT_SELECTED_TAB
import com.aurora.store.view.ui.sheets.NetworkDialogSheet import com.aurora.store.view.ui.sheets.NetworkDialogSheet
import com.aurora.store.view.ui.sheets.SelfUpdateSheet import com.aurora.store.view.ui.sheets.SelfUpdateSheet
import com.aurora.store.viewmodel.MainViewModel import com.aurora.store.viewmodel.MainViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.elevation.SurfaceColors
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -236,7 +234,7 @@ class MainActivity : AppCompatActivity() {
headerView.let { headerView.let {
it.findViewById<ImageView>(R.id.img)?.load(R.mipmap.ic_launcher) { it.findViewById<ImageView>(R.id.img)?.load(R.mipmap.ic_launcher) {
transform(RoundedCorners(8)) transformations(RoundedCornersTransformation(8F))
} }
it.findViewById<TextView>(R.id.txt_name)?.text = getString(R.string.app_name) it.findViewById<TextView>(R.id.txt_name)?.text = getString(R.string.app_name)
it.findViewById<TextView>(R.id.txt_email)?.text = it.findViewById<TextView>(R.id.txt_email)?.text =

View File

@@ -56,4 +56,4 @@ class CarouselShimmerGroup() :
return models return models
} }
} }
} }

View File

@@ -23,16 +23,14 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.CompoundButton import android.widget.CompoundButton
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.model.Black import com.aurora.store.data.model.Black
import com.aurora.store.databinding.ViewBlackBinding import com.aurora.store.databinding.ViewBlackBinding
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT,
@@ -67,7 +65,7 @@ class BlackListView : RelativeLayout {
fun black(black: Black) { fun black(black: Black) {
B.imgIcon.load(black.drawable) { B.imgIcon.load(black.drawable) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(25)) transformations(RoundedCornersTransformation(25F))
} }
B.txtLine1.text = black.displayName B.txtLine1.text = black.displayName
@@ -94,9 +92,4 @@ class BlackListView : RelativeLayout {
fun longClick(onClickListener: OnLongClickListener?) { fun longClick(onClickListener: OnLongClickListener?) {
B.root.setOnLongClickListener(onClickListener) B.root.setOnLongClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.imgIcon.clear()
}
} }

View File

@@ -22,12 +22,10 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.Category import com.aurora.gplayapi.data.models.Category
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewCategoryBinding import com.aurora.store.databinding.ViewCategoryBinding
@@ -64,17 +62,11 @@ class CategoryView : RelativeLayout {
@ModelProp @ModelProp
fun category(category: Category) { fun category(category: Category) {
B.txtName.text = category.title B.txtName.text = category.title
B.imgBackground.load(category.imageUrl) { B.imgBackground.load(category.imageUrl)
}
} }
@CallbackProp @CallbackProp
fun click(onClickListener: OnClickListener?) { fun click(onClickListener: OnClickListener?) {
B.root.setOnClickListener(onClickListener) B.root.setOnClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.imgBackground.clear()
}
} }

View File

@@ -22,13 +22,12 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.model.DownloadFile import com.aurora.store.data.model.DownloadFile
@@ -36,7 +35,6 @@ import com.aurora.store.databinding.ViewDownloadBinding
import com.aurora.store.util.CommonUtil.getDownloadSpeedString import com.aurora.store.util.CommonUtil.getDownloadSpeedString
import com.aurora.store.util.CommonUtil.getETAString import com.aurora.store.util.CommonUtil.getETAString
import com.aurora.store.util.CommonUtil.humanReadableByteValue import com.aurora.store.util.CommonUtil.humanReadableByteValue
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.GsonBuilder import com.google.gson.GsonBuilder
import com.tonyodev.fetch2.Status import com.tonyodev.fetch2.Status
@@ -85,7 +83,7 @@ class DownloadView : RelativeLayout {
app?.let { app?.let {
B.imgDownload.load(app.iconArtwork.url) { B.imgDownload.load(app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
B.txtTitle.text = app.displayName B.txtTitle.text = app.displayName
} }
@@ -137,9 +135,4 @@ class DownloadView : RelativeLayout {
fun longClick(onClickListener: OnLongClickListener?) { fun longClick(onClickListener: OnLongClickListener?) {
B.root.setOnLongClickListener(onClickListener) B.root.setOnLongClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.imgDownload.clear()
}
} }

View File

@@ -22,17 +22,15 @@ package com.aurora.store.view.epoxy.views
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.extensions.px import com.aurora.extensions.px
import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Artwork
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewEditorImageBinding import com.aurora.store.databinding.ViewEditorImageBinding
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT,
@@ -72,7 +70,7 @@ class EditorImageView : RelativeLayout {
B.img.requestLayout() B.img.requestLayout()
B.img.load(artwork.url) { B.img.load(artwork.url) {
transform(RoundedCorners(8.px.toInt())) transformations(RoundedCornersTransformation(8.px.toFloat()))
} }
} }
else -> { else -> {
@@ -80,7 +78,7 @@ class EditorImageView : RelativeLayout {
B.img.layoutParams.height = 24.px.toInt() B.img.layoutParams.height = 24.px.toInt()
B.img.requestLayout() B.img.requestLayout()
B.img.load(artwork.url) { B.img.load(artwork.url) {
transform(RoundedCorners(4.px.toInt())) transformations(RoundedCornersTransformation(4.px.toFloat()))
} }
} }
} }
@@ -90,9 +88,4 @@ class EditorImageView : RelativeLayout {
fun click(onClickListener: OnClickListener?) { fun click(onClickListener: OnClickListener?) {
B.root.setOnClickListener(onClickListener) B.root.setOnClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.img.clear()
}
} }

View File

@@ -23,16 +23,14 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.gplayapi.SearchSuggestEntry import com.aurora.gplayapi.SearchSuggestEntry
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewSearchSuggestionBinding import com.aurora.store.databinding.ViewSearchSuggestionBinding
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT,
@@ -67,7 +65,7 @@ class SearchSuggestionView : RelativeLayout {
fun entry(searchSuggestEntry: SearchSuggestEntry) { fun entry(searchSuggestEntry: SearchSuggestEntry) {
if (searchSuggestEntry.hasImageContainer()) { if (searchSuggestEntry.hasImageContainer()) {
B.img.load(searchSuggestEntry.imageContainer.imageUrl) { B.img.load(searchSuggestEntry.imageContainer.imageUrl) {
transform(RoundedCorners(8)) transformations(RoundedCornersTransformation(8F))
} }
} else { } else {
B.img.setImageDrawable( B.img.setImageDrawable(
@@ -90,9 +88,4 @@ class SearchSuggestionView : RelativeLayout {
fun action(onClickListener: OnClickListener?) { fun action(onClickListener: OnClickListener?) {
B.action.setOnClickListener(onClickListener) B.action.setOnClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.img.clear()
}
} }

View File

@@ -22,19 +22,17 @@ package com.aurora.store.view.epoxy.views.app
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.getString import com.aurora.extensions.getString
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewAppListBinding import com.aurora.store.databinding.ViewAppListBinding
import com.aurora.store.util.CommonUtil import com.aurora.store.util.CommonUtil
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT,
@@ -69,7 +67,7 @@ class AppListView : RelativeLayout {
fun app(app: App) { fun app(app: App) {
B.imgIcon.load(app.iconArtwork.url) { B.imgIcon.load(app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(25)) transformations(RoundedCornersTransformation(25F))
} }
B.txtLine1.text = app.displayName B.txtLine1.text = app.displayName
@@ -103,9 +101,4 @@ class AppListView : RelativeLayout {
fun longClick(onClickListener: OnLongClickListener?) { fun longClick(onClickListener: OnLongClickListener?) {
B.root.setOnLongClickListener(onClickListener) B.root.setOnLongClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.imgIcon.clear()
}
} }

View File

@@ -25,12 +25,13 @@ import android.view.View
import android.widget.RelativeLayout import android.widget.RelativeLayout
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.invisible import com.aurora.extensions.invisible
import com.aurora.extensions.load
import com.aurora.extensions.px import com.aurora.extensions.px
import com.aurora.extensions.show import com.aurora.extensions.show
import com.aurora.store.R import com.aurora.store.R
@@ -39,7 +40,6 @@ import com.aurora.store.data.model.UpdateFile
import com.aurora.store.databinding.ViewAppUpdateBinding import com.aurora.store.databinding.ViewAppUpdateBinding
import com.aurora.store.util.CommonUtil import com.aurora.store.util.CommonUtil
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT,
@@ -79,7 +79,7 @@ class AppUpdateView : RelativeLayout {
B.txtLine1.text = displayName B.txtLine1.text = displayName
B.imgIcon.load(iconArtwork.url) { B.imgIcon.load(iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(8.px.toInt())) transformations(RoundedCornersTransformation(8.px.toFloat()))
} }
B.txtLine2.text = developerName B.txtLine2.text = developerName

View File

@@ -22,18 +22,16 @@ package com.aurora.store.view.epoxy.views.app
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewAppBinding import com.aurora.store.databinding.ViewAppBinding
import com.aurora.store.util.CommonUtil import com.aurora.store.util.CommonUtil
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
@@ -70,7 +68,7 @@ class AppView : RelativeLayout {
B.txtName.text = app.displayName B.txtName.text = app.displayName
B.imgIcon.load(app.iconArtwork.url) { B.imgIcon.load(app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
if (app.size > 0) if (app.size > 0)
@@ -86,9 +84,4 @@ class AppView : RelativeLayout {
fun longClick(onClickListener: OnLongClickListener?) { fun longClick(onClickListener: OnLongClickListener?) {
B.root.setOnLongClickListener(onClickListener) B.root.setOnLongClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.imgIcon.clear()
}
} }

View File

@@ -22,17 +22,15 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewAppDependentBinding import com.aurora.store.databinding.ViewAppDependentBinding
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT,
@@ -68,7 +66,7 @@ class AppDependentView : RelativeLayout {
B.txtName.text = app.displayName B.txtName.text = app.displayName
B.imgIcon.load(app.iconArtwork.url) { B.imgIcon.load(app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
} }
@@ -81,9 +79,4 @@ class AppDependentView : RelativeLayout {
fun longClick(onClickListener: OnLongClickListener?) { fun longClick(onClickListener: OnLongClickListener?) {
B.root.setOnLongClickListener(onClickListener) B.root.setOnLongClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.imgIcon.clear()
}
} }

View File

@@ -22,11 +22,11 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.details.Badge import com.aurora.gplayapi.data.models.details.Badge
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewBadgeBinding import com.aurora.store.databinding.ViewBadgeBinding
@@ -74,9 +74,7 @@ class BadgeView : RelativeLayout {
} }
badge.artwork?.let { badge.artwork?.let {
B.img.load(it.url) { B.img.load(it.url)
}
} }
} }

View File

@@ -21,25 +21,15 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.content.res.Resources import android.content.res.Resources
import android.graphics.drawable.Drawable
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.px
import com.aurora.extensions.runOnUiThread
import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Artwork
import com.aurora.store.GlideApp
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewScreenshotLargeBinding import com.aurora.store.databinding.ViewScreenshotLargeBinding
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.DataSource
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.bumptech.glide.load.engine.GlideException
import com.bumptech.glide.request.RequestListener
import com.bumptech.glide.request.target.Target
@ModelView( @ModelView(
autoLayout = ModelView.Size.MATCH_WIDTH_MATCH_HEIGHT, autoLayout = ModelView.Size.MATCH_WIDTH_MATCH_HEIGHT,
@@ -73,47 +63,8 @@ class LargeScreenshotView : RelativeLayout {
@ModelProp @ModelProp
fun artwork(artwork: Artwork) { fun artwork(artwork: Artwork) {
val displayMetrics = Resources.getSystem().displayMetrics val displayMetrics = Resources.getSystem().displayMetrics
GlideApp.with(context) B.img.load("${artwork.url}=rw-w${displayMetrics.widthPixels}-v1-e15") {
.load("${artwork.url}=rw-w${displayMetrics.widthPixels}-v1-e15") placeholder(R.drawable.bg_placeholder)
.placeholder(R.drawable.bg_placeholder) }
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.addListener(object : RequestListener<Drawable> {
override fun onLoadFailed(
e: GlideException?,
model: Any,
target: Target<Drawable>,
isFirstResource: Boolean
): Boolean {
return false
}
override fun onResourceReady(
drawable: Drawable,
model: Any,
target: Target<Drawable?>,
dataSource: DataSource,
isFirstResource: Boolean
): Boolean {
runOnUiThread {
if (artwork.height != 0 && artwork.width != 0) {
B.img.layoutParams.height = artwork.height.px.toInt()
B.img.layoutParams.width = artwork.width.px.toInt()
} else {
val height = displayMetrics.heightPixels
val width = displayMetrics.widthPixels
B.img.layoutParams.width = width
B.img.layoutParams.height = height
}
B.img.setImageDrawable(drawable)
B.img.requestLayout()
}
return false
}
}).submit()
}
@OnViewRecycled
fun clear() {
B.img.clear()
} }
} }

View File

@@ -22,18 +22,16 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.extensions.px import com.aurora.extensions.px
import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Artwork
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewScreenshotMiniBinding import com.aurora.store.databinding.ViewScreenshotMiniBinding
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT,
@@ -80,7 +78,7 @@ class MiniScreenshotView : RelativeLayout {
normalizeSize(artwork) normalizeSize(artwork)
B.img.load("${artwork.url}=rw-w480-v1-e15") { B.img.load("${artwork.url}=rw-w480-v1-e15") {
placeholder(R.drawable.bg_rounded) placeholder(R.drawable.bg_rounded)
transform(RoundedCorners(8.px.toInt())) transformations(RoundedCornersTransformation(8.px.toFloat()))
} }
} }
@@ -117,9 +115,4 @@ class MiniScreenshotView : RelativeLayout {
screenshotCallback?.onClick(position) screenshotCallback?.onClick(position)
} }
} }
@OnViewRecycled
fun clear() {
B.img.clear()
}
} }

View File

@@ -23,11 +23,11 @@ import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import androidx.core.text.HtmlCompat import androidx.core.text.HtmlCompat
import coil.load
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.details.Badge import com.aurora.gplayapi.data.models.details.Badge
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewMoreBadgeBinding import com.aurora.store.databinding.ViewMoreBadgeBinding

View File

@@ -22,18 +22,16 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.extensions.toDate import com.aurora.extensions.toDate
import com.aurora.gplayapi.data.models.Review import com.aurora.gplayapi.data.models.Review
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewReviewBinding import com.aurora.store.databinding.ViewReviewBinding
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.MATCH_WIDTH_WRAP_HEIGHT,
@@ -72,7 +70,7 @@ class ReviewView : RelativeLayout {
B.img.load(review.userPhotoUrl) { B.img.load(review.userPhotoUrl) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
B.rating.rating = review.rating.toFloat() B.rating.rating = review.rating.toFloat()
@@ -90,9 +88,4 @@ class ReviewView : RelativeLayout {
fun longClick(onClickListener: OnLongClickListener?) { fun longClick(onClickListener: OnLongClickListener?) {
B.root.setOnLongClickListener(onClickListener) B.root.setOnLongClickListener(onClickListener)
} }
@OnViewRecycled
fun clear() {
B.img.clear()
}
} }

View File

@@ -22,18 +22,16 @@ package com.aurora.store.view.epoxy.views.details
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.airbnb.epoxy.OnViewRecycled
import com.aurora.extensions.clear
import com.aurora.extensions.load
import com.aurora.extensions.px import com.aurora.extensions.px
import com.aurora.gplayapi.data.models.Artwork import com.aurora.gplayapi.data.models.Artwork
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.ViewScreenshotBinding import com.aurora.store.databinding.ViewScreenshotBinding
import com.aurora.store.view.epoxy.views.BaseView import com.aurora.store.view.epoxy.views.BaseView
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
@ModelView( @ModelView(
autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT, autoLayout = ModelView.Size.WRAP_WIDTH_WRAP_HEIGHT,
@@ -80,7 +78,7 @@ class ScreenshotView : RelativeLayout {
normalizeSize(artwork) normalizeSize(artwork)
B.img.load("${artwork.url}=rw-w480-v1-e15") { B.img.load("${artwork.url}=rw-w480-v1-e15") {
placeholder(R.drawable.bg_rounded) placeholder(R.drawable.bg_rounded)
transform(RoundedCorners(8.px.toInt())) transformations(RoundedCornersTransformation(8.px.toFloat()))
} }
} }
@@ -117,9 +115,4 @@ class ScreenshotView : RelativeLayout {
screenshotCallback?.onClick(position) screenshotCallback?.onClick(position)
} }
} }
@OnViewRecycled
fun clear() {
B.img.clear()
}
} }

View File

@@ -22,11 +22,11 @@ package com.aurora.store.view.epoxy.views.preference
import android.content.Context import android.content.Context
import android.util.AttributeSet import android.util.AttributeSet
import android.widget.RelativeLayout import android.widget.RelativeLayout
import coil.load
import com.airbnb.epoxy.CallbackProp import com.airbnb.epoxy.CallbackProp
import com.airbnb.epoxy.ModelProp import com.airbnb.epoxy.ModelProp
import com.airbnb.epoxy.ModelView import com.airbnb.epoxy.ModelView
import com.aurora.extensions.hide import com.aurora.extensions.hide
import com.aurora.extensions.load
import com.aurora.extensions.show import com.aurora.extensions.show
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.model.Link import com.aurora.store.data.model.Link

View File

@@ -25,9 +25,9 @@ import androidx.fragment.app.Fragment
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import coil.load
import com.aurora.extensions.browse import com.aurora.extensions.browse
import com.aurora.extensions.copyToClipBoard import com.aurora.extensions.copyToClipBoard
import com.aurora.extensions.load
import com.aurora.store.BuildConfig import com.aurora.store.BuildConfig
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.model.Link import com.aurora.store.data.model.Link

View File

@@ -24,8 +24,9 @@ import android.view.View
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import coil.load
import coil.transform.RoundedCornersTransformation
import com.aurora.extensions.browse import com.aurora.extensions.browse
import com.aurora.extensions.load
import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.AuthData
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.AuthState import com.aurora.store.data.AuthState
@@ -33,7 +34,6 @@ import com.aurora.store.data.providers.AccountProvider
import com.aurora.store.data.providers.AuthProvider import com.aurora.store.data.providers.AuthProvider
import com.aurora.store.databinding.FragmentAccountBinding import com.aurora.store.databinding.FragmentAccountBinding
import com.aurora.store.viewmodel.auth.AuthViewModel import com.aurora.store.viewmodel.auth.AuthViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
class AccountFragment : Fragment(R.layout.fragment_account) { class AccountFragment : Fragment(R.layout.fragment_account) {
@@ -199,7 +199,7 @@ class AccountFragment : Fragment(R.layout.fragment_account) {
authData.userProfile?.let { authData.userProfile?.let {
binding.imgAvatar.load(it.artwork.url) { binding.imgAvatar.load(it.artwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
binding.txtName.text = if (authData.isAnonymous) binding.txtName.text = if (authData.isAnonymous)
@@ -214,7 +214,7 @@ class AccountFragment : Fragment(R.layout.fragment_account) {
} }
} else { } else {
binding.imgAvatar.load(R.mipmap.ic_launcher) { binding.imgAvatar.load(R.mipmap.ic_launcher) {
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
binding.txtName.text = getString(R.string.app_name) binding.txtName.text = getString(R.string.app_name)
binding.txtEmail.text = getString(R.string.account_logged_out) binding.txtEmail.text = getString(R.string.account_logged_out)

View File

@@ -43,13 +43,14 @@ import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import coil.load
import coil.transform.RoundedCornersTransformation
import com.airbnb.epoxy.EpoxyRecyclerView import com.airbnb.epoxy.EpoxyRecyclerView
import com.aurora.Constants import com.aurora.Constants
import com.aurora.extensions.browse import com.aurora.extensions.browse
import com.aurora.extensions.getString import com.aurora.extensions.getString
import com.aurora.extensions.hide import com.aurora.extensions.hide
import com.aurora.extensions.isRAndAbove import com.aurora.extensions.isRAndAbove
import com.aurora.extensions.load
import com.aurora.extensions.runOnUiThread import com.aurora.extensions.runOnUiThread
import com.aurora.extensions.share import com.aurora.extensions.share
import com.aurora.extensions.show import com.aurora.extensions.show
@@ -92,7 +93,6 @@ import com.aurora.store.view.epoxy.views.details.ScreenshotViewModel_
import com.aurora.store.view.ui.commons.BaseFragment import com.aurora.store.view.ui.commons.BaseFragment
import com.aurora.store.viewmodel.details.AppDetailsViewModel import com.aurora.store.viewmodel.details.AppDetailsViewModel
import com.aurora.store.viewmodel.details.DetailsClusterViewModel import com.aurora.store.viewmodel.details.DetailsClusterViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback import com.google.android.material.bottomsheet.BottomSheetBehavior.BottomSheetCallback
import com.tonyodev.fetch2.AbstractFetchGroupListener import com.tonyodev.fetch2.AbstractFetchGroupListener
@@ -103,12 +103,12 @@ import com.tonyodev.fetch2.FetchGroup
import com.tonyodev.fetch2.FetchGroupListener import com.tonyodev.fetch2.FetchGroupListener
import com.tonyodev.fetch2.Status import com.tonyodev.fetch2.Status
import com.tonyodev.fetch2core.DownloadBlock import com.tonyodev.fetch2core.DownloadBlock
import java.io.File
import java.util.Locale
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
import java.io.File
import java.util.Locale
class AppDetailsFragment : BaseFragment(R.layout.fragment_details) { class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
@@ -499,7 +499,7 @@ class AppDetailsFragment : BaseFragment(R.layout.fragment_details) {
binding.layoutDetailsApp.apply { binding.layoutDetailsApp.apply {
imgIcon.load(app.iconArtwork.url) { imgIcon.load(app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
txtLine1.text = app.displayName txtLine1.text = app.displayName

View File

@@ -24,7 +24,7 @@ import android.view.View
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import com.aurora.extensions.load import coil.load
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.gplayapi.data.models.AuthData import com.aurora.gplayapi.data.models.AuthData
import com.aurora.gplayapi.data.models.StreamCluster import com.aurora.gplayapi.data.models.StreamCluster

View File

@@ -44,8 +44,8 @@ import com.aurora.store.util.save
import com.aurora.store.view.epoxy.views.preference.InstallerViewModel_ import com.aurora.store.view.epoxy.views.preference.InstallerViewModel_
import com.aurora.store.view.ui.commons.BaseFragment import com.aurora.store.view.ui.commons.BaseFragment
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
import rikka.shizuku.Shizuku
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
import rikka.shizuku.Shizuku
class InstallerFragment : BaseFragment() { class InstallerFragment : BaseFragment() {

View File

@@ -24,11 +24,11 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import com.aurora.extensions.load import coil.load
import coil.transform.RoundedCornersTransformation
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetAppPeekBinding import com.aurora.store.databinding.SheetAppPeekBinding
import com.aurora.store.util.CommonUtil import com.aurora.store.util.CommonUtil
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
class AppPeekDialogSheet : BaseBottomSheet() { class AppPeekDialogSheet : BaseBottomSheet() {
@@ -48,7 +48,7 @@ class AppPeekDialogSheet : BaseBottomSheet() {
override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) { override fun onContentViewCreated(view: View, savedInstanceState: Bundle?) {
B.txtLine1.text = args.app.displayName B.txtLine1.text = args.app.displayName
B.imgIcon.load(args.app.iconArtwork.url) { B.imgIcon.load(args.app.iconArtwork.url) {
transform(RoundedCorners(25)) transformations(RoundedCornersTransformation(25F))
} }
B.txtLine2.text = args.app.developerName B.txtLine2.text = args.app.developerName
B.txtLine3.text = String.format( B.txtLine3.text = String.format(

View File

@@ -25,11 +25,11 @@ import android.provider.Settings
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.aurora.extensions.load import coil.load
import coil.transform.CircleCropTransformation
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetDeviceMiuiBinding import com.aurora.store.databinding.SheetDeviceMiuiBinding
import com.bumptech.glide.load.resource.bitmap.CircleCrop
class DeviceMiuiSheet : BaseBottomSheet() { class DeviceMiuiSheet : BaseBottomSheet() {
@@ -54,7 +54,7 @@ class DeviceMiuiSheet : BaseBottomSheet() {
private fun inflateData() { private fun inflateData() {
B.imgIcon.load(R.drawable.ic_xiaomi_logo) { B.imgIcon.load(R.drawable.ic_xiaomi_logo) {
transform(CircleCrop()) transformations(CircleCropTransformation())
} }
} }

View File

@@ -24,12 +24,12 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import coil.load
import coil.transform.CircleCropTransformation
import com.aurora.extensions.copyToClipBoard import com.aurora.extensions.copyToClipBoard
import com.aurora.extensions.load
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetInstallErrorBinding import com.aurora.store.databinding.SheetInstallErrorBinding
import com.bumptech.glide.load.resource.bitmap.CircleCrop
class InstallErrorDialogSheet : BaseBottomSheet() { class InstallErrorDialogSheet : BaseBottomSheet() {
@@ -55,7 +55,7 @@ class InstallErrorDialogSheet : BaseBottomSheet() {
private fun inflateData() { private fun inflateData() {
B.imgIcon.load(args.app.iconArtwork.url) { B.imgIcon.load(args.app.iconArtwork.url) {
transform(CircleCrop()) transformations(CircleCropTransformation())
} }
B.txtLine1.text = args.app.displayName B.txtLine1.text = args.app.displayName

View File

@@ -27,12 +27,12 @@ import android.view.ViewGroup
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.navArgs import androidx.navigation.fragment.navArgs
import com.aurora.extensions.load import coil.load
import coil.transform.RoundedCornersTransformation
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.databinding.SheetManualDownloadBinding import com.aurora.store.databinding.SheetManualDownloadBinding
import com.aurora.store.viewmodel.sheets.SheetsViewModel import com.aurora.store.viewmodel.sheets.SheetsViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -78,7 +78,7 @@ class ManualDownloadSheet : BaseBottomSheet() {
private fun inflateData() { private fun inflateData() {
B.imgIcon.load(args.app.iconArtwork.url) { B.imgIcon.load(args.app.iconArtwork.url) {
placeholder(R.drawable.bg_placeholder) placeholder(R.drawable.bg_placeholder)
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
B.txtLine1.text = args.app.displayName B.txtLine1.text = args.app.displayName

View File

@@ -24,8 +24,9 @@ import android.view.View
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController import androidx.navigation.fragment.findNavController
import coil.load
import coil.transform.RoundedCornersTransformation
import com.aurora.extensions.hide import com.aurora.extensions.hide
import com.aurora.extensions.load
import com.aurora.extensions.show import com.aurora.extensions.show
import com.aurora.store.R import com.aurora.store.R
import com.aurora.store.data.AuthState import com.aurora.store.data.AuthState
@@ -34,7 +35,6 @@ import com.aurora.store.util.Preferences
import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT_SELECTED_TAB import com.aurora.store.util.Preferences.PREFERENCE_DEFAULT_SELECTED_TAB
import com.aurora.store.util.Preferences.PREFERENCE_INTRO import com.aurora.store.util.Preferences.PREFERENCE_INTRO
import com.aurora.store.viewmodel.auth.AuthViewModel import com.aurora.store.viewmodel.auth.AuthViewModel
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
class SplashFragment : Fragment(R.layout.fragment_splash) { class SplashFragment : Fragment(R.layout.fragment_splash) {
@@ -49,7 +49,7 @@ class SplashFragment : Fragment(R.layout.fragment_splash) {
_binding = FragmentSplashBinding.bind(view) _binding = FragmentSplashBinding.bind(view)
binding.imgIcon.load(R.mipmap.ic_launcher) { binding.imgIcon.load(R.mipmap.ic_launcher) {
transform(RoundedCorners(32)) transformations(RoundedCornersTransformation(32F))
} }
// Toolbar // Toolbar

View File

@@ -35,8 +35,8 @@ import com.aurora.store.databinding.FragmentGenericRecyclerBinding
import com.aurora.store.view.epoxy.views.preference.DeviceViewModel_ import com.aurora.store.view.epoxy.views.preference.DeviceViewModel_
import com.aurora.store.view.ui.commons.BaseFragment import com.aurora.store.view.ui.commons.BaseFragment
import com.aurora.store.viewmodel.spoof.SpoofViewModel import com.aurora.store.viewmodel.spoof.SpoofViewModel
import kotlinx.coroutines.launch
import java.util.Properties import java.util.Properties
import kotlinx.coroutines.launch
class DeviceSpoofFragment : BaseFragment() { class DeviceSpoofFragment : BaseFragment() {