2018-01-04 19:52:25 +01:00
|
|
|
package jp.juggler.subwaytooter
|
|
|
|
|
|
|
|
import android.content.Intent
|
|
|
|
import android.os.Build
|
|
|
|
|
|
|
|
import com.google.firebase.messaging.FirebaseMessagingService
|
|
|
|
import com.google.firebase.messaging.RemoteMessage
|
|
|
|
|
2018-12-01 00:02:18 +01:00
|
|
|
import jp.juggler.util.LogCategory
|
2018-01-04 19:52:25 +01:00
|
|
|
|
|
|
|
class MyFirebaseMessagingService : FirebaseMessagingService() {
|
|
|
|
|
|
|
|
companion object {
|
|
|
|
internal val log = LogCategory("MyFirebaseMessagingService")
|
|
|
|
}
|
|
|
|
|
|
|
|
override fun onMessageReceived(remoteMessage : RemoteMessage) {
|
|
|
|
|
|
|
|
super.onMessageReceived(remoteMessage)
|
|
|
|
|
|
|
|
var tag : String? = null
|
|
|
|
val data = remoteMessage.data
|
2019-08-24 05:35:22 +02:00
|
|
|
for((key, value) in data) {
|
|
|
|
log.d("onMessageReceived: %s=%s", key, value)
|
|
|
|
when(key){
|
|
|
|
"notification_tag" -> tag = value
|
|
|
|
"acct" -> tag= "acct<>$value"
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
val context = applicationContext
|
|
|
|
val intent = Intent(context, PollingForegrounder::class.java)
|
|
|
|
if(tag != null) intent.putExtra(PollingWorker.EXTRA_TAG, tag)
|
|
|
|
if(Build.VERSION.SDK_INT >= 26) {
|
|
|
|
context.startForegroundService(intent)
|
|
|
|
} else {
|
|
|
|
context.startService(intent)
|
|
|
|
}
|
|
|
|
}
|
2018-08-08 22:08:15 +02:00
|
|
|
|
2019-08-24 05:35:22 +02:00
|
|
|
|
|
|
|
override fun onNewToken(token : String) {
|
2018-08-08 22:08:15 +02:00
|
|
|
try {
|
|
|
|
log.d("onTokenRefresh: token=%s", token)
|
|
|
|
PrefDevice.prefDevice(this).edit().putString(PrefDevice.KEY_DEVICE_TOKEN, token).apply()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PollingWorker.queueFCMTokenUpdated(this)
|
|
|
|
|
|
|
|
} catch(ex : Throwable) {
|
|
|
|
log.trace(ex)
|
|
|
|
}
|
|
|
|
}
|
2018-01-04 19:52:25 +01:00
|
|
|
}
|