This commit is contained in:
lunaticbum 2024-10-23 10:07:26 +09:00
parent d6f550d4fe
commit 36b18d63fb
5 changed files with 23 additions and 8 deletions

View File

@ -308,7 +308,7 @@ internal class LauncherActivity : AppCompatActivity() {
mWorkManager?.cancelAllWorkByTag(LocationGetter.TAG) mWorkManager?.cancelAllWorkByTag(LocationGetter.TAG)
mWorkManager?.enqueueUniquePeriodicWork( mWorkManager?.enqueueUniquePeriodicWork(
LocationGetter.TAG, ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE, LocationGetter.TAG, ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
PeriodicWorkRequestBuilder<LocationGetter>(PrefHelper.shortTimePeriod, TimeUnit.MINUTES) PeriodicWorkRequestBuilder<LocationGetter>(PrefHelper.longTimePeriod, TimeUnit.MINUTES)
.addTag(LocationGetter.TAG) .addTag(LocationGetter.TAG)
.build()) .build())
}, weatherDelay, TimeUnit.SECONDS) }, weatherDelay, TimeUnit.SECONDS)

View File

@ -92,6 +92,8 @@ import bums.lunatic.launcher.workers.LocationGetter
import bums.lunatic.launcher.workers.RecentCall import bums.lunatic.launcher.workers.RecentCall
import bums.lunatic.launcher.workers.RecentSms import bums.lunatic.launcher.workers.RecentSms
import bums.lunatic.launcher.workers.WorkersDb import bums.lunatic.launcher.workers.WorkersDb
import bums.lunatic.launcher.workers.latitudeRange
import bums.lunatic.launcher.workers.longitudeRange
import io.realm.kotlin.ext.query import io.realm.kotlin.ext.query
import io.realm.kotlin.notifications.InitialResults import io.realm.kotlin.notifications.InitialResults
import io.realm.kotlin.notifications.ResultsChange import io.realm.kotlin.notifications.ResultsChange
@ -105,6 +107,7 @@ import kotlinx.coroutines.launch
import org.json.JSONArray import org.json.JSONArray
import org.json.JSONObject import org.json.JSONObject
import java.math.BigDecimal import java.math.BigDecimal
import java.math.RoundingMode
import java.net.URLEncoder import java.net.URLEncoder
import java.util.Calendar import java.util.Calendar
import java.util.Date import java.util.Date
@ -351,12 +354,15 @@ internal class LauncherHome : Fragment() {
} }
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
suspend fun queryWeatherWithLoc(){ fun queryWeatherWithLoc(){
WorkersDb.getRealm().apply { WorkersDb.getRealm().apply {
var latR = latitudeRange(BigDecimal.valueOf(LocationGetter.latitude).setScale(6,RoundingMode.HALF_UP).toDouble(), 200)
var lonR = longitudeRange(BigDecimal.valueOf(LocationGetter.latitude).setScale(6,RoundingMode.HALF_UP).toDouble(),BigDecimal.valueOf(LocationGetter.longitude).setScale(6,RoundingMode.HALF_UP).toDouble(), 200)
query<Hour>() query<Hour>()
.query("lat == $0 AND lon == $1", .query("lat >= $0 AND lat <= $1 AND lon >= $2 AND lon <= $3 AND time_epoch >= $4",
LocationGetter.latitude?.let { BigDecimal.valueOf(it).toDouble() }, latR.first(),latR.last(),
LocationGetter.longitude?.let { BigDecimal.valueOf(it).toDouble() } lonR.first(),lonR.last(),
(System.currentTimeMillis() / 1000L).toLong()
).also { ).also {
BLog.LOGE("re >>> ${it.description()}") BLog.LOGE("re >>> ${it.description()}")
}.find().let {hours -> }.find().let {hours ->

View File

@ -39,7 +39,7 @@ object RssFeedsParser {
it.data?.nsfw = nsfw it.data?.nsfw = nsfw
if(((it.data?.created_utc ?: 0).toLong() * 1000L > dateTime)) { if(((it.data?.created_utc ?: 0).toLong() * 1000L > dateTime)) {
(it.data as? RssDataInterface)?.let { rss -> (it.data as? RssDataInterface)?.let { rss ->
if (rss.title().contains("request") == false) { if (rss.title().contains("request", true) == false) {
returnList.add(rss) returnList.add(rss)
} }
} }

View File

@ -17,8 +17,8 @@ import kotlin.math.cos
class LocationGetter(context: Context, workerParams: WorkerParameters) : BaseGetter(context, workerParams) { class LocationGetter(context: Context, workerParams: WorkerParameters) : BaseGetter(context, workerParams) {
companion object { companion object {
val TAG = "LocationGetter" val TAG = "LocationGetter"
var longitude: Double? = null var longitude: Double = 0.0
var latitude: Double? = null var latitude: Double = 0.0
} }
@SuppressLint("MissingPermission") @SuppressLint("MissingPermission")

View File

@ -13,11 +13,14 @@ import android.os.Build
import android.os.IBinder import android.os.IBinder
import android.widget.Toast import android.widget.Toast
import androidx.core.app.ActivityCompat import androidx.core.app.ActivityCompat
import bums.lunatic.launcher.LauncherActivity.Companion.runWeatherGetter
import bums.lunatic.launcher.helpers.PrefHelper import bums.lunatic.launcher.helpers.PrefHelper
import bums.lunatic.launcher.helpers.PrefString import bums.lunatic.launcher.helpers.PrefString
import bums.lunatic.launcher.helpers.letTrue import bums.lunatic.launcher.helpers.letTrue
import bums.lunatic.launcher.model.LocationLog import bums.lunatic.launcher.model.LocationLog
import bums.lunatic.launcher.utils.BLog import bums.lunatic.launcher.utils.BLog
import bums.lunatic.launcher.workers.LocationGetter.Companion.latitude
import bums.lunatic.launcher.workers.LocationGetter.Companion.longitude
import com.google.android.gms.location.LocationServices import com.google.android.gms.location.LocationServices
import com.google.gson.Gson import com.google.gson.Gson
import io.realm.kotlin.ext.query import io.realm.kotlin.ext.query
@ -121,6 +124,9 @@ class LocationUpdateService : Service(), LocationListener {
override fun onLocationChanged(p0: Location) { override fun onLocationChanged(p0: Location) {
BLog.LOGE("p0") BLog.LOGE("p0")
PrefHelper.isLocationOn().letTrue { PrefHelper.isLocationOn().letTrue {
longitude = p0.longitude
latitude = p0.latitude
runWeatherGetter()
pushLocation(this.applicationContext, p0.latitude,p0.longitude) pushLocation(this.applicationContext, p0.latitude,p0.longitude)
} }
} }
@ -160,6 +166,9 @@ class LocationUpdateService : Service(), LocationListener {
java.lang.Double.toString(location.latitude) + location.longitude + "from method", java.lang.Double.toString(location.latitude) + location.longitude + "from method",
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
longitude = location.longitude
latitude = location.latitude
runWeatherGetter()
pushLocation(this.applicationContext, location.latitude, location.longitude) pushLocation(this.applicationContext, location.latitude, location.longitude)
} }
} }