diff options
| -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; |