diff options
author | 2024-08-19 21:23:31 -0700 | |
---|---|---|
committer | 2024-08-29 13:22:25 -0700 | |
commit | f760ae087ee9f3dae6b7533d5d4c2525103fd1cf (patch) | |
tree | 149b143df47c83ffb6b0c2ddf44075c4dff59d1c | |
parent | e277a3f5330ad3bcd8ed6ffb6cba73b39d30c093 (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
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) |