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.text.ParseException
import java.text.SimpleDateFormat
import java.util.*
import java.util.regex.Pattern
import kotlin.math.abs

/**
 * 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()
}

/**
 * 时间差-天
 * */
fun String.diffDate(): Int {
    if (this.isBlank()) {
        return 0
    }
    val dateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.CHINA)
    try {
        val timestamp = dateFormat.parse(this)!!.time
        val diff = abs(System.currentTimeMillis() - timestamp)
        return (diff / (86400000)).toInt()
    } catch (e: ParseException) {
        e.printStackTrace()
    }
    return 0
}

/**
 * 时间差-分钟
 * */
fun String.diffMinute(): Int {
    if (this.isBlank()) {
        return 0
    }
    try {
        val diff = abs(System.currentTimeMillis() - this.toLong())
        println(diff)
        return (diff / (60000)).toInt()
    } catch (e: ParseException) {
        e.printStackTrace()
    }
    return 0
}