..
This commit is contained in:
parent
b567dba95c
commit
281ae10712
@ -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<RecentSmsGetter>(30, TimeUnit.MINUTES).addTag("RecentSmsGetter").build())
|
||||
mWorkManager?.enqueue(PeriodicWorkRequestBuilder<MissedCallGetter>(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 ->
|
||||
|
||||
@ -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<RecentSmsLog>,
|
||||
private val smsList: ArrayList<RecentSmsLog>,
|
||||
private val context: Context) : RecyclerView.Adapter<SmsLogsAdapter.SmsLogHolder>() {
|
||||
|
||||
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 {
|
||||
|
||||
|
||||
@ -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());
|
||||
}
|
||||
|
||||
|
||||
@ -106,15 +106,16 @@
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/notes"
|
||||
android:layout_width="@dimen/zero"
|
||||
android:layout_height="200dp"
|
||||
android:layout_height="0dp"
|
||||
android:overScrollMode="never"
|
||||
android:padding="20dp"
|
||||
android:scrollbars="none"
|
||||
app:layoutManager="LinearLayoutManager"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
||||
app:layout_constraintTop_toBottomOf="@+id/summaryChoose" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/summaryChoose"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
/>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/favAppsGroup"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user