..
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.Fragment
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.work.OneTimeWorkRequest
|
import androidx.work.OneTimeWorkRequest
|
||||||
import androidx.work.OneTimeWorkRequestBuilder
|
import androidx.work.OneTimeWorkRequestBuilder
|
||||||
import androidx.work.PeriodicWorkRequestBuilder
|
import androidx.work.PeriodicWorkRequestBuilder
|
||||||
@ -87,11 +88,15 @@ internal class LauncherHome : Fragment() {
|
|||||||
binding.favAppsGroup.visibility = View.GONE
|
binding.favAppsGroup.visibility = View.GONE
|
||||||
|
|
||||||
mWorkManager = WorkManager.getInstance(lActivity!!.application);
|
mWorkManager = WorkManager.getInstance(lActivity!!.application);
|
||||||
|
mWorkManager?.cancelAllWork()
|
||||||
mWorkManager?.enqueue(PeriodicWorkRequestBuilder<RecentSmsGetter>(30, TimeUnit.MINUTES).addTag("RecentSmsGetter").build())
|
mWorkManager?.enqueue(PeriodicWorkRequestBuilder<RecentSmsGetter>(30, TimeUnit.MINUTES).addTag("RecentSmsGetter").build())
|
||||||
mWorkManager?.enqueue(PeriodicWorkRequestBuilder<MissedCallGetter>(30, TimeUnit.MINUTES).addTag("MissedCallGetter").build())
|
mWorkManager?.enqueue(PeriodicWorkRequestBuilder<MissedCallGetter>(30, TimeUnit.MINUTES).addTag("MissedCallGetter").build())
|
||||||
mSmsWorkInfo = mWorkManager?.getWorkInfosByTagLiveData("RecentSmsGetter");
|
mSmsWorkInfo = mWorkManager?.getWorkInfosByTagLiveData("RecentSmsGetter");
|
||||||
mSavedWorkInfo = mWorkManager?.getWorkInfosByTagLiveData("MissedCallGetter");
|
mSavedWorkInfo = mWorkManager?.getWorkInfosByTagLiveData("MissedCallGetter");
|
||||||
getOutputWorkInfo().observeForever {
|
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 ->
|
it.last()?.outputData?.keyValueMap?.forEach { t, u ->
|
||||||
try {
|
try {
|
||||||
if (u is String) {
|
if (u is String) {
|
||||||
@ -108,11 +113,16 @@ internal class LauncherHome : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getSmsInfos().observeForever {
|
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 ->
|
it.last()?.outputData?.keyValueMap?.forEach { t, u ->
|
||||||
try {
|
try {
|
||||||
if (u is String) {
|
if (u is String) {
|
||||||
|
BLog.LOGE("getSmsInfos() u >>> ${u}")
|
||||||
Gson().fromJson(u,RecentSmsLog::class.java)?.let {
|
Gson().fromJson(u,RecentSmsLog::class.java)?.let {
|
||||||
smsList.add(it)
|
smsList.add(it)
|
||||||
|
BLog.LOGE("getSmsInfos() u -> it >>> ${it}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
@ -161,26 +171,24 @@ internal class LauncherHome : Fragment() {
|
|||||||
binding.missedCalls.setOnClickListener {
|
binding.missedCalls.setOnClickListener {
|
||||||
binding.missedCalls.isChecked = true
|
binding.missedCalls.isChecked = true
|
||||||
BLog.LOGE("binding.missedCalls >> ${binding.missedCalls.isChecked}")
|
BLog.LOGE("binding.missedCalls >> ${binding.missedCalls.isChecked}")
|
||||||
if (callList.size > 0 && isAdded && isResumed && isVisible) {
|
try {
|
||||||
try {
|
BLog.LOGE("callList >>> ${callList.size}")
|
||||||
BLog.LOGE("callList >>> ${callList.size}")
|
binding.notes.layoutManager = LinearLayoutManager(requireContext())
|
||||||
binding.notes.adapter = MissedCallsAdapter(callList, requireContext())
|
binding.notes.adapter = MissedCallsAdapter(callList, requireContext())
|
||||||
binding.notes.invalidate()
|
(binding.notes.adapter as? MissedCallsAdapter)?.notifyDataSetChanged()
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
|
|
||||||
}
|
|
||||||
}}
|
}}
|
||||||
binding.recentSms.setOnClickListener {
|
binding.recentSms.setOnClickListener {
|
||||||
binding.recentSms.isChecked = true
|
binding.recentSms.isChecked = true
|
||||||
BLog.LOGE("binding.recentSms >> ${binding.recentSms.isChecked}")
|
BLog.LOGE("binding.recentSms >> ${binding.recentSms.isChecked}")
|
||||||
if (smsList.size > 0 && isAdded && isResumed && isVisible) {
|
try {
|
||||||
try {
|
BLog.LOGE("callList >>> ${smsList.size}")
|
||||||
BLog.LOGE("callList >>> ${smsList.size}")
|
binding.notes.layoutManager = LinearLayoutManager(requireContext())
|
||||||
binding.notes.adapter = SmsLogsAdapter(smsList, requireContext())
|
binding.notes.adapter = SmsLogsAdapter(smsList, requireContext())
|
||||||
binding.notes.invalidate()
|
(binding.notes.adapter as? SmsLogsAdapter)?.notifyDataSetChanged()
|
||||||
} catch (e : Exception) {
|
} catch (e : Exception) {
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
binding.summaryChoose.setOnCheckedChangeListener { group, checkedId ->
|
binding.summaryChoose.setOnCheckedChangeListener { group, checkedId ->
|
||||||
|
|||||||
@ -36,10 +36,11 @@ import rasel.lunar.launcher.utils.BLog
|
|||||||
import rasel.lunar.launcher.utils.RecentSmsLog
|
import rasel.lunar.launcher.utils.RecentSmsLog
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.collections.ArrayList
|
import kotlin.collections.ArrayList
|
||||||
|
import kotlin.collections.List
|
||||||
|
|
||||||
|
|
||||||
internal class SmsLogsAdapter(
|
internal class SmsLogsAdapter(
|
||||||
private val callList: ArrayList<RecentSmsLog>,
|
private val smsList: ArrayList<RecentSmsLog>,
|
||||||
private val context: Context) : RecyclerView.Adapter<SmsLogsAdapter.SmsLogHolder>() {
|
private val context: Context) : RecyclerView.Adapter<SmsLogsAdapter.SmsLogHolder>() {
|
||||||
|
|
||||||
private val currentFragment = lActivity!!.supportFragmentManager.findFragmentById(R.id.mainFragmentsContainer)
|
private val currentFragment = lActivity!!.supportFragmentManager.findFragmentById(R.id.mainFragmentsContainer)
|
||||||
@ -50,20 +51,20 @@ internal class SmsLogsAdapter(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getItemCount(): Int {
|
override fun getItemCount(): Int {
|
||||||
// BLog.LOGE("callList.size >>> ${callList.size}")
|
BLog.LOGE("smsList.size >>> ${smsList.size}")
|
||||||
return callList.size
|
return smsList.size
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
override fun onBindViewHolder(holder: SmsLogHolder, position: Int) {
|
override fun onBindViewHolder(holder: SmsLogHolder, position: Int) {
|
||||||
val todo = callList[position]
|
val todo = smsList[position]
|
||||||
BLog.LOGE("callList >>> ${callList[position]}")
|
BLog.LOGE("smsList >>> ${smsList[position]}")
|
||||||
holder.view.itemText.text = "\u25CF ${todo.person} ${todo.addr} , ${todo.body} : ${todo.pstDate} : ${todo.type}"
|
holder.view.itemText.text = "\u25CF ${todo.person} ${todo.addr} , ${todo.body} : ${todo.pstDate} : ${todo.type}"
|
||||||
|
|
||||||
/* multiline texts are enabled for TodoManager */
|
/* multiline texts are enabled for TodoManager */
|
||||||
holder.view.itemText.isSingleLine = false
|
// holder.view.itemText.isSingleLine = false
|
||||||
/* launch edit or update dialog on item click */
|
/* 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 */
|
/* copy texts on long click */
|
||||||
holder.view.itemText.setOnLongClickListener {
|
holder.view.itemText.setOnLongClickListener {
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package rasel.lunar.launcher.utils
|
package rasel.lunar.launcher.utils
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.provider.CallLog
|
import android.provider.CallLog
|
||||||
import android.provider.Telephony
|
import android.provider.Telephony
|
||||||
@ -19,6 +20,7 @@ class MissedCallGetter : Worker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressLint("RestrictedApi")
|
||||||
override fun doWork(): Result {
|
override fun doWork(): Result {
|
||||||
var resultData = Data.Builder()
|
var resultData = Data.Builder()
|
||||||
var dateParam = Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24)).time.toString()
|
var dateParam = Date(System.currentTimeMillis() - (1000 * 60 * 60 * 24)).time.toString()
|
||||||
@ -117,6 +119,7 @@ class RecentSmsGetter : Worker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@SuppressLint("RestrictedApi")
|
||||||
override fun doWork(): Result {
|
override fun doWork(): Result {
|
||||||
BLog.LOGE("phNumber == onStart")
|
BLog.LOGE("phNumber == onStart")
|
||||||
var resultData = Data.Builder()
|
var resultData = Data.Builder()
|
||||||
@ -174,7 +177,8 @@ class RecentSmsGetter : Worker {
|
|||||||
smsBody,
|
smsBody,
|
||||||
callerName ?: ""
|
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()
|
managedCursor.close()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return Result.success(resultData.build());
|
return Result.success(resultData.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -106,15 +106,16 @@
|
|||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/notes"
|
android:id="@+id/notes"
|
||||||
android:layout_width="@dimen/zero"
|
android:layout_width="@dimen/zero"
|
||||||
android:layout_height="200dp"
|
android:layout_height="0dp"
|
||||||
android:overScrollMode="never"
|
android:overScrollMode="never"
|
||||||
android:padding="20dp"
|
android:padding="20dp"
|
||||||
android:scrollbars="none"
|
android:scrollbars="none"
|
||||||
app:layoutManager="LinearLayoutManager"
|
app:layoutManager="LinearLayoutManager"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="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
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:id="@+id/favAppsGroup"
|
android:id="@+id/favAppsGroup"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user