feat:初步搭建新房间框架

feat:初步搭建红包处理器与组件等(未完成)
This commit is contained in:
Max
2023-10-26 20:17:11 +08:00
parent cf3ab9ce84
commit 5ef9be75d2
34 changed files with 1086 additions and 93 deletions

View File

@@ -0,0 +1,14 @@
package com.chuhai.utils
/**
* Created by Max on 2023/10/26 11:50
* Desc:清除释放统一接口
**/
interface ICleared {
/**
* 清除/释放
*/
fun onCleared() {}
}

View File

@@ -0,0 +1,13 @@
package com.chuhai.utils.log
import android.util.Log
/**
* Created by Max on 2023/10/26 10:29
* Desc:Android日志
*/
class AndroidLogPrinter : LogPrinter {
override fun println(level: Int, tag: String, message: String) {
Log.println(level, tag, message)
}
}

View File

@@ -0,0 +1,61 @@
package com.chuhai.utils.log
/**
* Created by Max on 2023/10/26 10:29
* Desc:日志快捷使用接口
*/
interface ILog {
companion object {
/**
* 清理退出APP时调用
*/
fun onCleared() {
}
}
/**
* 默认日志Tag
*/
fun getLogTag(): String {
return this::class.java.simpleName
}
fun logI(message: String, tag: String = getLogTag(), filePrinter: Boolean = false) {
LogUtil.i(tag, message, filePrinter)
}
fun logV(message: String, tag: String = getLogTag(), filePrinter: Boolean = false) {
LogUtil.v(tag, message, filePrinter)
}
fun logW(message: String, tag: String = getLogTag(), filePrinter: Boolean = false) {
LogUtil.w(tag, message, filePrinter)
}
fun logD(message: String, tag: String = getLogTag(), filePrinter: Boolean = false) {
LogUtil.d(tag, message, filePrinter)
}
fun logE(message: String, tag: String = getLogTag(), filePrinter: Boolean = false) {
LogUtil.e(tag, message, filePrinter)
}
fun logE(
throwable: Throwable,
tag: String = getLogTag(),
filePrinter: Boolean = false
) {
LogUtil.e(tag, throwable, filePrinter)
}
fun logE(
message: String,
throwable: Throwable,
tag: String = getLogTag(),
filePrinter: Boolean = false
) {
LogUtil.e(tag, message, throwable, filePrinter)
}
}

View File

@@ -0,0 +1,14 @@
package com.chuhai.utils.log
/**
* Created by Max on 2023/10/26 10:29
* Desc: 日志打印
*/
interface LogPrinter {
/**
* 打印
* @param level 级别 [android.util.Log]
*/
fun println(level: Int, tag: String, message: String)
}

View File

@@ -0,0 +1,101 @@
package com.chuhai.utils.log
import android.util.Log
/**
* Created by Max on 2023/10/26 10:29
* Desc:日志工具
*/
object LogUtil {
private var consolePrinter: LogPrinter? = AndroidLogPrinter()
private var filePrinter: LogPrinter? = null
// 是否启动控制台打印
var consolePrinterEnabled: Boolean = true
// 是否启动文件打印
var filePrinterEnabled: Boolean = true
/**
* 设置文件打印
*/
fun setFilePrinter(filePrinter: LogPrinter) {
this.filePrinter = filePrinter
}
fun e(tag: String, message: String, filePrinter: Boolean = false) {
log(Log.ERROR, tag, message, filePrinter)
}
fun e(tag: String, throwable: Throwable, filePrinter: Boolean = false) {
val cause = Log.getStackTraceString(throwable)
if (cause.isEmpty()) {
return
}
e(tag, cause, filePrinter)
}
fun e(tag: String, message: String?, throwable: Throwable, filePrinter: Boolean = false) {
val cause = Log.getStackTraceString(throwable)
if (message == null && cause.isEmpty()) {
return
}
e(tag, message + "\t\t" + cause, filePrinter)
}
fun d(tag: String, message: String, filePrinter: Boolean = false) {
log(Log.DEBUG, tag, message, filePrinter)
}
fun i(tag: String, message: String, filePrinter: Boolean = false) {
log(Log.INFO, tag, message, filePrinter)
}
fun v(tag: String, message: String, filePrinter: Boolean = false) {
log(Log.VERBOSE, tag, message, filePrinter)
}
fun w(tag: String, message: String, filePrinter: Boolean = false) {
log(Log.WARN, tag, message, filePrinter)
}
/**
* 输出日志
*/
fun log(level: Int = Log.INFO, tag: String?, message: String?, filePrinter: Boolean = false) {
if (tag.isNullOrEmpty()) {
return
}
if (message.isNullOrEmpty()) {
return
}
// 输出控制台
logConsole(level, tag, message)
// 输出文件
if (filePrinter) {
logFile(level, tag, message)
}
}
/**
* 输出到控制台
*/
fun logConsole(level: Int = Log.INFO, tag: String, message: String) {
if (!consolePrinterEnabled) {
return
}
consolePrinter?.println(level, tag, message)
}
/**
* 输出到文件
*/
fun logFile(level: Int = Log.INFO, tag: String, message: String) {
if (!filePrinterEnabled) {
return
}
filePrinter?.println(level, tag, message)
}
}