This commit is contained in:
andrew
2023-07-26 14:36:06 +09:30
parent 55216875ac
commit d3ea4e2e30
18 changed files with 99 additions and 85 deletions

View File

@@ -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) }
}
}
}

View File

@@ -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 {

View File

@@ -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)
}