diff options
| author | 2023-12-06 00:49:02 +0000 | |
|---|---|---|
| committer | 2023-12-06 00:49:02 +0000 | |
| commit | 4c22f20d5ad01b4e246885973fb2d9f8b3ca6e77 (patch) | |
| tree | 0b1a4cdeaa437beffe08ca95c4f3569462346fe2 | |
| parent | 3f6775c812ad2638607961719c80f030b2b7476c (diff) | |
| parent | 05bacc1570d19b6ff1a7f9eafcc43594a3c1936e (diff) | |
Merge "Offer more details about widget interaction." into main
| -rw-r--r-- | services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java index 258820a5a03c..77a5e3db2aba 100644 --- a/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java @@ -43,7 +43,9 @@ import android.app.KeyguardManager; import android.app.PendingIntent; import android.app.admin.DevicePolicyManagerInternal; import android.app.admin.DevicePolicyManagerInternal.OnCrossProfileWidgetProvidersChangeListener; +import android.app.usage.Flags; import android.app.usage.UsageEvents; +import android.app.usage.UsageStatsManager; import android.app.usage.UsageStatsManagerInternal; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetManagerInternal; @@ -83,6 +85,7 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; +import android.os.PersistableBundle; import android.os.Process; import android.os.RemoteException; import android.os.SystemClock; @@ -3815,14 +3818,27 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku final SparseArray<String> uid2PackageName = new SparseArray<String>(); uid2PackageName.put(providerId.uid, packageName); mAppOpsManagerInternal.updateAppWidgetVisibility(uid2PackageName, true); - mUsageStatsManagerInternal.reportEvent(packageName, - UserHandle.getUserId(providerId.uid), UsageEvents.Event.USER_INTERACTION); + reportWidgetInteractionEvent(packageName, UserHandle.getUserId(providerId.uid), + "tap"); } } finally { Binder.restoreCallingIdentity(ident); } } + private void reportWidgetInteractionEvent(@NonNull String packageName, @UserIdInt int userId, + @NonNull String action) { + if (Flags.userInteractionTypeApi()) { + PersistableBundle extras = new PersistableBundle(); + extras.putString(UsageStatsManager.EXTRA_EVENT_CATEGORY, "android.appwidget"); + extras.putString(UsageStatsManager.EXTRA_EVENT_ACTION, action); + mUsageStatsManagerInternal.reportUserInteractionEvent(packageName, userId, extras); + } else { + mUsageStatsManagerInternal.reportEvent(packageName, userId, + UsageEvents.Event.USER_INTERACTION); + } + } + private final class CallbackHandler extends Handler { public static final int MSG_NOTIFY_UPDATE_APP_WIDGET = 1; public static final int MSG_NOTIFY_PROVIDER_CHANGED = 2; |