Newer
Older
SmartKitchen / app / src / main / java / com / casic / br / extensions / String.kt
package com.casic.br.extensions

import android.content.Context
import com.casic.smarttube.callback.OnImageCompressListener
import com.pengxh.kt.lite.extensions.createCompressImageDir
import top.zibin.luban.Luban
import top.zibin.luban.OnCompressListener
import java.io.File
import java.util.*
import java.util.regex.Pattern

/**
 * String扩展方法
 */
fun String.compressImage(context: Context, listener: OnImageCompressListener) {
    Luban.with(context)
        .load(this)
        .ignoreBy(100)
        .setTargetDir(context.createCompressImageDir().toString())
        .filter {
            !(it.isBlank() || it.lowercase(Locale.getDefault()).endsWith(".gif"))
        }
        .setCompressListener(object : OnCompressListener {
            override fun onStart() {

            }

            override fun onSuccess(file: File) {
                listener.onSuccess(file)
            }

            override fun onError(e: Throwable) {
                listener.onError(e)
            }
        }).launch()
}