mirror of
https://github.com/oxen-io/session-android.git
synced 2025-12-07 23:12:14 +00:00
Fix
This commit is contained in:
@@ -1,10 +1,22 @@
|
||||
package org.thoughtcrime.securesms.notifications
|
||||
|
||||
import android.content.Context
|
||||
import com.huawei.hmf.tasks.Tasks
|
||||
import com.huawei.hms.aaid.HmsInstanceId
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.MainScope
|
||||
import kotlinx.coroutines.isActive
|
||||
import kotlinx.coroutines.launch
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
class HuaweiPushManager(val context: Context): PushManager {
|
||||
@Singleton
|
||||
class HuaweiPushManager @Inject constructor(
|
||||
@ApplicationContext private val context: Context,
|
||||
private val genericPushManager: GenericPushManager
|
||||
): PushManager {
|
||||
private var huaweiPushInstanceIdJob: Job? = null
|
||||
|
||||
@Synchronized
|
||||
@@ -17,13 +29,11 @@ class HuaweiPushManager(val context: Context): PushManager {
|
||||
|
||||
val hmsInstanceId = HmsInstanceId.getInstance(context)
|
||||
|
||||
val task = hmsInstanceId.aaid
|
||||
|
||||
// HuaweiPushNotificationService().start()
|
||||
//
|
||||
// huaweiPushInstanceIdJob = HmsInstanceId.getInstance(this) { hmsInstanceId ->
|
||||
// RegisterHuaweiPushService(hmsInstanceId, this, force).start()
|
||||
// Unit.INSTANCE
|
||||
// }
|
||||
MainScope().launch(Dispatchers.IO) {
|
||||
val task = hmsInstanceId.aaid
|
||||
Tasks.await(task)
|
||||
if (!isActive) return@launch // don't 'complete' task if we were canceled
|
||||
task.result?.id?.let { genericPushManager.refresh(it, force) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,17 +8,6 @@ import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object HuaweiPushModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFirebasePushManager(
|
||||
@ApplicationContext context: Context,
|
||||
) = HuaweiPushManager(context)
|
||||
}
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
abstract class HuaweiBindingModule {
|
||||
|
||||
@@ -1,17 +1,9 @@
|
||||
package org.thoughtcrime.securesms.notifications
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.core.app.NotificationCompat
|
||||
import androidx.core.app.NotificationManagerCompat
|
||||
import com.huawei.hms.push.HmsMessageService
|
||||
import com.huawei.hms.push.RemoteMessage
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import org.session.libsession.messaging.jobs.BatchMessageReceiveJob
|
||||
import org.session.libsession.messaging.jobs.JobQueue
|
||||
import org.session.libsession.messaging.jobs.MessageReceiveParameters
|
||||
import org.session.libsession.messaging.utilities.MessageWrapper
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
import org.session.libsignal.utilities.Base64
|
||||
import org.session.libsignal.utilities.Log
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -20,16 +12,13 @@ class HuaweiPushNotificationService: HmsMessageService() {
|
||||
|
||||
@Inject lateinit var pushManager: PushManager
|
||||
@Inject lateinit var pushHandler: PushHandler
|
||||
|
||||
override fun onNewToken(token: String?, bundle: Bundle?) {
|
||||
Log.d("Loki", "New HCM token: $token.")
|
||||
pushManager.refresh(true)
|
||||
}
|
||||
|
||||
override fun onMessageReceived(message: RemoteMessage?) {
|
||||
pushHandler.onPush(message?.dataOfMap)
|
||||
}
|
||||
|
||||
override fun onDeletedMessages() {
|
||||
pushManager.refresh(true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user