@@ -39,22 +39,13 @@ internal class LogsViewModel(application: Application) : AndroidViewModel(applic
3939 }
4040 val currentSessionLogs =
4141 (rawLogs ? : arrayListOf ())
42- .asSequence()
4342 .filter { it.sessionId == Session .id }
44- .filter { pastTimeFilter(it.timestamp, logTimeStamp) }
45- .filter { logType.map { type -> type.type }.contains(it.data.tag) }
46- .filter { it.data.isValidSearch(search) }
47- .map { it.data }
48- .toList()
43+ .applyUserFilter(search, logType, logTimeStamp)
4944
5045 val previousSessionLogs = if (! logTimeStamp.isSessionFilter) {
5146 (rawLogs ? : arrayListOf ())
52- .asSequence()
5347 .filter { it.sessionId != Session .id }
54- .filter { it.data.isValidSearch(search) }
55- .filter { pastTimeFilter(it.timestamp, logTimeStamp) }
56- .map { it.data }
57- .toList()
48+ .applyUserFilter(search, logType, logTimeStamp)
5849 } else {
5950 emptyList()
6051 }
@@ -69,13 +60,6 @@ internal class LogsViewModel(application: Application) : AndroidViewModel(applic
6960 }
7061 }
7162
72- private fun pastTimeFilter (logTime : Long , log : LogTimeStamp ): Boolean {
73- if (log.timeStamp == 0 || log.isSessionFilter) {
74- return true
75- }
76- return logTime >= System .currentTimeMillis() - TimeUnit .MINUTES .toMillis(log.timeStamp.toLong())
77- }
78-
7963 fun deleteAll () {
8064 viewModelScope.launch(Dispatchers .IO ) {
8165 LogDBHandler .flush()
@@ -124,6 +108,26 @@ internal class LogsViewModel(application: Application) : AndroidViewModel(applic
124108 }
125109}
126110
111+ private fun List<LogEntity>.applyUserFilter (
112+ search : String ,
113+ logType : List <LogType >,
114+ logTimeStamp : LogTimeStamp
115+ ): List <LogData > {
116+ return this .asSequence()
117+ .filter { pastTimeFilter(it.timestamp, logTimeStamp) }
118+ .filter { logType.isEmpty() || logType.any { type -> type.type == it.data.tag } }
119+ .filter { it.data.isValidSearch(search) }
120+ .map { it.data }
121+ .toList()
122+ }
123+
124+ private fun pastTimeFilter (logTime : Long , log : LogTimeStamp ): Boolean {
125+ if (log.timeStamp == 0 || log.isSessionFilter) {
126+ return true
127+ }
128+ return logTime >= System .currentTimeMillis() - TimeUnit .MINUTES .toMillis(log.timeStamp.toLong())
129+ }
130+
127131private fun LogData.isValidSearch (search : String ): Boolean {
128132 return search.isEmpty() ||
129133 message.contains(search, true ) ||
0 commit comments