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