summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Mark Renouf <mrenouf@google.com> 2023-09-13 11:10:10 -0400
committer Mark Renouf <mrenouf@google.com> 2023-09-13 20:34:38 -0400
commit4fe01c7ca647194636c592949516677e68fc4a80 (patch)
tree9eeeb2c45c9daa2b7be9d55c5e3e9d9a77cf49b4 /java
parent7b9870d97b35f075282c1ec642453b6ed393e419 (diff)
Extract an interface for EventLog, rename implementation
This is a purely automated refactor with no functional changes. Test: atest IntentResolverUnitTests Bug: 300157408 Flag: EXEMPT Change-Id: I7440a6bb1035999f202e799402f09bcb1d657ecc
Diffstat (limited to 'java')
-rw-r--r--java/src/com/android/intentresolver/ChooserActionFactory.java26
-rw-r--r--java/src/com/android/intentresolver/ChooserActivity.java3
-rw-r--r--java/src/com/android/intentresolver/logging/EventLog.kt74
-rw-r--r--java/src/com/android/intentresolver/logging/EventLogImpl.java (renamed from java/src/com/android/intentresolver/logging/EventLog.java)63
-rw-r--r--java/src/com/android/intentresolver/logging/FrameworkStatsLogger.kt50
-rw-r--r--java/src/com/android/intentresolver/model/AbstractResolverComparator.java4
-rw-r--r--java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java2
-rw-r--r--java/src/com/android/intentresolver/model/ResolverRankerServiceResolverComparator.java13
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt3
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java6
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt4
-rw-r--r--java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java4
-rw-r--r--java/tests/src/com/android/intentresolver/IChooserWrapper.java4
-rw-r--r--java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java11
-rw-r--r--java/tests/src/com/android/intentresolver/logging/EventLogImplTest.java (renamed from java/tests/src/com/android/intentresolver/logging/EventLogTest.java)49
15 files changed, 209 insertions, 107 deletions
diff --git a/java/src/com/android/intentresolver/ChooserActionFactory.java b/java/src/com/android/intentresolver/ChooserActionFactory.java
index a54e8c62..2c97c0b1 100644
--- a/java/src/com/android/intentresolver/ChooserActionFactory.java
+++ b/java/src/com/android/intentresolver/ChooserActionFactory.java
@@ -98,7 +98,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
private final @Nullable ChooserAction mModifyShareAction;
private final Consumer<Boolean> mExcludeSharedTextAction;
private final Consumer</* @Nullable */ Integer> mFinishCallback;
- private final EventLog mLogger;
+ private final EventLog mLog;
/**
* @param context
@@ -117,7 +117,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
Context context,
ChooserRequestParameters chooserRequest,
ChooserIntegratedDeviceComponents integratedDeviceComponents,
- EventLog logger,
+ EventLog log,
Consumer<Boolean> onUpdateSharedTextIsExcluded,
Callable</* @Nullable */ View> firstVisibleImageQuery,
ActionActivityStarter activityStarter,
@@ -129,7 +129,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
chooserRequest.getTargetIntent(),
chooserRequest.getReferrerPackageName(),
finishCallback,
- logger),
+ log),
makeEditButtonRunnable(
getEditSharingTarget(
context,
@@ -137,11 +137,11 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
integratedDeviceComponents),
firstVisibleImageQuery,
activityStarter,
- logger),
+ log),
chooserRequest.getChooserActions(),
chooserRequest.getModifyShareAction(),
onUpdateSharedTextIsExcluded,
- logger,
+ log,
finishCallback);
}
@@ -153,7 +153,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
List<ChooserAction> customActions,
@Nullable ChooserAction modifyShareAction,
Consumer<Boolean> onUpdateSharedTextIsExcluded,
- EventLog logger,
+ EventLog log,
Consumer</* @Nullable */ Integer> finishCallback) {
mContext = context;
mCopyButtonRunnable = copyButtonRunnable;
@@ -161,7 +161,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
mCustomActions = ImmutableList.copyOf(customActions);
mModifyShareAction = modifyShareAction;
mExcludeSharedTextAction = onUpdateSharedTextIsExcluded;
- mLogger = logger;
+ mLog = log;
mFinishCallback = finishCallback;
}
@@ -188,7 +188,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
mCustomActions.get(i),
mFinishCallback,
() -> {
- mLogger.logCustomActionSelected(position);
+ mLog.logCustomActionSelected(position);
}
);
if (actionRow != null) {
@@ -209,7 +209,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
mModifyShareAction,
mFinishCallback,
() -> {
- mLogger.logActionSelected(EventLog.SELECTION_TYPE_MODIFY_SHARE);
+ mLog.logActionSelected(EventLog.SELECTION_TYPE_MODIFY_SHARE);
});
}
@@ -233,7 +233,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
Intent targetIntent,
String referrerPackageName,
Consumer<Integer> finishCallback,
- EventLog logger) {
+ EventLog log) {
final ClipData clipData;
try {
clipData = extractTextToCopy(targetIntent);
@@ -249,7 +249,7 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
Context.CLIPBOARD_SERVICE);
clipboardManager.setPrimaryClipAsPackage(clipData, referrerPackageName);
- logger.logActionSelected(EventLog.SELECTION_TYPE_COPY);
+ log.logActionSelected(EventLog.SELECTION_TYPE_COPY);
finishCallback.accept(Activity.RESULT_OK);
};
}
@@ -328,10 +328,10 @@ public final class ChooserActionFactory implements ChooserContentPreviewUi.Actio
TargetInfo editSharingTarget,
Callable</* @Nullable */ View> firstVisibleImageQuery,
ActionActivityStarter activityStarter,
- EventLog logger) {
+ EventLog log) {
return () -> {
// Log share completion via edit.
- logger.logActionSelected(EventLog.SELECTION_TYPE_EDIT);
+ log.logActionSelected(EventLog.SELECTION_TYPE_EDIT);
View firstImageView = null;
try {
diff --git a/java/src/com/android/intentresolver/ChooserActivity.java b/java/src/com/android/intentresolver/ChooserActivity.java
index ebe6f04b..0a4f9f46 100644
--- a/java/src/com/android/intentresolver/ChooserActivity.java
+++ b/java/src/com/android/intentresolver/ChooserActivity.java
@@ -85,6 +85,7 @@ import com.android.intentresolver.grid.ChooserGridAdapter;
import com.android.intentresolver.icons.DefaultTargetDataLoader;
import com.android.intentresolver.icons.TargetDataLoader;
import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import com.android.intentresolver.measurements.Tracer;
import com.android.intentresolver.model.AbstractResolverComparator;
import com.android.intentresolver.model.AppPredictionServiceResolverComparator;
@@ -1111,7 +1112,7 @@ public class ChooserActivity extends Hilt_ChooserActivity implements
protected EventLog getEventLog() {
if (mEventLog == null) {
- mEventLog = new EventLog();
+ mEventLog = new EventLogImpl();
}
return mEventLog;
}
diff --git a/java/src/com/android/intentresolver/logging/EventLog.kt b/java/src/com/android/intentresolver/logging/EventLog.kt
new file mode 100644
index 00000000..476bd4bf
--- /dev/null
+++ b/java/src/com/android/intentresolver/logging/EventLog.kt
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.intentresolver.logging
+
+import android.net.Uri
+import android.util.HashedStringCache
+
+/** Logs notable events during ShareSheet usage. */
+interface EventLog {
+
+ companion object {
+ const val SELECTION_TYPE_SERVICE = 1
+ const val SELECTION_TYPE_APP = 2
+ const val SELECTION_TYPE_STANDARD = 3
+ const val SELECTION_TYPE_COPY = 4
+ const val SELECTION_TYPE_NEARBY = 5
+ const val SELECTION_TYPE_EDIT = 6
+ const val SELECTION_TYPE_MODIFY_SHARE = 7
+ const val SELECTION_TYPE_CUSTOM_ACTION = 8
+ }
+
+ fun logChooserActivityShown(isWorkProfile: Boolean, targetMimeType: String?, systemCost: Long)
+
+ fun logShareStarted(
+ packageName: String?,
+ mimeType: String?,
+ appProvidedDirect: Int,
+ appProvidedApp: Int,
+ isWorkprofile: Boolean,
+ previewType: Int,
+ intent: String?,
+ customActionCount: Int,
+ modifyShareActionProvided: Boolean
+ )
+
+ fun logCustomActionSelected(positionPicked: Int)
+ fun logShareTargetSelected(
+ targetType: Int,
+ packageName: String?,
+ positionPicked: Int,
+ directTargetAlsoRanked: Int,
+ numCallerProvided: Int,
+ directTargetHashed: HashedStringCache.HashResult?,
+ isPinned: Boolean,
+ successfullySelected: Boolean,
+ selectionCost: Long
+ )
+
+ 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()
+}
diff --git a/java/src/com/android/intentresolver/logging/EventLog.java b/java/src/com/android/intentresolver/logging/EventLogImpl.java
index b30e825b..33e617b1 100644
--- a/java/src/com/android/intentresolver/logging/EventLog.java
+++ b/java/src/com/android/intentresolver/logging/EventLogImpl.java
@@ -38,52 +38,11 @@ import com.android.internal.util.FrameworkStatsLog;
/**
* Helper for writing Sharesheet atoms to statsd log.
- * @hide
*/
-public class EventLog {
+public class EventLogImpl implements EventLog {
private static final String TAG = "ChooserActivity";
private static final boolean DEBUG = true;
- public static final int SELECTION_TYPE_SERVICE = 1;
- public static final int SELECTION_TYPE_APP = 2;
- public static final int SELECTION_TYPE_STANDARD = 3;
- public static final int SELECTION_TYPE_COPY = 4;
- public static final int SELECTION_TYPE_NEARBY = 5;
- public static final int SELECTION_TYPE_EDIT = 6;
- public static final int SELECTION_TYPE_MODIFY_SHARE = 7;
- public static final int SELECTION_TYPE_CUSTOM_ACTION = 8;
-
- /**
- * This shim is provided only for testing. In production, clients will only ever use a
- * {@link DefaultFrameworkStatsLogger}.
- */
- @VisibleForTesting
- interface FrameworkStatsLogger {
- /** Overload to use for logging {@code FrameworkStatsLog.SHARESHEET_STARTED}. */
- void write(
- int frameworkEventId,
- int appEventId,
- String packageName,
- int instanceId,
- String mimeType,
- int numAppProvidedDirectTargets,
- int numAppProvidedAppTargets,
- boolean isWorkProfile,
- int previewType,
- int intentType,
- int numCustomActions,
- boolean modifyShareActionProvided);
-
- /** Overload to use for logging {@code FrameworkStatsLog.RANKING_SELECTED}. */
- void write(
- int frameworkEventId,
- int appEventId,
- String packageName,
- int instanceId,
- int positionPicked,
- boolean isPinned);
- }
-
private static final int SHARESHEET_INSTANCE_ID_MAX = (1 << 13);
// A small per-notification ID, used for statsd logging.
@@ -95,12 +54,12 @@ public class EventLog {
private final FrameworkStatsLogger mFrameworkStatsLogger;
private final MetricsLogger mMetricsLogger;
- public EventLog() {
+ public EventLogImpl() {
this(new UiEventLoggerImpl(), new DefaultFrameworkStatsLogger(), new MetricsLogger());
}
@VisibleForTesting
- EventLog(
+ EventLogImpl(
UiEventLogger uiEventLogger,
FrameworkStatsLogger frameworkLogger,
MetricsLogger metricsLogger) {
@@ -110,6 +69,7 @@ public class EventLog {
}
/** Records metrics for the start time of the {@link ChooserActivity}. */
+ @Override
public void logChooserActivityShown(
boolean isWorkProfile, String targetMimeType, long systemCost) {
mMetricsLogger.write(new LogMaker(MetricsEvent.ACTION_ACTIVITY_CHOOSER_SHOWN)
@@ -120,6 +80,7 @@ public class EventLog {
}
/** Logs a UiEventReported event for the system sharesheet completing initial start-up. */
+ @Override
public void logShareStarted(
String packageName,
String mimeType,
@@ -149,6 +110,7 @@ public class EventLog {
*
* @param positionPicked index of the custom action within the list of custom actions.
*/
+ @Override
public void logCustomActionSelected(int positionPicked) {
mFrameworkStatsLogger.write(FrameworkStatsLog.RANKING_SELECTED,
/* event_id = 1 */
@@ -164,6 +126,7 @@ public class EventLog {
* TODO: document parameters and/or consider breaking up by targetType so we don't have to
* support an overly-generic signature.
*/
+ @Override
public void logShareTargetSelected(
int targetType,
String packageName,
@@ -209,6 +172,7 @@ public class EventLog {
}
/** Log when direct share targets were received. */
+ @Override
public void logDirectShareTargetReceived(int category, int latency) {
mMetricsLogger.write(new LogMaker(category).setSubtype(latency));
}
@@ -217,12 +181,14 @@ public class EventLog {
* Log when we display a preview UI of the specified {@code previewType} as part of our
* Sharesheet session.
*/
+ @Override
public void logActionShareWithPreview(int previewType) {
mMetricsLogger.write(
new LogMaker(MetricsEvent.ACTION_SHARE_WITH_PREVIEW).setSubtype(previewType));
}
/** Log when the user selects an action button with the specified {@code targetType}. */
+ @Override
public void logActionSelected(int targetType) {
if (targetType == SELECTION_TYPE_COPY) {
LogMaker targetLogMaker = new LogMaker(
@@ -238,6 +204,7 @@ public class EventLog {
}
/** Log a warning that we couldn't display the content preview from the supplied {@code uri}. */
+ @Override
public void logContentPreviewWarning(Uri uri) {
// The ContentResolver already logs the exception. Log something more informative.
Log.w(TAG, "Could not load (" + uri.toString() + ") thumbnail/name for preview. If "
@@ -248,11 +215,13 @@ public class EventLog {
}
/** Logs a UiEventReported event for the system sharesheet being triggered by the user. */
+ @Override
public void logSharesheetTriggered() {
log(SharesheetStandardEvent.SHARESHEET_TRIGGERED, getInstanceId());
}
/** Logs a UiEventReported event for the system sharesheet completing loading app targets. */
+ @Override
public void logSharesheetAppLoadComplete() {
log(SharesheetStandardEvent.SHARESHEET_APP_LOAD_COMPLETE, getInstanceId());
}
@@ -260,6 +229,7 @@ public class EventLog {
/**
* Logs a UiEventReported event for the system sharesheet completing loading service targets.
*/
+ @Override
public void logSharesheetDirectLoadComplete() {
log(SharesheetStandardEvent.SHARESHEET_DIRECT_LOAD_COMPLETE, getInstanceId());
}
@@ -267,6 +237,7 @@ public class EventLog {
/**
* Logs a UiEventReported event for the system sharesheet timing out loading service targets.
*/
+ @Override
public void logSharesheetDirectLoadTimeout() {
log(SharesheetStandardEvent.SHARESHEET_DIRECT_LOAD_TIMEOUT, getInstanceId());
}
@@ -275,11 +246,13 @@ public class EventLog {
* Logs a UiEventReported event for the system sharesheet switching
* between work and main profile.
*/
+ @Override
public void logSharesheetProfileChanged() {
log(SharesheetStandardEvent.SHARESHEET_PROFILE_CHANGED, getInstanceId());
}
/** Logs a UiEventReported event for the system sharesheet getting expanded or collapsed. */
+ @Override
public void logSharesheetExpansionChanged(boolean isCollapsed) {
log(isCollapsed ? SharesheetStandardEvent.SHARESHEET_COLLAPSED :
SharesheetStandardEvent.SHARESHEET_EXPANDED, getInstanceId());
@@ -288,6 +261,7 @@ public class EventLog {
/**
* Logs a UiEventReported event for the system sharesheet app share ranking timing out.
*/
+ @Override
public void logSharesheetAppShareRankingTimeout() {
log(SharesheetStandardEvent.SHARESHEET_APP_SHARE_RANKING_TIMEOUT, getInstanceId());
}
@@ -295,6 +269,7 @@ public class EventLog {
/**
* Logs a UiEventReported event for the system sharesheet when direct share row is empty.
*/
+ @Override
public void logSharesheetEmptyDirectShareRow() {
log(SharesheetStandardEvent.SHARESHEET_EMPTY_DIRECT_SHARE_ROW, getInstanceId());
}
diff --git a/java/src/com/android/intentresolver/logging/FrameworkStatsLogger.kt b/java/src/com/android/intentresolver/logging/FrameworkStatsLogger.kt
new file mode 100644
index 00000000..e0682b9e
--- /dev/null
+++ b/java/src/com/android/intentresolver/logging/FrameworkStatsLogger.kt
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2023 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.intentresolver.logging
+
+import com.android.internal.util.FrameworkStatsLog
+
+/** A documenting annotation for FrameworkStatsLog methods and their associated UiEvents. */
+internal annotation class ForUiEvent(vararg val uiEventId: Int)
+
+/** Isolates the specific method signatures to use for each of the logged UiEvents. */
+internal interface FrameworkStatsLogger {
+ @ForUiEvent(FrameworkStatsLog.SHARESHEET_STARTED)
+ fun write(
+ frameworkEventId: Int,
+ appEventId: Int,
+ packageName: String?,
+ instanceId: Int,
+ mimeType: String?,
+ numAppProvidedDirectTargets: Int,
+ numAppProvidedAppTargets: Int,
+ isWorkProfile: Boolean,
+ previewType: Int,
+ intentType: Int,
+ numCustomActions: Int,
+ modifyShareActionProvided: Boolean
+ )
+
+ @ForUiEvent(FrameworkStatsLog.RANKING_SELECTED)
+ fun write(
+ frameworkEventId: Int,
+ appEventId: Int,
+ packageName: String?,
+ instanceId: Int,
+ positionPicked: Int,
+ isPinned: Boolean
+ )
+}
diff --git a/java/src/com/android/intentresolver/model/AbstractResolverComparator.java b/java/src/com/android/intentresolver/model/AbstractResolverComparator.java
index ff2d6a0f..932d8590 100644
--- a/java/src/com/android/intentresolver/model/AbstractResolverComparator.java
+++ b/java/src/com/android/intentresolver/model/AbstractResolverComparator.java
@@ -30,10 +30,11 @@ import android.os.Message;
import android.os.UserHandle;
import android.util.Log;
-import com.android.intentresolver.logging.EventLog;
import com.android.intentresolver.ResolvedComponentInfo;
import com.android.intentresolver.ResolverActivity;
+import com.android.intentresolver.ResolverListController;
import com.android.intentresolver.chooser.TargetInfo;
+import com.android.intentresolver.logging.EventLog;
import java.text.Collator;
import java.util.ArrayList;
@@ -75,6 +76,7 @@ public abstract class AbstractResolverComparator implements Comparator<ResolvedC
private EventLog mEventLog;
protected final Handler mHandler = new Handler(Looper.getMainLooper()) {
+ @Override
public void handleMessage(Message msg) {
switch (msg.what) {
case RANKER_SERVICE_RESULT:
diff --git a/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java b/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java
index 621ae306..12fed698 100644
--- a/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java
+++ b/java/src/com/android/intentresolver/model/AppPredictionServiceResolverComparator.java
@@ -31,9 +31,9 @@ import android.os.Message;
import android.os.UserHandle;
import android.util.Log;
-import com.android.intentresolver.logging.EventLog;
import com.android.intentresolver.ResolvedComponentInfo;
import com.android.intentresolver.chooser.TargetInfo;
+import com.android.intentresolver.logging.EventLog;
import com.google.android.collect.Lists;
diff --git a/java/src/com/android/intentresolver/model/ResolverRankerServiceResolverComparator.java b/java/src/com/android/intentresolver/model/ResolverRankerServiceResolverComparator.java
index 7d473660..42b8a932 100644
--- a/java/src/com/android/intentresolver/model/ResolverRankerServiceResolverComparator.java
+++ b/java/src/com/android/intentresolver/model/ResolverRankerServiceResolverComparator.java
@@ -39,9 +39,9 @@ import android.service.resolver.ResolverRankerService;
import android.service.resolver.ResolverTarget;
import android.util.Log;
-import com.android.intentresolver.logging.EventLog;
import com.android.intentresolver.ResolvedComponentInfo;
import com.android.intentresolver.chooser.TargetInfo;
+import com.android.intentresolver.logging.EventLog;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -101,9 +101,9 @@ public class ResolverRankerServiceResolverComparator extends AbstractResolverCom
* the userSpace provided by context.
*/
public ResolverRankerServiceResolverComparator(Context launchedFromContext, Intent intent,
- String referrerPackage, Runnable afterCompute,
- EventLog eventLog, UserHandle targetUserSpace,
- ComponentName promoteToFirst) {
+ String referrerPackage, Runnable afterCompute,
+ EventLog eventLog, UserHandle targetUserSpace,
+ ComponentName promoteToFirst) {
this(launchedFromContext, intent, referrerPackage, afterCompute, eventLog,
Lists.newArrayList(targetUserSpace), promoteToFirst);
}
@@ -117,9 +117,8 @@ public class ResolverRankerServiceResolverComparator extends AbstractResolverCom
* different from the userSpace provided by context.
*/
public ResolverRankerServiceResolverComparator(Context launchedFromContext, Intent intent,
- String referrerPackage, Runnable afterCompute,
- EventLog eventLog, List<UserHandle> targetUserSpaceList,
- @Nullable ComponentName promoteToFirst) {
+ String referrerPackage, Runnable afterCompute, EventLog eventLog,
+ List<UserHandle> targetUserSpaceList, @Nullable ComponentName promoteToFirst) {
super(launchedFromContext, intent, targetUserSpaceList, promoteToFirst);
mCollator = Collator.getInstance(
launchedFromContext.getResources().getConfiguration().locale);
diff --git a/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt b/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt
index 2d1ac4e4..e2b987c2 100644
--- a/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt
+++ b/java/tests/src/com/android/intentresolver/ChooserActionFactoryTest.kt
@@ -28,12 +28,13 @@ import android.graphics.drawable.Icon
import android.service.chooser.ChooserAction
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
-import com.android.intentresolver.logging.EventLog
+import com.android.intentresolver.logging.EventLogImpl
import com.google.common.collect.ImmutableList
import com.google.common.truth.Truth.assertThat
import java.util.concurrent.CountDownLatch
import java.util.concurrent.TimeUnit
import java.util.function.Consumer
+import com.android.intentresolver.logging.EventLog
import org.junit.After
import org.junit.Assert.assertEquals
import org.junit.Assert.assertTrue
diff --git a/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java b/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
index 5b938aa1..b5c14ff1 100644
--- a/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
+++ b/java/tests/src/com/android/intentresolver/ChooserActivityOverrideData.java
@@ -29,7 +29,7 @@ import android.os.UserHandle;
import com.android.intentresolver.AbstractMultiProfilePagerAdapter.CrossProfileIntentsChecker;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.contentpreview.ImageLoader;
-import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import java.util.function.Consumer;
@@ -64,7 +64,7 @@ public class ChooserActivityOverrideData {
public Cursor resolverCursor;
public boolean resolverForceException;
public ImageLoader imageLoader;
- public EventLog mEventLog;
+ public EventLogImpl mEventLog;
public int alternateProfileSetting;
public Resources resources;
public UserHandle workProfileUserHandle;
@@ -86,7 +86,7 @@ public class ChooserActivityOverrideData {
resolverForceException = false;
resolverListController = mock(ChooserActivity.ChooserListController.class);
workResolverListController = mock(ChooserActivity.ChooserListController.class);
- mEventLog = mock(EventLog.class);
+ mEventLog = mock(EventLogImpl.class);
alternateProfileSetting = 0;
resources = null;
workProfileUserHandle = null;
diff --git a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
index 9b5e2d1c..87e58954 100644
--- a/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
+++ b/java/tests/src/com/android/intentresolver/ChooserListAdapterTest.kt
@@ -32,7 +32,7 @@ import com.android.intentresolver.chooser.DisplayResolveInfo
import com.android.intentresolver.chooser.SelectableTargetInfo
import com.android.intentresolver.chooser.TargetInfo
import com.android.intentresolver.icons.TargetDataLoader
-import com.android.intentresolver.logging.EventLog
+import com.android.intentresolver.logging.EventLogImpl
import com.android.internal.R
import com.google.common.truth.Truth.assertThat
import org.junit.Before
@@ -54,7 +54,7 @@ class ChooserListAdapterTest {
private val resolverListController = mock<ResolverListController>()
private val appLabel = "App"
private val targetLabel = "Target"
- private val mEventLog = mock<EventLog>()
+ private val mEventLog = mock<EventLogImpl>()
private val mTargetDataLoader = mock<TargetDataLoader>()
private val testSubject by lazy {
diff --git a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
index 578b9557..6dbf9b3f 100644
--- a/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
+++ b/java/tests/src/com/android/intentresolver/ChooserWrapperActivity.java
@@ -39,7 +39,7 @@ import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.chooser.TargetInfo;
import com.android.intentresolver.grid.ChooserGridAdapter;
import com.android.intentresolver.icons.TargetDataLoader;
-import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -204,7 +204,7 @@ public class ChooserWrapperActivity extends ChooserActivity implements IChooserW
}
@Override
- public EventLog getEventLog() {
+ public EventLogImpl getEventLog() {
return sOverrides.mEventLog;
}
diff --git a/java/tests/src/com/android/intentresolver/IChooserWrapper.java b/java/tests/src/com/android/intentresolver/IChooserWrapper.java
index 3326d7f2..54e4da9e 100644
--- a/java/tests/src/com/android/intentresolver/IChooserWrapper.java
+++ b/java/tests/src/com/android/intentresolver/IChooserWrapper.java
@@ -23,7 +23,7 @@ import android.content.pm.ResolveInfo;
import android.os.UserHandle;
import com.android.intentresolver.chooser.DisplayResolveInfo;
-import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import java.util.concurrent.Executor;
@@ -42,6 +42,6 @@ public interface IChooserWrapper {
CharSequence pLabel, CharSequence pInfo, Intent replacementIntent,
@Nullable TargetPresentationGetter resolveInfoPresentationGetter);
UserHandle getCurrentUserHandle();
- EventLog getEventLog();
+ EventLogImpl getEventLog();
Executor getMainExecutor();
}
diff --git a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
index 59357843..2838f00b 100644
--- a/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
+++ b/java/tests/src/com/android/intentresolver/UnbundledChooserActivityTest.java
@@ -113,6 +113,7 @@ import androidx.test.rule.ActivityTestRule;
import com.android.intentresolver.chooser.DisplayResolveInfo;
import com.android.intentresolver.contentpreview.ImageLoader;
import com.android.intentresolver.logging.EventLog;
+import com.android.intentresolver.logging.EventLogImpl;
import com.android.intentresolver.shortcuts.ShortcutLoader;
import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
@@ -845,7 +846,7 @@ public class UnbundledChooserActivityTest {
onView(withId(R.id.copy)).perform(click());
EventLog logger = activity.getEventLog();
- verify(logger, times(1)).logActionSelected(eq(EventLog.SELECTION_TYPE_COPY));
+ verify(logger, times(1)).logActionSelected(eq(EventLogImpl.SELECTION_TYPE_COPY));
}
@Test
@@ -1466,7 +1467,7 @@ public class UnbundledChooserActivityTest {
ArgumentCaptor<HashedStringCache.HashResult> hashCaptor =
ArgumentCaptor.forClass(HashedStringCache.HashResult.class);
verify(activity.getEventLog(), times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
/* directTargetAlsoRanked= */ eq(-1),
@@ -1547,7 +1548,7 @@ public class UnbundledChooserActivityTest {
waitForIdle();
verify(activity.getEventLog(), times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
/* directTargetAlsoRanked= */ eq(0),
@@ -1963,7 +1964,7 @@ public class UnbundledChooserActivityTest {
EventLog logger = wrapper.getEventLog();
verify(logger, times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
// The packages sholdn't match for app target and direct target:
@@ -2296,7 +2297,7 @@ public class UnbundledChooserActivityTest {
EventLog logger = activity.getEventLog();
ArgumentCaptor<Integer> typeCaptor = ArgumentCaptor.forClass(Integer.class);
verify(logger, times(1)).logShareTargetSelected(
- eq(EventLog.SELECTION_TYPE_SERVICE),
+ eq(EventLogImpl.SELECTION_TYPE_SERVICE),
/* packageName= */ any(),
/* positionPicked= */ anyInt(),
/* directTargetAlsoRanked= */ anyInt(),
diff --git a/java/tests/src/com/android/intentresolver/logging/EventLogTest.java b/java/tests/src/com/android/intentresolver/logging/EventLogImplTest.java
index 17452774..19177798 100644
--- a/java/tests/src/com/android/intentresolver/logging/EventLogTest.java
+++ b/java/tests/src/com/android/intentresolver/logging/EventLogImplTest.java
@@ -32,10 +32,9 @@ import static org.mockito.Mockito.verifyNoMoreInteractions;
import android.content.Intent;
import android.metrics.LogMaker;
-import com.android.intentresolver.logging.EventLog.FrameworkStatsLogger;
-import com.android.intentresolver.logging.EventLog.SharesheetStandardEvent;
-import com.android.intentresolver.logging.EventLog.SharesheetStartedEvent;
-import com.android.intentresolver.logging.EventLog.SharesheetTargetSelectedEvent;
+import com.android.intentresolver.logging.EventLogImpl.SharesheetStandardEvent;
+import com.android.intentresolver.logging.EventLogImpl.SharesheetStartedEvent;
+import com.android.intentresolver.logging.EventLogImpl.SharesheetTargetSelectedEvent;
import com.android.intentresolver.contentpreview.ContentPreviewType;
import com.android.internal.logging.InstanceId;
import com.android.internal.logging.MetricsLogger;
@@ -53,17 +52,17 @@ import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
-public final class EventLogTest {
+public final class EventLogImplTest {
@Mock private UiEventLogger mUiEventLog;
@Mock private FrameworkStatsLogger mFrameworkLog;
@Mock private MetricsLogger mMetricsLogger;
- private EventLog mChooserLogger;
+ private EventLogImpl mChooserLogger;
@Before
public void setUp() {
//Mockito.reset(mUiEventLog, mFrameworkLog, mMetricsLogger);
- mChooserLogger = new EventLog(mUiEventLog, mFrameworkLog, mMetricsLogger);
+ mChooserLogger = new EventLogImpl(mUiEventLog, mFrameworkLog, mMetricsLogger);
}
@After
@@ -151,7 +150,7 @@ public final class EventLogTest {
@Test
public void testLogShareTargetSelected() {
- final int targetType = EventLog.SELECTION_TYPE_SERVICE;
+ final int targetType = EventLogImpl.SELECTION_TYPE_SERVICE;
final String packageName = "com.test.foo";
final int positionPicked = 123;
final int directTargetAlsoRanked = -1;
@@ -189,7 +188,7 @@ public final class EventLogTest {
@Test
public void testLogActionSelected() {
- mChooserLogger.logActionSelected(EventLog.SELECTION_TYPE_COPY);
+ mChooserLogger.logActionSelected(EventLogImpl.SELECTION_TYPE_COPY);
verify(mFrameworkLog).write(
eq(FrameworkStatsLog.RANKING_SELECTED),
@@ -320,10 +319,10 @@ public final class EventLogTest {
@Test
public void testDifferentLoggerInstancesUseDifferentInstanceIds() {
ArgumentCaptor<Integer> idIntCaptor = ArgumentCaptor.forClass(Integer.class);
- EventLog chooserLogger2 =
- new EventLog(mUiEventLog, mFrameworkLog, mMetricsLogger);
+ EventLogImpl chooserLogger2 =
+ new EventLogImpl(mUiEventLog, mFrameworkLog, mMetricsLogger);
- final int targetType = EventLog.SELECTION_TYPE_COPY;
+ final int targetType = EventLogImpl.SELECTION_TYPE_COPY;
final String packageName = "com.test.foo";
final int positionPicked = 123;
final int directTargetAlsoRanked = -1;
@@ -370,7 +369,7 @@ public final class EventLogTest {
ArgumentCaptor<Integer> idIntCaptor = ArgumentCaptor.forClass(Integer.class);
ArgumentCaptor<InstanceId> idObjectCaptor = ArgumentCaptor.forClass(InstanceId.class);
- final int targetType = EventLog.SELECTION_TYPE_COPY;
+ final int targetType = EventLogImpl.SELECTION_TYPE_COPY;
final String packageName = "com.test.foo";
final int positionPicked = 123;
final int directTargetAlsoRanked = -1;
@@ -403,20 +402,20 @@ public final class EventLogTest {
@Test
public void testTargetSelectionCategories() {
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_SERVICE))
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_SERVICE))
.isEqualTo(MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_SERVICE_TARGET);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_APP))
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_APP))
.isEqualTo(MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_APP_TARGET);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_STANDARD))
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_STANDARD))
.isEqualTo(MetricsEvent.ACTION_ACTIVITY_CHOOSER_PICKED_STANDARD_TARGET);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_COPY)).isEqualTo(0);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_NEARBY)).isEqualTo(0);
- assertThat(EventLog.getTargetSelectionCategory(
- EventLog.SELECTION_TYPE_EDIT)).isEqualTo(0);
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_COPY)).isEqualTo(0);
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_NEARBY)).isEqualTo(0);
+ assertThat(EventLogImpl.getTargetSelectionCategory(
+ EventLogImpl.SELECTION_TYPE_EDIT)).isEqualTo(0);
}
}