修改个人资料修改逻辑
This commit is contained in:
@@ -1,14 +1,20 @@
|
||||
package com.aiosman.riderpro.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.BitmapFactory
|
||||
import android.net.Uri
|
||||
import coil.ImageLoader
|
||||
import coil.disk.DiskCache
|
||||
import coil.memory.MemoryCache
|
||||
import coil.request.CachePolicy
|
||||
import com.aiosman.riderpro.data.api.AuthInterceptor
|
||||
import com.aiosman.riderpro.data.api.getUnsafeOkHttpClient
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
import java.util.UUID
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
object Utils {
|
||||
@@ -61,4 +67,32 @@ object Utils {
|
||||
fun getCurrentLanguage(): String {
|
||||
return Locale.getDefault().language
|
||||
}
|
||||
|
||||
fun compressImage(context: Context, uri: Uri, maxSize: Int = 512, quality: Int = 85): File {
|
||||
val inputStream = context.contentResolver.openInputStream(uri)
|
||||
val originalBitmap = BitmapFactory.decodeStream(inputStream)
|
||||
val (width, height) = originalBitmap.width to originalBitmap.height
|
||||
|
||||
val (newWidth, newHeight) = if (width > height) {
|
||||
maxSize to (height * maxSize / width)
|
||||
} else {
|
||||
(width * maxSize / height) to maxSize
|
||||
}
|
||||
|
||||
val scaledBitmap = Bitmap.createScaledBitmap(originalBitmap, newWidth, newHeight, true)
|
||||
val uuidImageName = UUID.randomUUID().toString().let { "$it.jpg" }
|
||||
val compressedFile = File(context.cacheDir, uuidImageName)
|
||||
val outputStream = FileOutputStream(compressedFile)
|
||||
if (quality > 100) {
|
||||
throw IllegalArgumentException("Quality must be less than 100")
|
||||
}
|
||||
if (quality < 0) {
|
||||
throw IllegalArgumentException("Quality must be greater than 0")
|
||||
}
|
||||
scaledBitmap.compress(Bitmap.CompressFormat.JPEG, quality, outputStream)
|
||||
outputStream.flush()
|
||||
outputStream.close()
|
||||
|
||||
return compressedFile
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user