From e51d59643188e04b9a5c634003236a6b7b234ffd Mon Sep 17 00:00:00 2001 From: lunaticbum <> Date: Thu, 22 Aug 2024 18:01:58 +0900 Subject: [PATCH] ... --- .../rasel/lunar/launcher/home/LauncherHome.kt | 71 +++++++++---------- 1 file changed, 32 insertions(+), 39 deletions(-) diff --git a/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt b/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt index f83260c7..32c14ab0 100644 --- a/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt +++ b/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt @@ -85,7 +85,9 @@ internal class LauncherHome : Fragment() { batteryReceiver = BatteryReceiver(binding.batteryProgress) binding.favAppsGroup.visibility = View.GONE - + Thread("CALLED").run { + getCallDetails() + } return binding.root } @@ -135,24 +137,24 @@ internal class LauncherHome : Fragment() { var callList = arrayListOf() - private suspend fun getCallDetails() { - MainScope().async { - var dateParam = Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24 * 3)).time.toString() - val managedCursor = lActivity!!.managedQuery( - CallLog.Calls.CONTENT_URI, arrayOf( - CallLog.Calls.NUMBER, - CallLog.Calls.TYPE, - CallLog.Calls.DATE, - CallLog.Calls.DURATION, - CallLog.Calls.CACHED_NAME, - ), CallLog.Calls.DATE + "> ? AND " + CallLog.Calls.TYPE + " > ?", arrayOf(dateParam, "2"), CallLog.Calls.DATE + " desc") - val number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER) - val type = managedCursor.getColumnIndex(CallLog.Calls.TYPE) - val date = managedCursor.getColumnIndex(CallLog.Calls.DATE) - val duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION) - val name = managedCursor.getColumnIndex(CallLog.Calls.CACHED_NAME) -// sb.append("Call Details : ${managedCursor.count}") - var missedCalls = hashMapOf() + + private fun getCallDetails() { + var dateParam = Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24 * 3)).time.toString() + val managedCursor = lActivity!!.managedQuery( + CallLog.Calls.CONTENT_URI, arrayOf( + CallLog.Calls.NUMBER, + CallLog.Calls.TYPE, + CallLog.Calls.DATE, + CallLog.Calls.DURATION, + CallLog.Calls.CACHED_NAME, + ), CallLog.Calls.DATE + "> ? AND " + CallLog.Calls.TYPE + " > ?", arrayOf(dateParam, "2"), CallLog.Calls.DATE + " desc") + val number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER) + val type = managedCursor.getColumnIndex(CallLog.Calls.TYPE) + val date = managedCursor.getColumnIndex(CallLog.Calls.DATE) + val duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION) + val name = managedCursor.getColumnIndex(CallLog.Calls.CACHED_NAME) + var missedCalls = hashMapOf() + if (missedCalls.size != callList.size) { while (managedCursor.moveToNext()) { val phNumber = managedCursor.getString(number) // mobile number val callType = managedCursor.getString(type) // call type @@ -186,7 +188,6 @@ internal class LauncherHome : Fragment() { dir = "ANSWERED_EXTERNALLY_TYPE" } } -// if (dircode > 2) { var missed: MissedCall = if (missedCalls.containsKey(phNumber)) { missedCalls.get(phNumber)!!.apply { count = count + 1 @@ -195,20 +196,14 @@ internal class LauncherHome : Fragment() { MissedCall(1,callerName,phNumber, dircode, dir, SimpleDateFormat("yyy/MM/dd-HH:mm:ss").format(callDayTime)) } missedCalls.put(phNumber, missed) -// } } - - - managedCursor.close() - return@async missedCalls - }.await().apply { - if (callList.size == this.size) { - - } else { - callList.clear() - this.forEach { t, u -> - callList.add(u) - } + } + managedCursor.close() + if (callList.size == missedCalls.size) { + } else { + callList.clear() + missedCalls.forEach { t, u -> + callList.add(u) } } } @@ -473,15 +468,13 @@ internal class LauncherHome : Fragment() { } /* to-do list */ + @SuppressLint("NotifyDataSetChanged") private fun showTodoList() { if (binding.missedCalls.isChecked == true) { - if (callList.size == 0) { - GlobalScope.launch { getCallDetails() } - } else { + if (callList.size > 0) { BLog.LOGE("callList >>> ${callList.size}") - binding.notes.adapter = MissedCallsAdapter(callList, requireContext()) - binding.notes.post { - binding.notes.invalidate() + binding.notes.adapter = MissedCallsAdapter(callList, requireContext())?.apply { + this.notifyDataSetChanged() } } } else {