Merge "Add logs for the PrivacyHub." into sc-dev
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java
index 7e90178..30080d2 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/debug/PermissionUsageV2Fragment.java
@@ -16,6 +16,12 @@
package com.android.permissioncontroller.permission.debug;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__OPEN;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__SEE_OTHER_PERMISSIONS_CLICKED;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__SHOW_SYSTEM_CLICKED;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.write;
+
import static java.util.concurrent.TimeUnit.DAYS;
import android.Manifest;
@@ -59,6 +65,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Random;
import java.util.Set;
/**
@@ -87,6 +94,9 @@
PERMISSION_GROUP_ORDER.size() + 1;
private static final int EXPAND_BUTTON_ORDER = 999;
+ private static final String KEY_SESSION_ID = PermissionUsageV2Fragment.class.getName()
+ + "_REQUEST_ID";
+
private @NonNull PermissionUsages mPermissionUsages;
private @Nullable List<AppPermissionUsage> mAppPermissionUsages = new ArrayList<>();
@@ -104,10 +114,19 @@
private PermissionUsageGraphicPreference mGraphic;
+ /** Unique Id of a request */
+ private long mSessionId;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ if (savedInstanceState == null) {
+ mSessionId = new Random().nextLong();
+ } else {
+ mSessionId = savedInstanceState.getLong(KEY_SESSION_ID);
+ }
+
mFinishedInitialLoad = false;
// By default, do not show system app usages.
@@ -198,6 +217,9 @@
public void onStart() {
super.onStart();
getActivity().setTitle(R.string.permission_usage_title);
+
+ write(PERMISSION_USAGE_FRAGMENT_INTERACTION, mSessionId,
+ PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__OPEN);
}
@Override
@@ -226,6 +248,9 @@
getActivity().finishAfterTransition();
return true;
case MENU_SHOW_SYSTEM:
+ write(PERMISSION_USAGE_FRAGMENT_INTERACTION, mSessionId,
+ PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__SHOW_SYSTEM_CLICKED);
+ // fall through
case MENU_HIDE_SYSTEM:
mShowSystem = item.getItemId() == MENU_SHOW_SYSTEM;
// We already loaded all data, so don't reload
@@ -260,6 +285,14 @@
return R.string.no_permission_usages;
}
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ if (outState != null) {
+ outState.putLong(KEY_SESSION_ID, mSessionId);
+ }
+ }
+
private void updateUI() {
if (mAppPermissionUsages.isEmpty() || getActivity() == null) {
return;
@@ -279,6 +312,10 @@
screen.setInitialExpandedChildrenCount(
PERMISSION_USAGE_INITIAL_EXPANDED_CHILDREN_COUNT);
}
+ screen.setOnExpandButtonClickListener(() -> {
+ write(PERMISSION_USAGE_FRAGMENT_INTERACTION, mSessionId,
+ PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__SEE_OTHER_PERMISSIONS_CLICKED);
+ });
long curTime = System.currentTimeMillis();
long startTime = Math.max(curTime - TIME_FILTER_MILLIS,
@@ -441,7 +478,7 @@
Map.Entry<String, Integer> currentEntry = usages.get(i);
PermissionUsageV2ControlPreference permissionUsagePreference =
new PermissionUsageV2ControlPreference(context, currentEntry.getKey(),
- currentEntry.getValue(), mShowSystem);
+ currentEntry.getValue(), mShowSystem, mSessionId);
category.addPreference(permissionUsagePreference);
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionUsageV2ControlPreference.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionUsageV2ControlPreference.java
index f2fc04f..794c760 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionUsageV2ControlPreference.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/handheld/PermissionUsageV2ControlPreference.java
@@ -16,6 +16,12 @@
package com.android.permissioncontroller.permission.ui.handheld;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__CAMERA_ACCESS_TIMELINE_VIEWED;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__LOCATION_ACCESS_TIMELINE_VIEWED;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__MICROPHONE_ACCESS_TIMELINE_VIEWED;
+import static com.android.permissioncontroller.PermissionControllerStatsLog.write;
+
import android.Manifest;
import android.content.Context;
import android.content.Intent;
@@ -47,14 +53,16 @@
private final String mGroupName;
private final int mCount;
private final boolean mShowSystem;
+ private final long mSessionId;
public PermissionUsageV2ControlPreference(@NonNull Context context, @NonNull String groupName,
- int count, boolean showSystem) {
+ int count, boolean showSystem, long sessionId) {
super(context);
mContext = context;
mGroupName = groupName;
mCount = count;
mShowSystem = showSystem;
+ mSessionId = sessionId;
CharSequence permGroupLabel = KotlinUtils.INSTANCE.getPermGroupLabel(mContext, mGroupName);
setTitle(permGroupLabel);
@@ -71,6 +79,8 @@
intent.putExtra(Intent.EXTRA_PERMISSION_GROUP_NAME, mGroupName);
intent.putExtra(ManagePermissionsActivity.EXTRA_SHOW_SYSTEM, mShowSystem);
+ logSensorDataTimelineViewed(mGroupName);
+
mContext.startActivity(intent);
return true;
});
@@ -85,6 +95,18 @@
}
}
+ private void logSensorDataTimelineViewed(String groupName) {
+ int act = 0;
+ if (groupName.equals(Manifest.permission_group.LOCATION)) {
+ act = PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__LOCATION_ACCESS_TIMELINE_VIEWED;
+ } else if (groupName.equals(Manifest.permission_group.CAMERA)) {
+ act = PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__CAMERA_ACCESS_TIMELINE_VIEWED;
+ } else if (groupName.equals(Manifest.permission_group.MICROPHONE)) {
+ act = PERMISSION_USAGE_FRAGMENT_INTERACTION__ACTION__MICROPHONE_ACCESS_TIMELINE_VIEWED;
+ }
+ write(PERMISSION_USAGE_FRAGMENT_INTERACTION, mSessionId, act);
+ }
+
@Override
public void onBindViewHolder(PreferenceViewHolder view) {
super.onBindViewHolder(view);