Go to file
luyao 314f640b9c update readme 2019-07-16 16:55:35 +08:00
app 完善 ActivityExt,支持传递单个 Pair 2019-07-16 10:49:28 +08:00
gradle/wrapper build(add library): 2019-05-31 15:36:27 +08:00
ktx update readme 2019-07-16 16:55:35 +08:00
.gitignore build(add library): 2019-05-31 15:36:27 +08:00
LICENSE Initial commit 2019-05-31 14:58:57 +08:00
README.md update readme 2019-07-16 16:55:35 +08:00
build.gradle add SeekBarExt && SearchViewExt 2019-07-10 16:59:41 +08:00
gradle.properties build(add library): 2019-05-31 15:36:27 +08:00
gradlew build(add library): 2019-05-31 15:36:27 +08:00
gradlew.bat build(add library): 2019-05-31 15:36:27 +08:00
package.json build(add library): 2019-05-31 15:36:27 +08:00
settings.gradle change module name 2019-06-27 16:53:14 +08:00

README.md

AndroidUtilCodeKTX

一直有关注 Blankj 的开源项目 AndroidUtilCode, 到目前为止将近有 24k star。在以往的开发过程中我也经常参考其中的工具类实现。但是自从切换到 Kotlin 作为主力开发语言以来,仍然生搬硬套其中的工具类显得并不是那么优雅,没有很好的利用 Kotlin 的语言特性,遂决定整理 AndroidUtilCodeKTX 这个库,完全基于 Kotlin 实现,收集 Android 开发中常用的工具类。

该库不会是 AndroidUtilCode 的 Kotlin 翻译版本,更多的还是基于我在开发过程中的需求进行完善,由于个人精力有限,可能并不是那么完善,欢迎大家通过 issue 提出自己的意见

APIS (keep updating...)


权限相关 [Demo]

FragmentActivity.request(vararg permissions: String, callbacks: PermissionsCallbackDSL.() -> Unit)

AppExt

Context.versionName: String
Context.versionCode: Long
Context.getAppInfo(apkPath: String): AppInfo
Context.getAppInfos(apkFolderPath: String): List<AppInfo>
Context.getAppSignature(packageName: String = this.packageName): ByteArray?

CommonExt

Context.dp2px(dp: Float): Int
Context.px2dp(px: Float): Int
View.dp2px(dp: Float): Int
View.px2dp(px: Float): Int
Context.screenWidth
Context.screenHeight
Context.copyToClipboard(label: String, text: String)

HashExt [Demo]

ByteArray.hash(algorithm: Hash): String
String.hash(algorithm: Hash, charset: Charset = Charset.forName("utf-8")): String
ByteArray.md5Bytes(): ByteArray
ByteArray.md5(): String
String.md5(charset: Charset = Charset.forName("utf-8")): String
ByteArray.sha1Bytes(): ByteArray
ByteArray.sha1(): String
String.sha1(charset: Charset = Charset.forName("utf-8")): String
ByteArray.sha224Bytes(): ByteArray
ByteArray.sha224(): String
String.sha224(charset: Charset = Charset.forName("utf-8")): String
ByteArray.sha256Bytes(): ByteArray
ByteArray.sha256(): String
String.sha256(charset: Charset = Charset.forName("utf-8")): String
ByteArray.sha384Bytes(): ByteArray
ByteArray.sha384(): String
String.sha384(charset: Charset = Charset.forName("utf-8")): String
ByteArray.sha512Bytes(): ByteArray
ByteArray.sha512(): String
String.sha512(charset: Charset = Charset.forName("utf-8")): String
File.hash(algorithm: Hash = Hash.SHA1): String

AesExt [Demo]

ByteArray.aesEncrypt(key: ByteArray, iv: ByteArray, cipherAlgotirhm: String = AES_CFB_NOPADDING): ByteArray
ByteArray.aesDecrypt(key: ByteArray, iv: ByteArray, cipherAlgotirhm: String = AES_CFB_NOPADDING): ByteArray 
File.aesEncrypt(key: ByteArray, iv: ByteArray, destFilePath: String): File?
File.aesDecrypt(key: ByteArray, iv: ByteArray, destFilePath: String): File?

IntentExt [Demo]

Context.getAppInfoIntent(packageName: String = this.packageName): Intent
Context.goToAppInfoPage(packageName: String = this.packageName)
Context.getDateAndTimeIntent(): Intent
Context.goToDateAndTimePage()
Context.getLanguageIntent()
Context.goToLanguagePage() 
Context.getInstallIntent(apkFile: File): Intent?
Context.goToAccessibilitySetting()
Context.installApk(apkFile: File)
Context.openBrowser(url: String)
Context.openInAppStore(packageName: String = this.packageName)
Context.openApp(packageName: String)
Context.uninstallApp(packageName: String) 

LogExt

String.logv(tag: String = TAG)
String.logd(tag: String = TAG)
String.logi(tag: String = TAG)
String.logw(tag: String = TAG)
String.loge(tag: String = TAG)

ToastExt [Demo]

Context.toast(content: String, duration: Int = Toast.LENGTH_SHORT)
Context.toast(@StringRes id: Int, duration: Int = Toast.LENGTH_SHORT)
Context.longToast(content: String)
Context.longToast(@StringRes id: Int)
Any.toast(context: Context, content: String, duration: Int = Toast.LENGTH_SHORT)
Any.toast(context: Context, @StringRes id: Int, duration: Int=Toast.LENGTH_SHORT) 
Any.longToast(context: Context, content: String)
Any.longToast(context: Context, @StringRes id: Int)

SharedPreferencesExt

fun <T> Context.putSpValue(key: String, value: T, name: String = packageName)
fun <T> Activity.putSpValue(key: String, value: T, name: String = packageName)
fun <T> Context.getSpValue(key: String, default: T, name: String = packageName ): T
fun <T> Activity.getSpValue(key: String, default: T, name: String = packageName): T

SystemServiceExt

val Context.windowManager
val Context.clipboardManager
val Context.layoutInflater
val Context.activityManager
val Context.powerManager
val Context.alarmManager
val Context.notificationManager
val Context.keyguardManager
val Context.locationManager
val Context.searchManager
val Context.storageManager
val Context.vibrator
val Context.connectivityManager
val Context.wifiManager
val Context.audioManager
val Context.mediaRouter
val Context.telephonyManager
val Context.sensorManager
val Context.subscriptionManager
val Context.carrierConfigManager
val Context.inputMethodManager
val Context.uiModeManager
val Context.downloadManager
val Context.batteryManager
val Context.jobScheduler

TransformExt

ByteArray.toHexString() : 字节数组转十六进制字符串

ViewExt

View.visible()
View.invisible()
View.gone()
var View.isVisible: Boolean
var View.isInvisible: Boolean
var View.isGone: Boolean
View.setPadding(@Px size: Int)
View.postDelayed(delayInMillis: Long, crossinline action: () -> Unit): Runnable
View.toBitmap(config: Bitmap.Config = Bitmap.Config.ARGB_8888): Bitmap