From 281ae107125ae2d22c3bd4a801eedfbb71cf7a81 Mon Sep 17 00:00:00 2001 From: lunaticbum <> Date: Fri, 23 Aug 2024 17:27:44 +0900 Subject: [PATCH] .. --- .../rasel/lunar/launcher/home/LauncherHome.kt | 36 +++++++++++-------- .../lunar/launcher/todos/SmsLogsAdapter.kt | 15 ++++---- .../rasel/lunar/launcher/utils/DataManager.kt | 7 +++- app/src/main/res/layout/launcher_home.xml | 7 ++-- 4 files changed, 40 insertions(+), 25 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 75d26798..e27e7ab6 100644 --- a/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt +++ b/app/src/main/kotlin/rasel/lunar/launcher/home/LauncherHome.kt @@ -34,6 +34,7 @@ import androidx.biometric.BiometricPrompt import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import androidx.lifecycle.LiveData +import androidx.recyclerview.widget.LinearLayoutManager import androidx.work.OneTimeWorkRequest import androidx.work.OneTimeWorkRequestBuilder import androidx.work.PeriodicWorkRequestBuilder @@ -87,11 +88,15 @@ internal class LauncherHome : Fragment() { binding.favAppsGroup.visibility = View.GONE mWorkManager = WorkManager.getInstance(lActivity!!.application); + mWorkManager?.cancelAllWork() mWorkManager?.enqueue(PeriodicWorkRequestBuilder(30, TimeUnit.MINUTES).addTag("RecentSmsGetter").build()) mWorkManager?.enqueue(PeriodicWorkRequestBuilder(30, TimeUnit.MINUTES).addTag("MissedCallGetter").build()) mSmsWorkInfo = mWorkManager?.getWorkInfosByTagLiveData("RecentSmsGetter"); mSavedWorkInfo = mWorkManager?.getWorkInfosByTagLiveData("MissedCallGetter"); getOutputWorkInfo().observeForever { + BLog.LOGE("getOutputWorkInfo.last() >>> ${it.size}") + BLog.LOGE("getOutputWorkInfo.last() >>> ${it.first().outputData.size()}") + BLog.LOGE("getOutputWorkInfo.last() >>> ${it.last().outputData.size()}") it.last()?.outputData?.keyValueMap?.forEach { t, u -> try { if (u is String) { @@ -108,11 +113,16 @@ internal class LauncherHome : Fragment() { } getSmsInfos().observeForever { + BLog.LOGE("getSmsInfos.last() >>> ${it.size}") + BLog.LOGE("getSmsInfos.last() >>> ${it.first().outputData.size()}") + BLog.LOGE("getSmsInfos.last() >>> ${it.last().outputData.size()}") it.last()?.outputData?.keyValueMap?.forEach { t, u -> try { if (u is String) { + BLog.LOGE("getSmsInfos() u >>> ${u}") Gson().fromJson(u,RecentSmsLog::class.java)?.let { smsList.add(it) + BLog.LOGE("getSmsInfos() u -> it >>> ${it}") } } } catch (e : Exception) { @@ -161,26 +171,24 @@ internal class LauncherHome : Fragment() { binding.missedCalls.setOnClickListener { binding.missedCalls.isChecked = true BLog.LOGE("binding.missedCalls >> ${binding.missedCalls.isChecked}") - if (callList.size > 0 && isAdded && isResumed && isVisible) { - try { - BLog.LOGE("callList >>> ${callList.size}") - binding.notes.adapter = MissedCallsAdapter(callList, requireContext()) - binding.notes.invalidate() - } catch (e : Exception) { + try { + BLog.LOGE("callList >>> ${callList.size}") + binding.notes.layoutManager = LinearLayoutManager(requireContext()) + binding.notes.adapter = MissedCallsAdapter(callList, requireContext()) + (binding.notes.adapter as? MissedCallsAdapter)?.notifyDataSetChanged() + } catch (e : Exception) { - } }} binding.recentSms.setOnClickListener { binding.recentSms.isChecked = true BLog.LOGE("binding.recentSms >> ${binding.recentSms.isChecked}") - if (smsList.size > 0 && isAdded && isResumed && isVisible) { - try { - BLog.LOGE("callList >>> ${smsList.size}") - binding.notes.adapter = SmsLogsAdapter(smsList, requireContext()) - binding.notes.invalidate() - } catch (e : Exception) { + try { + BLog.LOGE("callList >>> ${smsList.size}") + binding.notes.layoutManager = LinearLayoutManager(requireContext()) + binding.notes.adapter = SmsLogsAdapter(smsList, requireContext()) + (binding.notes.adapter as? SmsLogsAdapter)?.notifyDataSetChanged() + } catch (e : Exception) { - } } } binding.summaryChoose.setOnCheckedChangeListener { group, checkedId -> diff --git a/app/src/main/kotlin/rasel/lunar/launcher/todos/SmsLogsAdapter.kt b/app/src/main/kotlin/rasel/lunar/launcher/todos/SmsLogsAdapter.kt index 7a82d4fc..04c0448f 100644 --- a/app/src/main/kotlin/rasel/lunar/launcher/todos/SmsLogsAdapter.kt +++ b/app/src/main/kotlin/rasel/lunar/launcher/todos/SmsLogsAdapter.kt @@ -36,10 +36,11 @@ import rasel.lunar.launcher.utils.BLog import rasel.lunar.launcher.utils.RecentSmsLog import java.util.* import kotlin.collections.ArrayList +import kotlin.collections.List internal class SmsLogsAdapter( - private val callList: ArrayList, + private val smsList: ArrayList, private val context: Context) : RecyclerView.Adapter() { private val currentFragment = lActivity!!.supportFragmentManager.findFragmentById(R.id.mainFragmentsContainer) @@ -50,20 +51,20 @@ internal class SmsLogsAdapter( } override fun getItemCount(): Int { -// BLog.LOGE("callList.size >>> ${callList.size}") - return callList.size + BLog.LOGE("smsList.size >>> ${smsList.size}") + return smsList.size } @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: SmsLogHolder, position: Int) { - val todo = callList[position] - BLog.LOGE("callList >>> ${callList[position]}") + val todo = smsList[position] + BLog.LOGE("smsList >>> ${smsList[position]}") holder.view.itemText.text = "\u25CF ${todo.person} ${todo.addr} , ${todo.body} : ${todo.pstDate} : ${todo.type}" /* multiline texts are enabled for TodoManager */ - holder.view.itemText.isSingleLine = false +// holder.view.itemText.isSingleLine = false /* launch edit or update dialog on item click */ - holder.view.itemText.setOnClickListener { updateDialog(position) } +// holder.view.itemText.setOnClickListener { updateDialog(position) } /* copy texts on long click */ holder.view.itemText.setOnLongClickListener { diff --git a/app/src/main/kotlin/rasel/lunar/launcher/utils/DataManager.kt b/app/src/main/kotlin/rasel/lunar/launcher/utils/DataManager.kt index be426d9f..4022efaf 100644 --- a/app/src/main/kotlin/rasel/lunar/launcher/utils/DataManager.kt +++ b/app/src/main/kotlin/rasel/lunar/launcher/utils/DataManager.kt @@ -1,5 +1,6 @@ package rasel.lunar.launcher.utils +import android.annotation.SuppressLint import android.content.Context import android.provider.CallLog import android.provider.Telephony @@ -19,6 +20,7 @@ class MissedCallGetter : Worker { } + @SuppressLint("RestrictedApi") override fun doWork(): Result { var resultData = Data.Builder() var dateParam = Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24)).time.toString() @@ -117,6 +119,7 @@ class RecentSmsGetter : Worker { } + @SuppressLint("RestrictedApi") override fun doWork(): Result { BLog.LOGE("phNumber == onStart") var resultData = Data.Builder() @@ -174,7 +177,8 @@ class RecentSmsGetter : Worker { smsBody, callerName ?: "" ) - resultData.put(phNumber +" _"+ reciveDate, log.toJson()) + BLog.LOGE("resultData put ${phNumber +"_"+ reciveDate} >>> ${log.toJson()}") + resultData.put(phNumber +"_"+ reciveDate, log.toJson()) } @@ -187,6 +191,7 @@ class RecentSmsGetter : Worker { managedCursor.close() } } + return Result.success(resultData.build()); } diff --git a/app/src/main/res/layout/launcher_home.xml b/app/src/main/res/layout/launcher_home.xml index ba2c9ad3..a170b675 100644 --- a/app/src/main/res/layout/launcher_home.xml +++ b/app/src/main/res/layout/launcher_home.xml @@ -106,15 +106,16 @@ + app:layout_constraintTop_toBottomOf="@+id/summaryChoose" + app:layout_constraintBottom_toBottomOf="parent" + />