2021-07-09 05:25:57 +02:00
|
|
|
package org.thoughtcrime.securesms.notifications
|
2020-04-15 02:24:30 +02:00
|
|
|
|
2020-11-09 04:07:35 +01:00
|
|
|
import androidx.core.app.NotificationCompat
|
|
|
|
import androidx.core.app.NotificationManagerCompat
|
2020-04-15 02:24:30 +02:00
|
|
|
import com.google.firebase.messaging.FirebaseMessagingService
|
|
|
|
import com.google.firebase.messaging.RemoteMessage
|
2023-04-20 09:12:38 +02:00
|
|
|
import dagger.hilt.android.AndroidEntryPoint
|
2022-06-21 08:17:01 +02:00
|
|
|
import org.session.libsession.messaging.jobs.BatchMessageReceiveJob
|
2021-03-30 07:23:12 +02:00
|
|
|
import org.session.libsession.messaging.jobs.JobQueue
|
2022-06-21 08:17:01 +02:00
|
|
|
import org.session.libsession.messaging.jobs.MessageReceiveParameters
|
2021-04-26 05:12:05 +02:00
|
|
|
import org.session.libsession.messaging.utilities.MessageWrapper
|
2021-01-18 23:12:44 +01:00
|
|
|
import org.session.libsession.utilities.TextSecurePreferences
|
2021-03-30 07:23:12 +02:00
|
|
|
import org.session.libsignal.utilities.Base64
|
2021-05-18 01:12:33 +02:00
|
|
|
import org.session.libsignal.utilities.Log
|
2023-04-20 09:12:38 +02:00
|
|
|
import javax.inject.Inject
|
2020-04-15 02:24:30 +02:00
|
|
|
|
2023-06-20 15:04:10 +02:00
|
|
|
private const val TAG = "PushNotificationService"
|
|
|
|
|
2023-04-20 09:12:38 +02:00
|
|
|
@AndroidEntryPoint
|
2020-04-16 08:56:12 +02:00
|
|
|
class PushNotificationService : FirebaseMessagingService() {
|
2020-04-15 02:24:30 +02:00
|
|
|
|
2023-07-26 03:18:20 +02:00
|
|
|
@Inject lateinit var pushManager: PushManager
|
2023-07-25 07:19:41 +02:00
|
|
|
@Inject lateinit var pushHandler: PushHandler
|
2023-04-20 09:12:38 +02:00
|
|
|
|
2020-04-15 02:24:30 +02:00
|
|
|
override fun onNewToken(token: String) {
|
|
|
|
super.onNewToken(token)
|
2023-04-20 09:12:38 +02:00
|
|
|
TextSecurePreferences.getLocalNumber(this) ?: return
|
2023-06-20 15:04:10 +02:00
|
|
|
if (TextSecurePreferences.getFCMToken(this) != token) {
|
2023-06-14 11:16:28 +02:00
|
|
|
pushManager.refresh(true)
|
|
|
|
}
|
2020-04-15 02:24:30 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onMessageReceived(message: RemoteMessage) {
|
2023-06-20 15:04:10 +02:00
|
|
|
Log.d(TAG, "Received a push notification.")
|
2023-07-25 07:19:41 +02:00
|
|
|
pushHandler.onPush(message.data)
|
2020-04-15 02:24:30 +02:00
|
|
|
}
|
2020-11-09 04:07:35 +01:00
|
|
|
|
|
|
|
override fun onDeletedMessages() {
|
2023-06-20 15:04:10 +02:00
|
|
|
Log.d(TAG, "Called onDeletedMessages.")
|
2020-11-09 04:07:35 +01:00
|
|
|
super.onDeletedMessages()
|
2023-06-21 03:02:29 +02:00
|
|
|
pushManager.refresh(true)
|
2020-11-09 04:07:35 +01:00
|
|
|
}
|
2023-06-20 15:04:10 +02:00
|
|
|
}
|