summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Andrey Yepin <ayepin@google.com> 2024-08-19 21:23:31 -0700
committer Andrey Yepin <ayepin@google.com> 2024-08-29 13:22:25 -0700
commitf760ae087ee9f3dae6b7533d5d4c2525103fd1cf (patch)
tree149b143df47c83ffb6b0c2ddf44075c4dff59d1c
parente277a3f5330ad3bcd8ed6ffb6cba73b39d30c093 (diff)
Log payload selection changes
Bug: 329068612 Test: manual testing with an injected debug logging Test: atest IntentResolver-tests-unit Flag: EXEMPT ui events logging Change-Id: Iac9e2bcf93375d5761be5287b6cf9297be399e77
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractor.kt3
-rw-r--r--java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewsInteractor.kt4
-rw-r--r--java/src/com/android/intentresolver/logging/EventLog.kt15
-rw-r--r--java/src/com/android/intentresolver/logging/EventLogImpl.java5
-rw-r--r--tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt1
-rw-r--r--tests/shared/src/com/android/intentresolver/logging/FakeEventLog.kt9
-rw-r--r--tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractorTest.kt6
7 files changed, 42 insertions, 1 deletions
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractor.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractor.kt
index d52a71a1..8f18ebe0 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractor.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractor.kt
@@ -18,6 +18,7 @@ package com.android.intentresolver.contentpreview.payloadtoggle.domain.interacto
import android.net.Uri
import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewModel
+import com.android.intentresolver.logging.EventLog
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.map
@@ -25,6 +26,7 @@ import kotlinx.coroutines.flow.map
class SelectablePreviewInteractor(
private val key: PreviewModel,
private val selectionInteractor: SelectionInteractor,
+ private val eventLog: EventLog,
) {
val uri: Uri = key.uri
@@ -33,6 +35,7 @@ class SelectablePreviewInteractor(
/** Sets whether this preview is selected by the user. */
fun setSelected(isSelected: Boolean) {
+ eventLog.logPayloadSelectionChanged()
if (isSelected) {
selectionInteractor.select(key)
} else {
diff --git a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewsInteractor.kt b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewsInteractor.kt
index a578d0e2..d0ac8d4a 100644
--- a/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewsInteractor.kt
+++ b/java/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewsInteractor.kt
@@ -19,6 +19,7 @@ package com.android.intentresolver.contentpreview.payloadtoggle.domain.interacto
import com.android.intentresolver.contentpreview.payloadtoggle.data.repository.CursorPreviewsRepository
import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewModel
import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewsModel
+import com.android.intentresolver.logging.EventLog
import javax.inject.Inject
import kotlinx.coroutines.flow.Flow
@@ -27,6 +28,7 @@ class SelectablePreviewsInteractor
constructor(
private val previewsRepo: CursorPreviewsRepository,
private val selectionInteractor: SelectionInteractor,
+ private val eventLog: EventLog,
) {
/** Keys of previews available for display in Shareousel. */
val previews: Flow<PreviewsModel?>
@@ -36,5 +38,5 @@ constructor(
* Returns a [SelectablePreviewInteractor] that can be used to interact with the individual
* preview associated with [key].
*/
- fun preview(key: PreviewModel) = SelectablePreviewInteractor(key, selectionInteractor)
+ fun preview(key: PreviewModel) = SelectablePreviewInteractor(key, selectionInteractor, eventLog)
}
diff --git a/java/src/com/android/intentresolver/logging/EventLog.kt b/java/src/com/android/intentresolver/logging/EventLog.kt
index 476bd4bf..b92f0732 100644
--- a/java/src/com/android/intentresolver/logging/EventLog.kt
+++ b/java/src/com/android/intentresolver/logging/EventLog.kt
@@ -47,6 +47,7 @@ interface EventLog {
)
fun logCustomActionSelected(positionPicked: Int)
+
fun logShareTargetSelected(
targetType: Int,
packageName: String?,
@@ -60,15 +61,29 @@ interface EventLog {
)
fun logDirectShareTargetReceived(category: Int, latency: Int)
+
fun logActionShareWithPreview(previewType: Int)
+
fun logActionSelected(targetType: Int)
+
fun logContentPreviewWarning(uri: Uri?)
+
fun logSharesheetTriggered()
+
fun logSharesheetAppLoadComplete()
+
fun logSharesheetDirectLoadComplete()
+
fun logSharesheetDirectLoadTimeout()
+
fun logSharesheetProfileChanged()
+
fun logSharesheetExpansionChanged(isCollapsed: Boolean)
+
fun logSharesheetAppShareRankingTimeout()
+
fun logSharesheetEmptyDirectShareRow()
+
+ /** Log payload selection */
+ fun logPayloadSelectionChanged()
}
diff --git a/java/src/com/android/intentresolver/logging/EventLogImpl.java b/java/src/com/android/intentresolver/logging/EventLogImpl.java
index 8d04dd28..8e9543bc 100644
--- a/java/src/com/android/intentresolver/logging/EventLogImpl.java
+++ b/java/src/com/android/intentresolver/logging/EventLogImpl.java
@@ -273,6 +273,11 @@ public class EventLogImpl implements EventLog {
log(SharesheetStandardEvent.SHARESHEET_EMPTY_DIRECT_SHARE_ROW, mInstanceId);
}
+ @Override
+ public void logPayloadSelectionChanged() {
+ log(SharesheetStandardEvent.SHARESHEET_PAYLOAD_TOGGLED, mInstanceId);
+ }
+
/**
* Logs a UiEventReported event for a given share activity
* @param event
diff --git a/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt b/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt
index cb88cd9e..7cca414f 100644
--- a/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt
+++ b/tests/shared/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/PayloadToggleInteractorKosmos.kt
@@ -91,6 +91,7 @@ val Kosmos.selectablePreviewsInteractor
SelectablePreviewsInteractor(
previewsRepo = cursorPreviewsRepository,
selectionInteractor = selectionInteractor,
+ eventLog = eventLog,
)
val Kosmos.selectionInteractor
diff --git a/tests/shared/src/com/android/intentresolver/logging/FakeEventLog.kt b/tests/shared/src/com/android/intentresolver/logging/FakeEventLog.kt
index 9ed47db6..c2d13f1e 100644
--- a/tests/shared/src/com/android/intentresolver/logging/FakeEventLog.kt
+++ b/tests/shared/src/com/android/intentresolver/logging/FakeEventLog.kt
@@ -164,14 +164,22 @@ class FakeEventLog @Inject constructor(private val instanceId: InstanceId) : Eve
log { "logSharesheetEmptyDirectShareRow()" }
}
+ override fun logPayloadSelectionChanged() {
+ log { "logPayloadSelectionChanged" }
+ }
+
data class ActionSelected(val targetType: Int)
+
data class CustomActionSelected(val positionPicked: Int)
+
data class ActionShareWithPreview(val previewType: Int)
+
data class ChooserActivityShown(
val isWorkProfile: Boolean,
val targetMimeType: String?,
val systemCost: Long
)
+
data class ShareStarted(
val packageName: String?,
val mimeType: String?,
@@ -183,6 +191,7 @@ class FakeEventLog @Inject constructor(private val instanceId: InstanceId) : Eve
val customActionCount: Int,
val modifyShareActionProvided: Boolean
)
+
data class ShareTargetSelected(
val targetType: Int,
val packageName: String?,
diff --git a/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractorTest.kt b/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractorTest.kt
index f329b8a7..5d9ddbb6 100644
--- a/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractorTest.kt
+++ b/tests/unit/src/com/android/intentresolver/contentpreview/payloadtoggle/domain/interactor/SelectablePreviewInteractorTest.kt
@@ -26,13 +26,16 @@ import com.android.intentresolver.contentpreview.payloadtoggle.domain.intent.Tar
import com.android.intentresolver.contentpreview.payloadtoggle.domain.intent.targetIntentModifier
import com.android.intentresolver.contentpreview.payloadtoggle.shared.model.PreviewModel
import com.android.intentresolver.data.repository.chooserRequestRepository
+import com.android.intentresolver.logging.FakeEventLog
import com.android.intentresolver.util.runKosmosTest
+import com.android.internal.logging.InstanceId
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.first
import org.junit.Test
class SelectablePreviewInteractorTest {
+ private val eventLog = FakeEventLog(InstanceId.fakeInstanceId(0))
@Test
fun reflectPreviewRepo_initState() = runKosmosTest {
@@ -46,6 +49,7 @@ class SelectablePreviewInteractorTest {
order = 0,
),
selectionInteractor = selectionInteractor,
+ eventLog = eventLog,
)
runCurrent()
@@ -64,6 +68,7 @@ class SelectablePreviewInteractorTest {
order = 0,
),
selectionInteractor = selectionInteractor,
+ eventLog = eventLog,
)
assertThat(underTest.isSelected.first()).isFalse()
@@ -93,6 +98,7 @@ class SelectablePreviewInteractorTest {
order = 0,
),
selectionInteractor = selectionInteractor,
+ eventLog = eventLog,
)
underTest.setSelected(true)