...
This commit is contained in:
parent
3e8c29346d
commit
ea3858ba1f
@ -136,6 +136,7 @@
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.fileprovider"
|
||||
android:exported="false"
|
||||
android:enabled="true"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
@ -151,6 +152,7 @@
|
||||
</intent-filter>
|
||||
</service>
|
||||
<receiver android:name=".LauncherActivity$EndCallReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.PHONE_STATE" />
|
||||
@ -158,6 +160,7 @@
|
||||
</receiver>
|
||||
<receiver android:name=".LauncherActivity$SMSReceiver"
|
||||
android:exported="true"
|
||||
android:enabled="true"
|
||||
android:permission="android.permission.BROADCAST_SMS">
|
||||
<intent-filter>
|
||||
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
|
||||
@ -165,6 +168,27 @@
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
|
||||
<receiver
|
||||
android:exported="true"
|
||||
android:enabled="true"
|
||||
android:name=".receiver.PackageEventReceiver"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_INSTALL"/>
|
||||
<action android:name="android.intent.action.PACKAGE_ADDED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_CHANGED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_DATA_CLEARED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_FIRST_LAUNCH"/>
|
||||
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_INSTALL"/>
|
||||
<action android:name="android.intent.action.PACKAGE_NEEDS_VERIFICATION"/>
|
||||
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_REPLACED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_RESTARTED"/>
|
||||
<action android:name="android.intent.action.PACKAGE_VERIFIED"/>
|
||||
<data android:scheme="package" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
</application>
|
||||
</manifest>
|
||||
@ -76,6 +76,7 @@ import com.google.android.material.color.DynamicColors
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.jsoup.Jsoup
|
||||
import org.jsoup.nodes.Document
|
||||
import rasel.lunar.launcher.LauncherActivity.Companion.lActivity
|
||||
import rasel.lunar.launcher.apps.AppDrawer
|
||||
import rasel.lunar.launcher.apps.DismissCalback
|
||||
import rasel.lunar.launcher.apps.SearchMenu
|
||||
@ -164,7 +165,17 @@ internal class LauncherActivity : AppCompatActivity() {
|
||||
PeriodicWorkRequestBuilder<RecentSmsGetter>(longTimePeriod, TimeUnit.MINUTES)
|
||||
.addTag(SMS_WORK_TAG)
|
||||
.build())
|
||||
}, 1, TimeUnit.SECONDS)
|
||||
}, 500, TimeUnit.MILLISECONDS)
|
||||
Executors.newSingleThreadScheduledExecutor().schedule({
|
||||
mWorkManager?.cancelAllWorkByTag(RecentCallGetter.TAG)
|
||||
mWorkManager?.enqueueUniquePeriodicWork(
|
||||
RecentCallGetter.TAG,
|
||||
ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
|
||||
PeriodicWorkRequestBuilder<RecentCallGetter>(longTimePeriod, TimeUnit.MINUTES)
|
||||
.addTag(RecentCallGetter.TAG)
|
||||
.build())
|
||||
}, 500, TimeUnit.MILLISECONDS)
|
||||
|
||||
var delay = 3L
|
||||
Executors.newSingleThreadScheduledExecutor().schedule({
|
||||
mWorkManager?.cancelAllWorkByTag(ContactInfoGetter.TAG)
|
||||
@ -184,15 +195,7 @@ internal class LauncherActivity : AppCompatActivity() {
|
||||
.build())
|
||||
}, delay, TimeUnit.SECONDS)
|
||||
delay = delay + 3L
|
||||
Executors.newSingleThreadScheduledExecutor().schedule({
|
||||
mWorkManager?.cancelAllWorkByTag(RecentCallGetter.TAG)
|
||||
mWorkManager?.enqueueUniquePeriodicWork(
|
||||
RecentCallGetter.TAG,
|
||||
ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
|
||||
PeriodicWorkRequestBuilder<RecentCallGetter>(longTimePeriod, TimeUnit.MINUTES)
|
||||
.addTag(RecentCallGetter.TAG)
|
||||
.build())
|
||||
}, delay, TimeUnit.SECONDS)
|
||||
|
||||
}
|
||||
|
||||
fun refreshFeeds() {
|
||||
@ -1051,3 +1054,47 @@ interface CommadCallabck {
|
||||
fun onConsoleLog(log : String)
|
||||
fun collectComplete()
|
||||
}
|
||||
|
||||
fun openNews(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.setPackage("com.android.chrome")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
|
||||
fun openYouTube(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.setPackage("com.google.android.youtube")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
fun openReddit(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.setPackage("com.reddit.frontpage")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
fun openDotax(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW)
|
||||
mapIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||
mapIntent.addCategory(Intent.CATEGORY_BROWSABLE)
|
||||
mapIntent.setPackage("net.daum.android.cafe")
|
||||
mapIntent.setData(gmmIntentUri)
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
|
||||
fun openOpera(schemeString : String) {
|
||||
BLog.LOGE("openOpera ${schemeString}")
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
|
||||
mapIntent.setPackage("com.opera.browser")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -51,9 +51,9 @@ internal class ContactAdapter (
|
||||
|
||||
override fun onBindViewHolder(holder: ContactViewHolder, i: Int) {
|
||||
val item = oldList[i]
|
||||
BLog.LOGE("name >>> ${item.name} :: ${item.touchCount} :: ${RecentCallGetter.dateFormat.format(
|
||||
Date(item.lastedTouchDateTime)
|
||||
)}")
|
||||
// BLog.LOGE("name >>> ${item.name} :: ${item.touchCount} :: ${RecentCallGetter.dateFormat.format(
|
||||
// Date(item.lastedTouchDateTime)
|
||||
// )}")
|
||||
|
||||
holder.view.apply {
|
||||
name.text = item.name
|
||||
@ -67,7 +67,7 @@ internal class ContactAdapter (
|
||||
|
||||
/* on long click - open app menu */
|
||||
setOnLongClickListener {
|
||||
BLog.LOGE("item.id.toString() >> ${item.id.toString()}")
|
||||
// BLog.LOGE("item.id.toString() >> ${item.id.toString()}")
|
||||
ContactMenu().show(fragmentManager, item.id.toString())
|
||||
true
|
||||
}
|
||||
|
||||
@ -82,7 +82,13 @@ import rasel.lunar.launcher.model.jGuruTag
|
||||
import rasel.lunar.launcher.model.dateFormat
|
||||
import rasel.lunar.launcher.model.getRssData
|
||||
import rasel.lunar.launcher.utils.BLog
|
||||
import rasel.lunar.launcher.utils.JamoUtils
|
||||
import rasel.lunar.launcher.utils.RssList.jGuruMain
|
||||
import rasel.lunar.launcher.utils.USAGT
|
||||
import rasel.lunar.launcher.utils.getJ
|
||||
import rasel.lunar.launcher.workers.BaseGetter
|
||||
import rasel.lunar.launcher.workers.RecentCallGetter
|
||||
import rasel.lunar.launcher.workers.RecentSmsGetter
|
||||
import rasel.lunar.launcher.workers.WorkersDb
|
||||
import java.net.URLEncoder
|
||||
import java.nio.charset.Charset
|
||||
@ -199,7 +205,7 @@ internal class Feeds : Fragment() , CommadCallabck {
|
||||
|
||||
}
|
||||
|
||||
val USAGT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15"
|
||||
|
||||
/* start rss service if network is active and rss url is not empty */
|
||||
private fun startService() {
|
||||
try {
|
||||
@ -218,6 +224,7 @@ internal class Feeds : Fragment() , CommadCallabck {
|
||||
builder.setPositiveButton(android.R.string.ok,
|
||||
DialogInterface.OnClickListener { dialog, which ->
|
||||
dialog.dismiss()
|
||||
BLog.LOGE("input.text.toString() >>>> ${input.text.toString()}")
|
||||
if (input.text.toString().trim().contains(" ")) {
|
||||
val cmd = input.text.toString().trim().split(" ")
|
||||
when(cmd[0]) {
|
||||
@ -275,7 +282,44 @@ internal class Feeds : Fragment() , CommadCallabck {
|
||||
binding.expandRss.isChecked = false
|
||||
} else {
|
||||
when (input.text.toString()) {
|
||||
|
||||
"so" -> GlobalScope.launch {
|
||||
"https://kr69.sogirl.so".getJ().let { doc ->
|
||||
BLog.LOGE("ogirl >>> ${doc.title()}")
|
||||
doc.getElementsByTag("article").forEach { article ->
|
||||
BLog.LOGE("ogirl article >>> ${article.text()}")
|
||||
val title = article.getElementsByTag("a").get(0).attr("title")
|
||||
val href = article.getElementsByTag("a").get(0).attr("href")
|
||||
val img = article.getElementsByTag("img").get(0).attr("data-src")
|
||||
WorkersDb.getRealm().writeBlocking {
|
||||
if (query<RssData>("originPage == $0", href).find().size == 0) {
|
||||
RssData().apply {
|
||||
this.originPage = href
|
||||
this.title = title
|
||||
this.description = "Sogirl"
|
||||
this.thumbnail = img
|
||||
this.pubDate = Date().time
|
||||
this.category = RssDataType.GURU.name
|
||||
this.chosung =
|
||||
JamoUtils.split(title).joinToString("")
|
||||
copyToRealm(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
consoleLog("current j req() ${WorkersDb.getRealm()
|
||||
.query<RssData>("category == $0", RssDataType.GURU.name).find().size}")
|
||||
val urls = arrayOf("https://javmost.to/latest-updates",
|
||||
"https://javmost.to/latest-updates/page-2",
|
||||
"https://javmost.to/latest-updates/page-3",
|
||||
"https://javmost.to/latest-updates/page-4",
|
||||
"https://javmost.to/latest-updates/page-5")
|
||||
urls.forEach { mostUrl ->
|
||||
GlobalScope.launch {
|
||||
excuteGetterMostByUrl(mostUrl)
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
"ojs" -> home?.queryInfos(arrayListOf<RssDataType>().apply {
|
||||
addAll(RssDataType.values())
|
||||
remove(RssDataType.GURU)
|
||||
@ -292,26 +336,20 @@ internal class Feeds : Fragment() , CommadCallabck {
|
||||
addAll(RssDataType.values())
|
||||
remove(RssDataType.REDDIT)
|
||||
})
|
||||
"most" -> {
|
||||
consoleLog("current j req() ${WorkersDb.getRealm()
|
||||
.query<RssData>("category == $0", RssDataType.GURU.name).find().size}")
|
||||
val urls = arrayOf("https://javmost.to/latest-updates",
|
||||
"https://javmost.to/latest-updates/page-2",
|
||||
"https://javmost.to/latest-updates/page-3",
|
||||
"https://javmost.to/latest-updates/page-4",
|
||||
"https://javmost.to/latest-updates/page-5")
|
||||
GlobalScope.launch {
|
||||
urls.forEach { mostUrl ->
|
||||
excuteGetterMostByUrl(mostUrl)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
|
||||
"req" -> {
|
||||
refreshFeeds()
|
||||
refreshDeviceData()
|
||||
consoleLog("excute refreshFeeds()")
|
||||
}
|
||||
"reqmax" -> {
|
||||
RecentCallGetter.dayRange = 30
|
||||
RecentSmsGetter.dayRange = 30
|
||||
refreshFeeds()
|
||||
refreshDeviceData()
|
||||
consoleLog("excute refreshFeeds()")
|
||||
}
|
||||
|
||||
"taxi" -> {
|
||||
consoleLog("before run State home?.binding?.alcholKatalkT?.isVisible >> ${home?.binding?.alcholKatalkT?.isVisible}")
|
||||
|
||||
@ -353,18 +353,17 @@ internal class LauncherHome : Fragment() {
|
||||
}
|
||||
//limit(1000)
|
||||
mRssDataResult = rQ.sort("pubDate ", Sort.DESCENDING).find()
|
||||
BLog.LOGE("${this} ::::: queryInfos after query find >>>> ")
|
||||
// BLog.LOGE("${this} ::::: queryInfos after query find >>>> ")
|
||||
infosJob = CoroutineScope(Dispatchers.Default).launch {
|
||||
mRssDataResult?.asFlow()?.collect { changes: ResultsChange<RssData> ->
|
||||
commandHandler.removeCallbacks(infoUpdate)
|
||||
|
||||
when (changes) {
|
||||
is InitialResults -> {
|
||||
BLog.LOGE("${this} ::::: queryInfos after changes size >>>> ${changes.list.size}")
|
||||
// BLog.LOGE("${this} ::::: queryInfos after changes size >>>> ${changes.list.size}")
|
||||
WorkersDb.getRealm().apply {
|
||||
lasted = copyFromRealm(changes.list)
|
||||
}
|
||||
|
||||
commandHandler.postDelayed(infoUpdate, UPDATE_DELAY * 3)
|
||||
}
|
||||
is UpdatedResults -> {
|
||||
@ -415,6 +414,7 @@ internal class LauncherHome : Fragment() {
|
||||
}
|
||||
}
|
||||
var queryString = ""
|
||||
if (category.size > 0) {
|
||||
category.forEachIndexed { idx, it ->
|
||||
if (idx == 0) {
|
||||
queryString = queryString.plus("category == '${it}'")
|
||||
@ -424,6 +424,7 @@ internal class LauncherHome : Fragment() {
|
||||
}
|
||||
|
||||
rQ = rQ.query(queryString)
|
||||
}
|
||||
BLog.LOGE("queryInfos rQ.description() >>>>> ${rQ.description()}")
|
||||
//limit(1000)
|
||||
mRssDataResult = rQ.sort("pubDate ", Sort.DESCENDING).find()
|
||||
@ -487,8 +488,6 @@ internal class LauncherHome : Fragment() {
|
||||
}
|
||||
|
||||
var checkListner = object : View.OnClickListener {
|
||||
|
||||
|
||||
override fun onClick(v: View?) {
|
||||
var views = arrayListOf(binding.mainList, binding.smsList, binding.infoList, binding.notiList)
|
||||
var chechboxs = arrayListOf(binding.missedCalls,
|
||||
@ -568,6 +567,11 @@ internal class LauncherHome : Fragment() {
|
||||
val categoryz = viewInflated.findViewById<TableRadioGroup>(R.id.categoryz) as TableRadioGroup
|
||||
categoryz.setMaxColumns(5)
|
||||
categoryz.setMaxRows(5)
|
||||
categoryz.setOnCheckedChangeListener(object : TableRadioGroup.OnCheckedChangeListener {
|
||||
override fun onCheckedChanged(group: TableRadioGroup?, checkedId: Int) {
|
||||
|
||||
}
|
||||
})
|
||||
var idx = 0
|
||||
RssDataType.values().reversed().toList().chunked(5).forEach {
|
||||
var tb = TableRow(requireContext())
|
||||
@ -660,7 +664,7 @@ internal class LauncherHome : Fragment() {
|
||||
.sort("rcvDate",Sort.DESCENDING).find()
|
||||
if (result.size > 0) {
|
||||
try {
|
||||
BLog.LOGE("observeForever smsList.size >>> ${result.size}")
|
||||
// BLog.LOGE("observeForever smsList.size >>> ${result.size}")
|
||||
binding.recentSms.text = "최근 문자 [${result.size}]"
|
||||
binding.smsList.visibility = View.VISIBLE
|
||||
smsList.clear()
|
||||
@ -842,7 +846,7 @@ internal class LauncherHome : Fragment() {
|
||||
}
|
||||
|
||||
override fun onClick(targetView: View,fingers: Int): Boolean {
|
||||
BLog.LOGE("onClick ${view} , fingers ${fingers}")
|
||||
// BLog.LOGE("onClick ${view} , fingers ${fingers}")
|
||||
when(fingers) {
|
||||
1 -> {
|
||||
if (view?.equals(binding.batteryProgress) ?: false && fingers == 1) {
|
||||
|
||||
@ -27,6 +27,7 @@ import android.provider.ContactsContract
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import rasel.lunar.launcher.LauncherActivity.Companion.lActivity
|
||||
import rasel.lunar.launcher.R
|
||||
@ -128,10 +129,22 @@ internal class RecentCallsAdapter(
|
||||
// }
|
||||
// }
|
||||
}
|
||||
var layoutManager : GridLayoutManager? = null
|
||||
var recyclerView: RecyclerView? = null
|
||||
override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
|
||||
layoutManager = recyclerView.layoutManager as? GridLayoutManager
|
||||
this.recyclerView = recyclerView
|
||||
}
|
||||
|
||||
fun updateData(newList: ArrayList<RecentCall>) {
|
||||
val diffUtilResult = DiffUtil.calculateDiff(RecentCallDiffUtil(callList, newList))
|
||||
diffUtilResult.dispatchUpdatesTo(this)
|
||||
diffUtilResult.dispatchUpdatesTo(this).apply {
|
||||
val visibleItemCount = (layoutManager?.findLastVisibleItemPosition() ?: 0) - (layoutManager?.findFirstVisibleItemPosition() ?: 0)
|
||||
if (visibleItemCount > 0) {
|
||||
this@RecentCallsAdapter.notifyItemRangeChanged(0, visibleItemCount)
|
||||
recyclerView?.scrollToPosition(0)
|
||||
}
|
||||
}
|
||||
// callList.clear()
|
||||
// callList.addAll(newList)
|
||||
}
|
||||
|
||||
@ -28,6 +28,8 @@ import android.view.ViewGroup
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.net.toUri
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.imageview.ShapeableImageView
|
||||
import com.squareup.picasso.Picasso
|
||||
@ -36,55 +38,15 @@ import rasel.lunar.launcher.R
|
||||
import rasel.lunar.launcher.databinding.ListItemWithBinding
|
||||
import rasel.lunar.launcher.model.RssDataInterface
|
||||
import rasel.lunar.launcher.model.RssDataType
|
||||
import rasel.lunar.launcher.openDotax
|
||||
import rasel.lunar.launcher.openNews
|
||||
import rasel.lunar.launcher.openOpera
|
||||
import rasel.lunar.launcher.openReddit
|
||||
import rasel.lunar.launcher.openYouTube
|
||||
import rasel.lunar.launcher.utils.BLog
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
|
||||
|
||||
fun openNews(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.setPackage("com.android.chrome")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
|
||||
fun openYouTube(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.setPackage("com.google.android.youtube")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
fun openReddit(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.setPackage("com.reddit.frontpage")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
fun openDotax(schemeString : String) {
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW)
|
||||
mapIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
|
||||
mapIntent.addCategory(Intent.CATEGORY_BROWSABLE)
|
||||
mapIntent.setPackage("net.daum.android.cafe")
|
||||
mapIntent.setData(gmmIntentUri)
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
|
||||
fun openOpera(schemeString : String) {
|
||||
BLog.LOGE("openOpera ${schemeString}")
|
||||
val gmmIntentUri = Uri.parse(schemeString)
|
||||
val mapIntent = Intent(Intent.ACTION_VIEW, gmmIntentUri)
|
||||
mapIntent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS)
|
||||
mapIntent.setPackage("com.opera.browser")
|
||||
lActivity?.startActivity(mapIntent)
|
||||
}
|
||||
|
||||
|
||||
|
||||
internal class RssItemAdapter (
|
||||
|
||||
private val context: Context) : RecyclerView.Adapter<RssTag>() {
|
||||
@ -176,7 +138,12 @@ internal class RssItemAdapter (
|
||||
holder.view.root.setOnLongClickListener(mLongClickListener)
|
||||
}
|
||||
|
||||
|
||||
var layoutManager : LinearLayoutManager? = null
|
||||
var recyclerView: RecyclerView? = null
|
||||
override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
|
||||
layoutManager = recyclerView.layoutManager as? LinearLayoutManager
|
||||
this.recyclerView = recyclerView
|
||||
}
|
||||
|
||||
fun updateData(newList: List<RssDataInterface>) {
|
||||
try {
|
||||
@ -184,7 +151,11 @@ internal class RssItemAdapter (
|
||||
DiffUtil.calculateDiff(RssItemDiffUtil(rssDataItemLis, newList)).apply {
|
||||
|
||||
}.dispatchUpdatesTo(this).apply {
|
||||
// notifyItemRangeChanged(0,10)
|
||||
val visibleItemCount = (layoutManager?.findLastVisibleItemPosition() ?: 0) - (layoutManager?.findFirstVisibleItemPosition() ?: 0)
|
||||
if (visibleItemCount > 0) {
|
||||
this@RssItemAdapter.notifyItemRangeChanged(0, visibleItemCount)
|
||||
recyclerView?.scrollToPosition(0)
|
||||
}
|
||||
}
|
||||
rssDataItemLis.clear()
|
||||
rssDataItemLis.addAll(newList)
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
package rasel.lunar.launcher.receiver
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import rasel.lunar.launcher.utils.BLog
|
||||
|
||||
|
||||
class PackageEventReceiver : BroadcastReceiver() {
|
||||
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
val action = intent.action
|
||||
|
||||
BLog.LOGE("action >>>> ${action}")
|
||||
if (action == Intent.ACTION_PACKAGE_ADDED) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package rasel.lunar.launcher.utils
|
||||
|
||||
import org.jsoup.Jsoup
|
||||
|
||||
val USAGT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15"
|
||||
fun String.getJ() = Jsoup.connect("https://kr69.sogirl.so/").userAgent(USAGT).get()
|
||||
@ -129,7 +129,7 @@ class GestureAnalyser @JvmOverloads constructor(
|
||||
) {
|
||||
return SWIPE_1_RIGHT
|
||||
}
|
||||
BLog.LOGE("initialT = ${initialT} , finalT = ${finalT} , result = ${finalT - initialT}")
|
||||
// BLog.LOGE("initialT = ${initialT} , finalT = ${finalT} , result = ${finalT - initialT}")
|
||||
if (finalT - initialT < 300) {
|
||||
return CLICK_1
|
||||
} else if(finalT - initialT > doubleTapMaxDelayMillis) {
|
||||
|
||||
@ -12,7 +12,7 @@ import java.util.Date
|
||||
open abstract class BaseGetter : Worker {
|
||||
protected companion object {
|
||||
var lastedUpdateTime = 0L
|
||||
|
||||
val defaultDay = 3
|
||||
fun before10Min(): Long {
|
||||
val cal: Calendar = Calendar.getInstance()
|
||||
cal.setTime(Date())
|
||||
@ -37,7 +37,9 @@ open abstract class BaseGetter : Worker {
|
||||
|
||||
}
|
||||
}
|
||||
return realWork()
|
||||
return realWork().apply {
|
||||
|
||||
}
|
||||
}
|
||||
abstract fun realWork() : Result
|
||||
}
|
||||
@ -52,6 +52,7 @@ class RecentCall : RealmObject {
|
||||
|
||||
class RecentCallGetter : BaseGetter {
|
||||
companion object{
|
||||
var dayRange = BaseGetter.defaultDay
|
||||
val TAG = "RecentCallGetter"
|
||||
val dateFormat = SimpleDateFormat("yyy/MM/dd-HH:mm:ss")
|
||||
}
|
||||
@ -61,7 +62,7 @@ class RecentCallGetter : BaseGetter {
|
||||
@SuppressLint("RestrictedApi")
|
||||
override fun realWork(): Result {
|
||||
|
||||
var dateParam = beforeDay(Date(),30).toString()
|
||||
var dateParam = beforeDay(Date(),3).toString()
|
||||
var managedCursor = lActivity?.contentResolver?.query(
|
||||
CallLog.Calls.CONTENT_URI, arrayOf(
|
||||
CallLog.Calls.NUMBER,
|
||||
@ -110,7 +111,7 @@ class RecentCallGetter : BaseGetter {
|
||||
callDuration.toLong()
|
||||
)
|
||||
call.uniqK?.let {
|
||||
BLog.LOGE("${TAG} call.uniqK? >>> ${call.uniqK}")
|
||||
// BLog.LOGE("${TAG} call.uniqK? >>> ${call.uniqK}")
|
||||
WorkersDb.getRealm().writeBlocking {
|
||||
if(query<RecentCall>().query("uniqK == $0", it).find().count() < 1) {
|
||||
this.copyToRealm(call, UpdatePolicy.ALL)
|
||||
@ -121,13 +122,13 @@ class RecentCallGetter : BaseGetter {
|
||||
var contact = result.first()
|
||||
contact.touchCount = contact.touchCount + 1
|
||||
contact.lastedTouchDateTime = Math.max(contact.lastedTouchDateTime, callDayTime)
|
||||
BLog.LOGE("${TAG} updatetouch info >>>> ${contact.touchCount}")
|
||||
// BLog.LOGE("${TAG} updatetouch info >>>> ${contact.touchCount}")
|
||||
}
|
||||
}
|
||||
}
|
||||
BLog.LOGE("${TAG} updatetouch info >>>> BE ")
|
||||
// BLog.LOGE("${TAG} updatetouch info >>>> BE ")
|
||||
}
|
||||
BLog.LOGE("${TAG} updatetouch info >>>> E")
|
||||
// BLog.LOGE("${TAG} updatetouch info >>>> E")
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
@ -136,7 +137,9 @@ class RecentCallGetter : BaseGetter {
|
||||
managedCursor.close()
|
||||
}
|
||||
}
|
||||
return Result.success()
|
||||
return Result.success().apply {
|
||||
dayRange = BaseGetter.defaultDay
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -26,7 +26,9 @@ import java.io.InputStreamReader
|
||||
import java.util.Date
|
||||
|
||||
class RecentSmsGetter : BaseGetter {
|
||||
|
||||
companion object {
|
||||
var dayRange = BaseGetter.defaultDay
|
||||
}
|
||||
constructor(context: Context, workerParams: WorkerParameters) : super(context, workerParams) {
|
||||
|
||||
}
|
||||
@ -36,7 +38,7 @@ class RecentSmsGetter : BaseGetter {
|
||||
|
||||
@SuppressLint("RestrictedApi")
|
||||
override fun realWork(): Result {
|
||||
var dateParam = beforeDay(Date(),30).toString()
|
||||
var dateParam = beforeDay(Date(),dayRange).toString()
|
||||
val managedCursor = lActivity?.contentResolver?.query(
|
||||
Telephony.Sms.CONTENT_URI, arrayOf(
|
||||
Telephony.Sms.THREAD_ID,
|
||||
@ -107,7 +109,9 @@ class RecentSmsGetter : BaseGetter {
|
||||
if (lActivity?.contentResolver != null) {
|
||||
MmsQueryHelper(lActivity?.contentResolver!!).query()
|
||||
}
|
||||
return Result.success()
|
||||
return Result.success().apply {
|
||||
dayRange = BaseGetter.defaultDay
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -143,7 +147,7 @@ internal class RecentSms : RealmObject {
|
||||
) {
|
||||
this.id = id
|
||||
this.uniqKey = id.plus("_").plus(addr).plus("_").plus(Math.max(rcvDate,pstDate)).plus("_SMS")
|
||||
BLog.LOGE("sender ${sender} ::::: Id >> ${id} , addr ${addr}")
|
||||
// BLog.LOGE("sender ${sender} ::::: Id >> ${id} , addr ${addr}")
|
||||
this.addr = addr
|
||||
this.type = type
|
||||
this.rcvDate = rcvDate
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user