11package com.kit.log.ui
22
3+ import android.util.Log
34import androidx.lifecycle.ViewModel
45import androidx.lifecycle.viewModelScope
56import com.orhanobut.logger.LogKit
@@ -9,58 +10,58 @@ import kotlinx.coroutines.launch
910
1011class LogViewModel : ViewModel () {
1112
12- // log数据
13- private val logs = mutableListOf<LogInfo >()
13+ // log数据
14+ private val logs = mutableListOf<LogInfo >()
1415
15- // tag数据
16- private val tags = linkedSetOf<String >()
16+ // tag数据
17+ private val tags = linkedSetOf<String >()
1718
18- // 需要展示的标签
19- val tagMSF: MutableStateFlow <List <String >> = MutableStateFlow (emptyList())
19+ // 需要展示的标签
20+ val tagMSF: MutableStateFlow <List <String >> = MutableStateFlow (emptyList())
2021
21- // 需要展示的Log
22- val logMSF: MutableStateFlow <List <LogInfo >> = MutableStateFlow (emptyList())
22+ // 需要展示的Log
23+ val logMSF: MutableStateFlow <List <LogInfo >> = MutableStateFlow (emptyList())
2324
24- init {
25- LogKit .readLog { result ->
26- logs.clear()
27- tags.clear()
28- tags.add(TAG_SHOW_ALL_LOG )
29- result.forEach { line ->
30- val oneLogLine = line.split(" ," )
31- val oneLogInfo = LogInfo (
32- oneLogLine[0 ].toLong(),
33- oneLogLine[1 ],
34- oneLogLine[2 ],
35- oneLogLine[3 ],
36- oneLogLine[4 ]
37- )
38- logs.add(oneLogInfo)
39- tags.add(oneLogInfo.tag)
40- }
41- loadTag()
42- loadLog()
25+ init {
26+ LogKit .readLog { result ->
27+ logs.clear()
28+ tags.clear()
29+ tags.add(TAG_SHOW_ALL_LOG )
30+ result.forEach { line ->
31+ val oneLogLine = line.split(" ," , limit = 5 )
32+ val oneLogInfo = LogInfo (
33+ oneLogLine[0 ].toLong(),
34+ oneLogLine[1 ],
35+ oneLogLine[2 ],
36+ oneLogLine[3 ],
37+ oneLogLine.getOrNull(4 ) ? : " "
38+ )
39+ logs.add(oneLogInfo)
40+ tags.add(oneLogInfo.tag)
41+ }
42+ loadTag()
43+ loadLog()
44+ }
4345 }
44- }
4546
46- fun loadLog (filterTag : String = TAG_SHOW_ALL_LOG ) {
47- viewModelScope.launch(Dispatchers .IO ) {
48- if (filterTag == TAG_SHOW_ALL_LOG ) {
49- logMSF.emit(logs)
50- } else {
51- logMSF.emit(logs.filter { it.tag == filterTag })
52- }
47+ fun loadLog (filterTag : String = TAG_SHOW_ALL_LOG ) {
48+ viewModelScope.launch(Dispatchers .IO ) {
49+ if (filterTag == TAG_SHOW_ALL_LOG ) {
50+ logMSF.emit(logs)
51+ } else {
52+ logMSF.emit(logs.filter { it.tag == filterTag })
53+ }
54+ }
5355 }
54- }
5556
56- fun loadTag () {
57- viewModelScope.launch(Dispatchers .IO ) {
58- tagMSF.emit(tags.toList())
57+ fun loadTag () {
58+ viewModelScope.launch(Dispatchers .IO ) {
59+ tagMSF.emit(tags.toList())
60+ }
5961 }
60- }
6162
6263
63- companion object {
64- const val TAG_SHOW_ALL_LOG = " ALL TAG"
65- }
64+ companion object {
65+ const val TAG_SHOW_ALL_LOG = " ALL TAG"
66+ }
6667}
0 commit comments