mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +00:00
commit
3b0625c066
@ -119,7 +119,7 @@ dependencies {
|
|||||||
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.2'
|
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.2'
|
||||||
implementation 'io.reactivex.rxjava3:rxjava:3.1.1'
|
implementation 'io.reactivex.rxjava3:rxjava:3.1.1'
|
||||||
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
|
implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'
|
||||||
implementation 'com.squareup.picasso:picasso:2.71828'
|
|
||||||
implementation 'com.fasterxml.jackson.core:jackson-core:2.13.0'
|
implementation 'com.fasterxml.jackson.core:jackson-core:2.13.0'
|
||||||
|
implementation 'io.coil-kt:coil:1.4.0'
|
||||||
implementation 'com.github.topjohnwu.libsu:core:3.1.2'
|
implementation 'com.github.topjohnwu.libsu:core:3.1.2'
|
||||||
}
|
}
|
||||||
|
@ -5,24 +5,24 @@ import android.app.Application
|
|||||||
import android.app.job.JobInfo
|
import android.app.job.JobInfo
|
||||||
import android.app.job.JobScheduler
|
import android.app.job.JobScheduler
|
||||||
import android.content.*
|
import android.content.*
|
||||||
|
import coil.ImageLoader
|
||||||
|
import coil.ImageLoaderFactory
|
||||||
import com.looker.droidify.content.Cache
|
import com.looker.droidify.content.Cache
|
||||||
import com.looker.droidify.content.Preferences
|
import com.looker.droidify.content.Preferences
|
||||||
import com.looker.droidify.content.ProductPreferences
|
import com.looker.droidify.content.ProductPreferences
|
||||||
import com.looker.droidify.database.Database
|
import com.looker.droidify.database.Database
|
||||||
import com.looker.droidify.index.RepositoryUpdater
|
import com.looker.droidify.index.RepositoryUpdater
|
||||||
|
import com.looker.droidify.network.CoilDownloader
|
||||||
import com.looker.droidify.network.Downloader
|
import com.looker.droidify.network.Downloader
|
||||||
import com.looker.droidify.network.PicassoDownloader
|
|
||||||
import com.looker.droidify.service.Connection
|
import com.looker.droidify.service.Connection
|
||||||
import com.looker.droidify.service.SyncService
|
import com.looker.droidify.service.SyncService
|
||||||
import com.looker.droidify.utility.Utils.toInstalledItem
|
import com.looker.droidify.utility.Utils.toInstalledItem
|
||||||
import com.looker.droidify.utility.extension.android.Android
|
import com.looker.droidify.utility.extension.android.Android
|
||||||
import com.squareup.picasso.OkHttp3Downloader
|
|
||||||
import com.squareup.picasso.Picasso
|
|
||||||
import java.net.InetSocketAddress
|
import java.net.InetSocketAddress
|
||||||
import java.net.Proxy
|
import java.net.Proxy
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
class MainApplication : Application() {
|
class MainApplication : Application(), ImageLoaderFactory {
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
@ -34,12 +34,6 @@ class MainApplication : Application() {
|
|||||||
listenApplications()
|
listenApplications()
|
||||||
listenPreferences()
|
listenPreferences()
|
||||||
|
|
||||||
Picasso.setSingletonInstance(
|
|
||||||
Picasso.Builder(this)
|
|
||||||
.downloader(OkHttp3Downloader(PicassoDownloader.Factory(Cache.getImagesDir(this))))
|
|
||||||
.build()
|
|
||||||
)
|
|
||||||
|
|
||||||
if (databaseUpdated) {
|
if (databaseUpdated) {
|
||||||
forceSyncAll()
|
forceSyncAll()
|
||||||
}
|
}
|
||||||
@ -181,4 +175,11 @@ class MainApplication : Application() {
|
|||||||
@SuppressLint("UnsafeProtectedBroadcastReceiver")
|
@SuppressLint("UnsafeProtectedBroadcastReceiver")
|
||||||
override fun onReceive(context: Context, intent: Intent) = Unit
|
override fun onReceive(context: Context, intent: Intent) = Unit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun newImageLoader(): ImageLoader {
|
||||||
|
return ImageLoader.Builder(this)
|
||||||
|
.callFactory(CoilDownloader.Factory(Cache.getImagesDir(this)))
|
||||||
|
.crossfade(true)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ import java.io.File
|
|||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
object PicassoDownloader {
|
object CoilDownloader {
|
||||||
private const val HOST_ICON = "icon"
|
private const val HOST_ICON = "icon"
|
||||||
private const val HOST_SCREENSHOT = "screenshot"
|
private const val HOST_SCREENSHOT = "screenshot"
|
||||||
private const val QUERY_ADDRESS = "address"
|
private const val QUERY_ADDRESS = "address"
|
@ -32,7 +32,7 @@ import com.looker.droidify.content.Preferences
|
|||||||
import com.looker.droidify.content.ProductPreferences
|
import com.looker.droidify.content.ProductPreferences
|
||||||
import com.looker.droidify.entity.*
|
import com.looker.droidify.entity.*
|
||||||
import com.looker.droidify.graphics.PaddingDrawable
|
import com.looker.droidify.graphics.PaddingDrawable
|
||||||
import com.looker.droidify.network.PicassoDownloader
|
import com.looker.droidify.network.CoilDownloader
|
||||||
import com.looker.droidify.utility.KParcelable
|
import com.looker.droidify.utility.KParcelable
|
||||||
import com.looker.droidify.utility.PackageItemResolver
|
import com.looker.droidify.utility.PackageItemResolver
|
||||||
import com.looker.droidify.utility.Utils
|
import com.looker.droidify.utility.Utils
|
||||||
@ -1119,7 +1119,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int)
|
|||||||
if (updateAll) {
|
if (updateAll) {
|
||||||
if (item.product.icon.isNotEmpty() || item.product.metadataIcon.isNotEmpty()) {
|
if (item.product.icon.isNotEmpty() || item.product.metadataIcon.isNotEmpty()) {
|
||||||
holder.icon.load(
|
holder.icon.load(
|
||||||
PicassoDownloader.createIconUri(
|
CoilDownloader.createIconUri(
|
||||||
holder.icon, item.product.packageName,
|
holder.icon, item.product.packageName,
|
||||||
item.product.icon, item.product.metadataIcon, item.repository
|
item.product.icon, item.product.metadataIcon, item.repository
|
||||||
)
|
)
|
||||||
@ -1322,7 +1322,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int)
|
|||||||
val inner = context.resources.sizeScaled(GRID_SPACING_INNER_DP)
|
val inner = context.resources.sizeScaled(GRID_SPACING_INNER_DP)
|
||||||
val cellSize = (screenWidth - 2 * outer - (columns - 1) * inner) / columns
|
val cellSize = (screenWidth - 2 * outer - (columns - 1) * inner) / columns
|
||||||
holder.image.load(
|
holder.image.load(
|
||||||
PicassoDownloader.createScreenshotUri(
|
CoilDownloader.createScreenshotUri(
|
||||||
item.repository,
|
item.repository,
|
||||||
item.packageName,
|
item.packageName,
|
||||||
item.screenshot
|
item.screenshot
|
||||||
@ -1330,8 +1330,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int)
|
|||||||
) {
|
) {
|
||||||
placeholder(holder.placeholder)
|
placeholder(holder.placeholder)
|
||||||
error(holder.placeholder)
|
error(holder.placeholder)
|
||||||
resize(cellSize, cellSize)
|
size(cellSize)
|
||||||
centerCrop()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ViewType.RELEASE -> {
|
ViewType.RELEASE -> {
|
||||||
|
@ -15,7 +15,7 @@ import com.looker.droidify.R
|
|||||||
import com.looker.droidify.database.Database
|
import com.looker.droidify.database.Database
|
||||||
import com.looker.droidify.entity.ProductItem
|
import com.looker.droidify.entity.ProductItem
|
||||||
import com.looker.droidify.entity.Repository
|
import com.looker.droidify.entity.Repository
|
||||||
import com.looker.droidify.network.PicassoDownloader
|
import com.looker.droidify.network.CoilDownloader
|
||||||
import com.looker.droidify.utility.Utils
|
import com.looker.droidify.utility.Utils
|
||||||
import com.looker.droidify.utility.extension.resources.*
|
import com.looker.droidify.utility.extension.resources.*
|
||||||
import com.looker.droidify.utility.extension.text.nullIfEmpty
|
import com.looker.droidify.utility.extension.text.nullIfEmpty
|
||||||
@ -138,7 +138,7 @@ class ProductsAdapter(private val onClick: (ProductItem) -> Unit) :
|
|||||||
val repository: Repository? = repositories[productItem.repositoryId]
|
val repository: Repository? = repositories[productItem.repositoryId]
|
||||||
if ((productItem.icon.isNotEmpty() || productItem.metadataIcon.isNotEmpty()) && repository != null) {
|
if ((productItem.icon.isNotEmpty() || productItem.metadataIcon.isNotEmpty()) && repository != null) {
|
||||||
holder.icon.load(
|
holder.icon.load(
|
||||||
PicassoDownloader.createIconUri(
|
CoilDownloader.createIconUri(
|
||||||
holder.icon, productItem.packageName,
|
holder.icon, productItem.packageName,
|
||||||
productItem.icon, productItem.metadataIcon, repository
|
productItem.icon, productItem.metadataIcon, repository
|
||||||
)
|
)
|
||||||
|
@ -22,7 +22,7 @@ import com.looker.droidify.database.Database
|
|||||||
import com.looker.droidify.entity.Product
|
import com.looker.droidify.entity.Product
|
||||||
import com.looker.droidify.entity.Repository
|
import com.looker.droidify.entity.Repository
|
||||||
import com.looker.droidify.graphics.PaddingDrawable
|
import com.looker.droidify.graphics.PaddingDrawable
|
||||||
import com.looker.droidify.network.PicassoDownloader
|
import com.looker.droidify.network.CoilDownloader
|
||||||
import com.looker.droidify.utility.RxUtils
|
import com.looker.droidify.utility.RxUtils
|
||||||
import com.looker.droidify.utility.extension.android.Android
|
import com.looker.droidify.utility.extension.android.Android
|
||||||
import com.looker.droidify.utility.extension.resources.*
|
import com.looker.droidify.utility.extension.resources.*
|
||||||
@ -256,7 +256,7 @@ class ScreenshotsFragment() : DialogFragment() {
|
|||||||
if (width > 0 && height > 0) {
|
if (width > 0 && height > 0) {
|
||||||
repository?.let {
|
repository?.let {
|
||||||
holder.image.load(
|
holder.image.load(
|
||||||
PicassoDownloader.createScreenshotUri(
|
CoilDownloader.createScreenshotUri(
|
||||||
it,
|
it,
|
||||||
packageName,
|
packageName,
|
||||||
screenshot
|
screenshot
|
||||||
@ -264,8 +264,7 @@ class ScreenshotsFragment() : DialogFragment() {
|
|||||||
) {
|
) {
|
||||||
placeholder(holder.placeholder)
|
placeholder(holder.placeholder)
|
||||||
error(holder.placeholder)
|
error(holder.placeholder)
|
||||||
resize(width, height)
|
size(width, height)
|
||||||
centerInside()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -17,9 +17,10 @@ import android.view.ViewGroup
|
|||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
|
import coil.load
|
||||||
|
import coil.request.ImageRequest
|
||||||
|
import coil.util.CoilUtils
|
||||||
import com.looker.droidify.utility.extension.android.Android
|
import com.looker.droidify.utility.extension.android.Android
|
||||||
import com.squareup.picasso.Picasso
|
|
||||||
import com.squareup.picasso.RequestCreator
|
|
||||||
import org.xmlpull.v1.XmlPullParser
|
import org.xmlpull.v1.XmlPullParser
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
@ -91,10 +92,14 @@ fun ViewGroup.inflate(layoutResId: Int): View {
|
|||||||
return LayoutInflater.from(context).inflate(layoutResId, this, false)
|
return LayoutInflater.from(context).inflate(layoutResId, this, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ImageView.load(uri: Uri, builder: RequestCreator.() -> Unit) {
|
fun ImageView.load(uri: String, builder: ImageRequest.Builder.() -> Unit = {}) {
|
||||||
Picasso.get().load(uri).noFade().apply(builder).into(this)
|
this.load(uri = uri, builder = builder)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun ImageView.load(uri: Uri, builder: ImageRequest.Builder.() -> Unit = {}) {
|
||||||
|
this.load(uri = uri, builder = builder)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun ImageView.clear() {
|
fun ImageView.clear() {
|
||||||
Picasso.get().cancelRequest(this)
|
CoilUtils.clear(this)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user