// 获取当 前 进程名称
fun Context.resolveCurrentProcessName(): String?
// 是 否 在 主 进程
fun Context.isInMainProcess(): Boolean
// 当 前 应用是 否 可 调试
fun Context.isDebuggable(): Boolean
// 读取/设置 剪切板 内容
var Context.clipboardPrimaryText: String
// 获取应用的 版本 名称
fun Context.getVersionName(): String
// 获取应用的 版本 号
fun Context.getVersionCode(): Long
// 弹出选择器 ,分 享 文 本 到 用 户选择的应用
fun Context.shareText(text: String, title: String = "分 享 ")
// 弹出选择器 ,分 享 图片到 用 户选择的应用
fun Context.shareImage(image: File, title: String = "分 享 ")
// 分 享 文 本 到 指定 应用
fun Context.sendText(toPackageName: String, message: String)
// 分 享 图片到 指定 应用
fun Context.sendImage(toPackageName: String, image: File)
dp/sp
转 px
inline val Int.dp: Int get() = Resources.getSystem().dp(this)
inline val Int.sp: Int get() = Resources.getSystem().sp(this)
inline val Float.dp: Float get() = Resources.getSystem().dp(this)
inline val Float.sp: Float get() = Resources.getSystem().sp(this)
inline fun Context.dp(value: Int): Int = resources.dp(value)
inline fun Context.sp(value: Int): Int = resources.sp(value)
inline fun Context.dp(value: Float): Float = resources.dp(value)
inline fun Context.sp(value: Float): Float = resources.sp(value)
inline fun Fragment.dp(value: Int): Int = resources.dp(value)
inline fun Fragment.sp(value: Int): Int = resources.sp(value)
inline fun Fragment.dp(value: Float): Float = resources.dp(value)
inline fun Fragment.sp(value: Float): Float = resources.sp(value)
inline fun View.dp(value: Int): Int = resources.dp(value)
inline fun View.sp(value: Int): Int = resources.sp(value)
inline fun View.dp(value: Float): Float = resources.dp(value)
inline fun View.sp(value: Float): Float = resources.sp(value)
fun Resources.dp(value: Int): Int = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, value.toFloat(), displayMetrics).toInt()
fun Resources.sp(value: Int): Int = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, value.toFloat(), displayMetrics).toInt()
fun Resources.dp(value: Float): Float = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, value, displayMetrics)
fun Resources.sp(value: Float): Float = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, value, displayMetrics)
dp(10)
sp(10)
dp(10f)
sp(10f)
10.dp
10.sp
10f.dp
10f.sp
/**
*
* compact = true
* 123GB, 12.3GB, 1.23GB
* 123MB, 12.3MB, 1.23MB
* 123KB, 12.3KB, 1.23KB
* 123B, 12B, 1B
*
* compact = false 总是保留 最多 2位 小数
* #.##GB
* #.##MB
* #.##KB
* #B
*/
fun Long.formatBytes(compact:Boolean = false): String
fun Date.format(pattern: String, timezone: TimeZone)
Date
Long
formatDateTimeMs
=format("yyyy-MM-dd HH:mm:ss.SSS", timezone)
formatDateTime
=format("yyyy-MM-dd HH:mm:ss", timezone)
formatDate
=format("yyyy-MM-dd", timezone)
formatShortDate
=format("MM-dd", timezone)
formatTime
=format("HH:mm:ss", timezone)
formatShortTime
=format("HH:mm", timezone)
/**
* 半分 钟内,显示 刚刚
* 一 分 钟内,显示 xx秒 前
* 一 小 时内,显示 xx分 钟前
* 一天 内 ,显示 xx小 时前
* 一 月 内 ,显示 xx天 前
* 其余,显示 2019-05-05 11:11
*/
fun Long.formatTimeAgo(context: Context, years: Boolean = true): String
/**
* 上 午 9:11
* 下 午 4:22
* 昨 天 上 午 9:11
* 昨 天 下 午 4:22
* 周 三 上 午 9:11
* 周三 下 午 4:22
* 5月21日 上 午 9:11
* 5月21日 下 午 4:22
* 2018年 5月 21日 上 午 9:11
* 2018年 5月 21日 下 午 4:22
*/
fun Long.formatTimeChat(): String
/**
* [d天 ][h小 时][m分 钟][s秒 ]
*
* 30秒
* 23分 钟48秒
* 2小 时10秒
* 1小 时40分 钟25秒
* 1天 5秒
* 1天 10分 钟5秒
* 1天 20小 时
* 1天 20小 时10分 钟5秒
*/
fun Long.formatTimeSeconds(): String
repositories {
maven { url "https://gitee.com/ezy/repo/raw/cosmo/"}
}
dependencies {
implementation "me.reezy.cosmo:utility:0.9.0"
}
The Component is open-sourced software licensed under the Apache license.