diff options
| author | 2023-11-30 15:29:28 -0600 | |
|---|---|---|
| committer | 2023-12-04 09:35:14 -0600 | |
| commit | 05bacc1570d19b6ff1a7f9eafcc43594a3c1936e (patch) | |
| tree | 775cf1358b747f2405b401a50df477062bbae9a0 | |
| parent | 6fb6c6f8ade645da700728639c3f55a18edd2884 (diff) | |
Offer more details about widget interaction.
Bug: 296061232
Test: manual test with widget interaction
Change-Id: I4a00403dd17491339c4563cba5d3d4daa4b4b709
| -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; |