Migrate from Glide to Coil
- Also drop dependency on kapt Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -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")
|
||||||
|
|||||||
@@ -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)
|
|
||||||
}
|
|
||||||
@@ -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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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 =
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user