위치값으로 쿼리
This commit is contained in:
parent
fe210b1f7d
commit
0eaeb0cb30
@ -204,6 +204,11 @@ internal class LauncherActivity : AppCompatActivity() {
|
||||
}, 5, TimeUnit.SECONDS)
|
||||
|
||||
}
|
||||
fun doGetWheaterByLocationInfo() {
|
||||
Executors.newSingleThreadScheduledExecutor().schedule({
|
||||
mWorkManager?.enqueue(OneTimeWorkRequest.from(OpenWeatherGetter::class.java))
|
||||
}, 5, TimeUnit.SECONDS)
|
||||
}
|
||||
|
||||
fun refreshFeeds() {
|
||||
var delay = 5L
|
||||
@ -308,17 +313,19 @@ internal class LauncherActivity : AppCompatActivity() {
|
||||
.addTag(LocationGetter.TAG)
|
||||
.build())
|
||||
}, weatherDelay, TimeUnit.SECONDS)
|
||||
Executors.newSingleThreadScheduledExecutor().schedule({
|
||||
//de574a260b1f474d99955729241909
|
||||
mWorkManager?.cancelAllWorkByTag(OpenWeatherGetter.TAG)
|
||||
mWorkManager?.enqueueUniquePeriodicWork(
|
||||
OpenWeatherGetter.TAG, ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
|
||||
PeriodicWorkRequestBuilder<OpenWeatherGetter>(midTimePeriod, TimeUnit.MINUTES)
|
||||
.addTag(OpenWeatherGetter.TAG)
|
||||
.build())
|
||||
}, weatherDelay + 3, TimeUnit.SECONDS)
|
||||
|
||||
// Executors.newSingleThreadScheduledExecutor().schedule({
|
||||
// //de574a260b1f474d99955729241909
|
||||
// mWorkManager?.cancelAllWorkByTag(OpenWeatherGetter.TAG)
|
||||
// mWorkManager?.enqueueUniquePeriodicWork(
|
||||
// OpenWeatherGetter.TAG, ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
|
||||
// PeriodicWorkRequestBuilder<OpenWeatherGetter>(midTimePeriod, TimeUnit.MINUTES)
|
||||
// .addTag(OpenWeatherGetter.TAG)
|
||||
// .build())
|
||||
// }, weatherDelay + 3, TimeUnit.SECONDS)
|
||||
}
|
||||
|
||||
|
||||
fun workmanager() : WorkManager? {
|
||||
if (mWorkManager == null && lActivity != null) {
|
||||
mWorkManager = WorkManager.getInstance(lActivity!!)
|
||||
|
||||
@ -115,6 +115,7 @@ import rasel.lunar.launcher.workers.RecentCall
|
||||
import rasel.lunar.launcher.workers.RecentSms
|
||||
import rasel.lunar.launcher.workers.TelegramBotGetter
|
||||
import rasel.lunar.launcher.workers.WorkersDb
|
||||
import java.math.BigDecimal
|
||||
import java.net.URLEncoder
|
||||
import java.util.Calendar
|
||||
import java.util.Date
|
||||
@ -297,61 +298,83 @@ internal class LauncherHome : Fragment() {
|
||||
|
||||
return binding.root
|
||||
}
|
||||
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
suspend fun qByl(){
|
||||
val re = WorkersDb.getRealm().query<Hour>().query("lat == $0 AND lon == $1",
|
||||
LocationGetter.latitude?.let { BigDecimal.valueOf(it).toDouble() },
|
||||
LocationGetter.longitude?.let { BigDecimal.valueOf(it).toDouble() })
|
||||
BLog.LOGE("re >>> ${re.description()}")
|
||||
re.find().asFlow().collect { it ->
|
||||
val li = it.list
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
mWeatherAdapter?.let{
|
||||
it.update(
|
||||
mutableListOf<Hour>().apply {
|
||||
this.addAll(it.filter(li))
|
||||
}
|
||||
)
|
||||
it.notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@SuppressLint("NotifyDataSetChanged")
|
||||
private fun queryWeather() {
|
||||
val re = WorkersDb.getRealm().query<Hour>("lat == $0 AND lon == $1", OpenWeatherGetter.lat, OpenWeatherGetter.lon).find()
|
||||
BLog.LOGE("testtestetset ${LocationGetter.latitude}")
|
||||
val re = WorkersDb.getRealm().query<Hour>()
|
||||
BLog.LOGE("re >>> ${re.description()}")
|
||||
re.find()
|
||||
val weatherJob2 = CoroutineScope(Dispatchers.Default).launch {
|
||||
re.asFlow().collect { changes ->
|
||||
BLog.LOGE("testtestetset ${changes.list}")
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
// BLog.LOGE("testtestetset ${changes.list.first().lat}")
|
||||
}
|
||||
// BLog.LOGE("testtestetset ${LocationGetter.latitude}")
|
||||
// Handler(Looper.getMainLooper()).post {
|
||||
// BLog.LOGE("testtestetset2 ${changes.list.size}")
|
||||
// }
|
||||
qByl()
|
||||
}
|
||||
}
|
||||
weatherJob2.start()
|
||||
|
||||
mWeatherResult = WorkersDb.getRealm().query<WeatherForcast>().find()
|
||||
val weatherJob = CoroutineScope(Dispatchers.Default).launch {
|
||||
mWeatherResult?.asFlow()?.collect { changes ->
|
||||
BLog.LOGE("saved weatherForcast >>> asFlow ${changes.list}")
|
||||
if (changes.list.size > 0) {
|
||||
changes.list.first().forecast?.forecastdayRealm?.let { li ->
|
||||
BLog.LOGE("LauncherHome Saved Forecastdays >>> ${li.size}")
|
||||
Handler(Looper.getMainLooper()).post {
|
||||
mWeatherAdapter?.let{
|
||||
it.update(
|
||||
mutableListOf<Hour>().apply {
|
||||
li.forEach { i ->
|
||||
if (i == li.first()) {
|
||||
this.addAll(it
|
||||
.filter(
|
||||
i.hourRealm.also { hli ->
|
||||
BLog.LOGE("LauncherHome Saved hli size >>> ${hli.size}")
|
||||
BLog.LOGE("LauncherHome Saved hli size >>> ${hli.first().lat}")
|
||||
BLog.LOGE("LauncherHome Saved hli size >>> ${hli.first().lon}")
|
||||
}
|
||||
).also { fli ->
|
||||
BLog.LOGE("LauncherHome Saved fli size >>> ${fli.size}")
|
||||
BLog.LOGE("LauncherHome Saved hli size >>> ${fli.first().lat}")
|
||||
BLog.LOGE("LauncherHome Saved hli size >>> ${fli.first().lon}")
|
||||
}
|
||||
)
|
||||
} else {
|
||||
this.addAll(i.hourRealm)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
it.notifyDataSetChanged()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
weatherJob.start()
|
||||
// mWeatherResult = WorkersDb.getRealm().query<WeatherForcast>().find()
|
||||
// val weatherJob = CoroutineScope(Dispatchers.Default).launch {
|
||||
// mWeatherResult?.asFlow()?.collect { changes ->
|
||||
// BLog.LOGE("saved weatherForcast >>> asFlow ${changes.list}")
|
||||
// if (changes.list.size > 0) {
|
||||
// changes.list.first().forecast?.forecastdayRealm?.let { li ->
|
||||
// BLog.LOGE("LauncherHome Saved Forecastdays >>> ${li.size}")
|
||||
// Handler(Looper.getMainLooper()).post {
|
||||
// mWeatherAdapter?.let{
|
||||
// it.update(
|
||||
// mutableListOf<Hour>().apply {
|
||||
// li.forEach { i ->
|
||||
// if (i == li.first()) {
|
||||
// this.addAll(it
|
||||
// .filter(
|
||||
// i.hourRealm.also { hli ->
|
||||
// BLog.LOGE("testtestetset ${LocationGetter.latitude}")
|
||||
// BLog.LOGE("LauncherHome Saved hli size >>> ${hli.size}")
|
||||
// BLog.LOGE("LauncherHome Saved hli size >>> ${hli.first().lat}")
|
||||
// BLog.LOGE("LauncherHome Saved hli size >>> ${hli.first().lon}")
|
||||
// }
|
||||
// ).also { fli ->
|
||||
// BLog.LOGE("LauncherHome Saved fli size >>> ${fli.size}")
|
||||
//// BLog.LOGE("LauncherHome Saved hli size >>> ${fli.first().lat}")
|
||||
//// BLog.LOGE("LauncherHome Saved hli size >>> ${fli.first().lon}")
|
||||
// }
|
||||
// )
|
||||
// } else {
|
||||
// this.addAll(i.hourRealm)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// )
|
||||
// it.notifyDataSetChanged()
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// weatherJob.start()
|
||||
}
|
||||
|
||||
val hideListViewTime = 1000L * 60L * 15L
|
||||
|
||||
@ -136,8 +136,8 @@ class Astro: RealmObject {
|
||||
}
|
||||
|
||||
class Hour: RealmObject {
|
||||
var lat = 0.0
|
||||
var lon = 0.0
|
||||
var lat : Double = 0.0
|
||||
var lon : Double = 0.0
|
||||
|
||||
@PrimaryKey
|
||||
var time_epoch = 0
|
||||
|
||||
@ -7,6 +7,7 @@ import androidx.work.WorkerParameters
|
||||
import com.google.android.gms.location.LocationServices
|
||||
import com.google.android.gms.location.Priority
|
||||
import com.google.android.gms.tasks.CancellationTokenSource
|
||||
import rasel.lunar.launcher.LauncherActivity.Companion.doGetWheaterByLocationInfo
|
||||
import rasel.lunar.launcher.utils.BLog
|
||||
|
||||
class LocationGetter(context: Context, workerParams: WorkerParameters) : BaseGetter(context, workerParams) {
|
||||
@ -28,6 +29,7 @@ class LocationGetter(context: Context, workerParams: WorkerParameters) : BaseGet
|
||||
BLog.LOGE("Location >>> (latitude)${it.longitude}/(longitude)${it.latitude}")
|
||||
longitude = it.longitude
|
||||
latitude = it.latitude
|
||||
doGetWheaterByLocationInfo()
|
||||
}
|
||||
}.addOnFailureListener{
|
||||
BLog.LOGE("Location error >>> $it")
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user