SelfUpdateService: Drop dependency upon kovenant
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -1,13 +1,13 @@
|
|||||||
package com.aurora.store.data.service
|
package com.aurora.store.data.service
|
||||||
|
|
||||||
import android.app.Notification
|
import android.app.Notification
|
||||||
import android.app.Service
|
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
|
import androidx.lifecycle.LifecycleService
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
import com.aurora.gplayapi.data.models.App
|
import com.aurora.gplayapi.data.models.App
|
||||||
import com.aurora.gplayapi.data.models.File
|
import com.aurora.gplayapi.data.models.File
|
||||||
@@ -23,12 +23,15 @@ import com.aurora.store.util.Log
|
|||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.google.gson.GsonBuilder
|
import com.google.gson.GsonBuilder
|
||||||
import com.tonyodev.fetch2.*
|
import com.tonyodev.fetch2.*
|
||||||
import nl.komponents.kovenant.task
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.SupervisorJob
|
||||||
|
import kotlinx.coroutines.delay
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
import java.lang.reflect.Modifier
|
import java.lang.reflect.Modifier
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
|
|
||||||
class SelfUpdateService : Service() {
|
class SelfUpdateService : LifecycleService() {
|
||||||
private lateinit var app: App
|
private lateinit var app: App
|
||||||
private lateinit var fetch: Fetch
|
private lateinit var fetch: Fetch
|
||||||
private lateinit var fetchListener: FetchListener
|
private lateinit var fetchListener: FetchListener
|
||||||
@@ -39,12 +42,18 @@ class SelfUpdateService : Service() {
|
|||||||
|
|
||||||
private val hashCode = BuildConfig.APPLICATION_ID.hashCode()
|
private val hashCode = BuildConfig.APPLICATION_ID.hashCode()
|
||||||
|
|
||||||
|
// Coroutine
|
||||||
|
private val job = SupervisorJob()
|
||||||
|
private val serviceScope = CoroutineScope(Dispatchers.IO + job)
|
||||||
|
|
||||||
override fun onBind(intent: Intent): IBinder? {
|
override fun onBind(intent: Intent): IBinder? {
|
||||||
|
super.onBind(intent)
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int {
|
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
|
||||||
val rawSelfUpdate = intent.getStringExtra(Constants.STRING_EXTRA)
|
super.onStartCommand(intent, flags, startId)
|
||||||
|
val rawSelfUpdate = intent?.getStringExtra(Constants.STRING_EXTRA)
|
||||||
if (rawSelfUpdate?.isNotBlank() == true) {
|
if (rawSelfUpdate?.isNotBlank() == true) {
|
||||||
val selfUpdate = gson.fromJson(rawSelfUpdate, SelfUpdate::class.java)
|
val selfUpdate = gson.fromJson(rawSelfUpdate, SelfUpdate::class.java)
|
||||||
selfUpdate?.let {
|
selfUpdate?.let {
|
||||||
@@ -69,6 +78,11 @@ class SelfUpdateService : Service() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
job.cancel()
|
||||||
|
super.onDestroy()
|
||||||
|
}
|
||||||
|
|
||||||
private fun destroyService() {
|
private fun destroyService() {
|
||||||
Log.d("Self-update service destroyed")
|
Log.d("Self-update service destroyed")
|
||||||
fetch.removeListener(fetchListener)
|
fetch.removeListener(fetchListener)
|
||||||
@@ -154,9 +168,8 @@ class SelfUpdateService : Service() {
|
|||||||
Log.e("Self update : ${e.stackTraceToString()}")
|
Log.e("Self update : ${e.stackTraceToString()}")
|
||||||
}
|
}
|
||||||
|
|
||||||
task {
|
serviceScope.launch {
|
||||||
TimeUnit.SECONDS.sleep(10)
|
delay(10000)
|
||||||
} success {
|
|
||||||
destroyService()
|
destroyService()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user