修改个人资料修改逻辑

This commit is contained in:
2024-10-04 00:02:26 +08:00
parent 775c6a3c14
commit c2764754fd
9 changed files with 372 additions and 185 deletions

View File

@@ -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
}
}