[tor-commits] [Git][tpo/applications/tor-browser][tor-browser-128.3.0esr-14.0-1] fixup! [android] Use NimbusDisabled
morgan (@morgan)
git at gitlab.torproject.org
Fri Oct 4 00:40:27 UTC 2024
morgan pushed to branch tor-browser-128.3.0esr-14.0-1 at The Tor Project / Applications / Tor Browser
Commits:
183d35fc by clairehurst at 2024-10-03T14:55:59-06:00
fixup! [android] Use NimbusDisabled
- - - - -
3 changed files:
- mobile/android/android-components/components/service/nimbus/src/main/java/mozilla/components/service/nimbus/messaging/NimbusMessagingController.kt
- mobile/android/android-components/components/service/nimbus/src/main/java/mozilla/components/service/nimbus/messaging/NimbusMessagingStorage.kt
- mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/NimbusComponents.kt
Changes:
=====================================
mobile/android/android-components/components/service/nimbus/src/main/java/mozilla/components/service/nimbus/messaging/NimbusMessagingController.kt
=====================================
@@ -101,36 +101,36 @@ open class NimbusMessagingController(
* creates a URI string for the message action.
*/
@VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
- fun processMessageActionToUri(message: Message): Uri {
+ open fun processMessageActionToUri(message: Message): Uri {
val (uuid, action) = messagingStorage.generateUuidAndFormatMessage(message)
sendClickedMessageTelemetry(message.id, uuid)
return convertActionIntoDeepLinkSchemeUri(action)
}
- private fun sendDismissedMessageTelemetry(messageId: String) {
+ open fun sendDismissedMessageTelemetry(messageId: String) {
GleanMessaging.messageDismissed.record(GleanMessaging.MessageDismissedExtra(messageId))
}
- private fun sendShownMessageTelemetry(messageId: String) {
+ open fun sendShownMessageTelemetry(messageId: String) {
GleanMessaging.messageShown.record(GleanMessaging.MessageShownExtra(messageId))
}
- private fun sendExpiredMessageTelemetry(messageId: String) {
+ open fun sendExpiredMessageTelemetry(messageId: String) {
GleanMessaging.messageExpired.record(GleanMessaging.MessageExpiredExtra(messageId))
}
- private fun sendClickedMessageTelemetry(messageId: String, uuid: String?) {
+ open fun sendClickedMessageTelemetry(messageId: String, uuid: String?) {
GleanMessaging.messageClicked.record(
GleanMessaging.MessageClickedExtra(messageKey = messageId, actionUuid = uuid),
)
}
- private fun sendMicrosurveyCompletedTelemetry(messageId: String, answer: String?) {
+ open fun sendMicrosurveyCompletedTelemetry(messageId: String, answer: String?) {
MicroSurvey.response.record(MicroSurvey.ResponseExtra(surveyId = messageId, userSelection = answer))
}
- private fun convertActionIntoDeepLinkSchemeUri(action: String): Uri =
+ open fun convertActionIntoDeepLinkSchemeUri(action: String): Uri =
if (action.startsWith("://")) {
"$deepLinkScheme$action".toUri()
} else {
=====================================
mobile/android/android-components/components/service/nimbus/src/main/java/mozilla/components/service/nimbus/messaging/NimbusMessagingStorage.kt
=====================================
@@ -33,7 +33,7 @@ const val MESSAGING_FEATURE_ID = "messaging"
/**
* Provides messages from [messagingFeature] and combine with the metadata store on [metadataStorage].
*/
-class NimbusMessagingStorage(
+open class NimbusMessagingStorage(
private val context: Context,
private val metadataStorage: MessageMetadataStorage,
private val onMalformedMessage: (String) -> Unit = {
=====================================
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/NimbusComponents.kt
=====================================
@@ -5,15 +5,21 @@
package org.mozilla.fenix.components
import android.content.Context
+import android.content.Intent
+import android.net.Uri
import mozilla.components.service.nimbus.NimbusApi
import mozilla.components.service.nimbus.NimbusDisabled
import mozilla.components.service.nimbus.messaging.FxNimbusMessaging
import mozilla.components.service.nimbus.messaging.Message
+import mozilla.components.service.nimbus.messaging.Message.Metadata
+import mozilla.components.service.nimbus.messaging.MessageData
import mozilla.components.service.nimbus.messaging.MessageMetadataStorage
+import mozilla.components.service.nimbus.messaging.MessageSurfaceId
import mozilla.components.service.nimbus.messaging.NimbusMessagingController
import mozilla.components.service.nimbus.messaging.NimbusMessagingControllerInterface
import mozilla.components.service.nimbus.messaging.NimbusMessagingStorage
import mozilla.components.service.nimbus.messaging.OnDiskMessageMetadataStorage
+import mozilla.components.service.nimbus.messaging.StyleData
import org.mozilla.experiments.nimbus.NimbusEventStore
import org.mozilla.experiments.nimbus.NimbusMessagingHelperInterface
import org.mozilla.experiments.nimbus.NullNimbus
@@ -91,7 +97,7 @@ class NimbusComponents(private val context: Context) {
* from the Nimbus Messaging component.
*/
val messaging: NimbusMessagingControllerInterface by lazyMonitored {
- NimbusMessagingController(
+ NullNimbusMessagingController(
messagingStorage = messagingStorage,
deepLinkScheme = BuildConfig.DEEP_LINK_SCHEME,
)
@@ -127,3 +133,110 @@ class NullMessageMetadataStorage(): MessageMetadataStorage {
// noop
}
}
+
+class NullNimbusMessagingController(
+ messagingStorage: NimbusMessagingStorage,
+ deepLinkScheme: String,
+) : NimbusMessagingController(messagingStorage, deepLinkScheme) {
+
+ private val nullMessage: Message = Message(
+ id = "",
+ data = MessageData(),
+ action = "",
+ style = StyleData(),
+ triggerIfAll = listOf(),
+ excludeIfAny = listOf(),
+ metadata = Metadata(""),
+ )
+
+ override suspend fun onMessageDisplayed(displayedMessage: Message, bootIdentifier: String?): Message {
+ return nullMessage
+ }
+
+ /**
+ * Called when a message has been dismissed by the user.
+ *
+ * Records a messageDismissed event, and records that the message
+ * has been dismissed.
+ */
+ override suspend fun onMessageDismissed(message: Message) {
+ return
+ }
+
+ /**
+ * Called when a microsurvey attached to a message has been completed by the user.
+ *
+ * @param message The message containing the microsurvey that was completed.
+ * @param answer The user's response to the microsurvey question.
+ */
+ override suspend fun onMicrosurveyCompleted(message: Message, answer: String) {
+ return
+ }
+
+ /**
+ * Called once the user has clicked on a message.
+ *
+ * This records that the message has been clicked on, but does not record a
+ * glean event. That should be done via [processMessageActionToUri].
+ */
+ override suspend fun onMessageClicked(message: Message) {
+ return
+ }
+
+ /**
+ * Create and return the relevant [Intent] for the given [Message].
+ *
+ * @param message the [Message] to create the [Intent] for.
+ * @return an [Intent] using the processed [Message].
+ */
+ override fun getIntentForMessage(message: Message) = Intent()
+
+ /**
+ * Will attempt to get the [Message] for the given [id].
+ *
+ * @param id the [Message.id] of the [Message] to try to match.
+ * @return the [Message] with a matching [id], or null if no [Message] has a matching [id].
+ */
+ override suspend fun getMessage(id: String): Message? {
+ return nullMessage
+ }
+
+ /**
+ * The [message] action needs to be examined for string substitutions
+ * and any `uuid` needs to be recorded in the Glean event.
+ *
+ * We call this `process` as it has a side effect of logging a Glean event while it
+ * creates a URI string for the message action.
+ */
+ override fun processMessageActionToUri(message: Message): Uri {
+ return Uri.EMPTY
+ }
+
+ override fun sendDismissedMessageTelemetry(messageId: String) {
+ return
+ }
+
+ override fun sendShownMessageTelemetry(messageId: String) {
+ return
+ }
+
+ override fun sendExpiredMessageTelemetry(messageId: String) {
+ return
+ }
+
+ override fun sendClickedMessageTelemetry(messageId: String, uuid: String?) {
+ return
+ }
+
+ override fun sendMicrosurveyCompletedTelemetry(messageId: String, answer: String?) {
+ return
+ }
+
+ override fun convertActionIntoDeepLinkSchemeUri(action: String): Uri = Uri.EMPTY
+
+ override suspend fun getMessages(): List<Message> = listOf()
+
+ override suspend fun getNextMessage(surfaceId: MessageSurfaceId) = nullMessage
+
+ override fun getNextMessage(surfaceId: MessageSurfaceId, messages: List<Message>) = nullMessage
+}
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/183d35fc17ecbff4891dd30daecbeeb2184b9002
--
View it on GitLab: https://gitlab.torproject.org/tpo/applications/tor-browser/-/commit/183d35fc17ecbff4891dd30daecbeeb2184b9002
You're receiving this email because of your account on gitlab.torproject.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-commits/attachments/20241004/25b10111/attachment-0001.htm>
More information about the tor-commits
mailing list