Refactor ApplicationContext

This commit is contained in:
nielsandriesse
2020-05-14 09:35:34 +10:00
parent 1eedd38861
commit deb2fff0ae
9 changed files with 101 additions and 207 deletions

View File

@@ -100,7 +100,7 @@ class LandingActivity : BaseActionBarActivity(), LinkDeviceSlaveModeDialogDelega
}
val application = ApplicationContext.getInstance(this)
application.startPollingIfNeeded()
application.setUpP2PAPI()
application.setUpP2PAPIIfNeeded()
application.setUpStorageAPIIfNeeded()
val linkDeviceDialog = LinkDeviceSlaveModeDialog()
linkDeviceDialog.delegate = this

View File

@@ -91,7 +91,7 @@ class PNModeActivity : BaseActionBarActivity() {
TextSecurePreferences.setHasSeenPNModeSheet(this, true) // Shouldn't be shown to users who've done the new onboarding
val application = ApplicationContext.getInstance(this)
application.setUpStorageAPIIfNeeded()
application.setUpP2PAPI()
application.setUpP2PAPIIfNeeded()
val publicChatAPI = ApplicationContext.getInstance(this).lokiPublicChatAPI
if (publicChatAPI != null) {
// TODO: This won't be necessary anymore when we don't auto-join the Loki Public Chat anymore

View File

@@ -183,7 +183,7 @@ class SettingsActivity : PassphraseRequiredActionBarActivity() {
AvatarHelper.setAvatar(this, Address.fromSerialized(TextSecurePreferences.getLocalNumber(this)), profilePicture)
TextSecurePreferences.setProfileAvatarId(this, SecureRandom().nextInt())
ProfileKeyUtil.setEncodedProfileKey(this, encodedProfileKey)
ApplicationContext.getInstance(this).updatePublicChatProfilePictureIfNeeded()
ApplicationContext.getInstance(this).updateOpenGroupProfilePicturesIfNeeded()
profilePictureView.update()
}
profilePictureToBeUploaded = null

View File

@@ -212,7 +212,7 @@ class LokiPublicChatPoller(private val context: Context, private val group: Loki
val database = DatabaseFactory.getRecipientDatabase(context)
database.setProfileKey(recipient, profileKey)
database.setProfileAvatar(recipient, url)
ApplicationContext.getInstance(context).updatePublicChatProfilePictureIfNeeded()
ApplicationContext.getInstance(context).updateOpenGroupProfilePicturesIfNeeded()
}
}
}

View File

@@ -0,0 +1,35 @@
package org.thoughtcrime.securesms.loki.api
import com.google.firebase.messaging.FirebaseMessagingService
import com.google.firebase.messaging.RemoteMessage
import org.thoughtcrime.securesms.jobs.PushContentReceiveJob
import org.thoughtcrime.securesms.util.TextSecurePreferences
import org.whispersystems.libsignal.logging.Log
import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope
import org.whispersystems.signalservice.internal.util.Base64
import org.whispersystems.signalservice.loki.api.LokiMessageWrapper
class PushNotificationService : FirebaseMessagingService() {
override fun onNewToken(token: String) {
super.onNewToken(token)
Log.d("Loki", "New FCM token: $token.")
val userHexEncodedPublicKey = TextSecurePreferences.getLocalNumber(this) ?: return
LokiPushNotificationManager.register(token, userHexEncodedPublicKey, this, false)
}
override fun onMessageReceived(message: RemoteMessage) {
val base64EncodedData = message.data["ENCRYPTED_DATA"]
val data = base64EncodedData?.let { Base64.decode(it) }
if (data != null) {
try {
val envelope = LokiMessageWrapper.unwrap(data)
PushContentReceiveJob(this).processEnvelope(SignalServiceEnvelope(envelope))
} catch (e: Exception) {
Log.d("Loki", "Failed to unwrap data for message.")
}
} else {
Log.d("Loki", "Failed to decode data for message.")
}
}
}

View File

@@ -36,7 +36,7 @@ object SessionMetaProtocol {
fun handleProfileKeyUpdateIfNeeded(context: Context, content: SignalServiceContent) {
val userMasterPublicKey = TextSecurePreferences.getMasterHexEncodedPublicKey(context)
if (userMasterPublicKey != content.sender) { return }
ApplicationContext.getInstance(context).updatePublicChatProfilePictureIfNeeded()
ApplicationContext.getInstance(context).updateOpenGroupProfilePicturesIfNeeded()
}
/**